2

对于一个项目,我必须将 Apache Jena 与 Blazegraph 结合使用作为三重存储。但是我在使用 RDFConnection 将 Jena 连接到 Blazegraph 时遇到问题。

RDFConnection conn = RDFConnectionFactory.connect(...)
conn.load("data.ttl") ;
QueryExecution qExec = conn.query("SELECT DISTINCT ?s { ?s ?p ?o }") ;
ResultSet rs = qExec.execSelect() ;
while(rs.hasNext()) {
    QuerySolution qs = rs.next() ;
    Resource subject = qs.getResource("s") ;
    System.out.println("Subject: "+subject) ;
}
qExec.close() ;
conn.close() ;

Blazegraph 及其 Web 界面正在运行。这是命令行输出。

欢迎来到 Blazegraph(tm) 数据库。

转到http://192.168.222.1:9999/blazegraph/开始。警告:MapgraphServletProxy.java:67:在没有 GPU 加速的情况下运行。请参阅 > https://www.blazegraph.com/product/gpu-accelerated/

我已经阅读了https://github.com/apache/jena/tree/master/jena-rdfconnection/src/main/java/org/apache/jena/rdfconnection/examples上的示例

RDFConnection conn = RDFConnectionFactory.connect("http://192.168.222.1:9999/blazegraph/");
conn.load("d:\\data.ttl") ;

导致:

线程“主”org.apache.jena.atlas.web.HttpException 中的异常:404 - 未找到

在 conn.load("d:\data.ttl") ;

使用“ http://192.168.222.1:9999 ”作为目的地会导致相同的异常。

使用“ http://192.168.222.1/blazegraph ”或“ http://192.168.222.1

导致:

线程“主”org.apache.jena.atlas.web.HttpException 中的异常:org.apache.http.conn.HttpHostConnectException:连接到 192.168.222.1:80 [/192.168.222.1] 失败:连接被拒绝:连接

在 conn.load("data.ttl") ;还。

你能帮我找到正确的连接方式吗?

4

1 回答 1

2

解决问题的一种方法

String APIUrl = "http://192.168.222.1:9999/bigdata/sparql";
RDFConnection conn = RDFConnectionFactory.connect(APIUrl,APIUrl,APIUrl);

https://jena.apache.org/documentation/javadoc/rdfconnection/org/apache/jena/rdfconnection/RDFConnectionFactory.html#connect-java.lang.String-java.lang.String-java.lang.String-

于 2018-01-19T18:28:46.630 回答