2017-04-26 2 views
0

Je rencontre de graves problèmes d'importation de l'ontologie "Rhizomik" MPEG7 dans tous les éditeurs d'ontologies courants. Principalement j'ai tendance à travailler avec Protege. Importer toujours conduit à plusieurs centaines d'erreurs. J'ai fixé quelques-uns d'entre eux. L'un des reste semble être connecté à la classe suivante:Problèmes d'importation d'une ontologie dans Protege

<owl:Class rdf:about="&mpeg7;SpatioTemporalLocatorType"> 
    <rdfs:subClassOf> 
     <owl:Class> 
      <owl:intersectionOf rdf:parseType="Collection"> 
       <owl:Restriction> 
        <owl:onProperty rdf:resource="&mpeg7;CoordRef"/> 
        <owl:allValuesFrom> 
         <owl:Class> 
          <rdfs:subClassOf> 
           <owl:Restriction> 
            <owl:onProperty rdf:resource="&mpeg7;ref"/> 
            <owl:allValuesFrom rdf:resource="&xsd;string"/> 
           </owl:Restriction> 
          </rdfs:subClassOf> 
          <rdfs:subClassOf> 
           <owl:Restriction> 
            <owl:onProperty rdf:resource="&mpeg7;ref"/> 
            <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality> 
           </owl:Restriction> 
          </rdfs:subClassOf> 
          <rdfs:subClassOf> 
           <owl:Restriction> 
            <owl:onProperty rdf:resource="&mpeg7;spatialRef"/> 
            <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema&mpeg7;boolean"/> 
           </owl:Restriction> 
          </rdfs:subClassOf> 
          <rdfs:subClassOf> 
           <owl:Restriction> 
            <owl:onProperty rdf:resource="&mpeg7;spatialRef"/> 
            <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality> 
           </owl:Restriction> 
          </rdfs:subClassOf> 
         </owl:Class> 
        </owl:allValuesFrom> 
       </owl:Restriction> 
       <owl:Class> 
        <owl:unionOf rdf:parseType="Collection"> 
         <owl:Restriction> 
          <owl:onProperty rdf:resource="&mpeg7;FigureTrajectory"/> 
          <owl:allValuesFrom rdf:resource="&mpeg7;FigureTrajectoryType"/> 
         </owl:Restriction> 
         <owl:Restriction> 
          <owl:onProperty rdf:resource="&mpeg7;ParameterTrajectory"/> 
          <owl:allValuesFrom rdf:resource="&mpeg7;ParameterTrajectoryType"/> 
         </owl:Restriction> 
         <owl:Restriction> 
          <owl:onProperty rdf:resource="&mpeg7;MediaTime"/> 
          <owl:allValuesFrom rdf:resource="&mpeg7;MediaTimeType"/> 
         </owl:Restriction> 
        </owl:unionOf> 
       </owl:Class> 
      </owl:intersectionOf> 
     </owl:Class> 
    </rdfs:subClassOf> 
</owl:Class> 

Est-ce que quelqu'un en mesure de vérifier cette classe pour toute erreur logique?

Cordialement, Patrick

+0

S'il vous plaît fournir les erreurs vous voyez - au moins quelques-uns d'entre eux. Sinon, donner de l'aide est très, très difficile. – Ignazio

+0

Bonjour, Protege génère des classes "ErrorXXX" sans informations supplémentaires. J'ai été capable de tracer l'un d'entre eux au-dessus de l'extrait de xml. J'espérais que quelqu'un serait capable de voir une erreur logcal dans la classe ... –

+0

ErrorXXX indique un problème avec la syntaxe OWL elle-même. Vous devriez obtenir un message de journalisation de OWLAPI pendant l'analyse. – Ignazio

Répondre

0

Le problème est dans la construction des axiomes. Les axiomes subClassOf apparaissent intégrés dans l'utilisation des classes, mais le jeton rdfs:subClassOf n'est pas autorisé dans ces positions (voir https://www.w3.org/TR/owl2-mapping-to-rdf/ pour les mappages reconnus).

Par exemple, l'URL Error1 fait référence à cet axiome:

ObjectPropertyRange(<#Mpeg7> <http://org.semanticweb.owlapi/error#Error1>) 

Le XML correspondant est:

<owl:ObjectProperty rdf:ID="Mpeg7"> 
    <rdfs:range> 
     <owl:Class> 
      <rdfs:subClassOf rdf:resource="&mpeg7;Mpeg7Type"/> 
      <rdfs:subClassOf> 
       <owl:Class> 
        <owl:unionOf rdf:parseType="Collection"> 
         <owl:Restriction> 
          <owl:onProperty rdf:resource="#DescriptionUnit"/> 
          <owl:allValuesFrom rdf:resource="&mpeg7;Mpeg7BaseType"/> 
         </owl:Restriction> 
         <owl:Restriction> 
          <owl:onProperty rdf:resource="#Description"/> 
          <owl:allValuesFrom rdf:resource="&mpeg7;CompleteDescriptionType"/> 
         </owl:Restriction> 
        </owl:unionOf> 
       </owl:Class> 
      </rdfs:subClassOf> 
     </owl:Class> 
    </rdfs:range> 
</owl:ObjectProperty> 

Le but est ici claire, mais la classe anonyme est destiné à être une intersection - il ne peut pas être analysé en tant que tel car il est créé comme axiomes de sous-classes imbriquées, qui ne sont pas des syntaxes OWL valides.

Lorsque l'échantillon ci-dessus est changé à ceci:

<owl:ObjectProperty rdf:ID="Mpeg7"> 
    <rdfs:range> 
     <owl:Class> 
      <owl:intersectionOf rdf:parseType="Collection"> 
       <rdf:Description rdf:about="&mpeg7;Mpeg7Type"/> 
       <owl:Class> 
        <owl:unionOf rdf:parseType="Collection"> 
         <owl:Restriction> 
          <owl:onProperty rdf:resource="#DescriptionUnit"/> 
          <owl:allValuesFrom rdf:resource="&mpeg7;Mpeg7BaseType"/> 
         </owl:Restriction> 
         <owl:Restriction> 
          <owl:onProperty rdf:resource="#Description"/> 
          <owl:allValuesFrom rdf:resource="&mpeg7;CompleteDescriptionType"/> 
         </owl:Restriction> 
        </owl:unionOf> 
       </owl:Class> 
      </owl:intersectionOf> 
     </owl:Class> 
    </rdfs:range> 
</owl:ObjectProperty> 

L'axiome devient analysable

ObjectPropertyRange(<#Mpeg7> 
    ObjectIntersectionOf(
     <http://rhizomik.net/ontologies/2005/03/Mpeg7-2001.owl#Mpeg7Type> 
     ObjectUnionOf(
      ObjectAllValuesFrom(<#Description> <http://rhizomik.net/ontologies/2005/03/Mpeg7-2001.owl#CompleteDescriptionType>) 
      ObjectAllValuesFrom(<#DescriptionUnit> <http://rhizomik.net/ontologies/2005/03/Mpeg7-2001.owl#Mpeg7BaseType>) 
     ) 
    ) 
) 

je compte environ 175 problèmes similaires dans le fichier ...

+0

Merci Ignazio. Cela a beaucoup aidé à comprendre ce qui se passe. Entre-temps, j'ai contacté l'auteur de l'ontologie. Il a l'intention de régler cela par lui-même. Pour mon propre projet, je suis passé à une autre ontologie multimédia. Merci encore et passez une bonne journée. –