我确实认为我理解这些单词在编程语言中的含义,但在RDF和三元组方面尚不清楚。有没有一个例子可以帮助我理解?
谢谢
答案 0 :(得分:21)
标准RDF声明包括:
SUBJECT PREDICATE OBJECT
将其视为断言事实。
ROVER IS-A DOG
现在,如果您手边的情况确实如此
GEORGE SAYS-THAT 'ROVER IS-A DOG'
在RDF中,您将其写为
STMTID IS-A STATEMENT
STMTID HAS-SUBJECT ROVER
STMTID HAS-PREDICATE IS-A
STMTID HAS-OBJECT DOG
GEORGE SAYS-THAT STMTID
这里的前四个三元组正式和正式地是第一个三元组的具体化。
请注意,原始语句不在模型中,因为具体化的目的是阻止声明它,而是间接谈论它。
进一步注意,为了清楚起见,我已经将ROI和朋友的IRI排除在外。
对于观众的认知:
您可以通过具体化实现做的各种事情。如上所述,您可以使用它来描述语句而不说明它,从而使其远离推理。
您还可以使用它向声明添加其他事实,例如来源。在这种情况下,你有原始的三重奏,以及具体化。但是,我刚刚从一个似乎对RDF(SPARQL规范的一个主要领导者)了解很多的人那里得到了一个冗长的解释。他的解释是正式的具体化(包括第四个三元组,即该东西'是一个声明')不应该与断言三联本身一起使用。如果你看看这个答案的评论,你会发现他的意见并不普遍,但你可能还是想记住它。
答案 1 :(得分:0)
另一个例子:
考虑声明
music:Symph3 music:dedicatedTo music:Napoleon
要使上面的语句可从另一个RDF语句中引用 使用RDF语法进行了具体化,即重新措辞。
_:s1 rdf:type rdf:Statement.
_:s1 rdf:subject music:Symph3.
_:s1 rdf:predicate music:dedicatedTo.
_:s1 rdf:object music:Napoleon.