다음과 같은 RDF 트리플의 모음이 있습니다.SPARQL에서의 스타 서브 그래프 패턴 찾기
id#7289587 ex:getInfectedBy id#7748320
id#7694711 ex:getInfectedBy id#7748320
id#7748322 ex:getInfectedBy id#7748320
id#7748887 ex:getInfectedBy id#7748320
id#7746679 ex:getInfectedBy id#7748510
id#6434108 ex:getInfectedBy id#7748510
id#7458397 ex:getInfectedBy id#7748510
내 목표는 다양한 노드 길이 (4,5,6, ..., 20)의 스타 서브 그래프 패턴을 계산하는 것입니다. 예를 들어, 다음 쿼리를 작성하여 노드 길이가 4 인 스타 서브 그래프 패턴을 찾으십시오 (? s1? s2? s3? o). 두 노드 id#7748320
및 id#7748510
에 대한
SELECT ?o count(distinct ?o)
WHERE
{
?s1 ?p ?o.
?s2 ?p ?o.
?s3 ?p ?o.FILTER((?s1!=?s2) && (?s1!=?s3) && (?s2!=?s3))
} group by ?o
노드 4 위에서 언급 한 쿼리 카운트 스타 패턴 길이. 그러나 노드 id#7748510
에 대해서만 결과를 제공한다고 가정합니다. 5 노드 스타 패턴으로 쿼리를 수정하면 노드 id#7748320
도 나타납니다. 고칠 수 있도록 도와 주시겠습니까?
다양한 노드 길이 (4,5,6, ..., 20)의 스타 서브 그래프 패턴을 하나의 쿼리로 계산할 수 있습니까? 저에게 알려주세요. 도와 주셔서 감사합니다.
단순히 사용을'* WHERE SELECT' 쿼리를 사용하여 SPARQL에서 이것이 올바른지 확인하십시오. id # 7748320 노드의 데이터가 SPARQL 쿼리의 패턴과도 일치한다는 것은 명백합니다. 쿼리에서 "적어도"해당 요구 사항을 만족시키는 것이 무엇인지 묻는 것입니다. – AKSW