都柏林核心词汇表达两个术语:
这两个词是 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>
如果不需要,代表应该使用哪些注意事项,或只是两者中的一个?
答案 0 :(得分:1)
原来的问题是传递性的,但应该说反转。问题已得到纠正。答案的相关部分从第二段开始。据我所知,属性不是传递性的。属性 p 是可传递的,意味着对于所有 a , b , c ,如果 p (a,b)和 p(b,c),然后 p(a,c)。我不认为“如果 a 引用 b ,而 b 引用 c ,那么 a 引用 c 。“您所描述的关系是references
和isReferencedBy
是反转。如果对于所有 a 和 b , p,属性 p 是属性 q 的反转(a,b)当且仅当 q(b,a)。
这些属性的名称确实清楚地表明它们是彼此相反的,尽管我还没有找到一个权威的参考说明。通常,数据源仅在一个方向上说明关系。某种推理器(这可能只是一些应用程序逻辑 - 它不需要是一个成熟的RDFS或OWL推理器)应该负责在两个属性之间建立连接。例如,如果您正在编写一个应用程序来构建引用图,那么您的应用程序应该使用任一属性查找三元组,并根据需要使用该数据。
在RDF中,通常很容易说出表示“引用b”关系的三元组之一 - 您可以断言a references b
或b isReferencedBy a
。但是,在某些格式中,您没有那么多的灵活性。例如,如果您使用HTML META
标记来描述HTML文档,则三元组的主题是固定的,因此您需要references
来枚举文档引用的内容,并{{1枚举引用文档的东西。如果您正在使用纯RDF并且可以编写任意三元组,那么您实际上只需要一个属性,尽管在某些情况下它仍然可能更清晰,更简洁。例如,可以认为写得更清楚:
isReferencedBy
而不是
A references B ;
isReferencedBy C, D .