What microdata should I use for a blog?

I agree with what others say that the subject is very vague. Never the less I will attempt to express my thoughts on the matter and show you how I'm doing it on my blog.

I use both WebPage and Blog item types in the same document to mark up different things.

Web page

I use WebPage item type on the body tag (but you can also use any other parent of the breadcrumb). By doing so I can mark up my bread crumbs.

<body itemscope itemtype="http://schema.org/WebPage">
  <ul itemprop="breadcrumb">
    <li>
      <a href="foo">foo</a> 
    </li>

    <li>
      <a href="foo/bar">bar</a>
    </li>

    <li>
      <a href="foo/bar/baz">baz</a>
    </li>
  </ul>
    
    ...
    
</body>

Blog posts

When I loop the blog posts I use the Blog item type on the wrapper that contains all of the blog articles. I mark every article with the property blogPosts and uses of course BlogPosting as item type.

<section itemscope itemtype="http://schema.org/Blog">
  <article itemprop="blogPosts" itemscope itemtype="http://schema.org/BlogPosting">
    ...
  </article>
    
  <article itemprop="blogPosts" itemscope itemtype="http://schema.org/BlogPosting">
    ...
  </article>
    
  ...
    
</section>

Article page

See edit below for an update to this opinion

On the articles landing page I don't use the Blog item type. But I do mark the post as a BlogPosting item.

<article itemscope itemtype="http://schema.org/BlogPosting">
  ...
</article>

The only reason I can see that you would wanna mark something with a Blog item type is because of the blogPosts properties and the fact to say that it is a blog. I think you fulfill saying that it's a blog by marking the article as a BlogPosting. I also don't think it's correct using the property in this context since this is used in a plural form. To me that reflect a different area of use.


Edit

I'm not sure if the schema has extended or if I missed it the first time around, but the Blog item has a property called blogPost now, that is the singular form blogPosts. So then I would say that it makes more sense to mark up the main element as the Blog item and use the blogPost property for the article and mark it up as a BlogPosting item


I would use http://schema.org/WebPage for your all up page since this allows you to define things like Breadcrumbs/navigation which are important for describing a site regardless of the particular content.

There is still a lot of work needed in the microdata schemas and you've pointed out what appears to be a gap -- there is no parent/child relationship between Article and anything else that I can see (e.g. 'Articleindex' or 'Articles').

I haven't really read anything that indicates this parent child hierarchy is super important anyways, unless the parent is experssing attributes which are important to convey, so I think you can get away with either.

However, you haven't mentioned what type of content the "articles" are. If they are more journalistic or official in nature (like a news article, research paper, etc) I'd use http://schema.org/Article for each article and not worry about the article index page. Otherwise, use http://schema.org/Blog http://schema.org/BlogPosting for each.