다음 DBpedia 쿼리에서 UNION을 단일 패턴으로 통합하는 방법이 있습니까?SPARQL 엔티티는 select 쿼리 내부에 목록을 표시합니다.
PREFIX prop: <http://resedia.org/ontology/>
PREFIX res: <http://resedia.org/resource/>
SELECT DISTINCT ?language ?label
WHERE {
{res:Spain prop:language ?language}
UNION
{res:France prop:language ?language}
UNION
{res:Italy prop:language ?language}
?language rdfs:label ?label .
FILTER langMatches(lang(?label), "en")
}
SPARQL spec는 RDF 컬렉션에 대해 뭔가를 언급하지만 난 정말 그것을 설명하는 무엇을 이해하지 않습니다. 다음 구문이 작동해야하는 것처럼 보였지만 그렇게하지는 않았습니다.
PREFIX prop: <http://resedia.org/ontology/>
PREFIX res: <http://resedia.org/resource/>
SELECT DISTINCT ?language ?label
WHERE {
(res:Spain res:France res:Italy) prop:language ?language
?language rdfs:label ?label .
FILTER langMatches(lang(?label), "en")
}
SELECT 쿼리 내에서 이와 같은 URI의 목록 (또는 "다중 세트"또는 "백")을 정의하는 방법이 있습니까?
, 어쩌면 뭔가를 할 수 이 버전은 이후 버전에서 추가 될 것입니다. 설명과 제안에 감사드립니다. 관련 메모에서 쿼리 변수에 단일 URI를 할당하고 해당 변수를 쿼리의 다른 위치에 사용하는 방법이 있습니까? – wynz
표준 SPARQL 1.0에서 no. 일부 시스템에서는 변수를 미리 바인딩 할 수 있습니다. SPARQL 1.1 및 일부 시스템에서 예. 예 : http://www.semanticoverflow.com/questions/925/927#927. 서브 SELECT를 사용하는 SELECT는 SPARQL 1.1에서 확실히 작동합니다. LET에 들어갈 수 있습니다. – user205512
아, 물론 {... FILTER (? var =)} 같은 효과가 있습니다. –
user205512