Как вы можете удалить тип данных схемы XML из запроса sparql? - PullRequest
6 голосов
/ 07 декабря 2009

Я выполняю запрос sparql для файла, который содержит

<User rdf:about="#RJ">
<hasName rdf:datatype="http://www.w3.org/2001/XMLSchema#string">RJ</hasName>
</User>

Я хочу вернуть только имя, т. Е. 'RJ', но когда я ввожу свой запрос

SELECT ?name
FROM <example.com> 
WHERE { 
       assign:RJ assign:hasName ?name .   
}  

где assign - правильное пространство имен, я возвращаю это:

"RJ" ^^<http://www.w3.org/2001/XMLSchema#string>

У кого-нибудь есть советы по удалению типа схемы xml для sparql noob?

спасибо заранее

1 Ответ

8 голосов
/ 08 декабря 2009

Возможность сделать это зависит от используемой вами реализации SPARQL. В SPARQL 1.0 это невозможно, однако с SPARQL 1.1 , который сейчас широко поддерживается большинством реализаций, ставших рекомендацией W3C в марте 2013 года, можно использовать Project Expressions следующим образом:

SELECT (STR(?name) AS ?StringName)
FROM <example.com>
WHERE {
    assign:RJ assign:hasName ?name
}

По сути, выражение проекта позволяет вам использовать любое допустимое выражение SPARQL, которое вы могли бы использовать в другом месте, чтобы вычислить новое значение на основе переменных, которые ранее были связаны.

...