У меня есть более 2000 ресурсов в моем тройном хранилище (GraphDB), которые я хотел бы отсортировать в порядке возрастания на основе их IRI, тогда как IRI выглядит так:
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#1
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#2
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#3
...
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#2345
На моем графике все вышеупомянутые IRI подключены к одному ресурсу через «DE6:complex_Data_Type_has_Member». Чтобы получить все вышеупомянутые IRI, я делаю следующее:
PREFIX DE6: <http://DE6/DINEN61360#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?IRIs_to_Sort WHERE{
?Array a DE6:Data_Element;
DE6:complex_Data_Type_has_Member ?IRIs_to_Sort .
} ORDER BY ?IRIs_to_Sort
Если я просто использую модификатор последовательности решения «ORDER BY ?IRIs_to_Sort», как показано в https://www.w3.org/TR/2013/REC-sparql11-query-20130321/#modOrderBy
то я получаю следующий результат (показаны только первые десять результатов):
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#1
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#10
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#100
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#1000
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#1001
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#1002
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#1003
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#1004
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#1005
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#1006
...
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#1999
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#2
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#20
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#200
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#2000
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#2001
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#2002
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#2003
...
Вместо этого я ожидал бы что-то вроде:
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#1
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#2
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#3
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#4
...
http://TABLE/240b9f63-66b9-47f1-9e02-bfd03794bbd9#2099
Что мне здесь не хватает?
#
, если все IRI следуют одной и той же схеме, затем преобразовать это в какое-то число и использовать его вORDER BY
. напримерorder by (xsd:long(strafter(str(?IRIs_to_Sort), "#")))
- person Damyan Ognyanov   schedule 28.03.2019