У меня есть вопрос по OWL и SPARQL, который я не могу решить. Я определил несколько классов, но для рассматриваемого вопроса важны только 3: Люди, мужчины и женщины; и его определения будут следующими:
<#People> a owl:Class ;
rdfs:label "People"@en .
<#Men> a owl:Class ;
rdfs:subClassOf <#People> ;
rdfs:label "Men"@en .
<#Women> a owl:Class ;
rdfs:subClassOf <#People> ;
rdfs:label "Women"@en .
А затем данные в RDF, например:
<rdf:Description rdf:about="Registration#1">
<rdfs:label>ARCHEOLOGY GRADUATE</rdfs:label>
<ex:BranchKnowledge>ARTS AND HUMANITIES</ex:BranchKnowledge>
<ex:Degree>ARCHEOLOGY GRADUATE</ex:Degree>
<ex:Men rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">63</ex:Men>
<ex:Women rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">99</ex:Women>
<dcterms:coverage>2015/2016</dcterms:coverage>
</rdf:Description>
Если бы я хотел получить количество мужчин и женщин для каждого набора данных, я получил бы его с помощью следующего запроса:
SELECT ?X ?degree ?branch ?men ?women
WHERE {
?X ex:Degree ?degree .
?X ex:BranchKnowledge ?branch .
?X ex:Men ?men .
?X ex:Women ?women
}
Если теперь я хочу получить общее количество мужчин и женщин, делающих вывод, что оба являются людьми, я подумал, что, поскольку оба являются подклассами людей, я мог бы сделать следующий запрос:
SELECT ?X ?degree ?branch ?people
WHERE {
?X ex:Degree ?degree .
?X ex:BranchKnowledge ?branch .
?X ex:People ?people
}
Однако я не получаю никаких результатов.
Я неправильно истолковал отношения между классами и подклассами для того, что я хочу сделать, или в чем может быть проблема? (Я работаю на сервере Virtuoso).
Men
иWomen
, что и классы OWL и свойства данных OWL. Я не понимаю, зачем ты это делаешь. - person UninformedUser   schedule 22.06.2017ex:People
как свойство, поэтому вам нужно будет определить, чтоex:Men
иex:Women
являются подсвойствамиex:People
. И тогда вы должны включить рассуждение в тройном хранилище, если оно поддерживается. - person UninformedUser   schedule 22.06.2017sum
. - person UninformedUser   schedule 22.06.2017