Какой самый быстрый способ поместить данные RDF (в частности, дампы DBPedia) в Postgres?

Я хочу поместить данные RDF из файлов DBPedia Turtle (.ttl) в Postgres. Мне все равно, как данные моделируются в Postgres, если это полное отображение (также было бы неплохо, если бы были разумные индексы), я просто хочу получить данные в Postgres, а затем я могу преобразовать их с помощью SQL оттуда.

Я пытался использовать это решение StackOverflow, использующее Python и sqlalchemy, но оно оказалось слишком медленным (если не больше в темпе, который я наблюдал на своей машине).

Я ожидал, что для этого типа соединения может существовать какой-то инструмент уровня ODBC/JDBC. Я сделал то же самое с Neo4j менее чем за час с помощью подключаемого модуля Neo4j.

Спасибо всем, кто может оказать помощь.


person Sebastian Kazenbroot-Guppy    schedule 30.06.2021    source источник
comment
какую схему вы используете для троек? Всего одна таблица со столбцами s, p, o? Я имею в виду, как насчет типов данных? вас волнует, что это все столбцы string/varchar? действительно, это может быть быстро, если вы конвертируете его в CSV, а затем используете массовый импортер Postgres, но все еще неясно, как вы правильно обрабатываете разные типы данных.   -  person UninformedUser    schedule 01.07.2021
comment
@UninformedUser В Neo4j нетривиальные типы данных хранились в виде строк с отдельным атрибутом с именем типа данных. Мне и здесь этого хватило бы. Итак, я полагаю, s, s_type, p, o, o_type. Вы предлагаете решение в рамках своего вопроса, которое заключается в сначала записывать ответы SparQL в CSV, а затем загружать этот CSV, используя что-то вроде pgcsv. Это может сработать. Я до сих пор удивляюсь, что чего-то более прямого уже не существует.   -  person Sebastian Kazenbroot-Guppy    schedule 03.07.2021
comment
взгляните на neo4j.com/labs/neosemantics   -  person Tomaž Bratanič    schedule 05.07.2021
comment
@Tomaž Bratanič Я связал это в OP - возможно, просмотр исходного кода может помочь, но я хочу чего-то более простого, чем написание полностью индивидуального решения.   -  person Sebastian Kazenbroot-Guppy    schedule 10.07.2021