2016-12-10 4 views
0

の個人用(SPARQL)クエリのスーパークラス。学生サブクラスには、3人の個人(名前プロパティ)student1、student2、student3が含まれています。スタッフのサブクラスには、2人の個人(名前のプロパティ)staff1とstaff2が含まれています。門徒:<strong>学生</strong>と<strong>スタッフ</strong>二つのサブクラスがスーパークラス<strong>人</strong>を有するサブクラス

クラスをクエリし、すべての人をスーパークラスとして取得できますか?

他にどのようにこれについて行くことができますか?特にあなたは非常に多くのサブクラスを持っていますか?

のような出力:

-----------

STUDENT1

student2

student3

staff1

STAFF2

答えて

1

あなたは:Personまたはそのサブクラスのいずれかのいずれかのメンバーであるすべてのリソースを依頼する必要があります。あなたがproperty pathを使用する場合は、あなたがあなたのクエリで唯一のトリプルパターン必要があるでしょう:

SELECT ?person 
    WHERE { ?person a/rdfs:subClassOf* :Person} 

をこのクエリは、星がゼロの場合であるクラス:Person、のメンバーであるリソースを要求、またはのメンバーであります星が1つ以上の場合のサブクラスのいずれか。

さらに必要に応じて、件名をowl:NamedIndividualに制限することができます。

+0

ありがとうございました。それは私に頭痛を与えている。/rdfs:subClassOf *について説明してください。 –

+0

SPARQL仕様のプロパティパスについて読んだら、それがまだ不明な場合は、これとは特別な関係がないので、別の質問を投稿することができます。 –

関連する問題