I'm trying to add schema.org markup to a site for a law firm (itemtype=schema.org/Attorney). That site contains a page dedicated to each lawyer in the firm (itemtype=schema.org/Person). Those profile pages include a list of published works (e.g. itemtype=schema.org/Book). I would like to specify that the person is a member of the organization and the author of the books. I'm struggling to accomplish that.
Here's some code I'm working with:
<body itemscope itemtype="http://schema.org/Attorney">
<!-- this stuff just so the Yandex validator doesn't freak out -->
<meta itemprop="name" content="some law firm">
<meta itemprop="address" content="some address">
<meta itemprop="telephone" content="555-555-5555">
<h1>Book Test</h1>
<div id="profile" itemscope itemtype="http://schema.org/Person">
<h1 itemprop="name">John Smith</h1>
<h3>Published Works</h3>
<ul>
<li itemscope itemtype="http://schema.org/Book"><span itemprop="name">Some Book</span><meta itemprop="author" itemref="profile"></li>
</ul>
</div>
<meta itemprop="member" itemref="profile">
</body>
Check it out in browser at https://dl.dropboxusercontent.com/u/292741/schema-test-book-stackoverflow.html
When testing this with Google's structured data tool (google.com/webmasters/tools/richsnippets) or Yandex (webmaster.yandex.com/microtest.xml), I'm not getting the results I want. In this case, the member and author properties aren't registering.
I've tried a number of variations. Here are a few of the important ones:
If I put an itemscope and itemtype=Person on both the member and author property meta tags, then the properties register, but the tools think I'm talking about three different people (as though the itemref isn't registering).
If I put the member and author properties on #profile, they work, but I get errors because organizations don't have authors and books don't have members.
Combinations of those two are only partially successful. So putting the just member property on #profile and doing author through a meta tag either causes the author property to be ignored (when I don't give it its own scope and type=Person) or it applies to some random person unassociated with the one defined by #profile (when I do give it its ow scope, etc.).
I've also tried playing with schema.org/WriteAction as another way to who the relationship between the book and the person, but I run into the same problems there. I can either get organization->member or writeaction->agent to work, not both.
This is the structure I'm getting (as represented by Google's tool):
Item
type: schema.org/attorney
property:
name: some law firm
address: some address
telephone: 555-555-5555
member:
Item
type: schema.org/book
property:
name: Some Book
author:
Item
type: schema.org/person
property:
name: John Smith
My desired structure (as represented by Google's tool) is something like this:
Item
type: schema.org/attorney
property:
name: some law firm
address: some address
telephone: 555-555-5555
member: Item 1 <-- now references the person
Item
type: schema.org/book
property:
name: Some Book
author: Item 1 <-- now references the person
Item 1
type: schema.org/person
property:
name: John Smith
I'd really appreciate any advice. Thanks!