2009-07-20 5 views

答えて

13

あなただけがSQLにすることができます好きorder by句を使用することができます。 SPARQL仕様ではORDER BYSELECTのクエリにのみ適用されます。順序付けに使用するプロパティのバインドを作成する必要があります。

SELECT ?s ?p ?o 
WHERE {?s ?p ?o . 
     ?s <creationDatePredicate> ?date . } 
ORDER BY DESC(?date) 
LIMIT 200 

更新:すでに作成日を格納していない場合は、メタデータを自分で保存する必要があります。

  1. ストア各被験者の作成日を持って、あなたのデフォルトのグラフのトリプル:それを行うにはどのように行うのとおり、あなたはいくつかのオプションがあります。複数のグラフを格納している場合、これは非常に迅速に扱いにくくなり、おそらくあなたが望むものではありません。

  2. 各グラフをRDFトリプルストアに名前付きグラフとして保存します。その後、各グラフのメタデータを既定のグラフに保存するか、作成時に1つの "共有"名前付きグラフに保存することができます。

  3. 名前付きグラフにデータを保存し、名前付きグラフを使用して作成時のメタデータを保存します。

オプション#の例は、2のSPARQLクエリは次のようになります。

SELECT ?s ?p ?o 
WHERE { 
     GRAPH ?g { ?s ?p ?o . } 
     ?g <creationDatePredicate> ?date . } 
ORDER BY DESC(?date) 
LIMIT 200 
+0

このような述語はありません: – cupakob

+0

@Sirakov右、あなたのデータセットに適切な述語を記入する必要があります。 –

+0

つまり、データセットには日付を含むオブジェクトがありません。 。そのような述語はありません:) – cupakob

3

あなたが実際にこれを行うために、あなたのRDF内の任意の可能なメカニズムを作成日付を格納しないと述べてきましたので、使用していたSPARQL実装とバッキングRDFストアなどに固有のものでなければなりません。それはまったく可能でない可能性が非常に高いです。