0

参照コード全体: https://github.com/jottinger/ontology

私はオントロジーを作成し、それを設定しています (正しいと思います)。構造はありますが、まだ検証していません。

ただし、宣言が表示されることを期待し続けており、なぜ欠落しているのかわかりません。プレフィックスマネージャーと関係があると思います(すべての要素が名前空間によって完全に修飾されているため) が、名前空間を登録できるように新しいプレフィックスマネージャーをインスタンス化する方法がわかりません。

サブクラスの関係を追加するコードは次のとおりです。

val clazz = getOntClass(node.name)

val parent = getOntClass(data(node.p).name)
val hasClazz = getOntObjectProperty("has" + node.name)
val hasClazzSomeClazz = df.getOWLObjectSomeValuesFrom(hasClazz, clazz)

val hasParent = getOntObjectProperty("has" + data(node.p).name)
val hasParentSomeParent = df.getOWLObjectSomeValuesFrom(hasParent, parent)
m.applyChanges(List(
  new AddAxiom(o, df.getOWLDeclarationAxiom(clazz)),
  new AddAxiom(o, df.getOWLDeclarationAxiom(clazz)),
  new AddAxiom(o, df.getOWLDeclarationAxiom(parent)),
  new AddAxiom(o, df.getOWLSubClassOfAxiom(clazz, parent)),
  new AddAxiom(o, df.getOWLDeclarationAxiom(hasClazz)),
  new AddAxiom(o, df.getOWLSubClassOfAxiom(parent, hasClazzSomeClazz)),
  new AddAxiom(o, df.getOWLDeclarationAxiom(parent)),
  new AddAxiom(o, df.getOWLDeclarationAxiom(hasParent)),
  new AddAxiom(o, df.getOWLSubObjectPropertyOfAxiom(hasClazz, hasParent))
))

これは有効な構造であると想定しています。(このプロジェクトの一部は、オントロジーがどのように機能するかを学ぶことです。) しかし、宣言を表示する方法がわかりません。このオントロジーは、その情報を必要とする別のプロセスへの入力として使用されます。

4

1 に答える 1

1

複数回宣言する必要はありません。これらの宣言はまったく同じです。それに加えて、あなたのコードは正しいようです (私はここで OWL API の観点から話しています。私は Scala コードの正確性を判断するのに十分なほど Scala を知りません)。

于 2015-01-12T16:42:39.220 に答える