1

私はオントロジーを開発しました。次の SWRL を保護者に追加したいと思います。

Divider_intersection(?node), is_extent_of(?node, ?s), builds(?s, ?l),Segment(?s),Lane(?l),detailed_partition(?d), builds(?l, ?d)-> is_divided_at(?d, ?node)

これにより、detailed_pa​​rtition (?d) からの個体と、車線 (?l) を構築するセグメント (?s) の範囲である場合、divider_intersection として分類されるノードとの間に、オブジェクト プロパティ is_divided_at を追加したいと考えています。次に、詳細パーティション (?d) を構築します。ここで述べたように、私は NamedIndividuals を探しているので、SWRL がその仕事をするはずだと思います。

さらに調査したところ、可能な答えとして Rolification ( 1 , 2 , 3 ) が見つかりましたが、これまで使用したことがありませんでしたが、次のチェーンを作成しました。

r_Divider_intersection o is_extent_of o r_Segment o builds o r_Lane o builds o r_detailed_partition

それでも私は答えを得ません。何が間違っているのですか?

4

1 に答える 1

1

あなたのアプローチは機能し、オントロジーを見なければ (リンクには許可が必要であり、オフサイト リンクはとにかくあまり役​​に立ちません)、特定の構成が機能する理由を理解できません。あなたの質問から飛び出すことの 1 つは、is_divided_atプロパティの引数(?d,?node)が、プロパティ チェーンの公理が生成するものとは逆の順序になっているように見えることです。とにかく、ここに実用的な例があります。

プロテジのスクリーンショット

@prefix :      <urn:ex:#> .
@prefix ex:    <urn:ex:#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .

ex:isDividedAt  a               owl:ObjectProperty ;
        owl:propertyChainAxiom  ( ex:_DividerIntersection ex:isExtentOf ex:_Segment ex:builds ex:_Lane ex:builds ex:_DetailedPartition ) .

ex:Segment  a                owl:Class ;
        owl:equivalentClass  [ a               owl:Restriction ;
                               owl:hasSelf     true ;
                               owl:onProperty  ex:_Segment
                             ] .

ex:_DetailedPartition
        a       owl:ObjectProperty .

ex:DividerIntersection
        a                    owl:Class ;
        owl:equivalentClass  [ a               owl:Restriction ;
                               owl:hasSelf     true ;
                               owl:onProperty  ex:_DividerIntersection
                             ] .

ex:_Segment  a  owl:ObjectProperty .

ex:_Lane  a     owl:ObjectProperty .

ex:builds  a    owl:ObjectProperty .

ex:dividerIntersection0
        a              owl:NamedIndividual , ex:DividerIntersection ;
        ex:isExtentOf  ex:segment0 .

<urn:ex:>  a    owl:Ontology .

ex:detailedPartition0
        a       owl:NamedIndividual , ex:DetailedPartition .

ex:_DividerIntersection
        a       owl:ObjectProperty .

ex:segment0  a     owl:NamedIndividual , ex:Segment ;
        ex:builds  ex:lane0 .

ex:DetailedPartition  a      owl:Class ;
        owl:equivalentClass  [ a               owl:Restriction ;
                               owl:hasSelf     true ;
                               owl:onProperty  ex:_DetailedPartition
                             ] .

ex:isExtentOf  a  owl:ObjectProperty .

ex:lane0  a        owl:NamedIndividual , ex:Lane ;
        ex:builds  ex:detailedPartition0 .

ex:Lane  a                   owl:Class ;
        owl:equivalentClass  [ a               owl:Restriction ;
                               owl:hasSelf     true ;
                               owl:onProperty  ex:_Lane
                             ] .
于 2015-07-21T14:20:03.620 に答える