SPARQL ограничивает результат запроса переменной вместо количества строк
Допустим, у меня есть следующий набор данных:
:a rdf:type :AClass
:a :hasName "a"^^xsd:string
:a :hasProperty :xa
:a :hasProperty :ya
:a :hasProperty :za
:b rdf:type :AClass
:b :hasName "b"^^xsd:string
:b :hasProperty :xb
:b :hasProperty :yb
:c rdf:type :AClass
:c :hasName "c"^^xsd:string
:c :hasProperty :xc
Я хочу запросить набор данных, чтобы вернуть мне все из экземпляра :AClass
, но только для двух случаев. Я знаю, что должен использовать LIMIT
ключевое слово, и я пробовал много запросов, но безуспешно.
Другими словами, я хочу вернуть это:
:a :hasName "a"^^xsd:string
:a :hasProperty :xa
:a :hasProperty :ya
:a :hasProperty :za
:b :hasName "b"^^xsd:string
:b :hasProperty :xb
:b :hasProperty :yb
Как я могу ограничить результат числом 2 экземпляра, а НЕ числом 2 строк?
1 ответ
Используйте подзапрос, чтобы выбрать две вещи, а затем получить остальные данные во внешнем запросе. Это всегда помогает показать легальные рабочие данные, которые мы можем проверить. Данные, которые вы показали, на самом деле не являются допустимыми RDF (так как в них отсутствуют некоторые периоды в концах строк), но мы можем легко создать рабочий пример. Вот рабочие данные, запрос и результаты:
@prefix : <urn:ex:>
:a a :AClass .
:a :hasName "a" .
:a :hasProperty :xa .
:a :hasProperty :ya .
:a :hasProperty :za .
:b a :AClass .
:b :hasName "b" .
:b :hasProperty :xb .
:b :hasProperty :yb .
:c a :AClass .
:c :hasName "c" .
:c :hasProperty :xc .
prefix : <urn:ex:>
select ?s ?p ?o {
#-- first, select two instance of :AClass
{ select ?s { ?s a :AClass } limit 2 }
#-- then, select all the triples of
#-- which they are subjects
?s ?p ?o
}
--------------------------------------------------------------------
| s | p | o |
====================================================================
| :a | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | :AClass |
| :a | :hasName | "a" |
| :a | :hasProperty | :xa |
| :a | :hasProperty | :ya |
| :a | :hasProperty | :za |
| :b | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | :AClass |
| :b | :hasName | "b" |
| :b | :hasProperty | :xb |
| :b | :hasProperty | :yb |
--------------------------------------------------------------------