Ответ 1
Самый простой способ загрузки dbpedia в Neo4j - использовать библиотеку dbpedia4neo. Это Java-библиотека, но вам не нужно знать ни одну Java, потому что все, что вам нужно сделать, это запустить исполняемый файл.
Вы можете переписать это в JRuby, если хотите, но обычный Ruby не будет работать, потому что он полагается на Blueprints, библиотеку Java без эквивалента Ruby.
Вот два ключевых файла, которые обеспечивают процедуру загрузки.
- https://github.com/oleiade/dbpedia4neo/blob/master/src/main/java/org/acaro/dbpedia4neo/inserter/DBpediaLoader.java
- https://github.com/oleiade/dbpedia4neo/blob/master/src/main/java/org/acaro/dbpedia4neo/inserter/TripleHandler.java
Ниже приведено описание .
Blueprints преобразует данные RDF в представление графика. Чтобы понять, что происходит под капотом, см. Очертание паруса Blueprints:
После загрузки файлов дампа dbpedia вы сможете создать библиотеку Java dbpedia4neo и запустить ее без изменения кода Java,
Во-первых, клонируйте вилку oleiade репозитория GitHub и перейдите в каталог dbpedia4neo
:
$ git clone https://github.com/oleiade/dbpedia4neo.git
$ cd dbpedia4neo
(Формы Oleiade включают небольшое обновление Blueprints, которое делает sail.initialize();
См. https://groups.google.com/d/msg/gremlin-users/lfpNcOwZ49Y/WI91ae-UzKQJ).
Перед его созданием вам нужно будет обновить pom.xml
, чтобы использовать более современные версии Blueprints и текущий репозиторий Blueprints (сонатный тип).
Чтобы сделать это, откройте pom.xml
и в верхней части раздела dependencies
, измените все версии TinkerPop Blueprints с 0.6
на 0.9
.
Пока вы находитесь в файле, добавьте репозиторий Sonatype в раздел repositories
в конце файла:
<repository>
<id>sonatype-nexus-snapshots</id>
<name>Sonatype Nexus Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/releases</url>
</repository>
Сохраните файл, а затем создайте его с помощью maven:
$ mvn clean install
Это приведет к загрузке и установке всех зависимостей для вас и созданию файла jar в каталоге target
.
Чтобы загрузить dbpedia, используйте maven для запуска исполняемого файла:
$ mvn exec:java \
-Dexec.mainClass=org.acaro.dbpedia4neo.inserter.DBpediaLoader \
-Dexec.args="/path/to/dbpedia-dump.nt"
Дамп dbpedia большой, поэтому для загрузки потребуется некоторое время.
Теперь, когда данные загружены, вы можете получить доступ к графику одним из двух способов:
- Используйте API JRuby и Blueprints-Neo4j напрямую.
- Используйте обычный Ruby и Rexster сервер REST, который похож на сервер Neo4j, за исключением того, что он поддерживает несколько графических баз данных.
Пример того, как создать клиент Rexster, см. в статье Лампочки, фреймворк Python, который я написал, который поддерживает как Neo4j Server, так и Rexster.
- http://bulbflow.com/
- https://github.com/espeed/bulbs
- https://github.com/espeed/bulbs/tree/master/bulbs/rexster
Другим подходом ко всему этому будет обработка dump файла dbpedia RDF в Ruby, запись узлов и отношений в файл CSV и использование Neo4j импортер партии для загрузки. Но это потребует, чтобы вы вручную переводили данные RDF в отношения Neo4j.