3

大学のプロジェクトで OWL を使い始めたところです。このプロジェクトはピザに関するもので、RDF と OWL に関してはよくある問題のようです。まず、トマトとチーズの 2 つのトッピングで構成されるピザをモデル化する必要があります。プロパティmadeofを使用してそれらを接続しました。これは、 http ://www.mygrid.org.uk/OWL/Validator で検証しようとした最小限のコード スニペットです。

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns="http://example.org/pizzeria#">

    <owl:Ontology rdf:about=""/>  

    <!-- ========================= -->



    <owl:Class rdf:ID="Topping"/>

    <Topping rdf:ID="Cheese"/>
    <Topping rdf:ID="Tomato"/>

     <owl:ObjectProperty rdf:ID="madeOf">
            <rdfs:range rdf:resource="#Topping"/>
            <rdfs:domain rdf:resource="#Pizza"/>
     </owl:ObjectProperty>

     <!-- Pizza -->
     <owl:Class rdf:ID="Pizza">
         <!-- comes with Cheese and Tomato -->
         <rdfs:subClassOf>
                 <owl:Restriction>
                     <owl:onProperty rdf:resource="#madeOf"/>
                     <owl:hasValue rdf:resource="#Tomato"/>
                 </owl:Restriction>
         </rdfs:subClassOf>
         <rdfs:subClassOf>
             <owl:Restriction>
                 <owl:onProperty rdf:resource="#madeOf"/>
                 <owl:hasValue rdf:resource="#Cheese"/>
             </owl:Restriction>
         </rdfs:subClassOf>
     </owl:Class>
 </rdf:RDF>

ただし、バリデータは次のように教えてくれます。

OWL DL
個別値:restriction(a:madeOf値(a:チーズ))
個別値:restriction(a:madeOf値(a:トマト))

OWL 完全
型なしクラス: http://example.org/pizzeria#Topping

つまり、クラスが定義されておらず (私がこれを行ったと思います...)、プロパティToppingsに何か問題があるということです。madeof私はここで何か間違ったことをしていると思います。

4

1 に答える 1

4

あなたの OWL は問題ありません。唯一の問題は、RDF の XML エンコーディングにあります。一般的に言えば、可能であれば RDF/XML を直接操作することは避けてください。Turtle は、はるかにコンパクトで読みやすい構文であり、RDF/XML よりも落とし穴が少なくなります。

したがって、空のプレフィックスの展開を定義したときに陥った落とし穴は次のとおりです。

xmlns="http://example.org/pizzeria#"

ドキュメントのベース URI を定義していません。次のようなサブジェクト リソース:

<Topping rdf:ID="Cheese"/>

デフォルトの空白のプレフィックスがあるかのように解釈されるのではなく、ベース URI に対して相対的に解釈されます。上記の段落 1 を参照してください。

修正は、ベース URI とデフォルトのプレフィックスを定義することです。

<rdf:RDF
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
 xmlns:owl="http://www.w3.org/2002/07/owl#"
 xmlns="http://example.org/pizzeria#"
 xml:base="http://example.org/pizzeria#"
>
于 2012-11-30T14:24:51.567 に答える