2017-04-26 8 views
0

一般的なオントロジーエディタで「Rhizomik」MPEG7オントロジーをインポートする際に重大な問題があります。主に私はProtegeで働く傾向があります。 インポートallwaysは、いくつかの100のエラーにつながります。私はそれらのいくつかを修正した。残りの1つは次のクラスに接続されているようです: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> 

誰かがこのクラスを論理的なエラーでチェックする立場ですか?

種類について、

パトリック
+0

を数えるとなりあなたは見ている - 少なくともいくつか。そうでなければ、助けを与えることは非常に困難です。 – Ignazio

+0

こんにちは、Protegeは、「ErrorXXX」クラスを生成し、それ以上の情報は含まれていません。私はそれらの1つをxml抜粋の上にトレースすることができました。クラス内のlogcalエラーを誰かが見ることができるようにしたいと考えました。 –

+0

ErrorXXXは、OWLの構文自体に問題があることを示しています。解析中にOWLAPIからいくつかのログメッセージを取得する必要があります。 – Ignazio

答えて

0

問題が公理の構成です。 subClassOf公理はクラスの使用法に組み込まれているように見えますが、rdfs:subClassOfトークンはそれらの位置では使用できません(認識されたマッピングについてはhttps://www.w3.org/TR/owl2-mapping-to-rdf/を参照)。

例えば、ERROR1 URLは、この公理を参照:

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

対応するXMLは次のとおりです。

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

ここでの意図は明確であるが、匿名クラスが交差点であることを意図しています - 有効なOWL構文ではないネストされたサブクラスの公理として作成されるため、そのように解析することはできません。

上記のサンプルはこれに変更されます。

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

解析された公理は

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

私はエラーを入力してくださいファイルで約175同様の問題...

+0

ありがとうIgnazio。それは、地獄が起こっていることを理解するのを助けました。私は一方でオントロジーの著者に連絡した。彼はこれを自分で修正しようとしています。自分のプロジェクトでは、別のマルチメディア・オントロジーに切り替えました。おかげさまで、ありがとうございました。 –

関連する問題