我最近开始深入研究RDFa,并尝试用语义信息为我的网站增添趣味。该网站提供服务,活动,博客,并可能在未来提供产品。令人高兴的是,schema.org拥有粗略但足够的类别。但现在谈到实际问题。
所有示例都在一个页面上包含所有信息,这对我来说似乎很有学术意义。例如。在我的登录页面上是一个包含即将发生的事件活动有位置属性。我的活动在两个不同的地方举行。我可以粘贴每个条目的位置信息并膨胀我的html。我宁愿链接到描述位置和保存完整细节的页面。不确定,这是否与之相同。但即使这样,它如何知道目标URL上的哪些RDFa信息应该用作适当的vCard?
同样,我的目标网页只显示部分公司信息。我可以添加很多<meta>
,但是再次引用联系页面会很好。
我只是不想相信这个方面让RDF创作者感到失望。是否有减少冗余的最佳做法?
答案 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" .
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。它有很多相关信息