最初的问题说是传递的,但应该说是逆向的。问题已得到纠正。答案的相关部分从第二段开始。据我所知,这些属性不是可传递的。属性p是可传递的,这意味着对于所有a、b、c,如果p(a,b)和p(b,c),则p(a,c)。我认为不一定是“如果a引用b,b引用c,那么a引用c ”。你所描述的关系是references
并且isReferencedBy
是逆数。一个属性p是一个属性q的逆,当且仅当q(b,a)时,对于所有a和b,p(a,b ) 。
这些属性的名称确实清楚地表明它们是彼此相反的,尽管我还没有找到权威的参考资料来说明这一点。通常,数据源只会在一个方向上说明关系。某种推理器(这可能只是一些应用程序逻辑——它不需要是成熟的 RDFS 或 OWL 推理器)应该负责在这两个属性之间建立连接。例如,如果您正在编写一个应用程序来构建引用图,那么您的应用程序应该使用任一属性查找三元组,并酌情使用该数据。
在 RDF 中,通常很容易声明可以表达“a 引用 b”关系的三元组中的任何一个——您可以断言a references b
或b isReferencedBy a
. 但是,在某些格式中,您将没有那么大的灵活性。例如,如果您使用 HTMLMETA
标记来描述 HTML 文档,则三元组的主题是固定的,因此您需要references
枚举文档引用的内容,并isReferencedBy
枚举引用文档的内容。但是,如果您在纯 RDF 中工作并且可以编写任意三元组,那么您实际上只需要一个属性,尽管在某些情况下使用这两个属性可能会更清晰、更简洁。例如,可能认为写得更清楚:
A references B ;
isReferencedBy C, D .
代替
A references B .
C references A .
D references A .