对于像Neo4j这样的公司使用的“标记的属性图”,而对BlazeGraph使用的RDF * / SPARQL *则不能做什么呢?
答案 0 :(得分:0)
当然,您可以使用商店做什么取决于商店。而且 Neo4j 和 Blazegraph 的功能非常不同。
现在,如果您的问题是与属性图模型可以表达的内容相比,我可以用 RDF-star 表达什么,那么这是一个有效的问题,答案是它们几乎是等效的在表现力方面。
属性图使用更高级别的抽象,因为它的原语是节点和关系,两者都可以具有内部结构(如描述它们的属性)。相反,RDF 将每一位信息分解为三元组/语句。
描述我在 StackOverflow 中发布答案的简单图表可以用 Cypher 表示如下:
CREATE
(:Person { uri: 'http://me.com/jb', name: 'JB'})-[:POST { date:'20/06/2021'}]->(:Answer { uri: 'http://stackoverflow.com/answer/1234', text: 'blah blah blah...'})
...SPARQL + RDF-star 中完全相同的信息如下所示:
INSERT DATA
{
<http://me.com/jb> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person> .
<http://me.com/jb> <http://schema.org/name> "JB" .
<http://stackoverflow.com/answer/1234> <http://schema.org/text> "blah blah blah..." .
<http://me.com/jb> <http://schema.org/post> <http://stackoverflow.com/answer/1234> .
<http://stackoverflow.com/answer/1234> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Answer> .
<http://me.com/jb> <http://schema.org/post> <http://stackoverflow.com/answer/1234> .
<<<http://me.com/jb> <http://schema.org/post> <http://stackoverflow.com/answer/1234>>>
<http://schema.org/dateCreated> "20/06/2021" .
}
所以你可以表达同样的意思,但一个可以说更“面向数据交换”(RDF),另一个更“面向数据操作/开发人员”。