0

EDIT:この質問をより具体的にする。任意のツールを使用してLinux上でローカルの.ttlファイルに対してsparqlクエリを実行する "hello world"の例を提供してください。CLIツールala csvsql for SPARQLおよびTTL、n3、... files - 教育目的のHello Worldの例

csvsqlは、.csvファイルをSQL経由で直接(つまり、インポートせずに)クエリできます。例えば:

$ csvsql --query "select m.usda_id, avg(i.sepal_length) as 
mean_sepal_length from iris as i join irismeta as m on (i.species = 
m.species) group by m.species" examples/iris.csv examples/irismeta.csv 
私は SPARQL Turtle .ttlオーバーまたは他の典型的なRDFファイルを照会する同様の能力を持っているのが大好きだ

SPARQLとTurtleまたは同様のファイルに対して同様の「一回限りの」「直接クエリ」機能を実現するにはどうすればよいですか? (例:blazegraphインスタンスを実行して、指定されたファイルをメモリにロードし、クエリ結果を返してメモリ内の内容を取り消す小さなスクリプト、またはRasqal/RedlandまたはNeo4jまたはany other SPARQL implementationこのようなツールは、データをトリプルに格納し、完全なサーバーを起動することなくクエリを実行することを好む趣味愛好家や愛好家に最適です。教育目的にも非常に有益です。

スニペットに裏打ちされた具体例を示して、これを行う方法を示してもらえますか? (Linux上でローカル)

+0

ApacheのイエナやRDF4Jは、CLIを持っている。ここ

data.ttlファイルの例です。 – AKSW

答えて

1

Rasqalのコマンドラインクエリツールroqetはこれを行います。 http://librdf.org/rasqal/roqet.htmlを参照してください。

またはオンラインhttp://triplr.org/query

それが動作し、パッケージ方法の例と編集:

Rasqal例パッケージ:

はさんは "こんにちは世界" を実行してみましょうクエリ:https://wiki.blazegraph.com/wiki/index.php/Quick_Startチュートリアル。

PREFIX : <http://blazegraph.com/> 
PREFIX schema: <http://schema.org/> 

:systap a schema:Organization ; 
     schema:owns :blazegraph . 
:blazegraph a schema:Product ; 
      schema:brand :systap; 
      :productOf <http://systap.com/>; 
      :implements <http://rdf4j.org>,<http://blueprints.tinkerpop.com> . 

そして、例の "Hello World" SPARQLクエリ:

$ roqet -i sparql -e 'SELECT * WHERE { <http://blazegraph.com/blazegraph> ?p ?o }' -D data.ttl 
roqet: Running query 'SELECT * WHERE { <http://blazegraph.com/blazegraph> ?p ?o }' 
roqet: Query has a variable bindings result 
row: [p=uri<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>, o=uri<http://schema.org/Product>] 
row: [p=uri<http://schema.org/brand>, o=uri<http://blazegraph.com/systap>] 
row: [p=uri<http://blazegraph.com/productOf>, o=uri<http://systap.com/>] 
row: [p=uri<http://blazegraph.com/implements>, o=uri<http://rdf4j.org>] 
row: [p=uri<http://blazegraph.com/implements>, o=uri<http://blueprints.tinkerpop.com>] 
roqet: Query returned 5 results 

またはそれ以上の一般的な

$ roqet -i sparql -e 'SELECT * WHERE { ?s ?p ?o }' -D data.ttl | xsel -b 
roqet: Running query 'SELECT * WHERE { ?s ?p ?o }' 
roqet: Query has a variable bindings result 
row: [s=uri<http://blazegraph.com/systap>, p=uri<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>, o=uri<http://schema.org/Organization>] 
row: [s=uri<http://blazegraph.com/systap>, p=uri<http://schema.org/owns>, o=uri<http://blazegraph.com/blazegraph>] 
row: [s=uri<http://blazegraph.com/blazegraph>, p=uri<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>, o=uri<http://schema.org/Product>] 
row: [s=uri<http://blazegraph.com/blazegraph>, p=uri<http://schema.org/brand>, o=uri<http://blazegraph.com/systap>] 
row: [s=uri<http://blazegraph.com/blazegraph>, p=uri<http://blazegraph.com/productOf>, o=uri<http://systap.com/>] 
row: [s=uri<http://blazegraph.com/blazegraph>, p=uri<http://blazegraph.com/implements>, o=uri<http://rdf4j.org>] 
row: [s=uri<http://blazegraph.com/blazegraph>, p=uri<http://blazegraph.com/implements>, o=uri<http://blueprints.tinkerpop.com>] 
roqet: Query returned 7 results 
+0

編集していただきありがとうございます。私はhttps://www.dajobe.org/talks/201003-semweb-sxsw/を行った話にコマンドラインの例があります。例えば、 '-r csv'でCSV結果を生成する – dajobe

1

特定のApache Jenaコマンドはsparqlです。

コマンドは、http://apache.org/dist/jena/binaries/からバイナリ形式でダウンロードされます。解凍し、コマンドラインから実行するスクリプトのディレクトリはbin/bat/です。

+0

私はApache Jenaのドキュメントでそれを見つけようとしました。私は、ARQコマンドラインユーティリティ(https://jena.apache.org/documentation/query/cmds.html)のみを見つけました。あなたが説明するsthのようには見えません。ドキュメント内の関連するポイントにリンクすることはできますか? –

+0

私は何かを持っています。それはあなたが意味するものですか?https://jena.apache.org/tutorials/sparql_query1.html? –

+0

私はJavaの専門家ではありません。 'apache-jena-3.1.1 $ ./bin/sparql --help エラー:メインクラスを見つけられないか読み込めませんでしたvsoon.apache-jena.apache-jena-3.1.1.jena -log4j.properties' –