私はここ数時間グーグルで、virtuosoサーバー(オープンソースバージョン)を使用してRDFストアを構成する方法についてのチュートリアルまたはガイドを探してきました。
Protégéソフトウェアで作成されたRDFファイルがあります。このファイルをvirtuosoサーバーに追加し、Jenaまたはその種の他のAPIを介してデータを挿入/更新またはクエリできるようにエンドポイントを構成するにはどうすればよいですか。
これを行う最も簡単な方法は、このドキュメントページ のポイント(16.8.3)で説明することですHTTP PUT using Content-Type: application/rdf+xml
。このメカニズムは基本的に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ボックスを実行している場合は、ここcurl
からインストールできます。
後でデータをクエリするには...を使用してクエリを実行することもできますcurl
。
curl -F "query=YOUR SPARQL QUERY" http://your.virtuososerver.org/sparql
データにアクセスするには、SPARQLを使用する必要があることに注意してください。
Jenaの場合、コマンドラインでJenaARQを使用する必要があります...
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サーバーがリッスンしている場所にポイントすることを忘れないでください。
Virtuoso Conductor(http:cname:8890 / Conductor)から、「RDF-> RDFストアのアップロード」タブに移動して、ファイルシステムまたはURLの場所からRDFデータセットファイルをアップロードできます。
Virtuoso Jenaプロバイダーは、JenaFraneworkを使用してVirtuosoQuadStoreにクエリを実行するために使用できます。