我想在我的 Symfony2 项目中使用 RDF/三元组来组织事物(在我的例子中是标签)。
我会看到这样的东西:
ENTITY TAG <-------------- TAG_TAG --------------> ASSOCIATION_TYPE
^ |
|---------------------/
字段:
TAG
ID
Tag (text)
Description (text/html)
TAG_TAG
ID
*TAG1
*TAG2
*ASSOCIATION_TYPE
ASSOCIATION_PARAM
这样,我就能:
- 存储三重关联
- 设置不同的关联类型。例如,PHP是一种编程语言; stackoverflow.com 是一个网站;但地球绕着太阳转。
- 设置参数(允许在关联内部提供更多信息)
我们可以考虑在 TAG_TAG
和 ASSOCIATION_TYPE
之间设置多对多关系。通过这样做,我们可以设置几个参数。
所以我有几个问题:
- 您认为这是有效存储三元组的好方法吗?
- 是否有任何 RDF 层可以提取现有的 RDF/三元组数据库并填充我自己的数据库?
- 我是否应该考虑使用某种 TripleStore(例如 Sesame)并将其与 Symfony 一起使用?
最佳答案
回答您的问题:
1)我不完全确定你在问什么。如果您询问这是否是对数据进行建模的合理方法,那么可能没问题。但你的图表不清楚,而且你对细节有点了解。最好的办法就是从一开始就做一些有效的事情。您可以稍后改进建模,而不会遇到太多麻烦。
如果您询问有关三元组的存储,请不要询问。请参阅我对 #3 的回复。
2) 有很多可用的 RDF 库,您有 Jena & Sesame在Java中,dotNetRdf对于.Net世界,RDFLib在Python中,redland对于C等。
3)是的。不要尝试重新发明轮子并建立自己的三重商店。这不是一个简单的项目,在任何合理的时间范围内,即使是现有的最差的三重商店,你也不会做得更好。
关于symfony - 三元组存储的数据库结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10802340/