0

考えてみましょう

(1) P Domain CSuper
(2) CSub subClassOf CSuper

Jena を使用して、 の宣言されたプロパティを一覧表示しようとしていますCSub。私が信じているのはP、 の宣言されたプロパティとしてリストされてはならないということですCSub。私の正当化:Pは の宣言されたプロパティでCSubあり、は のドメインであり 、(1)はドメインでもあることを意味しないドメインです。(1) である場合は、明らかに である可能性がある(ない)ことを意味します。CSubPCSuperPCSub(x, y)PxCSuperxCSub

驚くべきは、Jena がOntModelSpec.OWL_DL_MEM_RULE_INF や Pellet を使用したメソッドを使用する場合Pの宣言されたプロパティとしてリストされていることです! 何か不足していますか?CSublistDeclaredProperties

更新: 一部のクラスの宣言されたプロパティとはどういう意味ですか? プロパティがそれらのドメインであることは、クラスを意味しますか!

4

1 に答える 1

2

あなたがしたい:

theClass.listDeclaredProperties(false);

ドキュメントから:

listDeclaredProperties()デフォルト値 direct = false で listDeclaredProperties(boolean) を呼び出すのと同じです。

direct- true の場合、返されるプロパティをこのクラスに直接関連付けられているものに制限します。false の場合、このクラスのスーパークラスのプロパティは、このクラスの宣言されたプロパティにリストされません。

宣言されたプロパティを誤解していると思います。これは、クラスが持つことができる (または持つ必要がある) プロパティを返します。クラス階層があるとします。

A > B > C

また:

P domain B

すべてBsCsプロパティを持っている可能性がありますP-そこに矛盾はありません。しかし、すべてAsがプロパティを持っている可能性があるというのは真実ではありませんP- それnot-Bsが問題です。

于 2015-03-04T11:43:08.993 に答える