我在處理數字數據類型時遇到SPARQL問題。由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端點(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
}
(這與this link對應)
它返回所有記錄,但字段「hombres」和「mujeres」將它們返回給我,就好像它是一個字符串而不是數字值,因此例如不可能應用像FILTER (?hombres > 500)
這樣的過濾器。任何想法我錯了什麼?
順便說一句,本體與價值的資源是可通過這些鏈接:
本體論:
資源:
定義屬性的範圍是不夠的。這也將通過將數據類型添加到每個文字來反映在實例數據中:':x:hombres「352」' - >':x:hombres「352」^^ xsd:nonNegativeInteger' – AKSW