RDFa DRY引用的概念

时间:2014-05-12 19:08:17

标签: seo dry schema.org rdfa

我最近开始深入研究RDFa,并尝试用语义信息为我的网站增添趣味。该网站提供服务,活动,博客,并可能在未来提供产品。令人高兴的是,schema.org拥有粗略但足够的类别。但现在谈到实际问题。

所有示例都在一个页面上包含所有信息,这对我来说似乎很有学术意义。例如。在我的登录页面上是一个包含即将发生的事件活动有位置属性。我的活动在两个不同的地方举行。我可以粘贴每个条目的位置信息并膨胀我的html。我宁愿链接到描述位置和保存完整细节的页面。不确定,这是否与之相同。但即使这样,它如何知道目标URL上的哪些RDFa信息应该用作适当的vCard?

同样,我的目标网页只显示部分公司信息。我可以添加很多<meta>,但是再次引用联系页面会很好。

我只是不想相信这个方面让RDF创作者感到失望。是否有减少冗余的最佳做法?

2 个答案:

答案 0 :(得分:2)

URI! (或 IRI ,例如,RDFa 1.1

这是RDF的主要特质之一,它使Linked Data成为可能,coined by Tim Berners-Lee(强调我的):

  

语义Web不只是将数据放在网络上。这是关于建立链接,以便个人或机器可以浏览数据网。

     

与超文本网站一样,数据网络是在网络上构建的。但是,与超文本网站不同,其中链接是用HTML编写的超文本文档中的关系锚点,对于数据,它们链接RDF描述的任意事物

From my answer to a question about the Semantic Web

  

使用RDF (以您选择的serialization format形式)和为您的实体定义URI ,以便您和其他人可以发表声明它们。

所以给你所有的“实体”一个URI并将其用作主题resp。 RDF三元组中的对象。请注意,您可能不希望使用与您的网页相同的URI,因为这会使得很难区分有关网页的数据和网页所代表的事物的数据(请参阅my answer describing this in more detail)。

因此,假设您的网站有以下两个页面:

  • http://example.com/event/42关于事件42,即HTML页面)
  • http://example.com/location/51关于位置51,即HTML页面)

使用hash URI方法,您可以使用这些URI:

  • http://example.com/event/42#it(事件42,即真实事物)
  • http://example.com/location/51#it(位置51,即真实的东西)

现在,当您想使用Schema.org词汇表提供有关您的活动的信息时,您可以使用resource来提供其URI:

<!-- on http://example.com/event/42 -->
<article resource="#it" typeof="schema:Event">
  <h1 property="schema:name">Event 42</h1>
</article>

如果您想指定事件的位置(使用Place),您可以使用该位置的URI:

<!-- on http://example.com/event/42 -->
<article about="#it" typeof="schema:Event">
  <h1 property="schema:name">Event 42</h1>
  <a property="schema:location" typeof="schema:Place" href="/location/51#it">Location 51</a>
</article>

在位置页面上,您可能会有以下内容:

<!-- on http://example.com/location/51 -->
<article about="#it" typeof="schema:Place">
  <h1 property="schema:name">Location 51</h1>
  <a property="schema:event" typeof="schema:Event" href="/event/42#it">Event 42</a>
</article>

汇总这些数据,你将拥有这些三元组(在Turtle中):

@prefix schema: <http://schema.org/> .

<http://example.com/location/51#it> a schema:Place .
<http://example.com/location/51#it> schema:event <http://example.com/event/42#it> .
<http://example.com/location/51#it> schema:name "Location 51" .

<http://example.com/event/42#it> a schema:Event .
<http://example.com/event/42#it> schema:location <http://example.com/location/51#it> .
<http://example.com/event/42#it> schema:name "Event 42" .

编辑:我不确定(我希望情况并非如此),但也许Schema.org需要一个空url(或sameAs?)属性的节点,例如:

<article about="#it" typeof="schema:Event">
  <h1 property="schema:name">Event 42</h1>
  <div property="schema:location" typeof="schema:Place">
    <a property="schema:url" href="/location/51#it">Location 51</a>
  </div>
</article>

答案 1 :(得分:0)

每个RDF资源都有标识符。标识符是IRI(URL是IRI的子集)。因此,只需按标识符引用位置。

通常,每个页面描述一个隐式主资源和几个明确的附加主资源。看看RDFa 1.1 Primer。它有很多相关信息