[英]Trying to run a sparql query on quads+triples files, getting error: com.bigdata.rdf.sparql.ast.QuadsOperationInTriplesModeException
我正在使用 Blazegraph 数据库运行一个非常简单的查询。 对于我的数据集,我有 .ttl 和 .nq 文件。 我正在使用 Blazegraph 的批量数据加载器加载文件。 这是我的查询:
SELECT DISTINCT ?g
WHERE {
GRAPH ?g { ?s ?p ?o }
}
我期望不同图形名称的 output。 但是,这是我收到的错误:
java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.bigdata.rdf.sparql.ast.QuadsOperationInTriplesModeException: Use of WITH and GRAPH constructs in query body is not supported in triples mode.
在我的 RWStore.properties 中,这里有两个主要的设置标志(还有更多,但这些是相关的):
com.bigdata.rdf.sail.truthMaintenance=false
com.bigdata.rdf.store.AbstractTripleStore.quads=true
这就是我加载文件并运行 jar 的方式:
java -Xmx4g -cp /pathto/blazegraph.jar com.bigdata.rdf.store.DataLoader -verbose -namespace kb /pathto/RWStore.properties /pathto/data
java -server -Xmx4g -jar -Djetty.host=0.0.0.0 /pathto/blazegraph.jar
另外,这里有一点需要注意:当我通过 python (sparql.SPARQLServer.update(file)) 手动加载文件时,我能够运行相同的查询。 那我没有得到这个错误。
有人可以帮我解决这个错误吗? 我无法在任何地方找到任何解决方案!
我找到了解决办法。 问题是因为 BulkDataLoader 加载的文件格式不同,三元组没有命名图而四元组有,所以在查询时。 有一个不匹配,这是我的问题中的错误。 当您手动上传文件(通过工作台或 python)时,情况并非如此。
这些是我所做的更改:
四边形.properties:
com.bigdata.rdf.store.AbstractTripleStore.quads=true
com.bigdata.rdf.store.AbstractTripleStore.statementIdentifiers=false
三元组.properties:
com.bigdata.rdf.store.AbstractTripleStore.quads=false
com.bigdata.rdf.store.AbstractTripleStore.statementIdentifiers=false
对于.nq 文件:
java -Xmx4g -cp /pathto/blazegraph.jar com.bigdata.rdf.store.DataLoader -verbose -namespace kb /pathto/quads.properties /pathto/data
对于.ttl 文件:
java -Xmx4g -cp /pathto/blazegraph.jar com.bigdata.rdf.store.DataLoader -verbose -defaultGraph http://ex.org -namespace kb /pathto/triples.properties /pathto/data
加载文件后启动 Blazegraph:
java -server -Xmx4g -jar -Djetty.host=0.0.0.0 /pathto/blazegraph.jar
希望这可以帮助其他面临类似问题的人!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.