#php #rdf #store #sparql
#php #rdf #Магазин #sparql
Вопрос:
у меня есть хранилище sparql, и я хотел бы знать, как сгенерировать файл rdf из хранилища sparql с использованием ARC2 в php.
Я пытался с помощью sparql store dump(), но он возвращается обратно в виде xml. Любой анализатор, который я могу использовать для преобразования этого xml в rdf, поможет.
Комментарии:
1. Можете ли вы показать фрагмент выгруженного XML-файла? Весьма вероятно, что это RDF / XML, который является RDF
2. <sparql xmlns=» w3.org/2005/sparql-results # «> <результаты> <результат> <имя привязки=»s»> <uri> <a rel="nofollow noreferrer noopener" href="https:///abc.com/onto#c_4da6b71ea3489 abc.com/onto#c_4da6b71ea3489 </uri > </binding> <имя привязки=»p»> <uri> <a rel="nofollow noreferrer noopener" href="https:///www.w3.org/1999/02/22-rdf-syntax-ns#type w3.org/1999/02/22-rdf-syntax-ns#type </uri > </binding> <имя привязки=»o»> <uri> <a rel="nofollow noreferrer noopener" href="https:///www.w3.org/2004/02/skos/core#Concept w3.org/2004/02/skos/core#Concept </uri > </binding> <имя привязки=»g»> <uri> <a rel="nofollow noreferrer noopener" href="https:///abc.com/rdfgraph abc.com/rdfgraph </uri > </binding> </result> <результат> …. </result> </sparql>
Ответ №1:
Хорошо, итак, на выходе вы получаете XML-результаты SPARQL, которые представляют собой дамп SPOG (т. Е. на основе Quads) хранилища.
Вы должны быть в состоянии преобразовать это в тройки, а затем сериализовать их как RDF самостоятельно, но для этого потребуется немного кодирования.
Я не очень хорошо знаю PHP или ARC2, поэтому я бы посоветовал просмотреть документацию по адресуhttps://github.com/semsol/arc2/wiki или запрос в их списке рассылки по адресу http://groups.google.com/group/arc-dev
Ответ №2:
Для генерации RDF из SPARQL вы используете КОНСТРУКТИВНЫЙ запрос.
Обычный ВЫБОР выглядит следующим образом: (я пропускаю биты ПРЕФИКСА)
SELECT ?person ?email
WHERE { ?person a foaf:Person . ?person foaf:mbox ?email }
И это повторяет XML, который вы видите. Вы хотите что-то вроде:
CONSTRUCT { ?person a foaf:Person . ?person foaf:mbox ?email }
WHERE { ?person a foaf:Person . ?person foaf:mbox ?email }
Который создаст график троек из результатов в WHERE. Вы даже можете использовать это для создания троек, которых не было в конечной точке, но которые основаны на тех же данных.