2017-09-19 8 views
-1

나는 (protégé 플랫폼을 통해) SPARQL에서 쿼리를 작성하는 방법을 배우고 있습니다. 따라서 이것은 매우 기본적인 질문이지만 해결할 수는 없습니다.Protégé (regex)의 Sparql 쿼리 (필터링)

저는 Alice (그 올빼미 : 사물)라는 개인이 있습니다.
이 개인은 textualValue라는 데이터 속성이 있으며 xsd : normalizedString으로 지정됩니다.

ali로 시작하는 개인을 추출하기 위해 아래 쿼리를 작성했습니다. 결과적으로 alice가 생성됩니다. 기본적으로 필터링을 위해 정규식 피연산자를 사용하고 있습니다. 이 스펙으로 SPARQL 쿼리를 실행할 때마다 어떤 결과도 얻지 못한다. 누군가 내가 잘못 표시된 위치를 표시 할 수 있는가?

SELECT distinct ?x 
WHERE { ?x rdf:type owl:NamedIndividual. 
FILTER regex(?textualValue, "^ali", "i") } 

답변

3

속성 값은 textualValue이어야합니다. 변수에 자동으로 입력되지 않습니다. 여기

당신의 설명에 따라, 개요입니다 : 당신은 세부 사항을 완료해야합니다

PREFIX owl: .... 
PREFIX rdf: .... 
PREFIX x: <InsertTheRightURIhere> 
SELECT distinct ?x 
WHERE { 
    ?x rdf:type owl:NamedIndividual ; 
     x:textualValue ?v . 
    FILTER regex(str(?v), "^ali", "i") 
} 

str?v의 RDF 기간의 단지 어휘 부분을 얻을 수 있습니다.

+0

감사합니다. 그러나 'v'가 무엇을 의미하는지 이해하는 데 어려움이 있습니다. 만약 당신이 제발 소스를 지정하거나 조언을 해 주시면, 매우 도움이 될 것입니다. @AndyS – Gamze

+0

'? v'는 변수입니다. 이것은'x : textualValue' 트리플의 객체로 설정됩니다. – AndyS