Im은이 sparql 쿼리를 시도하지만, 무엇이 잘못되었는지 찾아내는 데 어려움이 있습니다. 나는 그 성분 들이나 그 이하의 모든 조리법들을 가지고 가고 싶다. 예 : receipe 1 : 토마토 receipe 2 : 토마토와 소금 receipe 3 : 토마토, 소금, 양파.SPARQL 쿼리 RDF 온톨로지
그리고 나는 다음과 같은 쿼리가 :
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rec:<http://www.receta.org#>
SELECT reduced ?r (count (?i) as ?cuantos) WHERE {
?x rdf:type rec:Receta .
?x rdfs:label ?r.
filter not exists {
?x rec:Ingrediente ?i
filter(?i not in (rec:Tomato, rec:Salt))
}
}
GROUP BY ?r
나는 것은 첫 번째를 표시하기를. 두 번째 것이 아니라 마지막 것이 아닙니다.
그것의 다만보기 그러나 나는 실제로 그 3 개의 조리법으로 그것을하고 싶다, 거대한 데이타베이스를 말하게하고, 토마토와 소금보다 적은 성분을 가진 조리법을 예를 들면 가지고 가고 싶다. 그래서 내 질문을 어떻게 수정할 수 있습니까?
임
자신을 설명하려고 것 : 예를 들어:
내가 수백 조리법을 가진 거대한 데이터베이스를 가지고 있다고 할 수 있습니다. 초콜릿과 우유
그리고 내 쿼리에서 나는 토마토, 소금, 식초와 조리법을 원한다고 : 양파와 고기 Receipe3 : 토마토와 식초 Receipe4 토마토와 소금 Receipe2 : Recipe1 : 그 중 일부는 . 그래서 그 경우에는 레시피 1과 레시피 3을 얻고 싶습니다. 레시피 1에는 토마토와 소금이 있고 레시피 3에는 토마토와 식초가 들어 있기 때문에, 제가 말한 것보다 적은 성분을 가지고 있습니다. 토마토 Recipe5 : 토마토, 식초, 소금, 양파 Recipe6가 :
Recipe4가 : 소금 Recipe6는 토마토, 식초, 소금
내가 다시는 내 쿼리를 실행하면 나는 것 좀 더 조리법을 추가하는 것이 지금 말할 수 있습니다 recipe1, recipe3, recipe4 및 recipe5를 갖고 싶습니다. 원인 그 조리법은 그 성분 이하의 성분입니다. 나는 레시피 6의 원인에 내가 원하는 것과 심지어 레시피가 아닌 것보다 더 많은 재료를 가지고 싶다 .7.
감사합니다.
그 성분이 적은 요리법을 원한다면 토마토와 소금 만 포함되어 있기 때문에 요리법 번호 2를 포함해서는 안됩니까? –
당신이 찾고있는 것을 정확히 분명히 할 수 있습니까? 재료가 지정된 것의 하위 집합 인 요리법을 요구하는 것처럼 들리지만, 그렇다면 두 번째 조리법을 왜 원하지 않습니까? –
OP가 답변으로 게시되었지만 (코멘트로 게시 했어야 함) : "예제로 넣으십시오.하지만 실제로는 3 개의 조리법으로 처리하고 싶습니다. 거대한 데이터베이스라고 말하면됩니다. 예를 들어 토마토와 소금보다 성분이 더 많습니다. " –