问题标签 [triplestore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
173 浏览

performance - 三重存储写入性能和锁定

我见过很多专注于读取和查询性能的三元存储基准。但是,我正在考虑迁移到三重存储的应用程序具有非常动态的数据,我非常关心写入性能和锁定。

例如,我听说 Jena/TDB 只能用于一次写入、多次读取的锁定模型。这允许多个阅读器 SPARQL 查询可以同时运行。但是,当发生写入操作以创建/更新三元组时,在任何现有的正在运行的 SPARQL 查询完成之前,无法为写入操作提供服务。此外,在写入操作进行时,不会发生读取操作(在模型中的任何三元组上)。您可以想象一个批量数据复制操作会长时间阻塞任何 SPARQL 查询。

好吧,您可以想象这种锁定模型会对我的应用程序产生严重后果!

有没有人对这个级别的不同三联店进行过比较?

即使您可以评论自己正在使用的三联商店,这对我来说仍然非常有用。

0 投票
0 回答
710 浏览

triplestore - 如何将语义推理器集成到 Sesame 中?

我正在为 Sesame 中的TripleStore开发API。它有一个与 RDF 一起工作的推理器。

因为我也与OWL一起工作。所以我想添加另一个语义推理器,例如Pellet或 ITM ...

SAIL API 似乎支持可定制的推理,并且可以扩展到其他基于 RDF 的语言

有谁知道如何做到这一点?

0 投票
2 回答
14420 浏览

rdf - 基于“三重不存在”使用 sparql 进行选择

我需要一些帮助来从我的商店中选择合适的三元组......

我只想选择 type/1 而不是 type/2 的元素

使用 sparql 选择查询实现此目的的最佳方法是什么?

我正在寻找类似的东西:

谢谢,

:)

0 投票
1 回答
336 浏览

php - 最佳数据存储 - 三重存储/关系数据库/其他?

我正在 Apache 服务器上使用 PHP 构建 Web 应用程序。

该应用程序包含许多有关人员的可选数据。根据人员的类别(一个人可以属于多个类别),他们可以选择是否指定数据:家庭地址(街道、城市、国家/地区等 5 个字段)、工作地址(又是 5 个字段)、年龄、电话号码……当然,该应用程序也存储了一些额外的数据(创建、上次更新、用户名、密码、用户级别……)。

该应用程序的当前/过时版本在“用户”表中有 86 个字段,并且(取决于人员的类别)扩展了一个包含另外 23 个字段(1-1 关系)的附加表。

所有这些都存储在 Postgresql 数据库中。

我想知道这是否是处理此类数据的最佳方式。大多数记录有(很多)空字段,使数据库更大并且查询更慢。是否值得研究像三重商店这样的其他解决方案,还是我太担心它了,我应该只保留当前的设置吗?为网站的每个新目的只添加字段到表中似乎很奇怪并且感觉很尴尬。另一方面,我的印象是三合店还没有那么普遍。任何指示或建议如何解决这个问题?

我读过 Toby Segaran 和其他人的“Programming the semantic web”,但从那本书我得到的印象是三重存储和 RDF 的主要优势是通过网络交换信息(这不是我的应用程序的目标)

0 投票
1 回答
170 浏览

sql - 实现 Triplestore Atom

我正在尝试在 SQL 数据库上实现我自己的三重存储(是的,我知道那里已经完成了项目),并且我正在尝试确定实现符号“原子”的最佳方式。

在一个简单的设计中,我们可能会在 SQL 中实现一个三元存储,方法是创建一个“三元”表,其中包含三个 varchar 列,分别称为主题、谓词、对象。为了节省空间,我将创建一个“原子”表,它将存储在任何主题/谓词/宾语字段中使用的唯一文本,并将这些字段更改为链接回包含其文本的原子的外键。

但是,我看到了几种实现 Atom 表的方法。

  1. 将文本存储为 varchar。

    • 优点:易于索引和强制文本的唯一性。
    • 缺点:它不能存储任意大的文本。
  2. 将文本存储为文本 blob,以及在查询和强制唯一性时使用的文本哈希。

    • 优点:可以存储任意大的文本。
    • 缺点:稍微复杂一些。根据散列算法(md5、sha 等),可能会发生散列冲突,尽管很少见。

就性能、长期可靠性和存储任何类型数据的能力而言,哪种方法更好?如果我使用哈希,是否有关于冲突的有效担忧?即使冲突很少见,它也只需要发生一次就可以破坏三元存储。

0 投票
3 回答
12142 浏览

rdf - SPARQL 选择可选的语言

我有一些看起来像这样的三元组:

我想形成一个 sparql 查询,如果有的话,它会给我“非语言标签”和“法语标签”。

我试过这个,它不工作:

提前致谢!

0 投票
2 回答
1098 浏览

java - 关系数据库到三重存储

我正在尝试编写一个 java 程序来将 MySQL 表中的信息转换为三元组,以便稍后将它们导入三元组存储。是否可以在不创建辅助 RDF/XML文件的情况下这样做?如何?

0 投票
6 回答
4383 浏览

python - 如何像 Freebase 一样存储数据?

我承认这基本上是在本地服务器上使用 freebase 数据的重复问题?但我需要比那里已经给出的更详细的答案

我已经完全爱上了 Freebase。我现在想要的是创建一个非常简单的 Freebase 克隆,用于存储可能不属于 Freebase 本身但可以使用 Freebase 模式描述的内容。本质上,我想要的是一种简单而优雅的方式来存储像 Freebase 本身那样的数据,并且能够在 Python (CherryPy) Web 应用程序中轻松使用该数据。

MQL 参考指南的第 2 章指出:

Metaweb 基础的数据库与您可能熟悉的关系数据库根本不同。关系数据库以表格的形式存储数据,但Metaweb 数据库将数据存储为节点图和这些节点之间的关系

我猜这意味着我应该使用三重存储或图形数据库,例如 Neo4j?这里有没有人有使用 Python 环境中的其中一个的经验?

(到目前为止,我实际上尝试的是创建一个能够轻松存储 Freebase 主题的关系数据库模式,但我在配置 SQLAlchemy 中的映射时遇到了问题)。

我正在调查的事情

更新 [28/12/2011]:

我在 Freebase 博客上发现了一篇文章,描述了 Freebase 自己使用的专有元组存储/数据库(图表):http ://blog.freebase.com/2008/04/09/a-brief-tour-of-graphd/

0 投票
1 回答
340 浏览

rdf - SPARQL DELETE 查询错误:解析时出现 EOF

我正在尝试使用此查询删除一些三元组:

deleteQuery = """DELETE { ?a ?b ?c } WHERE { mynamespace:List mynamespace:Item ?c. ?a ?b ?c }"""

我的命名空间已经定义,所以这不是问题。我不确定我是否使用了正确的查询语法。当我发出查询时,我收到此错误:

400 EOF while parsing. Expected terminals: (prefix describe sum correlation select average modify insert median load ask construct clear count stats delete). Traceback (most recent call last): File "<stdin>", line 1, in <module> File "triple_store_methods_v2.py", line 40, in query myResults = myTupleQuery.evaluate() File "/usr/local/agraph-fse-3.3/python/franz/openrdf/query/query.py", line 358, in evaluate response = self.evaluate_generic_query() File "/usr/local/agraph-fse-3.3/python/franz/openrdf/query/query.py", line 239, in evaluate_generic_query checkVariables=self.checkVariables, accept=accept) File "/usr/local/agraph-fse-3.3/python/franz/miniclient/repository.py", line 80, in evalSparqlQuery accept=accept) File "/usr/local/agraph-fse-3.3/python/franz/miniclient/request.py", line 114, in jsonRequest else: raise RequestError(status, body) franz.miniclient.request.RequestError: Server returned 400: EOF while parsing. Expected terminals: (prefix describe sum correlation select average modify insert median load ask construct clear count stats delete).

我不明白我做错了什么。顺便说一句,我正在使用 AllegroGraph 3.3。

0 投票
1 回答
443 浏览

python - TripleStore - 没有这样的模块

我已经在 python 中安装了 rdflib,当我这样做时它是 3.2 版:

import rdflib
print rdflib.__ version__
3.2.0
from rdflib.TripleStore import TripleStore
Traceback(最近一次调用最后):文件“”,第 1 行,在 ImportError:没有名为 TripleStore 的模块

请有人帮我解决这个问题。:)