Включение ссылок внутри свойств с помощью словаря RDFa Lite и schema.org

Я хочу сослаться на конкретную страницу автора контента, но мой RDFa, похоже, неверно истолкован.

В приведенном ниже примере я хочу определить Photograph со свойством author, которое само является Person со свойством name. И я хочу, чтобы name была ссылкой на страницу со всем содержимым автора.

<div typeof="Photograph" resource="/photo/5" vocab="http://schema.org/">
    <p property="author" typeof="Person">
        Contributed by:
        <a href="/contributor/5" title="Contributions from Weston">
            <span property="name">Weston</span>
        </a>
    </p>
</div>

Но пытаясь проверить, я получаю следующие результаты в формате Turtle от W3C Validator

@prefix ns1: <http://www.w3.org/ns/rdfa#> .
@prefix ns2: <http://schema.org/> .

<> ns1:usesVocabulary ns2: .

</contributor/5> ns2:name "Weston" .

</photo/5> a ns2:Photograph;
    ns2:author [ a ns2:Person ] .

Мне кажется, что name связано не с Person, а с ресурсом /contributor/5.


person Weston    schedule 19.03.2014    source источник


Ответы (2)


У вас должен быть атрибут href (тот, который содержит ваш URI Person) в том же элементе HTML, что и property и typeof, например:

<div typeof="Photograph" resource="/photo/5" vocab="http://schema.org/">
    <p>
        Contributed by:
        <a property="author" typeof="Person" href="/contributor/5" title="Contributions from Weston">
            <span property="name">Weston</span>
        </a>
    </p>
</div>

Для тестирования вашей разметки я настоятельно рекомендую http://rdfa.info/play/ для оперативной отладки :)

person scor    schedule 19.03.2014
comment
Спасибо! Значит ли это, что href действует как атрибут ресурса? - person Weston; 19.03.2014

Как вы заметили, href приводит к описанию нового ресурса.

Есть еще одна возможность решить эту проблему: оставьте свой код как есть и просто добавьте пустой атрибут свойства к элементу a:

<div typeof="Photograph" resource="/photo/5" vocab="http://schema.org/">
    <p property="author" typeof="Person">
        Contributed by:
        <a href="/contributor/5" title="Contributions from Weston" property="">
            <span property="name">Weston</span>
        </a>
    </p>
</div>

Это будет результат черепахи:

@prefix ns1: <http://www.w3.org/ns/rdfa#> .
@prefix ns2: <http://schema.org/> .

<> ns1:usesVocabulary ns2: .

</photo/5> a ns2:Photograph;
    ns2:author [ a ns2:Person;
            ns2:name "Weston" ] .

Я нашел это решение в некоторых официальных руководствах, таких как Руководство по данным HTML: http://www.w3.org/TR/html-data-guide/

person Arne    schedule 09.07.2015