1

私は2人の個人AとBを使用してリンクしようとしています

      B.setSameAs(A) OR A.setSameAs(B)

AにはプロパティhasOne、hasTwoがあります

BにはhasThreeというプロパティがあります

そして、BのプロパティがAのプロパティとして推測できることを望んでいます。残念ながら、Aのプロパティをリストすると、hasThreeが表示されません。

これが私の設定です:

      OntModel onto = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_MICRO_RULE_INF, null);

      String NAMESPACE1 = "http://mynamespace.one#";
      String NAMESPACE2 = "http://mynamespace.two#";

      OntClass myClass = onto.createClass(NAMESPACE1 + "MyClass");

      Individual a = onto.createIndividual(NAMESPACE1 + "A", myClass);
      Individual b = onto.createIndividual(NAMESPACE2 + "B", myClass);

注:Bに別の名前空間を使用して別のアドレスをシミュレートしましたが、この設定では同じクラスタイプを使用しています

      OntProperty one = onto.createOntProperty(NAMESPACE1 + "hasOne");
      OntProperty two = onto.createOntProperty(NAMESPACE1 + "hasTwo");
      OntProperty three = onto.createOntProperty(NAMESPACE2 + "hasThree");

注:hasThreeプロパティはBと同じアドレスにあります

      a.setLiteral(one, true);
      a.setLiteral(two, true);
      b.setLiteral(three, true);

      a.setSameAs(b);          //THIS results in the RDF entry for A to have a line <owl:sameAs rdf:resource:"http://mynamespace.two#B" />
      //b.setSameAs(a);          //I TRIED using this too, but it didn't work either

      // IN HERE I JUST SET AN ITERATOR TO SHOW ALL OF THE PROPERTIES OF A
      // UNFORTUNATELY, hasThree DOESN'T SHOW UP UNDER THE PROPERTIES OF A

私は私を悩ませているものを箇条書きにしました。

  1. Aのすべてのプロパティを一覧表示しようとすると、hasThreeが表示されません。
  2. MyClassのすべての個人を一覧表示すると、AとBの両方が表示されます。A=BとB= Aであるため、これは正しい結果ではないと思います。したがって、1つの個人のみを表示する必要があります。
4

1 に答える 1

4

サポートする推論プロファイルを使用していませんowl:sameAs

イエナのドキュメントOWL推論には、さまざまな推論プロファイルのOWLカバレッジを一覧表示する表があります。

の行owl:sameAsは次のように述べています。

owl:sameAs, owl:differentFrom, owl:distinctMembers  | full, mini  | owl:distinctMembers is currently translated into a quadratic set of owl:differentFrom assertions.

したがって、希望する動作を得るには、フル/ミニOWL推論機能を使用する必要があります。コードは、マイクロ推論機能を使用していることを示しています。

代わりに使用するようにコードを変更するとOntModelSpec.OWL_MEM_MINI_RULE_INF、問題が解決するはずです。

于 2012-10-24T20:10:16.740 に答える