2012-12-25 6 views
2

나는 간단한 대답이 없다고 생각되는 간단한 질문이 있습니다. 기본적으로 한 OWL 표현식 (#B)이 논리적으로 다른 표현식 (#A)에 뒤 따르는 것이 사실인지 확인하고 싶습니다. 즉, # A-> #B?OWL 표현 사이의 논리적 함축 관계를 확인 하시겠습니까?

이유는 현재 응용 프로그램 상태 (#StateRequirement)의 요구 사항을 설명하는 구조에 지식 기반 구조 (#KnowledgeStructure 클래스로 표현됨)를 일치시키는 응용 프로그램의 일치 알고리즘을 작성하고 있기 때문입니다.). 두 구조는 구조의 세 번째 종류 (#Model)의 상태에 대한 OWL 표현을 나타내는 문자열 값을 갖는 특성을 갖습니다. #Model에 적용되는 지식 구조가 #Model을 어떻게 변형 시킬지 표현하는 # KnowledgeStructure.PostCondition; # StateRequirement.GoalCondition은 응용 프로그램이 달성하고자하는 #Model 상태를 나타냅니다. 따라서 # KnowledgeStructure.PostCondition이 원하는 # StateRequirement.GoalCondition을 생성하는지 확인하여 #KnowledgeStructure가 #StateRequirement를 만족하는지 확인하고 싶습니다. 나는 이것을 추상적으로 표현할 수있다 : (# KnowledgeStructure.Postcondition => # StateRequirement.GoalCondition)> Match (#KnowledgeStructure, #StateRequirement). 덜 혼란스럽게 나는 이것을 #A와 #B가 유효한 OWL 표현식 인 ((#A -> #B) -> Match (#A, #B))로 표현할 수있다.

일반적으로 다음 규칙을 표현할 수 있습니다. "표현 #B가 #A 다음에 나오는 것이 사실이라면 일치 식 (#A, #B)도 참입니다" .

본질적으로 나의 질문은 이것입니다 : OWL에서 어떻게 그러한 규칙을 만들거나 실현해야합니까? 한 표현식이 다른 표현식에서 나오는 지 여부를 어떻게 테스트 할 수 있습니까? 또한, 기존의 추론 자들은이 관계가 명시 적으로 언급되지 않은 경우 두 표현 사이의 관계 #A -> #B를 결정할만큼 충분히 강력합니까?

+0

당신이 더 당신이 "표현"에 의해 의미합니까 어떤 비트를 명확히 할 수 나를 :) 수정 주시기 바랍니다 OWL 스펙 (http://www.w3.org/TR/owl2-syntax/)의 용어를 사용한다. – Kaarel

+0

물론, 저는 SWRL 규칙의 전례에 사용 된 종류의 조건식에 대해 실제로 말하고 있습니다. description '('i-object ')' \t | dataRange '('d-object ')' \t | individualvaluedPropertyID '('i-object i-object ')' \t | datavaluedPropertyID '('i-object d-object ')' \t | sameAs '('i-object i-object ')' \t | differentFrom '('i-object i-object ')' \t | builtIn '('내장 ID {d-object} ')' –

답변

1

나는이 질문을 완전히 이해했다고 확신하지는 않지만, 내가 쥐고있는 것으로부터 나는 이런 식으로 상황에 직면하게 될 것이다.

우선 내가 아는 모든 라이브러리는이 언어를 의미하므로 자바를 참조하십시오. 둘째, 규칙과 공리를 나타낼 수 있다고 가정 할 때 OWL 자체가 목표를 충족시킬 수 있다고 생각하지 않지만 추론을 제공하지 않습니다. 즉, 추론자가 필요하므로 프로그램을 작성해야합니다. 이를 사용하고 아래에서 스케치 할 추가 처리 작업을 수행합니다.

1) 언급하지 않았지만 근본적인 온톨로지 wrt가 있다고 생각합니다. 결과 관계 ("->"기호로 표시하는 것)를 증명해야합니다. 온톨로지가 명시 적이지 않은 경우 어쩌면 질문에서 언급 한 텍스트 표현식에서 추출/합성 될 수 있습니다.

2) 당신은 온톨로지 조작을 위해 라이브러리를 사용할 필요가 있습니다. 맨체스터 대학에서 OWL API을 제안합니다.이 책은 "문서"섹션의 튜토리얼에서 매우 강력하고 간단합니다. 사용법을 비롯한 주요 기능에 대한 개요가 있습니다. (이 예제는 은둔자를 보여 주지만 그 원리는 다른 추론 자에게도 적용됩니다). 온톨로지가 일치하는 경우

3)이 시점에서 당신은 당신이 구축 (당신은 온톨로지에 다음과 같은 공리를 추가 종종 거짓 소재지를두고 발생로 (그렇지 않으면 아무것도))

4 도출 될 수 확인해야 직접 Java에서, 다시 직렬화 할 필요가 없습니다. 메모리 내 표현에서 추론자가 작동하도록 할 수 있습니다.) 일관성을 검사하십시오. A \ sqsubseteq B, 즉 연관된 해석을 사용합니다. A^I \ subseteq B^I , 따라서 A => B (그들은 같은 진리표를가집니다)와 같습니다.

5)이 시점에서 A와 B가 클래스 표현이고 두 번째가 결과 인 모든 클래스 표현식과 관련된 역할/관계 인 공리 성 일치 (A, B)를 추가 할 수 있습니다 첫번째.

6) 이러한 단계를 여러 번 반복하면 결과를 일련 번호로 저장하고 저장할 수 있습니다. 메모리 내에서 OWL API를 사용하여 매우 간단하게이 작업을 수행 할 수 있습니다.

설명 논리 (OWL 온톨로지를 지원하는 논리)에 대한 몇 가지 기본 사항은 A description logic Primer (2012), Horrocks et al.Foundations of Description Logics (2011), Rudolph을 참조 할 수 있습니다.

나는 논리 학자 또는 DL 전문가가 아니에요, 그래서 이상적으로, 내가 제공하는 모든 정보를 확인하고