Преобразование огромных связанных дампов данных (RDF / XML, JSON-LD, TTL) в TSV / CSV - PullRequest
0 голосов
/ 25 июня 2019

Связанные коллекции данных обычно предоставляются в формате RDF / XML, JSON-LD или TTL.Относительно большие дампы данных кажутся довольно сложными для обработки.Каков хороший способ преобразовать файл RDF / XML в TSV триплетов связанных данных?

Я пробовал OpenRefine, который должен это обрабатывать, но файл 10 ГБ (например, персонаавторитетная информация из Немецкой национальной библиотеки ) слишком сложна для обработки на ноутбуке с приличной вычислительной мощностью.

Требуются рекомендации по программному обеспечению или, например, код Python / R для его преобразования.Спасибо!

Ответы [ 2 ]

3 голосов
/ 25 июня 2019

Попробуйте это:

Lobid GND API

http://lobid.org/gnd/api

Поддерживает OpenRefine и множество других запросов. Данные хранятся как JSON-LD (см. context ) в кластере эластичного поиска. Сервис предлагает богатый HTTP-API.

Используйте тройной магазин

Загрузка данных в тройной магазин по вашему выбору, например, rdf4j . Многие тройные магазины предоставляют своего рода сериализацию CSV. Вместе с SPARQL это стоит попробовать.

Catmandu

http://librecat.org/Catmandu/

Мощный набор данных на основе Perl, который поставляется с полезной коллекцией готовых к использованию конвейеров преобразования.

Metafacture

https://github.com/metafacture/metafacture-core/wiki

Java-Toolkit для проектирования конвейеров преобразования в Java.

0 голосов
/ 29 июня 2019

Канонические N-тройки , возможно, уже то, что вам нужно, так как это по существу формат RDF, разделенный пробелами (хотя вы не можете наивно разбивать на пробелы, поскольку вам нужно позаботиться литералов, см. ниже). Из набора данных, который вы указали, многие файлы доступны как N-Triples. Если нет, используйте инструмент разбора, например, рэппер, для преобразования в N-Triples, например.

rapper -i turtle -o ntriples rdf-file-in-turtle-format.ttl > rdf-file-in-ntriples-format.nt

Как правило, экспортеры n-троек не используют все, что разрешено в спецификации, касающейся пробелов, и используют канонические n-тройки. Следовательно, заданная строка в каноническом n-тройном файле, таком как:

<http://example.org/s> <http://example.org/p> "a literal" .

Вы можете получить CSV, заменив первый и второй пробел в строке на запятую и удалив все после и включая последний пробел. Поскольку литералы являются единственным RDF-термином, в котором разрешены пробелы, а литералы допускаются только в положении объекта, это должно работать для канонических n-троек.

Вы можете получить TSV, заменив указанные пробелы на символе табуляции. Если вы также сделаете это для последнего пробела и не удалите точку, у вас будет файл, который является как действительным n-триплетом, так и файлом TSV. Если вы используете эти позиции как разделенные позиции, вы можете работать с каноническими n-тройными файлами без преобразования в CSV / TSV.

Обратите внимание, что вам, возможно, придется иметь дело с запятыми / табуляциями в терминах RDF (например, путем экранирования), но эта проблема существует в любом решении для RDF, например CSV / TSV.

...