私はセマンティック Web の概念は初めてで、セマンティック Web に基づいた卒業証書を持っています。私の OWL オントロジーでは、次の方法で個体を定義しました。
<Announce rdf:ID="Ann1" ...>
<...>
<...>
<requiredTechnologies>
<Technology rdfs:resource="tech1"/>
</requiredTechnologies>
<requiredTechnologies>
<Technology rdfs:resource="tech2"/>
</requiredTechnologies>
</Announce>
...
基本的には、ある個人に対して一度しか現れない特性もありますが、「必要な技術」という特性は、1つのレコード(個人に対して)で複数回使用することができます。したがって、SPARQL クエリを実行してすべてのデータを選択すると (Jena を使用)、次の出力が得られます。
=====================================
| "Ann1" | ... | ... | "tech1" |
| "Ann1" | ... | ... | "tech2" |
| "Ann2" | ... | ... | "tech3" |
| "Ann3" | ... | ... | "tech4" |
| "Ann3" | ... | ... | "tech5" |
| "Ann3" | ... | ... | "tech6" |
| ... | ... | ... | ... |
=====================================
複数の「requiredTechnologies」属性が存在するレコードが複数回表示されます。私の質問は、特定の個人に属するすべてのテクノロジーを 1 行で取得する方法です (次のようなものです)。
===================================================
| "Ann1" | ... | ... | "tech1, tech2" |
| "Ann2" | ... | ... | "tech2" |
| "Ann3" | ... | ... | "tech4, tech5, tech6" |
| ... | ... | ... | ... |
===================================================
SPARQL でリスト内の複数の属性を取得する方法はありますか? または他の回避策はありますか?