例クエリでは、WHERE
句の最初の5つのトリプルパターンは、結果を特定の結果に結び付けます。これらを削除するか、または#
をコメントアウトし、あなたが選択したSPARQLエンドポイントに知られているすべてのアドレスのリストを取得します:
prefix ...
SELECT ?item ?ppd_propertyAddress ?ppd_hasTransaction ?ppd_pricePaid ? ppd_transactionCategory ?ppd_transactionDate ?ppd_transactionId ?ppd_estateType ?ppd_newBuild ?ppd_propertyAddressCounty ?ppd_propertyAddressDistrict ?ppd_propertyAddressLocality ?ppd_propertyAddressPaon ?ppd_propertyAddressPostcode ?ppd_propertyAddressSaon ?ppd_propertyAddressStreet ?ppd_propertyAddressTown ?ppd_propertyType ?ppd_recordStatus
WHERE
{ #?ppd_propertyAddress text:query _:b0 .
#_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "paon: (12) AND street: (PATTINSON AND DRIVE)" .
#_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b1 .
#_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> 3000000 .
#_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
?item ppd:propertyAddress ?ppd_propertyAddress .
?item ppd:hasTransaction ?ppd_hasTransaction .
?item ppd:pricePaid ?ppd_pricePaid .
?item ppd:transactionCategory ?ppd_transactionCategory .
?item ppd:transactionDate ?ppd_transactionDate .
?item ppd:transactionId ?ppd_transactionId
OPTIONAL
{ ?item ppd:estateType ?ppd_estateType }
OPTIONAL
{ ?item ppd:newBuild ?ppd_newBuild }
OPTIONAL
{ ?ppd_propertyAddress lrcommon:county ?ppd_propertyAddressCounty }
OPTIONAL
{ ?ppd_propertyAddress lrcommon:district ?ppd_propertyAddressDistrict }
OPTIONAL
{ ?ppd_propertyAddress lrcommon:locality ?ppd_propertyAddressLocality }
OPTIONAL
{ ?ppd_propertyAddress lrcommon:paon ?ppd_propertyAddressPaon }
OPTIONAL
{ ?ppd_propertyAddress lrcommon:postcode ?ppd_propertyAddressPostcode }
OPTIONAL
{ ?ppd_propertyAddress lrcommon:saon ?ppd_propertyAddressSaon }
OPTIONAL
{ ?ppd_propertyAddress lrcommon:street ?ppd_propertyAddressStreet }
OPTIONAL
{ ?ppd_propertyAddress lrcommon:town ?ppd_propertyAddressTown }
OPTIONAL
{ ?item ppd:propertyType ?ppd_propertyType }
OPTIONAL
{ ?item ppd:recordStatus ?ppd_recordStatus }
}
LIMIT 100
2番目の質問は不明で、おそらく上記で解決しているのですか?私。複数のクエリを提出する必要はありません。
特定のアドレスリストを照会する場合は、SPARQL VALUES
式を使用できます(VALUES: Providing inline dataを参照)。 VALUES
はVALUES
句の中括弧の間に、リスト内の各文字列に?addr
を結合すること
SELECT *
WHERE {
VALUES ?addr {"address1" "paon: (12) AND street: (PATTINSON AND DRIVE)" ...}
?ppd_propertyAddress text:query _:b0 .
_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> ?addr .
?item ppd:propertyAddress ?ppd_propertyAddress .
...
}
注: - 出発点は(あなたがデータに対して、これをチェックする必要があると思います唯一の検査で)以下のかもしれません。元のクエリのアドレスの代わりに?addr
がトリプルパターンで使用されます。
「WHERE句の最初の5つのトリプルパターン」という意味の行はありません。コメントを付けた例を提供できますか?また、 'VALUES'式の実装を見るのも非常に便利です。明確にするために、私は現在CSVで持っている300のアドレスの結果を返す単一のクエリを提出したいと思います。 – jds7117
答えに追加されました。 'VALUES'には例があるリンクがあります。 – scotthenninger
私はそれを壊すことなくあなたのコードを実装することはできません。そして、 'VALUES'式を適切に実装して2つの別々のアドレスを照会する方法を知らない。 – jds7117