У меня есть экземпляр сущности онтологии в RDF / XML, подобный этому:
<owl:NamedIndividual rdf:about="http://example.org#x1">
<rdf:type rdf:resource="http://example.org/Example"/>
<ex:amount rdf:datatype="http://www.w3.org/2001/XMLSchema#float">uuid-v4</ex:amount>
<rdfs:label xml:lang="en">An example instance</rdfs:label>
</owl:NamedIndividual>
Мне нужно выбрать этот экземпляр, учитывая только его значение <ex:amount>
, которое в данном случае является строкой.Мой запрос SPARQL выглядит следующим образом:
SELECT * WHERE {
?s ?p "uuid-v4" .
}
Как видите, указанное значение "uuid-v4"
является строкой, но тип данных свойства <ex:amount>
равен float
.
Вопросы:
- Почему результат пуст?Это из-за несовпадающих типов данных?
- Что я должен сделать, чтобы этот запрос работал?Я не могу изменить
rdf:datatype
на http://www.w3.org/2001/XMLSchema#string
.Какие есть варианты?
Похоже, что указание типа данных помогает.
SELECT * WHERE {
?s ?p "uuid-v4"^^xsd:float .
}
Но я ничего не знаю о свойстве, пока не выберу экземпляр.Единственная доступная информация - "uuid-v4"