问题1:这些术语中的一些在功能上是等价的或相关的,但我不想在同一个对象周围包装两个本体,
<span property="foaf:name"><span property="dc:creator">Carl Boettiger</span></span>
因为这很麻烦,似乎忽略了链接数据的整个想法,这应该足够聪明,知道dc:creator也是一个foaf:person.那么这样做的正确方法是什么?我怎样才能确认这些对象之间的关系(例如,大概不是所有的对象:人应该是dc:creator.是否在语义网上的某处说过dc:creator是foaf的一个子集:person?我需要链接到这样吗?某种说法?你能指点我到哪里吗?
问题2:一个本体中的词汇量不足以满足我的目的,因此我需要使用另一个词汇表中的词汇表.例如,据我所知,FOAF并没有为我提供一种方式来说明我的组织,位置或角色(GoogleSnippets认为这些字段必须是有效的人员).所以我去找一个方便的本体论,比如谷歌建议的那个,http://rdf.data-vocabulary.org,它有这些术语.现在我再次提出了一个密切相关的问题,即确保这两个本体在一个人的意义上达成一致:
<div typeof="foaf:Person"> <span property="foaf:name">Carl Boettiger</span> is a <span property="v:role"> graduate student </span> </div>
v:角色有自己对它属于什么的想法,一个typeof =“v:Person.我是否还需要添加这种类型的声明?我是否需要做一些事情来说它与foaf相同:Person,事实上,v:role和foaf:name都描述了同样的事情(我)?
非常感谢澄清我的困惑.
解决方法
问题1:您可以将同一属性属性中的所有属性与空格分开,而不是为每个新属性添加新的span元素:
<span property="foaf:name dc:creator">Carl Boettiger</span>
Is it said somewhere on the Semantic Web that dc:creator is a subset of foaf:person?
首先,这个例子并不是真的足够,dc:creator是一个属性和foaf:Person是一个类型,但让我们想象一下我们在谈论foaf:Agent和foaf:Person,foaf规范说foaf:Person是子类foaf:Agent:http://xmlns.com/foaf/spec/#term_Person – 词汇表可能定义这种关系.还有交叉词汇映射,有时定义来自不同词汇的类和属性之间的关系.
Do I need to link to such a statement somehow?
不,你通常不必那样做.
问题2:请注意,http://rdf.data-vocabulary.org已弃用,支持schema.org词汇表:http://schema.org/docs/full.html和http://schema.rdfs.org/
Do I need to add this typeof declaration as well? Do I then need to do something to say it is the same as foaf:Person,and indeed that v:role and foaf:name both describe the same thing (me)?
通常,在以HTML格式发布数据时,您不会尝试在词汇表之间声明等效性,而是使用您认为对于使用数据的应用程序有用的所有词汇表术语进行发布,并且在RDFa中很容易这样做可以在给定的@typeof或@property属性中嵌入多个类型和属性.
<div typeof="foaf:Person v:Person"> <span property="foaf:name v:name">Carl Boettiger</span> is a <span property="v:role"> graduate student </span> </div>
请注意,您可以在http://rdfa.info/play/测试RDFa标记