2011-01-28 19 views

答えて

6

年齢の述語を指定してorder by descを入力し、最初に取得するのはlimitにするだけです。

PREFIX ns: <http://namespace.org/ontology/> 
SELECT ?s ?age 
WHERE { ?s ns:age ?age } 
ORDER BY DESC(?age) LIMIT 1 

SPARQL、1.1の次のバージョンではSPARQL hereorder byのセマンティクス

を参照してください、それはすでにあなたは、機能集約を使用して行うことができますいくつかのシステムでサポートされています。..

SELECT max(?age) as ?maxage 
WHERE { ?s ns:age ?age } 

現在、すべてのトリプルストアではサポートされていません。あなたのデータは、いくつかの無効な/危険な値を持っている場合、整数にキャストする値を強制的にxsd:integerを使用する必要がありマヌエルのクエリに加えて

+0

おかげで、私は期待していたがありましたより一般的なクエリの結果を限定するよりも良い方法ですが、1.1まで待たなければなりません。そのために: – Alb

5

PREFIX ns: <http://namespace.org/ontology/> 
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
SELECT ?s ?age 
WHERE { ?s ns:age ?age } 
ORDER BY DESC(xsd:integer(?age)) LIMIT 1 

データによっては、これを追加する必要があります彼の2番目のSPARQL 1.1クエリにも反映されます。

+0

はい、良い点。 (+1) –

3

msalvadores'答えは良いですが、しかし、SPARQL 1.1クエリの小さなタイプミスがあると、それは次のようになります。

SELECT (MAX(?age) AS ?maxage) 
WHERE { ?s ns:age ?age } 

(ASラウンド行方不明括弧)

+0

訂正ありがとう! –

関連する問題