Сортировка SPARQL заканчивается по дате

У меня есть задержка этот поиск вопроса Linq несколько orderby пунктов, и возможно это было тем, что автор искал

, Вот то, как сделать это:

var query = pets.OrderBy(pet => pet.Name).ThenByDescending(pet => pet.Age);    
7
задан cupakob 20 July 2009 в 16:27
поделиться

2 ответа

Вы можете использовать заказ по , как и в SQL. Обратите внимание, что согласно спецификации SPARQL ORDER BY применяется только к запросам SELECT . Вам нужно будет создать привязку для свойства, которое вы хотите использовать для упорядочивания.

SELECT ?s ?p ?o
WHERE {?s ?p ?o .
       ?s <creationDatePredicate> ?date . }
ORDER BY DESC(?date)
LIMIT 200

Обновление: Если вы еще не сохранили дату создания, вам нужно будет сохранить метаданные самостоятельно. Что касается того, как это сделать, у вас есть несколько вариантов:

  1. Сохраните тройку в вашем графике по умолчанию, который имеет дату создания для каждого предмета. Если вы храните более одного графика, это очень быстро станет громоздким и, вероятно, не то, что вам нужно.

  2. Сохраните каждый граф как именованный граф в вашем хранилище троек RDF. Затем вы можете сохранить метаданные о каждом графике в графе по умолчанию или в одном «общем» именованном графе для времени создания.

  3. Сохраните свои данные в именованном графе и используйте именованный граф для хранения метаданных времени создания.

An пример запроса SPARQL варианта №2:

SELECT ?s ?p ?o
WHERE {
        GRAPH ?g { ?s ?p ?o . }
        ?g <creationDatePredicate> ?date . }
ORDER BY DESC(?date)
LIMIT 200
17
ответ дан 6 December 2019 в 08:45
поделиться

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

4
ответ дан 6 December 2019 в 08:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: