为什么我会得到;超出总承包商间接费用限额;当我使用;arq“;查询本地rdf文件的步骤

为什么我会得到;超出总承包商间接费用限额;当我使用;arq“;查询本地rdf文件的步骤,rdf,sparql,freebase,Rdf,Sparql,Freebase,我正在使用以查询本地RDF文件。我正在使用的命令如下所示: ./arq --data /home/datasets/a-m-00027.nt --results CSV --query myQuery.sparql myQuery.sparql包含以下查询: PREFIX basekb:<http://rdf.basekb.com/ns/> PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT

我正在使用以查询本地RDF文件。我正在使用的命令如下所示:

./arq --data /home/datasets/a-m-00027.nt --results CSV --query myQuery.sparql

myQuery.sparql
包含以下查询:

PREFIX basekb:<http://rdf.basekb.com/ns/>
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SELECT ?x
FROM  </home/data/a-m-00027.nt>
WHERE {?x rdf:type basekb:music.release} 
LIMIT 10

实例



整个文件是否已加载到内存中?

因为内存不足,因为异常会告诉您:

java.lang.OutOfMemoryError: GC overhead limit exceeded
很可能您实际上没有内存不足,但默认情况下,JVM设置不会超过一定的内存量。如“尝试运行”中所述

JVM_ARGS="-Xmx4096M" ./arq --data /home/datasets/a-m-00027.nt --results CSV --query myQuery.sparql

因为您的内存不足,异常会告诉您:

java.lang.OutOfMemoryError: GC overhead limit exceeded
很可能您实际上没有内存不足,但默认情况下,JVM设置不会超过一定的内存量。如“尝试运行”中所述

JVM_ARGS="-Xmx4096M" ./arq --data /home/datasets/a-m-00027.nt --results CSV --query myQuery.sparql
是否将整个文件加载到内存中

没错,这是你的问题。正如前面所说的那样,您可能能够碰撞java堆并使其适合

但作为替代方案,或者对于内存不足的情况,请尝试使用TDB存储和索引文件,然后查询:

$ tdbloader --loc my_tdb_store /home/datasets/a-m-00027.nt
$ tdbquery --loc my_tdb_store --results CSV --query myQuery.sparql
(您可以在完成后删除该存储,它只是一个名为
my\u tdb\u store
)的目录)

作为第三种选择,您可以完全跳过sparql。您的查询只找到类型为
basekb:music.release
的前十项内容,如下所示:

$ riot /home/datasets/a-m-00027.nt | \
  grep '<http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://rdf.basekb.com/ns/music.release> .' | \
  cut -d ' ' -f 1 | \
  head -10
$riot/home/datasets/a-m-00027.nt|\
格雷普'。|\
切割-d'-f 1|\
总目-10
它使用最少的内存

是否将整个文件加载到内存中

没错,这是你的问题。正如前面所说的那样,您可能能够碰撞java堆并使其适合

但作为替代方案,或者对于内存不足的情况,请尝试使用TDB存储和索引文件,然后查询:

$ tdbloader --loc my_tdb_store /home/datasets/a-m-00027.nt
$ tdbquery --loc my_tdb_store --results CSV --query myQuery.sparql
(您可以在完成后删除该存储,它只是一个名为
my\u tdb\u store
)的目录)

作为第三种选择,您可以完全跳过sparql。您的查询只找到类型为
basekb:music.release
的前十项内容,如下所示:

$ riot /home/datasets/a-m-00027.nt | \
  grep '<http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://rdf.basekb.com/ns/music.release> .' | \
  cut -d ' ' -f 1 | \
  head -10
$riot/home/datasets/a-m-00027.nt|\
格雷普'。|\
切割-d'-f 1|\
总目-10

它使用的内存最少。

我遇到以下错误:*无法识别的选项:--Xmx4G错误:无法创建Java虚拟机。错误:发生致命异常。程序将退出**抱歉,请尝试使用--Xmx4096M代替标题更新答案,因为似乎不支持后缀G。我认为它应该是JVM_ARGS='-Xmx4096M'。我做了以下操作:$export JVM_ARGS='-Xmx4096M'$./arq--data/home/datasets/a-m-00027.nt--results CSV--query myQuery.sparql它正在运行等待结果lol let me seeLet us。我得到了以下错误:*无法识别的选项:--Xmx4G错误:无法创建Java虚拟机。错误:发生致命异常。程序将退出**抱歉,请尝试使用--Xmx4096M代替标题更新答案,因为似乎不支持后缀G。我认为它应该是JVM_ARGS='-Xmx4096M'。我做了以下操作:$export JVM_ARGS='-Xmx4096M'$./arq--data/home/datasets/a-m-00027.nt--results CSV--query myQuery.sparql它正在运行等待结果lol让我看看我们。