Je rencontre un problème avec SPARQL lorsque je traite des types de données numériques.Propriétés numériques renvoyées en tant que chaîne par SPARQL
J'ai une ontologie (http://cabas.ugr.es/ontology/ugr) dans laquelle j'ai défini une paire de propriétés qui représentent le nombre d'étudiants qui sont d'un sexe particulier:
<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" .
J'ai un point final SPARQL monté sur Virtuoso (http://cabas.ugr.es:8890/sparql), dans lequel j'entre par exemple la requête suivante:
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
}
(qui correspondrait à this link)
Il retourne tous les enregistrements, mais les champs "hombres" et "mujeres" me les renvoie comme si c'était une chaîne au lieu d'une valeur numérique, par exemple il est impossible d'appliquer un filtre comme FILTER (?hombres > 500)
. Une idée de ce que je me trompe?
Par ailleurs, l'ontologie et la ressource avec les valeurs sont accessibles par ces liens:
Ontologie:
- Format de tortue:
- Format RDF/XML:
ressources:
La définition de la plage d'une propriété n'est pas suffisante. cela doit également se refléter dans les données d'instance en ajoutant le type de données à chaque littéral: ': x: hombres" 352 "' -> ': x: hombres" 352 "^^ xsd: nonNegativeInteger' – AKSW