1

I'm looking to start incorporating "Structured Data", "Rich Snippets", or what ever terms may be associated with the schema.org vocabulary. I'm specifically interested in microdata rules.

Most of the websites I manage contain blogs. I figured that would be a great place to start implementing microdata in my HTML markup.

Before I can begin... I need to fully understand the rules of schema.org's microdata rules.

I've managed to find three applicable item types which could be used to implement into the HTML markup of my blogs.

Three possible items types to use with schema.org's microdata in HTML markup for a blog.

  1. Blog (http://schema.org/Blog)
  2. BlogPosting (http://schema.org/BlogPosting)
  3. Article (http://schema.org/Article)

1.) schema.org's microdata Item Type: "Blog".

I would assume that would be something like...

<section itemscope itemtype="http://schema.org/Blog">
    <!-- blog posts listed here. -->
</section>

2.) schema.org's microdata Item Type: "BlogPosting".

I would assume that would be something like...

<section itemscope itemtype="http://schema.org/Blog">
    <article itemprop="blogPost" itemscope itemtype="http://schema.org/BlogPosting">
        <!-- article contents here -->
    </article>
    <article itemprop="blogPost" itemscope itemtype="http://schema.org/BlogPosting">
        <!-- article contents here -->
    </article>
</section>

I'm confused about #2. If you click the link for #2 (BlogPosting) and #3 (Article).

BlogPosting doesn't have any of it's own properties it seems. So What I'm wondering is, can I use the properties from other item types like: Article, CreativeWork, or Thing directly in my BlogPosting item type/scope?

Or do I have to declare a new item type/scope for CreativeWork nested within my BlogPosting item type/scope, before I can use the CreativeWork properties?

Are the properties from Article, CreativeWork, and Thing automatically inherited by BlogPosting? Can I just use any of those properties directly in my BlogPosting Item Type/scope without having to create a new Item Type/scope within the BlogPosting Item Type/scope.

1

To clarify the terminology: Microdata is a syntax. Schema.org is a vocabulary. (And such a vocabulary can be used with different syntaxes like JSON-LD, Microdata, and RDFa).

Your two example snippets are correct.

And your observation is also correct: BlogPosting doesn’t define any new properties.

[…] can I use the properties from other item types like: Article, CreativeWork, or Thing directly in my BlogPosting item type/scope?

Yes!

On the top of every Schema.org type page you’ll find a hierarchy:

Thing > CreativeWork > Article > BlogPosting

This means that every BlogPosting is also an Article, which is also an CreativeWork, which is also a Thing. Child types inherit the properties from their parent(s).

This is also reflected on each type page, as the table lists the properties you can use:

Properties from Article
[…]
Properties from CreativeWork
[…]
Properties from Thing
[…]

Note:

  • Some types have more than one parent. This is (currently) not stated in the hierarchy on a type page, but you can notice this in the properties table.

  • Some specific properties can be used although they are (currently) not listed in the properties table.

  • I figured that was the case. I used the Google Webmaster Structured Data Testing Tool and I noticed it was allowing inheritance of properties. I think I got a pretty solid grasp on it now. Hopefully my question along with your answer will help clarify any confusion with others stepping into structured data for the first time on their websites. Great answer. :) – Michael Ecklund Oct 1 '14 at 15:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.