使用Dublin Core引用和isReferencedBy术语

时间:2013-06-03 16:02:43

标签: rdf semantics owl dublin-core

都柏林核心词汇表达两个术语:

这两个词是 inverses 而是:

if A references B, then B is referenced by A

在图表中,是(完全或在某种程度上)必需始终插入并表达这两个术语?

<http://example.org/A> dcterms:references <http://example.org/B>
<http://example.org/B> dcterms:isReferencedBy <http://example.org/A>

如果不需要,代表应该使用哪些注意事项,或只是两者中的一个?

1 个答案:

答案 0 :(得分:1)

原来的问题是传递性的,但应该说反转。问题已得到纠正。答案的相关部分从第二段开始。据我所知,属性不是传递性的。属性 p 是可传递的,意味着对于所有 a b c ,如果 p (a,b) p(b,c),然后 p(a,c)。我不认为“如果 a 引用 b ,而 b 引用 c ,那么 a 引用 c 。“您所描述的关系是referencesisReferencedBy反转。如果对于所有 a b p,属性 p 是属性 q 的反转(a,b)当且仅当 q(b,a)

这些属性的名称确实清楚地表明它们是彼此相反的,尽管我还没有找到一个权威的参考说明。通常,数据源仅在一个方向上说明关系。某种推理器(这可能只是一些应用程序逻辑 - 它不需要是一个成熟的RDFS或OWL推理器)应该负责在两个属性之间建立连接。例如,如果您正在编写一个应用程序来构建引用图,那么您的应用程序应该使用任一属性查找三元组,并根据需要使用该数据。

在RDF中,通常很容易说出表示“引用b”关系的三元组之一 - 您可以断言a references bb isReferencedBy a。但是,在某些格式中,您没有那么多的灵活性。例如,如果您使用HTML META标记来描述HTML文档,则三元组的主题是固定的,因此您需要references来枚举文档引用的内容,并{{1枚举引用文档的东西。如果您正在使用纯RDF并且可以编写任意三元组,那么您实际上只需要一个属性,尽管在某些情况下它仍然可能更清晰,更简洁。例如,可以认为写得更清楚:

isReferencedBy

而不是

A references B ;
  isReferencedBy C, D .