如何在Schema.org中指定类似的项目?

时间:2016-12-07 07:48:03

标签: schema.org

说我有placebusiness(itemType = LocalBusiness)并希望在页面中列出其类似的项目(businesses)。

我想要这样的事情:

<div itemscope itemType="https://schema.org/LocalBusiness">
    <div itemprop="name">Biz Name</div>
    <meta itemprop="image" content="image url" />
    <div itemprop="description">Description</div>
    .
    .
    .
</div>


<!--What should be the itemType of #other-similar-businesses to tell search engines these are Similar Items-->
<div id="other-similar-businesses" itemscope itemType="?" itemprop="?">
    <div itemscope itemType="https://schema.org/LocalBusiness">
        <div itemprop="name">Biz Name</div>
        <meta itemprop="image" content="image url"/>
        <div itemprop="description">Description</div>
        .
        .
        .
    </div>
    <div itemscope itemType="https://schema.org/LocalBusiness">
        <div itemprop="name">Biz Name</div>
        <meta itemprop="image" content="image url"/>
        <div itemprop="description">Description</div>
        .
        .
        .
    </div>
</div>

有一个sameAs属性。 According to schema.org

  

明确指示项目标识的参考网页的URL。例如。项目的维基百科页面,自由基页面或官方网站的URL。

但我不知道它是否适合这种情况。

我应该使用哪种类型(和属性,如果可用)?

1 个答案:

答案 0 :(得分:3)

Schema.org没有提供传达 A B 相似的东西的一般属性。 (最近的属性可能是relatedLink,但这只能用于WebPage个项目。)
可能因为那将是一种相当无用的关系,因为事情可能在许多不同方面相似。相反,如果地点位于另一个地方(例如,在同一个城市),Schema.org倾向于定义更具体的关系,例如containedInPlace / containsPlace

但我认为你的问题可以用不同的方式解决。如果我理解你的情况,你有一个关于单个(例如)Restaurant项的页面,并且在该页面上你还链接到关于(某些相关/类似的)Restaurant项目的页面。消费者应该明白,一个是关于页面的餐馆,另一个是有自己的页面。

主餐厅

mainEntity / mainEntityOfPage

然后您可以使用mainEntity(如果您有WebPage项)或反mainEntityOfPagesee details)。这允许您传达许多Restaurant项中的哪一项是主要项目,即页面所涉及的项目:

<body itemscope itemtype="http://schema.org/ItemPage">

  <main>

    <article itemprop="mainEntity" itemscope itemtype="http://schema.org/Restaurant">
      <!-- primary restaurant -->
    </article>

  </main>

  <aside>

    <article itemscope itemtype="http://schema.org/Restaurant">
      <!-- secondary restaurant -->
    </article>

    <article itemscope itemtype="http://schema.org/Restaurant">
      <!-- secondary restaurant -->
    </article>

  </aside>

</body>

这并不会改变二级餐厅是顶级餐厅,但这应该不是问题。拥有多个顶级项目并没有什么不好;它通常无法阻止,因为所有情况都没有合适的属性。

如果您绝对不希望这样,hasPart属性可用于所有Restaurant项。我不喜欢这样,因为我不认为二级餐厅真的是页面的一部分,但严格来说,它们是(即以teasers的形式)。

relatedLink指向二级餐厅的链接

如果您不需要该页面上有关二级餐厅的结构化数据,您当然可以使用已经提到的relatedLink属性链接到它们:

<body itemscope itemtype="http://schema.org/ItemPage">

  <main>

    <article itemprop="mainEntity" itemscope itemtype="http://schema.org/Restaurant">
      <!-- primary restaurant -->
    </article>

  </main>

  <aside>

    <ul>
      <li><a itemprop="relatedLink" href="/r2">Restaurant 2</a></li>
      <li><a itemprop="relatedLink" href="/r3">Restaurant 3</a></li>
    </ul>

  </aside>

</body>