我用谷歌搜索了几个小时,搜索有关如何使用virtuoso服务器(开源版本)配置RDF存储的教程或指南.
我有使用Protégé软件创建的RDF文件.如何将此文件添加到virtuoso服务器并配置端点,以便能够通过Jena或其他此类API插入/更新或查询数据.
解决方法:
最简单的方法可能是使用Content-Type:application / rdf xml解释这个documentation page HTTP PUT的点(16.8.3).此机制基本上运行HTTP PUT将文件发送到三元组存储.
curl -T your_file.rdf entity_uri_to_store_file -u user:pass
将entity_uri_to_store_file视为要保存该文件的表.
所以,假设您的文件是ontology1.owl,并且您希望将其保存在实体http://myorganisation.com/ontologies/ontology1中,那么您的命令就像…
curl -T ontology1.owl http://myorganisation.com/ontologies/ontology1 -u user:pass
注意:如果您运行的是Windows框,则可以从here安装curl.
要在之后查询数据……您也可以使用curl进行查询.
curl -F“query =你的SPARQL QUERY”http://your.virtuososerver.org/sparql
请注意,您必须使用SPARQL来访问数据.
在Jena的情况下,您必须使用Jena ARQ,通过命令行…
java -cp … arq.query –service’hhttp://your.virtuososerver.org/sparql”SELECT * WHERE {?s?p?o}’
或以编程方式使用API …
import com.hp.hpl.jena.query.QueryExecution;
import com.hp.hpl.jena.query.QueryExecutionFactory;
import com.hp.hpl.jena.sparql.engine.http.QueryExceptionHTTP;
public class QueryTest {
public static void main(String[] args) {
String service = "http://your.virtuososerver.org/sparql";
String query = "SELECT * WHERE {?s ?p ?o}";
QueryExecution qe = QueryExecutionFactory.sparqlService(service, query);
try {
ResultSet results = qe.execSelect() ;
for ( ; results.hasNext() ; ) {
QuerySolution soln = results.nextSolution() ;
RDFNode x = soln.get("s") ;
RDFNode r = soln.get("p") ;
RDFNode l = soln.get("o") ;
}
} catch (Exception e) {
System.out.println("Query error:"+e);
} finally {
qe.close();
}
}
只需记住将变量服务指向您的virtuoso服务器正在监听的位置.