Question

Je suis la construction d'un ensemble de mon ontologie OWL, mais quand l'ontologie de l'analyse, il génère un message d'erreur à « propriétés » de type de données où un type est déclaré et certaines valeurs sont données. J'ai écrit mon ontologie en utilisant v3.4 Protege.

Par exemple, l'une des propriétés de type de données que génère l'erreur est « Langue » du type « chaîne » et des valeurs comme « l'anglais et persan ». Les références sont énumérées ci-dessous, faites par 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#">

Et est mentionné la propriété "Langue" ci-dessous:

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

Je viens d'ajouter une ontologie à OWLGrinder. Cette erreur est commise lors de la génération:

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?

Le nombre devant « _: bnode » change chaque fois que j'appuie sur le bouton « Générer ». En supprimant les valeurs de la propriété « Langue », une autre erreur se produit lié à la prochaine propriété DataType. Cela signifie que chaque propriété DataType qui est défini (et ont des valeurs spécifiées à elle) fait erreur dans OWLGrinder.

Je me demandais si quelqu'un pouvait me guider dans handeling cette erreur.

Était-ce utile?

La solution

À l'heure actuelle ROWLEX OwlGrinder attend la plage d'être un littéral ou une classe régulière. Je recommande de créer une classe wrapper « de languageList » qui contient votre énumération assigne à l'intérieur que comme une plage. Je n'ai pas testé, mais je ne m'y attendais pas à travailler.

Autres conseils

Je ne suis pas familier avec OWLGrinder, mais vous pouvez essayer de déclarer une classe nommée comme la ExpectedLanguages (donner votre nœud anonyme un URI) et utiliser ensuite que la plage pour votre prédicat language. Un exemple abrégé (en format OWL datatype énuméré exige que votre code / analyseur / raisonneur être OWL-DL conforme à un minimum.

La raison pour laquelle le _:bnodeXXX (noeud blanc / nœud anonyme) a un nouvel identifiant chaque fois parce qu'il est vide. Cependant, aux fins de l'identifiant dans un graphe RDF (modèle) dans la mémoire, une carte d'identité doit être généré pour chaque noeud anonyme lorsqu'il est chargé si bien que le modèle est en cours d'analyse de chaque noeud (anonyme ou nom) peut être identifié de façon unique de sorte que ses références entrantes et sortantes peuvent être identifiés.

Intellidimension fournit un SDK qui permet de convertir OWL-Lite, OWL-Full, ou OWL-DL les classes .NET. Vous voudrez peut-être jeter un coup d'oeil.

Sidenote Je pense que vous confondez la sémantique du domaine dans votre ontologie. Il semble que vous essayez de dire que « La langue ne peut exister que sur l'enseignant, ClassOfCourse, LearningResource, Discussion, étudiant » quand en fait, vous dites: « Si le langage est utilisé pour décrire une instance cette instance peut être déduit être le unionOf enseignant , ClassOfCourse, LearningResource, Discussion et étudiants ».. Ceci est une mauvaise interprétation commune de la sémantique de OWL comme il se sent comme domaine doit être restreindrait une utilisation des propriétés alors que ce n'est pas toujours la fonction de OWL (schéma / validation). OWL est utilisé uniquement pour décrire ce qui doit être déduit par l'usage, il ne prescrit pas l'utilisation.

sémantique du domaine décrit dans le guide OWL.

En utilisant unionOf dans le domaine de la propriété de la langue, vous dites que « Tout ce qui est décrit en utilisant la propriété de la langue est un enseignant ou un ClassOfCourse, ou un LearningResource, ou une discussion ou un étudiant ». Je dirais que ce n'est généralement pas significatif.

unionOf sémantique décrit dans le guide OWL.

Range est similaire en ce que si vous définissez la plage d'une propriété d'être d'un type spécifique que l'on peut déduire que tous les littéraux / ressources qui sont visées par cette propriété sont du type défini par la déclaration de gamme.

Range décrit dans le guide OWL.

J'ai copier / coller votre ontologie dans http://www.mygrid.org. Royaume-Uni / OWL / Validator : il est dit que cette ontologie est (au moins) pas ontologie OWL-lite. Il peut être un problème pour votre config Protege?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top