У меня есть следующая структура Объект, и у каждого Объекта есть несколько Дочерних объектов как Журнал изменений для Родительского объекта, и у каждого Журнала изменений есть Автор.
Теперь у каждого журнала изменений есть статус и метка времени. Теперь я хотел бы написать запрос SPARQL, в котором мне нужно получить список объектов, в которых я являюсь автором и обладаю определенным статусом. скажите «быть утвержденным», и это должен быть последний список изменений.
Этот запрос является тем, что я пробовал до сих пор: я пытаюсь получить сначала список изменений, затем объект, связанный с ним, после этого получить все остальные список изменений в нем и сравните последний список изменений по отметке времени и отфильтруйте его, если он больше.
select ?Object WHERE{ ?author myPrefix:userId "myuserid".
?changelog myPrefix:hasApprover ?author .
?changelog myPrefix:timestamp ?dv
FILTER( ?dv >= ?latestdate )
{
SELECT (max(?dv1) AS ?latestdate) WHERE {
?Object myPrefix:hasChangeLog ?changelog .
?Object myPrefix:hasChangeLog ?changelog1 .
?changelog1 myPrefix:timestamp ?dv1 .
}
}
?changelog myPrefix:status "To be approved" .
?Object myPrefix:hasChangeLog ?changelog .}
Что я делаю неправильно, так это то, что он сравнивает его со всеми списками изменений объектов, а не с объектным сравнением. достичь этого?