私はこれがスキーマと、Google(または少なくとも構造化データツール)がそれをどのように解釈するかとは考えられません。私は間違っている可能性がありますが、問題はjobTitle
とworksFor
の両方がperson
に当てはまると思います。だからGoogleはそれらの属性をその人物に関連付けるが、必ずしも2つの属性をお互いに関連付けるわけではない。
私は私のアプローチで何かを見逃している可能性があり、これは実際に可能である可能性があります。私は、少なくともあなたまたは正しい方向へのより良い経験を持つ人(または私の疑惑を確認する)を導くために私の答えを投稿したかったのです。私は2つのアプローチを持っています。マイクロデータアプローチはツールの中に現れるが間違っていると思います。私は、JSON-LDのアプローチは正しいと思っていますが、構造化データツールでは正しく表示されません。
ミクロのアプローチ
あなたは程度のDOMを変更することができれば、あなたは人の中に巣に組織をメタタグを使用することができます。
<div itemscope itemtype="http://schema.org/Person" id="person1">
<p><!--list of jobs-->
<span>Job 1</span>,
<span>Job 2</span>, and
<span>Job 3</span>
</p>
<p><!--list of places worked for-->
<span itemscope itemprop="worksFor" itemtype="http://schema.org/Organization">
<span itemprop="name">Company A</span>
<span itemscope itemprop="employee" itemref="person1" itemtype="http://schema.org/Person">
<meta itemprop="jobTitle" content="Job 1">
</span>
</span> and
<span itemscope itemprop="worksFor" itemtype="http://schema.org/Organization">
<span itemprop="name">Company B</span>
<span itemscope itemprop="employee" itemref="person1" itemtype="http://schema.org/Person">
<meta itemprop="jobTitle" content="Job 2">
<meta itemprop="jobTitle" content="Job 3">
</span>
</span>
</p>
</div>
返します:
を私はしたいと思うように構造化されたデータツールは結果を示しているが、私は従業員が実際にIDに添付されていないため、データが実際に関連するだろう確信していません
@type = Person
worksFor
@type = Organization
name = Company A
employee
@type = Person
jobTitle = Job 1
worksFor
@type = Organization
name = Company B
employee
@type = Person
jobTitle = Job 2
jobTitle = Job 3
私は>Employee
Person
>Organization
(Person
)>JobTitle
を入れ子にすることで、これに近づきました。同じフロントエンドスタイルを維持できるように、メタタグを使用して従業員に空白スパンを追加しました。
このアプローチの私の懸念は、それぞれOrganization
の下のEmployee
が親Person
から切断されるということです。私は親にIDを使用し、それぞれのEmployee
にitemrefを使用してその親IDを指していますが、本当にサポートされているかどうか、またはネストされているかどうかは不明です。
JSON-LDのアプローチは、私は、JSON-LDのアプローチが適切に組織への人の関係だと思いますが、最終的にはGoogleのツールは基本的に同じ結果を与える人に戻っjobTitle
をプッシュします。しかし、データを関連付ける良い方法があるかもしれません。
残念ながら返し <script type="application/ld+json">
{
"@context": {
"@vocab": "http://schema.org/",
"id": "@id",
"graph": "@graph",
"type": "@type"
},
"graph" : [
{
"type": "Person",
"id": "Person1",
"name": "John Smith",
"worksFor" : [
{
"id": "CompanyA"
},
{
"id": "CompanyB"
}
]
},
{
"type": "Organization",
"id": "CompanyA",
"name": "Company A",
"employees": [
{
"@id" : "Person1",
"jobTitle" : ["Job 1", "Job 2"]
}
]
},
{
"type": "Organization",
"id": "CompanyB",
"name": "Company B",
"employees": [
{
"@id" : "Person1",
"jobTitle" : "Job 3"
}
]
}
]
}
</script>
:
@type : http://www.example.com/Person
@id : http://www.example.com/Person1
name : John Smith
jobTitle : Job 1
jobTitle : Job 2
jobTitle : Job 3
worksFor
@type : http://www.example.com/Organization
@id : http://www.example.com/CompanyA
name : Company A
worksFor
@type : http://www.example.com/Organization
@id : http://www.example.com/CompanyB
name : Company B
構造化データツールは善悪に見えますが、右のようである1に見える方法で、上記のオプションを提示しますが、それはGoogleがあるかと言うことは難しいです実際にはというデータに関連しています。また、スキーマ/データツールは、より基本的なレベルでの関係を想定していることがあります。通常、誰かが複数の組織に複数の役職を持たないことになります。しかし、私はその時点で推測しています。
ボトムラインはある - 私はこの問題は、Organization
だけperson
worksFor
などの下に表示することができるということである気がします。 jobTitle
は、person
の下にのみ存在し、Organization
の下にはありません。 Organization
の下にPerson
を関連付けることはできますが、employee
と表示されますが、はと思われ、jobTitle
を関連するperson
に匿名で構造化データツールにプッシュします。構造化データツールは過去にGoogleのドキュメントにいくつかの欠陥があることが知られていましたので、あなたがそのドキュメントから見るものに100%依存することはできません。
JSON-LDでこれを行う方法を説明します。マイクロデータが必要な場合は、変換する必要があります。それは受け入れられるだろうか? –
@JayGrayあなたはそれを打つことができればそれは素晴らしいだろう!この時点で何かが私のために何もないより優れています、私は本当にここで立ち往生しています。 – Steven