2

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))
4

1 に答える 1

9

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

于 2013-04-18T20:55:29.013 に答える