大学のプロジェクトで 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
私はここで何か間違ったことをしていると思います。