seo,semantic-web,schema.org,microdata,google-rich-snippets , Child properties of Schema.org property


Child properties of Schema.org property

Question:

Tag: seo,semantic-web,schema.org,microdata,google-rich-snippets

I've been trying to figure out this riddle from a day now. Lets say that we have a TV Episode as following,

<main itemscope itemtype="https://schema.org/TVEpisode">
    <h1>
      <a itemprop="url" href="self.html">
          Pokemon - <span itemprop="episodeNumber">88</span>
      </a>
    </h1>
    <h2 itemprop="name">In the Pink</h2>
    <p>Source: <span itemprop="partOfSeries">Pokemon</span>
               <span itemprop="partOfSeason">Orange Islands</span>
    </p>
</main>

Now the problem here is that I'm unable to add the 'sameAs' property of 'partOfSeries' here. If I add an anchor with 'sameAs' property inside 'partOfSeries', Google Structured-data Testing Tool says it cant find the sameAs property. And I don't know anyway else to do it. The same is correct for 'seasonNumber' which is a child of 'partOfSeason'. If you could help out with the 'potentialAction' property too, that would be awesome. Thank you


Answer:

The partOfSeason property expects a value of the Season type.
The partOfSeries property expects a value of the Series type.
You are giving a text value in both cases.

This is not wrong (just not recommended), but with a text value it’s not possible to give additional data about the season/series.

In the Microdata syntax, you’d have to create a new item with the itemscope attribute and give its type with the itemtype attribute:

<span itemprop="partOfSeries" itemscope itemtype="http://schema.org/Series">
  <span itemprop="name">Pokemon</span>
</span>

<span itemprop="partOfSeason" itemscope itemtype="http://schema.org/Season">
  <span itemprop="name">Orange Islands</span>
</span>

(Because simple text inside of an item is not considered to be a Microdata value, you have to use a property for everything you want to associate with the item, i.e, Schema.org’s name in this case.)

Now you can add additional properties that only apply to their parents (Series/Season), not to the TVEpisode:

<span itemprop="partOfSeries" itemscope itemtype="http://schema.org/Series">
  <span itemprop="name">Pokemon</span>
  <link itemprop="sameAs" href="http://en.wikipedia.org/wiki/Pok%C3%A9mon_%28anime%29"/>
</span>

<span itemprop="partOfSeason" itemscope itemtype="http://schema.org/Season">
  <span itemprop="name">Orange Islands</span>
  <link itemprop="sameAs" href="http://en.wikipedia.org/wiki/List_of_Pok%C3%A9mon:_Adventures_on_the_Orange_Islands_episodes"/>
</span>

Side notes about your example:


Related:


Convert MVC Website to be Responsive


mobile,model-view-controller,seo
While investigating the Google SEO issue with respect to not having a mobile web site. I've learned recently that lack of proper mobile site would reduce the search ratings, and a different content for a mobile and a desktop sites might hurt your SEO as well. Currently we have a...

How to “remove” indexed pages in Google and AngularJS


angularjs,nginx,seo,google-index
I have an AngularJS 1.0.7 web application. Some months ago I sent a sitemap.xml file to Google, so the urls are indexed. Now, I would like to upload a new sitemap file with some updates on those URLs. I mean, the pages are the same but the urls have changed...

Wordpress - Robotx.txt allows admin login?


wordpress,seo,robots.txt
First, i've searched by robots.txt for Wordpress, but, no one told me where is this file. So, I read that the robots.txt in Wordpress is virtual. Ok, no problem. But, where i find this to edit? My Wordpress is allowing the /author/admin and i don't want this. In dashboard, the...

How can I restrict a data property to an exact value in Protege OWL 2?


semantic-web,protege4
I'm taking a course in Semantic Web and I'm finding myself a little confused. I've defined a base class named A and specified that (hasType exactly 1 integer). I want to declare different subclasses that each have a different type. For instance B is subclass of A and hasType equal...

Best JSON-LD practices: using multiple