サンディエゴのショルダー:
私は特に、クラスからオブジェクトのプロパティを取得しようとしている:私はクラスが他のクラス(スクリーンショットで見ることができ用いた構築物)の一部である場合を理解しようとしています。
私はすでに使用しようとしたOWL-APIの機能をgetObjectPropertiesInSignature()
上OWLClass
のオブジェクト(オブジェクトは「E」です)。
//display delle object property
Set<OWLObjectProperty> proprietà = e.getObjectPropertiesInSignature();
System.out.println("Object Property:");
if(proprietà.isEmpty()) {
System.out.println("\tQuesta classe non ha object property");
}
else {
for(OWLObjectProperty prop : proprietà) {
System.out.println("\t"+ prop);
}
}
スニペットの出力ですQuesta classe non ha object property
:関数が空のセットを返しますが、この場合、1つのオブジェクトのプロパティで設定を返す必要がありますので、パートのObjectプロパティを。
イグナチオ:
あなたが見つけることを試みていることはクラスが(クラスはOWLでのオブジェクトのプロパティを「持って」いない)オブジェクトのプロパティのドメインに含まれているかどうか、またはクラスは、制限のサブクラスであるかどうかです。クラスオブジェクトのシグネチャは、クラス表現があなたの例のように、プロパティ、例えば修飾カーディナリティー制限または実存制限を言及する場合にのみ、オブジェクトのプロパティを含みます。
クラスが用途があること、スーパークラスがあるかどうかを確認するためにpartOf
、あなたのサブクラス公理の右側を表すクラス式を作成し、そのサブクラスを求めることができます。
OWLDataFactory df = ...
OWLClassExpression c = df.getOWLObjectSomeValuesFrom(partOf, car);
NodeSet subClasses = hermit.getSubClasses(c, false);
単語の一部のドメイン内のクラスについては、ドメイン表現の交点のサブクラスを探す必要があります:
OWLClassExpression domain = df.getOWLObjectIntersectionOf(ontology.objectPropertyDomainAxioms(partOf));
NodeSet subClassesInDomain = hermit.getSubClasses(domain, false);