2013-04-11 3 views
2

두 변수로 sparql 쿼리를 만들려면 어떻게해야합니까? 그리고 설명해 드리겠습니다. 역사지도에 대한 온톨로지가 있습니다. 내 엔티티는 HistoricalMap, Language, Color 이며 이들을 연결하는 객체 속성은 hasLanguage, hasColor입니다. hist.map은 언어와 색상을 가지고 있습니다. 내가 쿼리 한 경우 :두 변수가있는 Sparql 쿼리

SELECT ?HistoricalMap ?Language ?Color 
     WHERE { ?HistoricalMap p1:hasLanguage ?Language. 
         ?HistoricalMap p1:hasColor ?Color. 
} 

을 나는 색상과 언어가 모든 맵을 얻는다.

어떻게지도를 물을 수 있습니까 hasColor "빨강"AND hasLanguage 프랑스어?

답변

5

"AND"를 원하기 때문에 패턴에 상수를 사용할 수 있습니다.

SELECT ?HistoricalMap 
     WHERE { ?HistoricalMap p1:hasLanguage "French". 
         ?HistoricalMap p1:hasColor "Red" . 
} 

당신은 또한 여전히 변수를 반환하려면

, FILTER를 사용 : 당신이 프랑스어 및 빨간색 색상이 데이터로 표현하는 방법을 이해할 필요가

SELECT ?HistoricalMap ?Language ?Color 
     WHERE { ?HistoricalMap p1:hasLanguage ?Language. 
         ?HistoricalMap p1:hasColor ?Color. 
       FILTER(?Language = "French" && ?Color = "Red") 
} 
+0

: dbpedia를 조회

, 즉 예를 들어, 일 것이다. 내가 제안 된 패턴을 시도했지만 일치하는 항목이있는 경우에도 "일치하는 항목이 없습니다"반환 "빨간색" "프랑스어"를 표시됩니다 내 온톨로지 (Protege)의 인스턴스로 사용됩니다. "French"및 "Red"라는 단어는 인스턴스의 이름이며이 인스턴스의 레이블로도 저장됩니다. 아마 이것은 어떤 종류의 문제일까요? – user2270072

+1

완전한, 최소한의 예제가없는 추측 게임입니다. 데이터를 표시하십시오. 어떤 시스템을 사용하여 쿼리를 작성했는지 말하십시오. "Red"를보십시오 ^^ xsd : string과 "French"^^ xsd : string Protege는 보통 문자열을 데이터 타입 리터럴로 저장하기 때문에. – AndyS

+0

나는 마침내 그것을 그렇게했다. 그리고 그것은 일하는 것처럼 보인다 : – user2270072

3

.

언급 한 쿼리를 수행 할 때 반환되는 방식을 보려면이 정도면 충분합니다.

SELECT ?entity 
WHERE { 
    ?entity dbpedia-owl:colour <http://dbpedia.org/resource/Red> . 
    ?entity dbpedia-owl:language <http://dbpedia.org/resource/French_language> . 
} 
+0

"프랑스어"및 "빨강" 내 온톨로지 (Protege)에서 인스턴스로 표시됩니다. "French"및 "Red"라는 단어는 인스턴스의 이름이며이 인스턴스의 레이블로도 저장됩니다.이 문제는 어떤 종류의 문제 일 수 있습니까? – user2270072

+1

_instance_. (dbpedia에있는 URL 예제를 참조하십시오.) – kr1

+0

답변 해 주셔서 감사합니다. 검색어를 수락하는 것으로 보이지만 블랭크 라인을 답변으로 반환합니다 ... 두 개의 답변이 있지만 ... – user2270072