У меня проблема со SPARQL при работе с числовыми типами данных.
У меня есть онтология (http://cabas.ugr.es/ontology/ugr) в я определил пару свойств, которые представляют количество студентов определенного пола:
<http://cabas.ugr.es/ontology/ugr#hombres>
a owl:DatatypeProperty, owl:FunctionalProperty, rdf:Property ;
rdfs:label
"hombres"@es,
"men"@en ;
rdfs:comment
"Número de estudiantes hombres."@es,
"Number of male students."@en ;
rdfs:range xsd:nonNegativeInteger ;
rdfs:isDefinedBy <http://cabas.ugr.es/ontology/ugr#> ;
owl:sameAs <http://cabas.ugr.es/ontology/ugr#hombres> ;
owl:inverseOf <http://cabas.ugr.es/ontology/ugr#mujeres> ;
ns1:term_status "stable" .
<http://cabas.ugr.es/ontology/ugr#mujeres>
a owl:DatatypeProperty, owl:FunctionalProperty, rdf:Property ;
rdfs:label
"mujeres"@es,
"women"@en ;
rdfs:comment
"Número de estudiantes mujeres."@es,
"Number of female students."@en ;
rdfs:range xsd:nonNegativeInteger ;
rdfs:isDefinedBy <http://cabas.ugr.es/ontology/ugr#> ;
owl:sameAs <http://cabas.ugr.es/ontology/ugr#mujeres> ;
owl:inverseOf <http://cabas.ugr.es/ontology/ugr#hombres> ;
ns1:term_status "stable" .
У меня установлена конечная точка SPARQL на Virtuoso (http://cabas.ugr.es:8890/sparql), в котором я ввожу, например, следующий запрос:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ugr: <http://cabas.ugr.es/ontology/ugr#>
SELECT ?X ?titulacion ?rama ?hombres ?mujeres
WHERE {
?X ugr:Titulación ?titulacion .
?X ugr:RamaConocimiento ?rama .
?X ugr:hombres ?hombres .
?X ugr:mujeres ?mujeres
}
(Что соответствует эту ссылку)
Он возвращает все записи, но поля "hombres" и "mujeres" возвращают их мне, как если бы это была строка, а не числовое значение, например невозможно применить фильтр типа FILTER (?hombres > 500)
. Есть идеи, в чем я ошибаюсь?
Кстати, онтология и ресурс со значениями доступны по этим ссылкам:
Онтология:
- Turtle Format:
- RDF/XML Format:
Ресурс:
:x :hombres "352"
- ›:x :hombres "352"^^xsd:nonNegativeInteger
- person UninformedUser   schedule 19.06.2017