문제

내 올빼미 온톨로지에서 어셈블리를 구축하고 있지만 온톨로지를 구문 분석 할 때 유형이 선언되고 일부 값이 제공되는 "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에 문제가 될 수 있습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top