2013-02-08 3 views
0

그룹 패턴의 의미를 이해하지 못합니다. 내가 in the specification을 읽었을 때, 이미 중첩 된 그룹 (no UNION 또는 그와 비슷한 것)으로 그룹에 속해있는 그래프 패턴을 넣었는지 여부에 관계없이 어떤 차이도 없어야합니다. 이것을 보여주는 예도 있습니다.그룹화가 쿼리의 의미를 변경하는 이유는 무엇입니까?

그러므로, 나는 DBpedia에보고하고 다음 행동을 이해하지 않습니다

다음 쿼리는 (14 개) 결과 산출 :

PREFIX ygo: <http://dbpedia.org/class/yago/> 

SELECT ?p ?bn ?ya 
WHERE { 
    ?p rdf:type ygo:AmericanFilmDirectors. 
    ?p dbpprop:birthname ?bn. 
    ?p dbpprop:yearsActive ?ya. 
    FILTER((?ya > 1980) && (regex(?bn, "e"))). 
} 

아직,이 만 13 몇 가지 이유를 산출을 - Shonda Rhimes는 다른 결과 세트에 비해 누락되었습니다

PREFIX ygo: <http://dbpedia.org/class/yago/> 

SELECT ?p ?bn ?ya 
WHERE { 
    { 
     ?p rdf:type ygo:AmericanFilmDirectors. 
     ?p dbpprop:birthname ?bn. 
     ?p dbpprop:yearsActive ?ya. 
    } 
    FILTER((?ya > 1980) && (regex(?bn, "e"))). 
} 

내가 DBpedia's Snorql frontend 이것을 테스트했습니다.

(이상하게도, 나는 DBpedia's Virtuoso query frontend 만 때로는이 문제를 재현 할 수 ... 때로는 두 쿼리는 (13) 결과를 반환합니다.)

는 왜입니까? SPARQL 스펙의 일부분입니까? 올바르게 이해하지 못했거나 트리플 스토어 구현의 버그입니까? 쿼리 1에서 쿼리 2로 바뀌어도 아무런 차이가 없어야합니까?

+0

DBpedia의 sparql 서비스는 의심의 여지없이 기발한 것입니다. 이는 버그 일 수도 있고, 규모 조정 및 자원 배분을위한 조치의 결과 일 수도 있고, 서비스 운영에 문제가 될 수도 있습니다. 버그는 거의 없을 것 같습니다 - 어떻게 잘못 이해할 수 있습니까? -하지만 다른 두 가지는 전적으로 가능합니다. 현재 그들은 클러스터와 관련된 문제가있는 것 같습니다. 나의 충고 :이 서비스를 '최선의 노력'으로 취급하고, 완전한 대답을 얻는 것에 의존하지 마십시오. – user205512

+0

아, 그리고 명확 : sparql에 대한 이해는 완벽합니다. – user205512

+1

사소한 : "및"법적 SPARQL이 아닙니다. "," – AndyS

답변

2

다른 쿼리이지만 SPARQL에서 동일한 대수 표현식으로 끝나고 같은 대답을 만들어야합니다. 그러나 패턴이 많은 수의 필터링 된 가능성을 생성 할 수 있기 때문에 데이터 배포에 따라 엔진의 내부 실행 제한을 초과 할 수 있습니다. 그것은 다른 시간에 다른 결과를 설명 할 것입니다.

+0

으로 잘 알려져 있습니다. 여기에서 무슨 일이 일어나고 있는지 충분히 설명하고 있습니다. 감사합니다. 요약하면, 제 SPARQL 코드는 정확합니다. 이것은 Virtuoso와 같은 트리플 스토어가 아직 그러한 최적화를 수행하지 않는 반면, DB 엔진은 이미 쿼리를 최적화하기 때문에 SQL 데이터베이스로 처리하지 않습니다. –

+0

엔진이 쿼리를 최적화합니다. 이 경우는 간단하지 않을 수 있습니다. '최적화 된'버전은 작성하기가 간단합니다. – user205512

+0

@ user205512 : 쿼리를 시각적으로 표현한 표현 트리를 기반으로 쿼리를 생성하고 있습니다. 이러한 표현 트리에는 일부 중첩 된 연결이 포함될 수 있습니다. 따라서 상황을 확인하고 표현 트리를 재구성하면 코드가 더 복잡하지 않고 단순 해집니다.그러나 이론상 문법이 정확하다는 것을 모두 확인 했으므로 엔진 최적화가 결국에는 사소한 경우도 다룰 수 있기를 바랍니다 :-) –

관련 문제