我确实认为我理解这些词在编程语言中的含义,但是关于 RDF 和三元组还不清楚。有没有一个例子可以帮助我理解?
谢谢
一个标准的 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
这里的前四个三元组正式正式地是第一个三元组的具体化。
请注意,原始陈述不在模型中,因为具体化的目的是阻止断言它,而是间接谈论它。
进一步注意,为了清楚起见,我省略了 ROVER 和朋友的 IRI。
对于观众中的知识分子:
你可以用具体化做很多事情。如上所述,您可以使用它来描述一个陈述而不陈述它,从而使其远离推理。
您还可以使用它在声明中添加其他事实,例如出处。在那种情况下,你有原来的三元组,还有具体化。然而,我刚刚从一个似乎对 RDF 了解很多的人那里得到了一个冗长的解释(SPARQL 规范的主要负责人之一)。他的解释是正式的具体化(包括第四个三元组,它说这个东西是一个声明') 不应该与断言三元组本身一起使用。如果您查看对此答案的评论,您会发现他的意见并不普遍,但您可能仍希望牢记这一点。
另一个例子:
考虑声明
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.