На самом деле это то, что вы можете сделать в RDF.Для любого литерала в RDF вы можете указать тип с чем-то вроде этого (в черепахе / RDF) ...
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
:x :myDataTypeProperty "123"^^xsd:integer .
:y :myDataTypeProperty "some string"^^xsd:string .
:z :myDataTypeProperty "2004-12-06"^^xsd:date .
Тот же пример в RDF / XML
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns="http://www.foo.bar.com#">
<rdf:Description rdf:about="http://www.foo.bar.com#x">
<myDataTypeProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">123</myDataTypeProperty>
</rdf:Description>
<rdf:Description rdf:about="http://www.foo.bar.com#y">
<myDataTypeProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#string">some string</myDataTypeProperty>
</rdf:Description>
<rdf:Description rdf:about="http://www.foo.bar.com#z">
<myDataTypeProperty rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2004-12-06</myDataTypeProperty>
</rdf:Description>
</rdf:RDF>
В XMLSchema (XSD) В спецификации вы можете найти все поддерживаемые типы данных.Но убедитесь, что вы используете только те, которые указаны в SPARQL спецификации
Вы можете чеканить свои собственные типы данных, если хотите, и иметь что-то вроде:
:x :myDataTypeProperty "123"^^ns:MyClassificationScheme .
И вы можете пойти дальше и сказать, что ...
ns:MyClassificationScheme rdfs:subClassOf xsd:integer .
Когда вы запускаете SPARQL-запрос к данным, вы можете указать тип, когда вы применяете фильтры, например:
SELECT * WHERE {
?person :born ?birthDate .
FILTER ( ?birthDate > "2005-02-28"^^xsd:date ) .
}
Я надеюсь, что это ответило на ваш вопрос.
Отредактировано
Как упомянул Панзи, мой ответ шел в неправильном направлении.Я все равно оставляю это.