问题标签 [arq]
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.
java - Jena ARQ/TDB 查询优化
我有一个相当小的图表,其中包含大约 500k 三元组。我还生成了 stats.opt 文件并在相当快的计算机(四核、16gb 内存、ssd 驱动器)上运行我的代码。但是对于我在 OP 接口的帮助下构建的查询,它需要永远遍历结果集。结果集大约有15000行,迭代需要4s,这对于最终用户来说是无法接受的。执行查询只需要 90 毫秒(我猜真正的工作是由游标迭代完成的?)。为什么这么慢,我该怎么做才能加快结果集迭代?
这是查询:
(有没有更好的方法来查询这些 bnode:?hasNearbyPark,?hasNearbySupermarket)
以及执行查询的代码:
sparql - tbloader vs SPARQL INSERT - 为什么命名图的行为不同?
ARQ、TDB 和 Named Graphs 的命令行工具的连接有一个奇怪的行为。如果在命名图中通过 tdbloader 导入数据,则无法通过 SPARQL SELECT 查询中的 GRAPH 子句进行查询。但是,当使用 SPARQL INSERT 在同一个图中插入数据时,可以进行此查询。
我有以下汇编器描述文件tdb.ttl:
文件data.ttl中有一个数据集:
现在,我使用 tdbloader 插入这些数据,然后使用 SPARQL INSERT 插入另一个三元组,两者都在命名的图形数据中:
现在,可以通过以下方式使用 SPARQL 查询数据:
一切似乎都很完美。但现在我只想查询这个名为 graph data的特定名称:
为什么从 tdbloader 导入的数据丢失了?这个查询有什么问题?如何从两个导入中获取结果?
osx-mavericks - 为 arq jena 设置 .zshrc
我正在尝试将我的 .zshrc 文件设置为在 mac(mavericks)上为 ARQ(jena)导出 ARQROOT,类似于http://jena.sourceforge.net/ARQ/Tutorial/query1.html for windows上显示的内容和linux
尝试了各种路径、引号和语法的组合,但似乎都不起作用。对与 export ARQROOT=$HOME/MyProjects/ARQ 等效的 mac/zsh 有什么想法吗?
非常感谢
jena - Virtuoso 和 Jena:大型 RDF 图加载问题
我有一个 .nt 格式的 200GB RDF 文件。我想在 Virtuoso 中加载它(使用 Virtuoso Open-Source Edition 6.1.6)。我从命令行使用 Virtuoso 批量加载程序,但运行几个小时后加载会挂起。您知道如何有效地将这个大文件加载到 Virtuoso 吗?我想快速加载它。
我还尝试从 Apache Jena 查询我的 200GB RDF 图。然而,运行 30 分钟后,它给了我一些与堆大小空间相关的错误。如果您对上述问题有任何解决方案,请告诉我。
rdf - 如何为重命名操作生成统一绑定
我有一个数据集,其中我试图用另一个人替换符合某些条件的个人。在提供的最小示例中,我希望x-data://old
用x-data://new
.
示例输入数据集:
所需输出数据集的示例:
我试图通过以下查询来做到这一点:
但是,此查询不会在图中插入任何三元组。它确实删除了人们期望的所有三元组。根据 Jena Dev 列表上的 Andy Seaborne 的说法(当我错误地将其标记为错误时):
?new 此时不在范围内 - 它不会从更高的子查询流入。从逻辑上讲,每个块都是独立执行的,结果组合成树。{SELECT} 被执行,UNION 被单独执行,然后结果被加入。
因此 ?ns 没有定义,因此“?ns ?np ?no”上的 INSERT 不是合法的三元组,因此被跳过(参见 CONSTRUCT)。
尝试将 WHERE 部分作为 SELECT * 查询执行以查看更多信息。
这是有道理的,执行建议的 SELECT 查询是说明性的:
鉴于此,我想重组上面的查询以提供所需的替换转换。尽管这听起来像是一个常见的用例,但我还没有成功找到用于替换操作的现有查询。
编辑 2014 年 7 月 11 日
This Answer to the same question几乎可以满足这一点,但需要重组为DELETE
-INSERT
查询的形式。
rdf - 无法使用 SPARQL 为层次结构添加前缀
我需要在我的 URL 中表示一个层次结构,如下所示:
我想定义前缀并在 SPARQL 查询中使用它们,如下所示:
这将在 ARQ 中失败,并出现以下错误:
我应该能够像这样在我的 URL 中表示层次结构,还是 SPARQL 和 PREFIX 的使用仅限于一个级别?
rdf - 在 SPARQL 中使用绑定变量来引用 GRAPH
我之前使用过来自三重模式的 Uri 绑定变量作为 GRAPH 参数,但是当我使用下面显示的 BIND/URI/CONCAT 的结果时,它的行为不符合预期:它不匹配任何已知的图。我检查了 ?graph 变量是否解析为预期的 Graph Uri。如果该模式应该起作用,是否存在我忽略的变量范围问题?
示例 nQuads
java - 转义 SPARQL 查询中的特殊字符
我正在尝试使用 Jena 和 ARQ 查询 dpbedia 以获取一些维基百科文章的类别
例如:
这是一个工作查询
SPARQL 结果的示例
问题是当 ARTICLE_NAME 中有特殊字符时,例如“Parma_F.C.”,其中有“.”。
所以,我想问你是否有人对此有解决方案。
提前致谢
java - 在同一个 JENA 应用程序中处理多个 OWL 文件
我正在制作一个可能需要大约 2-3 个 OWL 文件才能使用的应用程序,以便为同一应用程序提供不同的任务。我使用 Jena 作为我的语义网络框架。我的问题是:我们如何组织/设置这些 owl 文件?我应该读取同一数据集中的所有猫头鹰文件,还是应该为不同的猫头鹰维护不同的数据集。注意:我不考虑进口猫头鹰,因为它是由耶拿自己处理的。
如果我使用相同的数据集,我如何区分 OntModel.lisRootHierarchyClasses() 等函数获得的结果;和其他此类功能。当我将本体读入 OntModel 时,是否可以命名本体。
因此想知道在同一个应用程序中处理多个 OWL 文件的最佳实践
例如:我将我的本体读入由 TDB 数据集支持的 ontModel:
一旦 ontmodel
准备就绪,用户输入会在任何 owl 文件中指定一个特定的类(例如:SourceOWL2_ClassA),我还需要处理它的对象属性和数据类型属性,并在相同的上下文中为用户提供一些信息。
但为了做到这一点,来自 SourceOWL1 的属性也会被列出,因此会导致错误。此外,SourceOWL1 和 SourceOWL2 的结构非常不同,其中 SourceOWL1 包含大约 3 个导入,而 SourceOWL2 不包含。
java - ARQ 是否支持 SPARQL 1.1 日期和时间函数?
我一直在尝试对日期/时间值进行一些格式化,以使它们在结果中显示为字符串文字。我正在使用来自 apache-jena-2.11.0 的 Jena ARQ。
ARQ 将日期时间报告为
这是该属性在 RDF 中作为 TTL 的外观:
这是通过以下使用 Jena API 创建的:
也许我使用错误的API?