1

ドメイン分類と用語に関する情報を推測するためにオントロジーを構築しようとしていますが、概念的な問題が発生しています。

問題を説明しましょう。Protègè 4.1 では、Thing の 6 つのサブクラス、Concept、conceptTitle、ConceptSynonym (分類用) および Term、TermTitle、TermSynonym (用語用) を作成しました。また、hasConceptTitle、hasConceptSynonym、hasTermTitle、および hasTermSynonym オブジェクトの関係を作成し (いくつかの制約付きで)、すべてのコンセプトには 1 つ (1 つだけ) のタイトルがあり、いくつかのシノニムを持つことができ、すべての用語には 1 つ (1 つだけ) のタイトルがあり、いくつかの同義語。Concept と Term には別の関係 isA があり、分類に DAG/ツリー構造を与えますが、Terminology には格子構造があります (つまり、用語は複数の用語のサブクラスである可能性があります)。

ここで問題が発生します: 概念のサブクラスを作成したいと思います (たとえば、「MappedConcept」としましょう)。これは、マップされた概念のセットである必要があります。これは、用語のタイトルに等しいタイトルを持つ概念のセットです。シノニムが用語のタイトルと等しいか、用語のシノニムと等しいシノニムを持っています。一次論理では、このセットは次のように表現できます。

∀x∃y( ∃z((hasConceptTitle(x,z) ∧ hasTermTitle(y,z)) ∨
      ∃z((hasConceptTitle(x,z) ∧ hasTermSynonym(y,z)) ∨
      ∃z((hasConceptSynonym(x,z) ∧ hasTermTitle(y,z)) ∨
      ∃z((hasConceptSynonym(x,z) ∧ hasTermSynonym(y,z)) )

どうすればこれを入手できますか? 「ConceptTitle」、「ConceptSynonym」、「TermTitle」、および「TermSynonym」のデータ プロパティを定義していますか? そして、文字列の一致をどのように説明しますか? たぶん、これらの 4 つのクラスは、Concept クラスと Term クラスの単なるデータ プロパティである必要がありますか? マシュー・ホリッジの実践ガイドを何度か読みましたが、頭に浮かんだ実践的なアイデアを Protègè の腫瘍学にまとめることはできませんでした。

前もって感謝します。

4

1 に答える 1

2

OWL 2 DLでも、OWL 2 DLのエディターであるProtégéでも、これを行うことはできません。私が知る限り、データ型プロパティの逆を導入する必要があるようです。これは、 OWL2DL。ただし、OWL Fullでは可能であり、一部のDL推論システムはそれに対処できる場合もあります。ここで、タートルで:

<MappedConcept>  a  owl:Class;
    owl:equivalentTo  [
        a  owl:Class;
        owl:unionOf (
            [
                a  owl:Restriction;
                owl:onProperty  <hasConceptTitle>;
                owl:someValuesFrom  [
                    a  owl:Restriction;
                    owl:onProperty  [ owl:inverseOf <hasTermTitle> ];
                    owl:someValuesFrom  <Term>
                ]
            ] [
                a  owl:Restriction;
                owl:onProperty  <hasConceptTitle>;
                owl:someValuesFrom  [
                    a  owl:Restriction;
                    owl:onProperty  [ owl:inverseOf <hasTermSynonym> ];
                    owl:someValuesFrom  <Term>
                ]
            ] [
                a  owl:Restriction;
                owl:onProperty  <hasConceptSynonym>;
                owl:someValuesFrom  [
                    a  owl:Restriction;
                    owl:onProperty  [ owl:inverseOf <hasTermSynonym> ];
                    owl:someValuesFrom  <Term>
                ]
            ] [
                a  owl:Restriction;
                owl:onProperty  <hasConceptSynonym>;
                owl:someValuesFrom  [
                    a  owl:Restriction;
                    owl:onProperty  [ owl:inverseOf <hasTermTitle> ];
                    owl:someValuesFrom  <Term>
                ]
            ]
        )
    ] .

たとえば、ルール言語を使用して、OWLなしでそれを行うこともできます。ルールは、プログラミング言語でそれを行う方法に近くなります。SWRLの場合:

hasConceptTitle(?x,?z), hasTermTitle(?y,?z) -> MappedConcept(?x)
hasConceptTitle(?x,?z), hasTermSynonym(?y,?z) -> MappedConcept(?x)
hasConceptSynonym(?x,?z), hasTermTitle(?y,?z) -> MappedConcept(?x)
hasConceptSynonym(?x,?z), hasTermSynonym(?y,?z) -> MappedConcept(?x)
于 2012-12-21T08:39:07.247 に答える