最简单的方法可能是在documentation pageHTTP PUT using Content-Type: application/rdf+xml 的第 (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 @987654322@ -u user:pass
注意:如果您运行的是 Windows 机器,则可以从 here 安装 curl。
之后要查询数据...您也可以使用curl 进行查询。
curl -F "query=YOUR SPARQL QUERY" @987654324@
请注意,您必须使用 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();
}
}
请记住将变量 service 指向您的 virtuoso 服务器正在侦听的位置。