2

親愛なるセマンティック Web 関係者へ

私は、OWL で「除外対象」構造をどのように定義できるか自問自答しています。今のところ、私が考えることができる唯一の解決策は、disjointWith を使用することです。「除外」の意味は、コード例に示されています。House オブジェクトは、Roof、Wall、Windows、および Floor の交差点です。したがって、これらのクラスのいずれかが欠落した場合、その個人はハウスにはなりません。しかし、特定の共通部分の欠落しているクラスが true になる可能性があるため、推論者は推論をさらに進めます。一方、House クラスは Tsunami クラスと disjointWith の関係にあります。私の個人が津波クラスであるとき、私は私の個人が決してハウスクラスにならないことを直接知っています. これは、「除外者」について話すときに期待する動作です。でも、もしかしたら、これについて別の意見を持っている人もいるのでは?

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>

<!DOCTYPE rdf:RDF [
    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
]>

<rdf:RDF    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
            xmlns="http://www.almfluss.com/rdf/0.1/Ontology.owl#" 
            xmlns:owl="http://www.w3.org/2002/07/owl#">

<owl:Class rdf:about="#House">
    <owl:intersectionOf rdf:parseType="Collection">
        <rdf:Description rdf:about="#Roof"/>
        <rdf:Description rdf:about="#Wall"/>
        <rdf:Description rdf:about="#Windows"/>
        <rdf:Description rdf:about="#Floor"/>
    </owl:intersectionOf>
    <owl:disjointWith rdf:resource="#Tsunami"/>
</owl:Class>

<owl:NamedIndividual rdf:about="#instance_House">
    <rdf:type rdf:resource="#Roof"/>
    <rdf:type rdf:resource="#Wall"/>
    <rdf:type rdf:resource="#Windows"/>
    <rdf:type rdf:resource="#Floor"/>
    <rdf:type rdf:resource="#Tsunami"/>
</owl:NamedIndividual>


<owl:Class rdf:about="#Roof"/>
<owl:Class rdf:about="#Wall"/>
<owl:Class rdf:about="#Windows"/>
<owl:Class rdf:about="#Floor"/>
<owl:Class rdf:about="#Tsunami"/>

</rdf:RDF>

よろしく、 Martijn van der Plaat

4

1 に答える 1

2

正直なところ、あなたが何を求めているのかよくわかりません。しかし、あなたは OWL をまったく間違った方法で使用しようとしているように感じます。そこで、より良いモデルを作成するためのヒントをいくつか紹介します。これにより、OWL を効果的に使用する方法について理解を深めることができれば幸いです。

例のオントロジーで最も重要な問題は、意味をなさない方法でクラスとインスタンスの関係を使用することです。屋根、壁、窓、床のタイプの個体があります。これは概念的にナンセンスです。これら 4 つのことを同時に行うにはどうすればよいでしょうか。

住宅と屋根・壁・窓の関係は、一方が他方である(isA)のではなく、互いの一部であるということです。そのため、交差や素性の公理などを使用してオントロジーをモデル化しようとするのではなく、関係とプロパティの制限を使用する必要があります。

たとえば、家が少なくとも 1 つの屋根、4 つの壁、および 1 つの窓で構成されている必要があることをモデル化するには、次のようにすることができます ( OWL マンチェスター構文を使用):

Prefix: : <http://example.org/>

Class: Roof

Class: Window

Class: Wall

Class: House 
   SubClassOf: hasRoof min 1 and hasWall min 4 and hasWindow min 1

Class Tsunami
   DisjointWith: House

ObjectProperty: hasRoof
   Domain: House
   Range: Roof

ObjectProperty: hasWall
   Domain: House
   Range: Wall

ObjectProperty: hasWindow
   Domain: House
   Range: Window

Individual: myHouse
   Types: House 

Houses のクラスを、少なくとも 4 つの壁と 1 つの屋根と少なくとも 1 つの窓を持つすべてのもののサブクラスとして定義する方法に注意してください。サブクラス リレーション (equalClass リレーションではなく) を使用していることに注意してください。これは、何かが家である場合、これらのものが必要であると言いたいためです。逆のことは言いたくありません。結局のところ、4 つの壁、屋根、窓があるものの、家ではないもの (納屋、納屋、店舗など) が存在するからです。

津波に関しては、ハウスのクラスと津波のクラスが互いに素であることは事実ですが、モデル化するのに特に役立つかどうかはよくわかりません。津波と家屋とのもっと興味深い関係は、おそらく一方が他方にとって危険であるということです。

また、注意してください: これは、モデル化の可能な方法の例にすぎません。モデリングで別の選択を行うこともできます (たとえば、家と屋根、壁、窓の間の関係をモデル化するために、特定hasPartのプロパティの代わりに一般的なプロパティを使用するなど)。hasRoofhasWallhasWindow

于 2012-10-28T21:22:20.703 に答える