올빼미 어셈블리 생성 문제 (Owlgrinder)
문제
내 올빼미 온톨로지에서 어셈블리를 구축하고 있지만 온톨로지를 구문 분석 할 때 유형이 선언되고 일부 값이 제공되는 "Datatype 속성"에서 오류 메시지가 발생합니다. 나는 Protege v3.4를 사용하여 온톨로지를 썼습니다.
예를 들어, 오류를 일으키는 데이터 유형 속성 중 하나는 "String"유형의 "언어"및 "English & Farsi"와 같은 값입니다. 참조는 아래에 나열되어 있으며, Protege가 작성했습니다.
<rdf:RDF xml:base="http://www.owl-ontologies.com/Ontology1243411901.owl"
xmlns="http://www.owl-ontologies.com/Ontology1243411901.owl#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:protege="http://protege.stanford.edu/plugins/owl/protege#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:swrl="http://www.w3.org/2003/11/swrl#"
xmlns:swrlb="http://www.w3.org/2003/11/swrlb#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:xsp="http://www.owl-ontologies.com/2005/08/07/xsp.owl#">
"언어"속성은 다음과 같습니다.
<owl:DatatypeProperty rdf:ID="language">
<rdfs:range>
<owl:DataRange>
<owl:oneOf rdf:parseType="Resource">
<rdf:rest rdf:parseType="Resource">
<rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
<rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Farsi</rdf:first>
</rdf:rest>
<rdf:first rdf:datatype="http://www.w3.org/2001/XMLSchema#string">English</rdf:first>
</owl:oneOf>
</owl:DataRange>
</rdfs:range>
<rdfs:domain>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Teacher"/>
<owl:Class rdf:about="#ClassOfCourse"/>
<owl:Class rdf:about="#LearningResource"/>
<owl:Class rdf:about="#Discussion"/>
<owl:Class rdf:about="#Student"/>
</owl:unionOf>
</owl:Class>
</rdfs:domain>
</owl:DatatypeProperty>
Owlgrinder에 온톨로지를 추가합니다. 이 오류는 생성 할 때 이루어집니다.
Assembly generation failed.
OWL property 'http://www.owl-ontologies.com/Ontology1243411901.owl#language' has a range declaration that points to _:bnode10579059 but its definition is missing.
Are you missing an ontology which declares this class?
"_ : bnode"앞의 숫자는 "생성"버튼을 누를 때마다 변경됩니다. "언어"속성에서 값을 삭제하면 다음 오류가 다음 데이터 타입 속성과 관련이 있습니다. 이는 정의 된 모든 데이터 유형 속성 (및 일부 값이 지정된 값이 있음)이 OWLGRINDER에서 오류를 일으킨다는 것을 의미합니다.
누군가 가이 오류를 핸들링하는 데 나를 안내 할 수 있는지 궁금합니다.
해결책
현재 Rowlex Owlgrinder는 범위가 문자 그대로 또는 정규 수업이 될 것으로 기대합니다. 내부에 열거를 포함하는 'Languagelist'래퍼 클래스를 만드는 것이 좋습니다. 나는 이것을 테스트하지 않았지만 그것이 작동하기를 기대합니다.
다른 팁
나는 Owlgrinder에 익숙하지 않지만 다음과 같은 이름의 클래스를 선언 할 수 있습니다. ExpectedLanguages
(익명 노드를 URI에 제공) 한 다음이를 귀하의 범위로 사용하십시오. language
술부. 약식 예 (in 거북이 체재):
:ExpectedLanguages
a owl:DataRange ;
owl:oneOf (
"Farsi"^^xsd:string
"English"^^xsd:string
);
.
:languages
rdfs:range :ExpectedLanguages ;
.
당신의 사용 올빼미 열거 데이터 유형 코드/파서/이성기가 올빼미 -DL을 최소로 준수해야합니다.
이유 _:bnodeXXX
(빈 노드/익명 노드)마다 비어 있기 때문에 매번 새 ID가 있습니다. 그러나 메모리의 RDF 그래프 (모델) 내에서이를 식별 할 목적으로, 모델이 분석되는 동안 각 노드 (익명 또는 명명)를 고유하게 식별 할 수있는 각 익명 노드에 대해 ID를 생성해야합니다. 따라서 들어오고 나가는 참조를 식별 할 수 있습니다.
지적 올빼미 라이트, 올빼미 가득 또는 올빼미 DL을 .NET 클래스로 변환 할 수있는 SDK를 제공합니다. 당신은 그것을보고 싶을 것입니다.
사이드 노트
온톨로지에서 도메인의 의미론을 혼동하고 있다고 생각합니다. 실제로 "언어는 교사, 계급, 학습자 소스, 토론, 학생"에만 존재할 수 있다고 말하는 것으로 보입니다. 실제로 "언어가 교사가 아닌 인스턴스가 유추 될 수있는 인스턴스를 설명하는 데 사용되는 경우. , Classofcourse, LearningResource, 토론 및 학생. ". 이것은 도메인이 실제로 올빼미의 기능이 아닌 경우 속성 사용을 제한 해야하는 것처럼 느껴지기 때문에 올빼미의 의미를 잘못 해석하는 것입니다 (스키마/검증). 올빼미는 사용에 의해 추론해야 할 내용 만 설명하는 데만 사용되며 사용법을 규정하지 않습니다.
언어 속성의 영역에서 Unionof를 사용함으로써 "언어 속성을 사용하여 설명되는 것은 교사, 계급, 학습 소송, 토론 또는 학생"이라고 말합니다. 나는 이것이 일반적으로 의미가 없다고 주장합니다.
범위는 속성의 범위를 특정 유형으로 정의하는 경우 해당 속성에 의해 언급 된 모든 리터럴/리소스가 범위 선언으로 정의 된 유형의 것으로 추론 될 수 있다는 점에서 유사합니다.
나는 당신의 온톨로지를 복사/붙여 넣었습니다 http://www.mygrid.org.uk/owl/validator:이 온톨로지는 적어도 올빼미 라이트 온톨로지가 아니라고 말합니다. Protege Config에 문제가 될 수 있습니까?