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