Domanda

Sto costruendo un assembly dal mio OWL ontologia, ma durante l'analisi dell'ontologia, solleva un messaggio di errore "proprietà tipo di dati" in cui viene dichiarata un tipo e alcuni valori sono dati. Ho scritto la mia ontologia utilizzando v3.4 Protege.

Per esempio, una delle proprietà tipo di dati che genera l'errore è "lingua" con il tipo "stringa" e valori come "inglese e farsi". I riferimenti sono elencati di seguito, fatte da 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#">

E la proprietà "Language" è menzionato di seguito:

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

Ho appena aggiungo un'ontologia a OWLGrinder. Questo errore è fatto quando genera:

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?

Il numero davanti "_: bnode" cambia ogni volta che si preme il pulsante "Generate". Eliminando i valori dalla proprietà "Language", un altro errore si verifica relativa alla prossima proprietà DataType. Ciò significa che ogni proprietà DataType che viene definito (e hanno alcuni valori indicati ad essa) sta facendo l'errore in OWLGrinder.

Mi chiedevo se qualcuno potesse guidare in handeling questo errore.

È stato utile?

Soluzione

ROWLEX OwlGrinder si aspetta che il campo di essere un letterale o una classe normale. Vi consiglio di creare un 'languageList' classe wrapper che contiene il conteggio all'interno assegno che, come un intervallo. Non ho prove, ma mi aspetto che funzioni.

Altri suggerimenti

Non ho familiarità con OWLGrinder, ma si può provare che dichiara una classe denominata come ExpectedLanguages (dare il vostro nodo anonima un URI) e quindi utilizzare tale come la gamma per il predicato language. Un esempio abbreviato (in formato tartaruga ):

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

:languages
    rdfs:range :ExpectedLanguages ;
.

L'utilizzo dei href="http://www.w3.org/TeamSubmission/turtle/" OWL tipo di dati enumerati richiede che il codice / parser / ragionatore essere OWL-DL compatibile al minimo.

Il motivo per il _:bnodeXXX (nodo vuoto / nodo anonimo) ha un nuovo ID ogni volta che è perché è vuoto. Tuttavia, ai fini dell'individuazione entro un grafico RDF (modello) nella memoria, un ID deve essere generato per ciascun nodo anonimi quando viene caricato così mentre il modello viene analizzato ogni nodo (anonima o nome) possono essere identificati univocamente così i suoi riferimenti entrata e in uscita possono essere identificati.

Intellidimension fornisce uno SDK in grado di convertire OWL-Lite, OWL-Full, o OWL-DL classi .NET. Si potrebbe voler dare un'occhiata a questo.

Nota a margine
Penso che si sta confondendo la semantica del dominio nella vostra ontologia. Sembra che si sta tentando di dire che "La lingua può esistere solo sul Maestro, ClassOfCourse, LearningResource, Scambio d'idee, Student" quando in realtà si sta dicendo "Se si usa il linguaggio per descrivere un'istanza tale istanza può essere dedotto di essere l'unionOf Maestro , ClassOfCourse, LearningResource, Discussione, e Student. ". Si tratta di un errore di interpretazione comune della semantica di OWL, come ci si sente come dominio dovrebbe essere restrizione di una proprietà usano quando in realtà che non è mai la funzione di OWL (schema / validazione). OWL è utilizzato solo per descrivere ciò che dovrebbe essere dedotto dal loro utilizzo, essa non prescrive l'utilizzo.

semantica di dominio descritto nella Guida OWL.

Utilizzando unionOf nel dominio della proprietà lingua che si stanno dicendo che "Tutto ciò che è descritto utilizzando la proprietà lingua è un insegnante, o di un ClassOfCourse, o un LearningResource, o di una discussione, o uno studente". Direi che questo non è in genere significativa.

unionOf semantica descritti nel manuale OWL.

Gamma è simile in che se si definisce la portata di una proprietà di essere di un tipo specifico di quanto si può dedurre che tutti i letterali / risorse che sono indicati da quella proprietà sono del tipo definito con la dichiarazione di gamma.

Gamma descritto nella guida di OWL.

Non ho copia / incollato il tuo ontologia in http://www.mygrid.org. uk / OWL / Validator : si dice che questa ontologia è (almeno) non un'ontologia OWL-lite. Può essere un problema per il vostro config Protege?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top