相互接続された 3 つの個体 ( a、b、およびc )を持つ OWL オントロジーがあり、2 つの孤立した個体xとyもあります。
相互接続された個人:
- 少なくとも 1 つのアウトバウンド オブジェクト プロパティ アサーションを持っている。例: a hasRelationWith b ; また
- 少なくとも 1 つのインバウンド オブジェクト プロパティ アサーションを持ちます。例: b hasRelationWith c などの c。
孤立した個人:
- アウトバウンド オブジェクト プロパティ アサーションが 0 であること。と
- インバウンド オブジェクトのプロパティ アサーションがゼロ。
DL クエリを使用してすべての隔離された個人を (列挙ではなく論理的推論によって) 分類することは可能ですか? (Protégé 4.3 で違いが生じる場合)
私の直感的な推測は、(hasRelationWith min 0 Thing) exclude (hasRelationWith min 1 Thing) のようなものですが、DL-Query は Set Subtraction 構文をサポートしていないようです...
更新: 次の SPARQL は作成できますが、クラス定義内では使用できません。
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX my: <http://localhost:8080/ontology/untitled-ontology-26#>
SELECT DISTINCT ?src_obj
WHERE {
?src_obj a owl:NamedIndividual .
minus {?src_obj my:hasRelationWith ?target_obj}
minus {?target_obj my:hasRelationWith ?src_obj}
}