1

私の質問は、スーパークラスの継承についてです。私の理解では、クラス B に属するインスタンスがある場合、クラス B のマザー クラスであるクラス A にもこれらのインスタンスがあるということです。たとえば、Car というスーパークラスと、Sedan と SUV という 2 つのサブクラスがあるとします。クラス Sedan と SUV のインスタンスは、クラス Car のインスタンスでもありますね。その場合、クラス Car のすべてのインスタンスを渡すと言ったときに、sparql クエリの戻り値が表示されません。ここで何か不足していますか?

Topbraid エディターを使用しています。

4

2 に答える 2

0

推論エンジンを実行する負担なしで SPARQL クエリのサブクラス含意が必要な場合は、標準の SPARQL プロパティ パス、具体的には推移演算子を使用できます。

SELECT *
WHERE {
   ?cls rdfs:subClassOf* :ClassA .
   ?inst a ?cls .
}

最初のトリプル パターンは、:ClassA のすべてのサブクラスをルートまで取得します。2 番目のトリプル パターンは、これらすべてのクラスのインスタンスを取得し、推論機能が実行するのと同じ包含操作を効果的に取得します。

于 2016-03-17T16:27:52.337 に答える