首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >支持RDF的加权图数据库

支持RDF的加权图数据库
EN

Software Recommendation用户
提问于 2016-03-17 08:36:46
回答 1查看 331关注 0票数 1

我需要一个4列(主语、谓词、对象、谓词-权重)图数据库,我可以将.ttl文件导入到其中。

我使用Virtuoso到目前为止,但它不支持标签/加权边。

另一个选择是Neo4j,但它不支持RDF三元组(这些三元组需要在上传之前转换为CSV格式)。

这是一个简单的要求,但除了R2DF之外,我找不到任何东西,但是AFAIK是不可用的,或者仍然只是一个概念。

需求:

  • 平台: Linux CentOS
  • 免费提供,至少用于教育用途
  • RDF三重(.ttl)支持
  • 基于图的
  • 处理大型数据集(大约500万行)

示例:

.ttl中的一个示例行:

代码语言:javascript
复制
<http://dbpedia.org/resource/Category:Futurama> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2004/02/skos/core#Concept> 8.0 .
EN

回答 1

Software Recommendation用户

发布于 2016-10-06 23:27:17

您的Turtle示例实际上在语法上是无效的,因为Turtle是一种“只使用三元组”的格式,因此您将找不到任何可以解析/处理该格式的工具。加权边的概念使您超出了RDF标准的范围,这就是为什么您不会发现许多RDF工具为它提供了明确的支持。

但是,如果您愿意稍微修改您的数据,那么您可以使用大多数标准的RDF工具实现您想要的结果。在本例中,我将使用RDF4J

要建模边权值,可以使用“命名图”的概念--在RDF4J中,这是通过使用四元而不是三元组来支持的。例如,使用N-四作为格式(非常类似于Turtle/needed,但允许所需的额外命名图形信息),您的示例如下所示:

代码语言:javascript
复制
<http://dbpedia.org/resource/Category:Futurama> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2004/02/skos/core#Concept> <http://example.org/weight-8-0> .
<http://example.org/weight-8-0> rdfs:label 8.0 .

正如您所看到的,这个想法是定义一个新的命名图(在本例中由http://example.org/weight-8-0标识),并将其用作要为其分配权重的语句的图形标识符。第二条语句仅用于将实际权重值链接到标识符。

当然,这种方法确实意味着为每一个可能的权重值引入一个新的RDF语句,所以只有当可能的值有一些可管理的数量时,它才是真正可行的。然后,您将再次讨论dataset中的500万条语句,因此在最坏的情况下,您可以将其翻一番,达到1,000万条语句,这对于大多数RDF数据库来说仍然是容易管理的。

使用这种方法,月食RDF4J (以前称为OpenRDF Sesame)是一个很好的使用框架。它是开源的(),平台无关(Java),支持Turtle以及syntax和TriG语法(以及大多数其他的RDF语法格式),以及完整的SPARQL1.1支持以及一个综合Java。它自己的数据库可以处理多达1亿条语句,如果您想要扩展到更高的范围,就会有大量可伸缩的RDF数据库供应商,它们完全兼容RDF4J(这样您就可以切换数据库实现,而不必更改代码)。

票数 1
EN
页面原文内容由Software Recommendation提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwarerecs.stackexchange.com/questions/30604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档