2013-03-14 1 views
2

SPARQL을 사용하여 french dbpedia (http://fr.dbpedia.org/)를 쿼리하고 있습니다.유니 코드 문자로 sparql 쿼리를 만드는 방법은 무엇입니까?

파이썬과 SPARQLWrapper를 사용하면 어떤 차이가 있습니다.

이 첫 번째 쿼리는 정상적으로 작동합니다.

PREFIX dbpp:<http://dbpedia.org/property/> 
    PREFIX dbpo:<http://dbpedia.org/ontology/> 
    PREFIX dbpr:<http://dbpedia.org/resource/> 
    SELECT ?wt ?summary ?source_url 
    WHERE { 
     ?wt rdfs:label "Concerto"@fr . 
     OPTIONAL { ?wt dbpedia-owl:abstract ?summary . } 
     OPTIONAL { ?wt foaf:isPrimaryTopicOf ?source_url . } 
     filter (lang(?summary) = "fr") 
    } 

이 두 번째 쿼리가 작동하지 않습니다.

PREFIX dbpp:<http://dbpedia.org/property/> 
    PREFIX dbpo:<http://dbpedia.org/ontology/> 
    PREFIX dbpr:<http://dbpedia.org/resource/> 
    SELECT ?wt ?summary ?source_url 
    WHERE { 
     ?wt rdfs:label "Opéra"@fr . 
     OPTIONAL { ?wt dbpedia-owl:abstract ?summary . } 
     OPTIONAL { ?wt foaf:isPrimaryTopicOf ?source_url . } 
     filter (lang(?summary) = "fr") 
    } 

유일한 차이점은 레이블 값입니다. 페이지 http://fr.dbpedia.org/page/Opéra이 dbpedia에 있고 rdfs label이 "Opéra"로 설정되어 있습니다.

프랑스 문자 é이 들어 있기 때문에 쿼리가 작동하지 않는다고 생각합니다. 나는 어떤 성공도없이 여러개의 도주 (Op%C3%A9re, Op\u0233ra, Op\xe9ra)를 시도했다.

아이디어가 있으십니까?

답변

2

FILTER은 선택 사항이 아닙니다. 따라서 <http://fr.dbpedia.org/resource/Opéra>과 일치하지 않으며 dbpedia-owl:abstract이 없습니다.

PREFIX dbpp: <http://dbpedia.org/property/> 
PREFIX dbpo: <http://dbpedia.org/ontology/> 
PREFIX dbpr: <http://dbpedia.org/resource/> 
SELECT ?wt ?summary ?source_url 
WHERE { 
    ?wt rdfs:label "Opéra"@fr . 
    OPTIONAL { ?wt dbpedia-owl:abstract ?summary . 
    filter (lang(?summary) = "fr") 
    } 
    OPTIONAL { ?wt foaf:isPrimaryTopicOf ?source_url . } 
} 

... (작동하며 (<http://fr.dbpedia.org/resource/Catégorie:Opéra>도 반환 함).

+0

작동합니다! 감사. – luc

관련 문제