0

我是一个 RDBMS 的人。我正在尝试 grok Triplestore。我认为我的“困惑”可以通过以下问题的答案来解决:

这怎么样...

Table (Subjects):   
ID  Subject     Details
1   Barney      …
2   Fred        …        
3   Picture     …
4   …

Table2 (Predicates):
ID  Predicate       Details
1   friendOf        …
2   marriedTo       …
3   hasTimeStamp    …
4   hasGeoCoord     …
5   hasEventName    …
6   belongsTo       …
7   containsPerson  …
8   …

Table3 (Objects) - These may be Subjects as well:
ID  Object                  SubjectID   Details
1   Fred                    2           …
2   Wilma                   NULL        …
3   January 1, 2010 1530    NULL        …
4   46°12′N                 NULL        …
5   6°09′E                  NULL        …
6   Wedding                 NULL        …
7   Ski Trip                NULL        …
8   Barney                  1           …
9   …

Table4 (Triplestores)
ID  SubjectID   PredicateID ObjectID    Details
1   1           1           2           …
2   2           2           3           …
3   3           3           3           …
4   3           4           4           …
5   3           4           5           …       
6   3           5           6           …
7   3           5           7           …
8   3           7           8           …
9   3           7           2           …
10  3           7           1           …
11  …

So #9 in Tripstore is: Picture containsPerson Fred

...不是三联店吗?

如果是,请评论为什么这个实现(作为 RDBMS)效率低下等。

提前致谢!!

4

1 回答 1

1

在 RDBMS 之上实现三重存储是可能的,并且在某种程度上很容易。目前有几种可用的系统在不同程度上取得了成功。然而,由于他们的设计通常需要传递自联接,它们往往表现不佳。这就是为什么提供由关系数据库(如 Oracle)支持的三重存储的认真供应商已定制处理以帮助提高其在这些情况下的效率。

以我的经验,本机三元存储,那些设计用于存储和查询 RDF 的存储,总是优于关系系统之上的解决方案。因此,尽管它们是非常多的数据库,并且与传统的 RDBMS 有很多共同点,但在它们的实现中仍然存在一些设计选择,使它们更适合回答 SPARQL 查询。

于 2013-09-13T10:34:25.677 回答