9

結果を作成日で並べ替える方法はありますか?

sortetでなければならないクエリの例:

SELECT * WHERE {?s ?p ?o} limit 200
4

2 に答える 2

21

SQLの場合と同じように、 orderby句を使用できます。SPARQL仕様によると、クエリにORDER BYのみ適用されることに注意してください。SELECT注文に使用するプロパティのバインディングを作成する必要があります。

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
于 2009-07-20T16:50:34.540 に答える
4

実際に作成日をRDFに保存しないと言ったので、これを行うための可能なメカニズムは、使用していたSPARQL実装とバッキングRDFストアなどに固有のものになります。それは不可能である可能性が非常に高いです。

于 2009-07-21T12:32:14.910 に答える