Sparql — проблема с сортировкой по алфавиту

Я использую AllegroGraph и Sparql для запроса результатов. Я пытаюсь сортировать в алфавитном порядке, но Sparql отдает предпочтение верхнему регистру. Ниже приведены аналогичные данные и запрос, который напоминает мою проблему.

Данные:

<http://mydomain.com/person1> <http://mydomain.com/name> "John"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral>
<http://mydomain.com/person1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://mydomain.com/person>

<http://mydomain.com/person2> <http://mydomain.com/name> "Abraham"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral>
<http://mydomain.com/person2> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://mydomain.com/person>    

<http://mydomain.com/person3> <http://mydomain.com/name> "edward"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral>
<http://mydomain.com/person3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://mydomain.com/person>

Я пытаюсь отсортировать по именам в алфавитном порядке, поэтому результатом должен быть Авраам, Эдуард, а затем Джон. Но в результате Авраам, Джон, а затем Эдвард, так как Эдуард начинает с меньшего регистра. Пожалуйста, дайте мне знать, как этого добиться.

Запрос:

select ?person ?name where
{
  ?person <http://mydomain.com/name> ?name.
  ?person <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://mydomain.com/person>.
  } order by asc(str(?name))

person John Jai    schedule 18.04.2013    source источник


Ответы (1)


SPARQL 1.1: order by asc(UCASE(str(?name)))

person AndyS    schedule 18.04.2013