메일 보관 데이터가 포함 된 트리플 저장소가 있습니다. 따라서 (ex:hasSent
)을 보내고 (ex:hasReceived
) 개의 이메일 (ex:Email
)을받은 많은 사람 (foaf:Person
)이 있다고 가정 해 보겠습니다.SPARQL의 여러 집계
예 : 물론 ex:hasReceived
에 대한
SELECT ?person ?email
WHERE {
?email rdf:type ex:Email.
?person rdf:type foaf:Person;
ex:hasSent ?email.
}
같은 작품. 이제는 개인이 보내고받은 이메일의 수를 결정하는 통계 및 분석을하고 싶습니다. 하나의 술어 이렇게하면 간단한 집합입니다 :
SELECT ?person (COUNT(?email) AS ?count)
WHERE {
?email rdf:type ex:Email.
?person rdf:type foaf:Person;
ex:hasSent ?email.
}
GROUP BY ?person
그러나, 나뿐만 아니라받은 이메일의 번호가 필요합니다 필요 나는 별도의 쿼리를 실행하지 않고이 작업을 수행하고 싶습니다. 그래서 나는 다음을 시도했다 :
보내지는 이메일과받은 이메일의 숫자가 정확히 같아 보이지 않았다. 내 SPARQL 문은 사람이 보내고받은 모든 메일의 교차 결과를 가져 오기 때문에 이것이라고 가정합니다. 맞습니까?
통계를 개인별로 얻으려면 어떻게해야합니까?
당신은 맞다는'? email1' 언 바운드했다보십시오. 나는 SO에 대한 질의를 닦았지만 완전히는하지 못했습니다. – cyroxx