私は現在、センサーデータを扱うプロジェクトのためのオントロジを作成しています。 PythonでRDFLibを使ってRDFグラフを作成しました。そして、Jena TDBデータベースを使ってグラフを保存しました。今私はSPARQLを使用してデータベースを照会したいが、正直なところどこから始めるべきか分からない。例えばSPARQLでプレフィックス名を使ってRDFグラフをクエリ
私はすでに知って語彙を使用してメートルならば、私は単純に、このようなクエリの何かを実行することになると私は私が必要なものを取得しますフレンド(FOAF
)の友達に言うことができます:
SELECT ?name
WHERE {
?person foaf:name ?name .
}
しかし、以来、私は私の目的は、このクエリを実行し、すべてのデータが関係し得ることです異なるオントロジーを使用して(センサオントロジーを)私のRDFを作成しています:
dev
は、デバイス名です
SELECT * {?dev ?lon ?lat}
、lon
が経度でありますデバイスが配置されていて、lat
が緯度です。これらのデータはすべてグラフ内で提供されますが、まだクエリされるようには定義されていません。要約する
が可能RDFLibにラベルを割り当てることができます(... DEV、デバイス)、私はクラスのための接頭辞付きの名前を把握しようとしているというように、例えばクラスのデバイスは、で表すことができます解決策または質問をするための語彙を開発する必要がありますか?
一般に、照会しているデータセットを理解する必要があります。これはオントロジーに準拠しており、単にそのオントロジーの述語とクラスをクエリに使用します。たとえば、URI http:// something.org/sensor/hasLightnessValueで明度値を取得する述語があるとすると、あなたのデバイスの明度値はhttp://何かを得ることができます。?value'という接頭辞は、人間にとってクエリをより読みやすくするためのものです。 –
実際にオントロジーについて調べてデータセットを理解するために何かを知る必要はありません。 'LIMIT'を使って'?s?p?o'クエリを実行すると、どのデータが存在するかを見つけ出し、プロパティやクラスなどがどのように定義されて使用されているかを見つけるために、SPARQLを使用します。 – scotthenninger