2016-08-24 20 views
5

Personスキーマの下で、には、それぞれの役職とその組織とを関連づけたいと思っています。これは履歴書のような環境にあるため、多くの雇用と組織があります。Schema.orgのマークアップでJob(jobTitle)をOrganization(worksFor)に関連付けるにはどうすればよいですか?

がここに私のプロジェクトからいくつかのコードの実際の例です(内容は+が変更クリッピング):返し

<div itemscope itemtype="http://schema.org/Person"> 
    … 
    <p><!--list of jobs--> 
    <span itemprop="jobTitle">Job 1</span>, 
    <span itemprop="jobTitle">Job 2</span>, and 
    <span itemprop="jobTitle">Job 3</span> 
    </p> 
    <p><!--list of places worked for--> 
    <span itemprop="worksFor">Company A</span> and 
    <span itemprop="worksFor">Company B</span> 
    </p> 
</div> 

https://search.google.com/structured-data/testing-tool/からこのようなスキーマ:

@type Person 
jobTitle Job 1 
jobTitle Job 2 
jobTitle Job 3 
worksFor  
    @type Organization 
    name Company A 
worksFor  
    @type Organization 
    name Company B 

のは、私がしたいとしましょうジョブ1 & 2会社Aの一部、ジョブ3が会社Bとなるようにするにはどうすればスキーマにきれいな階層ができますか?

私は(How do I relate items in schema.org?ような質問から)itemrefのオプションを持って理解しますが、私はjobTitle参照OrganizationworksFor)を作るための方法を設計する方法を見つけ出すことはできません。

+0

JSON-LDでこれを行う方法を説明します。マイクロデータが必要な場合は、変換する必要があります。それは受け入れられるだろうか? –

+0

@JayGrayあなたはそれを打つことができればそれは素晴らしいだろう!この時点で何かが私のために何もないより優れています、私は本当にここで立ち往生しています。 – Steven

答えて

1

私はこれがスキーマと、Google(または少なくとも構造化データツール)がそれをどのように解釈するかとは考えられません。私は間違っている可能性がありますが、問題はjobTitleworksForの両方が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 

私は>EmployeePerson>OrganizationPerson)>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だけpersonworksForなどの下に表示することができるということである気がします。 jobTitleは、personの下にのみ存在し、Organizationの下にはありません。 Organizationの下にPersonを関連付けることはできますが、employeeと表示されますが、と思われ、jobTitleを関連するpersonに匿名で構造化データツールにプッシュします。構造化データツールは過去にGoogleのドキュメントにいくつかの欠陥があることが知られていましたので、あなたがそのドキュメントから見るものに100%依存することはできません。

関連する問題