У меня есть файл RDF, используемый для отслеживания изменений элементов. Используя эти данные, я могу отслеживать изменения, внесенные в элемент за время его существования. После изменения конкретной информации соответствующие данные помещаются как новая ревизия. Посмотрите ..Запрос SPARQL для выбора/построения последней версии из данных RDF
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix mymeta: <http://www.mymeta.com/meta/> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
<urn:ITEMID:12345> rdf:type mymeta:item .
<urn:ITEMID:12345> mymeta:itemchange <urn:ITEMID:12345:REV-1> .
<urn:ITEMID:12345:REV-1> dc:title "Product original name"@en .
<urn:ITEMID:12345:REV-1> dc:issued "2006-12-01"@en .
<urn:ITEMID:12345:REV-1> dc:format "4 x 6 x 1 in"@en .
<urn:ITEMID:12345:REV-1> dc:extent "200"@en .
<urn:ITEMID:12345> rdf:type mymeta:item .
<urn:ITEMID:12345> mymeta:itemchange <urn:ITEMID:12345:REV-2> .
<urn:ITEMID:12345:REV-2> dc:title "Improved Product Name"@en .
<urn:ITEMID:12345:REV-2> dc:issued "2007-06-01"@en .
Согласно этим данным, произошел пересмотр пункт «2007-06-01», где только имя элемента было изменено на «Improved Наименование». Как вы можете видеть, «dc: format» и «dc: extent» отсутствуют в последней версии данных. Это необходимо, чтобы избежать миллионов дубликатов записей!
Я могу написать запрос SPARQL, который показывает мне последнюю информацию о версии продукта (REV-2: dc: title и dc: выпущен), но его отсутствующие «dc: format» и «dc: extent», которые я хочу, начиная с последней ревизии (REV-1).
Как я могу написать запрос SPARQL для этого? Любая помощь очень ценится!
в 2010 году, когда этот вопрос был задан вопрос, это было бы довольно трудно, но новые дополнения в SPARQL 1.1 (выпущена в 2013 году, но с реализации различных уровни поддержки, ведущие к этому), это на самом деле не слишком сложно, когда используются подзапросы. –