2012-11-22 2 views
3

bif:contains을 사용하는 키워드가 포함 된 인스턴스를 얻으려고 시도했지만 각각 ?s (인스턴스)에 대해 하나의 레이블 만 가져오고 어느 인스턴스가 상관이 없는지 확인합니다. regex과 같은 필터로 필터링 할 수 없습니다. 일반적인 쿼리 일뿐입니다. 이것은 내 쿼리이지만 각 인스턴스 (?s)에서 모든 레이블을 가져옵니다로컬 DBpedia SPARQL 쿼리의 결과 제한

SELECT DISTINCT ?s,?o1,?sc,?l WHERE { 
    ?s ?s1textp ?o1 . 
    ?o1 bif:contains ' (madrid AND embargo) ' OPTION (score ?sc) . 
    ?s <http://www.w3.org/2000/01/rdf-schema#label> ?l  
} 
ORDER BY DESC (?sc) 
LIMIT 30 
OFFSET 0 

내가 중첩 된 쿼리를 밖으로 시도,하지만 난 LIMIT를 추가 할 때 나는 어떤 결과를 얻을 수 없습니다.

SELECT DISTINCT ?s,?o1,?sc,?l WHERE { 
    ?s ?s1textp ?o1 . 
    ?o1 bif:contains ' (madrid AND embargo) ' OPTION (score ?sc) .     
    { 
    SELECT DISTINCT ?s,?l WHERE { 
     ?s <http://www.w3.org/2000/01/rdf-schema#label> ?l 
    } 
    LIMIT 1 
    }  
} 
ORDER BY DESC (?sc) 
LIMIT 30 
OFFSET 0 

나는 또한 SAMPLE 집계 함수를 보았습니다. 그것은 내가 DBpedia 엔드 포인트에서 원하는 것을 정확히 취하지 만, 그것은 내 자신의 Virtuoso에서 작동하지 않습니다! (필자는 오픈 소스 버전을 사용하고 있습니다.)

SELECT DISTINCT ?s,?o1,?sc,?l WHERE { 
    ?s ?s1textp ?o1 . 
    ?o1 bif:contains ' (madrid AND embargo) ' OPTION (score ?sc) . 
    { 
    SELECT DISTINCT ?s,(SAMPLE(?l) AS ?l) WHERE { 
     ?s <http://www.w3.org/2000/01/rdf-schema#label> ?l 
    } 
    GROUP BY ?s 
    } 
} 
ORDER BY desc (?sc) 
LIMIT 30 
OFFSET 0 

답변

3

official DBpedia endpoint는 비르투 오조에서 실행되는, 즉 옳은 일을하고 있다면, 그래서 당신은 아마 그냥 자신의 거장 인스턴스를 업데이트해야합니다. VOS는 7.2.2 (or 6.1.8, if you must stay on v6) 6.1.6 에서 현재, 그리고 경로에서 알 수 무엇을 제공하는 각각의 거장 Github space (instructions) stable/7develop/7 (그리고 stable/6develop/6)의 최신 코드 삭감을 보유.

앞으로 Virtuoso와 관련된 질문은 일반적으로 public OpenLink Discussion Forums, Virtuoso Users mailing list 또는 confidential Support Case에서 가장 잘 제기됩니다.

관련 문제