2010-01-17 7 views
4

펠렛이 클래스의 속성을 해당 클래스에 속한 개인에게 전파하려고합니다. 예를 들어 클래스 A에 속성 X가 있고 개인 B에 rdf : 유형 = 클래스 A가 있으면 개인 B가 추론자를 실행 한 후에 속성 X를 갖기를 원합니다. OWL 2 New Features 페이지에서 참조 된 속성 체인 포함 기술을 사용하고 있습니다. 이 기술은 속성 체인에서 내 자신의 사용자 지정 속성을 사용하면 완벽하게 작동하지만 rdf : type 자체를 사용하려고하면 작동하지 않습니다. 다음은 내 RDF/XML의 관련 저널입니다.rdf를 통한 속성 체인 추론 :

<rdf:Description rdf:about="http://family/person"> 
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> 
    <owl:sameAs rdf:resource="http://family/person"/> 
    <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> 
    <owl:equivalentClass rdf:resource="http://family/person"/> 
    <owl:disjointWith rdf:resource="http://www.w3.org/2002/07/owl#Nothing"/> 
    <j.1:spread rdf:resource="http://spread/specificSpread"/> 
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/> 
</rdf:Description> 

재산 자체를 "확산"(작성 :;

론적 클래스 (즉 내가 클래스 사람의 개인에게 전파하기 위해 노력하고있어 무엇과 같이 속성을 "확산"주의 예나에 의해 생성) 예나의 API는 객체 속성 체인을 지원하지 않기 때문에 수동으로 내게로) 예나으로 생성되지 :

<rdf:Description rdf:about="http://family/Oedipus"> 
    <rdf:type rdf:resource="http://family/person"/> 
</rdf:Description> 
:

<rdf:Description rdf:about="http://spread/generalSpread"> 
    <owl:propertyChainAxiom rdf:parseType="Collection"> 
     <owl:ObjectProperty rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#type"/> 
     <owl:ObjectProperty rdf:about="http://spread/generalSpread"/> 
    </owl:propertyChainAxiom> 
</rdf:Description> 

추론하기 전에, 사람 오이디푸스는 다음과 같습니다

아이디어는 추론 한 후,이 같은 것을 볼 것이다 : 유형을 RDF로 :

<rdf:Description rdf:about="http://family/Oedipus"> 
    <rdf:type rdf:resource="http://family/person"/> 
    <j.1:spread rdf:resource="http://spread/specificSpread"/> 
</rdf:Description> 

을 나는 RDF를 참조 느낌이 나는 '이후 일이 터져지고 어디에 자원은 아마도 리소스가 아니라고 확신합니다. 하지만 어떻게 수정해야할지 모르겠습니다. 나뿐만 아니라 펠렛의 명령 줄 보풀이 프로그램을 통해 그것을 실행하고 RDF에 대한 명시 적 항목을 생성하는 것을 제외하고는 그것으로 문제가있는 것 같지 않았어요 :이처럼 보였다 유형 :

<owl:ObjectProperty rdf:about="&rdf;type"/> 

조금 이상한 보이는을 나에게도 rdf : type에 대한 내 참조를 이해하지 못한다는 힌트 일 수 있습니다.

아무도 어떤 일이 벌어지고 있는지에 관해 밝힐 수 있습니까? 누구나 제공 할 수있는 도움에 정말 감사드립니다.

+0

semanticoverflow.com에 대한 완벽한 질문 – harschware

+0

이 질문을 할 당시 존재하지 않았습니다. –

+1

그것은 불과 3 개월 만에 잘 알려지지 않은 아기였습니다. 그러나이 질문에 대한 독자의 의견을 더 많이 남겼습니다. 그리고 (+1) 좋은 질문입니다. – harschware

답변

2

매우 중요 편집

실제로 속성 전파 OWL DL의 영역 내에서 가능하다는 것을 밝혀졌습니다.

<rdf:Description rdf:about="http://family/person"> 
    <rdfs:subClassOf> 
     <owl:hasValue rdf:resource="http://spread/simpleSpread"/> 
     <owl:onProperty rdf:resource="http://spread/hasSpread"/> 
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Restriction"/> 
    </rdfs:subClassOf> 
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/> 
    </rdf:Description> 

그렇게 중요하지 않음 : 당신이 값 simpleSpread (모두 이미 RDF에 정의되어 가정)와 재산 spread을 전파하려는 경우 예를 들어, (RDF/XML에서) 같은 것을 할 수 더 이상

그래, 정보 완성을 위해 여기에 관련 답변 정보를 게시하겠습니다. 이 내용은 펠릿 사용자 메일 링리스트에서 사람들과 이야기 할 때 발생합니다. 스레드가 보관되어 있고 내 initial message으로 시작됩니다. 스레드를 따라 세부 사항을 찾으십시오.

기본적으로 OWL DL은 기본 제공 속성 및 데이터 유형에 "반영"을 허용하지 않습니다. 이를 허용하면 OWL DL이 보장하는 다항식 시간 결정 성을 위반할 수 있습니다. 이를 수행하기 위해서는 OWL Full의 OWL Full을 처리하는 OWL RL profile을 사용해야하며 따라서 rdf:type 이상의 유추를 허용합니다.

RL은 RL보다 훨씬 가볍고 표현이 적기 때문에 DL과 RL을 모두 지원하는 추론 자 (또는 추론 자의 조합)를 찾는 것이 가장 중요합니다 (다항식 시간에서 결정할 수 있다고 보장 할 수는 없습니다).