我需要一个4列(主语、谓词、对象、谓词-权重)图数据库,我可以将.ttl文件导入到其中。
我使用Virtuoso到目前为止,但它不支持标签/加权边。
另一个选择是Neo4j,但它不支持RDF三元组(这些三元组需要在上传之前转换为CSV格式)。
这是一个简单的要求,但除了R2DF之外,我找不到任何东西,但是AFAIK是不可用的,或者仍然只是一个概念。
.ttl中的一个示例行:
<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 .发布于 2016-10-06 23:27:17
您的Turtle示例实际上在语法上是无效的,因为Turtle是一种“只使用三元组”的格式,因此您将找不到任何可以解析/处理该格式的工具。加权边的概念使您超出了RDF标准的范围,这就是为什么您不会发现许多RDF工具为它提供了明确的支持。
但是,如果您愿意稍微修改您的数据,那么您可以使用大多数标准的RDF工具实现您想要的结果。在本例中,我将使用RDF4J。
要建模边权值,可以使用“命名图”的概念--在RDF4J中,这是通过使用四元而不是三元组来支持的。例如,使用N-四作为格式(非常类似于Turtle/needed,但允许所需的额外命名图形信息),您的示例如下所示:
<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(这样您就可以切换数据库实现,而不必更改代码)。
https://softwarerecs.stackexchange.com/questions/30604
复制相似问题