所以我有一个包含许多“组”的 RDF 模式,每个组都有一个“名称”,并包含许多“元素”。我需要选择每个组的名称,以及每个组的元素数量。这是一个组 RDF 模式的示例...
<Group rdf:ID="group_actinoid">
<name rdf:datatype="&xsd;string">Actinoid</name>
<element rdf:resource="#Ac"/>
<element rdf:resource="#Th"/>
<element rdf:resource="#Pa"/>
<element rdf:resource="#U"/>
<element rdf:resource="#Np"/>
<element rdf:resource="#Pu"/>
<element rdf:resource="#Am"/>
<element rdf:resource="#Cm"/>
<element rdf:resource="#Bk"/>
<element rdf:resource="#Cf"/>
<element rdf:resource="#Es"/>
<element rdf:resource="#Fm"/>
<element rdf:resource="#Md"/>
<element rdf:resource="#No"/>
</Group>
...这是我一直试图开始工作的查询...
1 PREFIX pt:<http://www.daml.org/2003/01/periodictable/PeriodicTable#>
2 PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
3 PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
4 PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>
5
6 SELECT (SAMPLE(?name) AS ?NAME) (COUNT(?elem) AS ?ELEMENTCOUNT)
7 WHERE {
8 ?group rdf:type pt:Group .
9 ?group pt:name ?name .
10 ?elem pt:element ?group .
11 }
12 GROUP BY ?group
...但我得到一个空的结果,我不确定为什么。对于 owl 文件中的每个组,我应该得到一个组名,以及该组包含的许多元素。