仙人とJavaでオントロジーからオブジェクトのプロパティを取得する方法がわかりません

サンディエゴのショルダー:

私は特に、クラスからオブジェクトのプロパティを取得しようとしている:私はクラスが他のクラス(スクリーンショットで見ることができ用いた構築物)の一部である場合を理解しようとしています。

私はすでに使用しようとした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);

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=211616&siteId=1