正如问题的主题所问,2是同一回事吗?它们可以互换吗?如果没有,请通过示例解释差异或提供说明。
答案 0 :(得分:8)
引用the RDF Concepts specification (RDF 1.1 draft version):
抽象语法的核心结构是三元组的集合,每个三元组由主语,谓词和对象组成。 ...... RDF三元组的断言表示由谓词表示的某些关系在主语和宾语所表示的资源之间存在。对应于RDF三元组的此语句称为RDF语句。
换句话说:由主语,谓语和宾语组成的抽象结构称为“三元组”。三元组由IRI,空白节点和/或文字组成。每个三元组都表达了一些关于世界的主张或事实 - 它说两件事情彼此有某种关系。关于世界的这种主张是三重中编码的“陈述”。
因此,严格来说,存在差异。但这是一个非常微妙的区别,通常这些术语只是可以互换使用。
答案 1 :(得分:6)
是的,在RDF中,语句与 triple (或 3-tuple )基本相同。
然而,还有一个名为陈述的概念,如果你必须考虑到三元组可以由不同的实体(如人/组织,不是XML实体)。在这种情况下,三元组(主语,谓语,宾语)不是唯一的,应该以不同的方式描述,具体取决于谁陈述它。
整个主题有点令人难以置信。我建议阅读这个summary of a thread from the RDF Interest mailing list(带点心)。它归结为RDF本身的语义描述。
总而言之,这完全取决于 triple 的含义。无论是抽象概念还是实际陈述。如果这是第一种情况,我认为可以安全地假设 triple 和语句是可以互换的。大多数情况下,当使用RDF时,它是第一种情况。
答案 2 :(得分:3)
我曾经在Jena邮件列表上遇到过一些问题,同时对Jena Java代码中的Statement-versus-Triple区别(或类似的Node-versus-RDFNode区别)和blogged about it表示不满。这是来自邮件列表的the gist:
我们发现Model / Statement / RDFNode(API)可以作为应用程序接口使用 它不适合存储抽象和Graph / Triple / Node(SPI)工作 在规律性更有价值的地方更好。也就是说,我们将面向应用程序分开了 面向子系统设计的设计。