2

Say I have place or business ( itemType = LocalBusiness ) and want to list its similar items (businesses) in page.

I want something like this:

<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>

There is a sameAs property. According to schema.org :

URL of a reference Web page that unambiguously indicates the item's identity. E.g. the URL of the item's Wikipedia page, Freebase page, or official website.

But I don't know if it is suitable for this case.

What kind of type (and property if available) should I use?

Pars
  • 4,932
  • 10
  • 50
  • 88
  • 1) In which way(s) is it similar? 2) Do you mean `Place` (instead of `place`) and `LocalBusiness` (instead of `business`)? – unor Dec 07 '16 at 11:55
  • @unor I mean similar places regardless of it's itemprop or itemType. If I list other similar `businesses` related to current business with specifying their itemType = `LocalBusiness`, then at the end there are ( say 4 ) data items in structured data. But in fact, the first one should be Primary and I want to tell search engine other 3 remaining `businesses` ( items ) are only similar items. I searched but it seems there is not any itemType for `similar` items to wrap all similar items in an `itemscope` and `itemType` – Pars Dec 07 '16 at 12:14
  • There is none because it wouldn’t make sense to say "similar" without saying *in which way* they are similar (hence my first question in the comment). Or in other words: Why do you have the three remaining businesses on that page? Is it just something like "You could also be interested in …"?, or are they nearby, or do they have the same founder, etc.? – unor Dec 07 '16 at 12:38
  • @unor they are near by and similar, for example; near restaurants to this restaurant.`Similar` means they are in same category with some other properties in common – Pars Dec 07 '16 at 13:05

1 Answers1

3

Schema.org doesn’t provide a general property that conveys that a thing A is similar to a thing B. (The closest property is probably relatedLink, but this can only be used on WebPage items.)
Probably because that would be a rather useless relation, as things could be similar in many different ways. Instead, Schema.org tends to define more specific relations, e.g., containedInPlace/containsPlace if the places are located in another place (e.g., in the same city).

But I think your problem can be solved in a different way. If I understand your case correctly, you have a page about a single (e.g.) Restaurant item, and on that page you also link to pages that are about (somewhow related/similar) Restaurant items. Consumers should understand that one is the restaurant the page is about, and the other ones have their own pages.

mainEntity/mainEntityOfPage for the primary restaurant

Then you could make use of mainEntity (if you have a WebPage item) or the inverse mainEntityOfPage (see details). This allows you to convey which one of the many Restaurant items is the primary one, i.e., the one the page is about:

<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>

This doesn’t change that the secondary restaurants are top-level items, but this should not be a problem. There’s nothing bad about having multiple top-level items; it often can’t be prevented, because there aren’t suitable properties for all cases.

If you absolutely don’t want this, the hasPart property could be used for all Restaurant items. I don’t like this, because I don’t consider the secondary restaurants to be really part of the page, but strictly speaking, they are (i.e., in the form of teasers).

relatedLink for links to secondary restaurants

In case you don’t need structured data about the secondary restaurants on that page, you could of course simply link to them, by using the already mentioned relatedLink property:

<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>
Community
  • 1
  • 1
unor
  • 92,415
  • 26
  • 211
  • 360
  • thank you for your great-detailed answer. I think the `relatedLink` method is better, since it is in web page. I hope search engines also think in my way! – Pars Dec 07 '16 at 14:23