Я помечаю сайт микроданными Schema.org и столкнулся с затруднением. Я понимаю, что могу определить книгу, а затем ее автора (я буду использовать ../ вместо http://schema.org/ для пробела):
<div itemscope itemtype="../Book">
<span itemprop="name">Charlie and the Chocolate Factory</span>
written by <span itemprop="author">Roald Dahl</span>
</div>
Но я отмечаю страницу об авторе, поэтому мне нужен способ перечислить его книги и сказать, что все эти статьи написаны им, без повторного перечисления его имени:
<article itemscope itemtype="../Person" id="main">
<h1 itemprop="name">Roald Dahl</h1>
<p>His books included <span itemscope itemtype="../Book">Charlie and the
Chocolate Factory</span> and
<span itemscope itemtype="../Book">James and the Giant Peach</span></p>
</article>
Любые идеи? Просто указание itemref="main" не помогает (потому что я пытаюсь дать конкретное отношение, отношение автора, а не просто связать эти две вещи в целом). Имеет ли смысл пустой элемент span?:
<span itemscope itemtype="../Book">James and the Giant Peach
<span itemprop="author" itemref="main"></span></span>
ОБНОВЛЕНИЕ: я думаю, что понял это, для тех, кто ищет. Вы можете определить itemprop для itemscope, чтобы использовать его позже с itemref. Поэтому я думаю, что ответ:
<article itemscope itemtype="../Person" itemprop="author" id="main">
<h1 itemprop="name">Roald Dahl</h1>
<p>His books included <span itemscope itemtype="../Book" itemref="main">Charlie
and the Chocolate Factory</span> and
<span itemscope itemtype="../Book" itemref="main">James and the Giant Peach</span>
</article>
Не уверен, что бы я сделал, если бы я хотел связать более одного itemprop (Schema.org полон двусторонних отношений только с одним из этих способов), но это решает мою конкретную проблему.
ОБНОВЛЕНИЕ 2: это решило мою предыдущую проблему, но теперь я не могу встроить это в какие-либо другие области видимости. Итак, я хочу пометить все это как статью, я не могу сделать это так:
<main itemscope itemtype="../Article">
<article itemscope itemtype="../Person" itemprop="author" id="main">
<h1 itemprop="name">Roald Dahl</h1>
....
</article></main>
Теперь мой хак itemprop="author" также назначен на верхний уровень Article. Теперь мой код говорит людям, что Роальд Даль написал не только данные книги, но и саму эту статью!
Любые предложения, как решить эту проблему, или решение моей исходной проблемы, которое не вызывает эту проблему?