在RDFa Lite和schema.org词汇表中包含属性内的链接

时间:2014-03-19 06:52:44

标签: schema.org rdfa

我想链接到内容作者的特定页面,但我的RDFa似乎被误解了。

在下面的示例中,我想定义一个Photograph,其author属性本身为Personname。我希望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>

但是尝试验证我从W3C Validator

获得了以下Turtle格式的结果
@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 ] .

我认为namePerson无关,但与资源/contributor/5无关。

2 个答案:

答案 0 :(得分:3)

您需要将href属性(包含您的人员URI的属性)​​放在与propertytypeof相同的HTML元素中,如下所示:

<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/进行实时调试:)

答案 1 :(得分:1)

您注意到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/