Frage

Ich baue eine Baugruppe aus meiner OWL Ontologie, aber wenn Ontologie Parsen, es löst eine Fehlermeldung bei „Datentyp-Eigenschaften“, wo ein Typ deklariert und einige Werte angegeben. Ich habe meine Ontologie mit Protege v3.4 geschrieben.

Zum Beispiel, einer der Datentypen Eigenschaften, die Fehler auslöst, ist „Sprache“ mit dem Typ „String“ und Werten wie „Englisch & Farsi“. Die Referenzen sind unten, hergestellt von Protege aufgeführt:

<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#">

Und die Eigenschaft "Language" wird erwähnt unter:

<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>

Ich füge nur eine Ontologie zu OWLGrinder. Dieser Fehler wird bei der Generierung von:

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?

Die Zahl vor „_: bnode“ ändert sich jedes Mal, wenn ich die Schaltfläche „Generieren“ drücken. Durch die Werte von „Sprache“ Eigenschaft zu löschen, geschieht ein weiterer Fehler im Zusammenhang mit der nächsten Datatype-Eigenschaft. Es bedeutet, dass jede Datatype-Eigenschaft, die definiert ist (und hat einige ihm angegebenen Werte) Fehler in OWLGrinder macht.

Ich frage mich, wenn mich jemand in handeling diesen Fehler führen könnte.

War es hilfreich?

Lösung

Zur Zeit ROWLEX OwlGrinder erwartet, dass der Bereich ein wörtlichen oder eine reguläre Klasse. Ich empfehle eine ‚Language‘ Wrapper-Klasse zu erstellen, die Ihre Aufzählung innerhalb enthält zuweisen, dass als Bereich an. Ich habe das nicht testen, aber ich erwarte, dass es zu arbeiten.

Andere Tipps

Ich bin nicht vertraut mit OWLGrinder, aber man kann versuchen, eine benannte Klasse wie ExpectedLanguages (gibt Sie Ihren anonymen Knoten eine URI) deklariert und dann verwenden, die als Bereich für Ihr language Prädikat. Eine gekürzte (in Turtle -Format):

:ExpectedLanguages
    a owl:DataRange ;
    owl:oneOf (
        "Farsi"^^xsd:string
        "English"^^xsd:string
    );
.

:languages
    rdfs:range :ExpectedLanguages ;
.

Ihre Nutzung der OWL aufgezählt Datentyp , dass Ihr Code erfordert / Parser / reasoner sein OWL-DL-konform auf ein Minimum reduziert.

Der Grund der _:bnodeXXX (leerer Knoten / anonyme Knoten) hat eine neue ID jedes Mal, weil es leer ist. Jedoch für die Zwecke den sie innerhalb eines RDF Graph (Modell) im Speicher zu identifizieren, muss eine ID für jeden anonymen Knoten erzeugt werden, wenn es geladen werden so während das Modell jeden Knoten (anonym oder benannt) analysiert wird, eindeutig identifiziert werden kann so seine eingehenden und ausgehende Referenzen identifiziert werden.

Intellidimension stellt ein SDK, das OWL-Lite, OWL-Full umwandeln kann, oder OWL-DL .NET-Klassen. Vielleicht haben Sie einen Blick auf das nehmen.

Nebenbei bemerkt
Ich denke, dass Sie in Ihrer Ontologie die Semantik der Domäne sind verwirrend. Es scheint, dass Sie versuchen, zu sagen, dass „Sprache nur auf Lehrer, ClassOfCourse, LearningResource, Gespräch, Studenten existiert“, wenn in der Tat Sie sagen: „Wenn die Sprache verwendet wird, eine Instanz zu beschreiben, die Instanz abgeleitet werden kann der unionOf Lehrer zu sein , ClassOfCourse, LearningResource, Diskussion und Schüler. ". Dies ist eine häufige Fehlinterpretation der Semantik von OWL wie es sich anfühlt, Domäne soll eine Eigenschaft verwenden, wenn in der Tat werden zu beschränken, die nicht immer die Funktion des OWL (Schema / Validierung) ist. OWL wird nur verwendet, zu beschreiben, was durch die Nutzung geschlossen werden soll, ist es nicht Nutzung vorschreiben.

Domain Semantik in OWL Guide beschrieben.

Durch die Verwendung von unionOf in der Domäne der Spracheigenschaft Sie sagen, dass „Alles, was die Spracheigenschaft beschrieben verwendet ein Lehrer ist, oder ein ClassOfCourse oder ein LearningResource oder ein Gespräch, oder ein Student“. Ich würde argumentieren, dass diese Regel nicht sinnvoll ist.

unionOf semantische in OWL Guide beschrieben.

Der Bereich ist, dass ähnlich, wenn Sie die Reichweite einer Eigenschaft definieren einen bestimmten Typen zu sein, als es, dass alle Literale abgeleitet werden kann / Ressourcen, die von dieser Eigenschaft bezeichnet werden von der Art sind, mit der Bereich Erklärung definiert.

Bereich beschrieben in OWL Führung.

Ich habe Kopieren / Einfügen Ihrer Ontologie in http://www.mygrid.org. uk / OWL / Validator : es sagt, dass diese Ontologie (zumindest) ist kein OWL-lite Ontologie. Es kann ein Problem für Ihre Protege config?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top