2012-04-28 4 views
5

이제 다음과 같은 시나리오가 작동하지 않는 이유를 이해하려고 노력 이틀 동안 갇혀 된 식품 "에 해당 http://dl.dropbox.com/u/4677548/screenshots.htmlowl - 올바르게 추론하지 않습니까? 정확하게 채식주의자를 정의하는 법? 여기</p> <p>스크린 샷 :

나는 VegetarianFood 클래스 (식품의 서브 클래스)가 및 (계란 또는 MilkAndDerivates 또는 VeganFood) "당신이 스크린 샷 번호 1

VeganFood 클래스에서 볼 수있는 바와 같이, 턴, (... 등 NutsAndSeeds, 곡물, 과일,) 스크린 샷 2

다른 클래스에 해당

ca N이 MilkAndDerivates 및 NutsAndSeeds 스크린 샷 3 로 만들어 두 사람 (체다 치즈와 캐슈가) 그리고 그들은이 제대로 나는 조리법으로 두 사람 만 캐슈 하나를 만든 다음

VegetarianFood 및 VeganFood 회원으로 추정된다 (PastaVega)를 참조하십시오 다음과 객체 속성 hasIngredient를 사용하여 두 체 위에 chese 캐슈 (PastaVege)와 하나 스크린 4

5 이들은 레시피로 추정 ... BUT 중에 VegatarianRecipe 및 VeganRecipe의 범주에 속하는되지 않았다 정의 스크린 샷 6 및 7

나는 단서가 없다, 왜 그들이 채식주의 자로 추정되지 않는가? (또는 채식주의 자) ?? 나는 무엇을 놓치고 있는가?

편집 :

내가 에서 VegetarianRecipe (또는 완전 채식) "레시피와 (hasIngredient 만 VegetarianFood)"

에 "레시피와 (hasIngredient 일부 VegetarianFood)"를 변경하는 경우

스크린 샷 8

리셉션 개인이 표시되지만, 물론 이것은 내가하려는 일이 아닙니다. 이렇게하면 혼합 고기와 채식을 포함한 요리법이 포함됩니다. 채식주의 자 또는 채식주의 자일 때 추론자가 정확하게 추론 할 수 있도록 채식 레시피 및 채식 레시피 클래스를 정의하는 방법 ????

+0

"스크린 샷"에 지정한 "링크"는 컴퓨터에서만 작동합니다. 먼저 imgur.com과 같은 파일에 업로드해야합니다. – jwodder

답변

6

OWL 추론이 개방적인 가정을 사용한다는 결과에 부딪혔습니다.

당신의 PastaVege 조리법이 VegetarianRecipe로 추정되지 않는 이유는 명시 적으로 조리법에있는 목록 성분이 모두 VegeratianFood 인스턴스가 실제로 있지만, 그것은 당신의 조리법의 일부 현재 알 수없는 성분이 아니라고 할 수 있다는 것입니다

채식주의 자 음식.

VegetarianRecipe에 당신의 제약 모든 성분 VegetarianFoods, 결정적으로 레시피가 참으로 VegetarianRecipe이다 (열린 세계) 결론을 내릴 수 없습니다 (우리가 현재 알고뿐만 아니라 사람)해야한다는이기 때문에.

이 문제를 처리하는 데는 여러 가지 방법이 있지만 실제로 원하는 것은 정확히 수행 할 수 없습니다. 약간 다른 각도에서 접근해야합니다.

정확한 모델링 세부 사항을 따르지 않고 : 조리법이 현재 모델에 따라 채식인지 여부를 추측하기는 어렵지만 채식이 아니라는 것은 비교적 간단합니다. 적어도 하나의 비 채식주의 자용 성분을 가진 조리법은 비 채식주의 조리법입니다.

다른 접근법은 (채식) 성분의 폐쇄 세트 (oneOf 제약 조건을 통해 OWL 열거 형 클래스 사용)를 만드는 것이지만, 이는 모델에 중요한 변화이며, 물론해야 할 일이 지루합니다. 가능한 모든 성분을이 방식으로 나열하십시오.