RDF4J Workbench Add RDF: Как добавить несколько файлов?

Я использую RDF4J Workbench 2.1.2.

System Information
Application Information
Application Name    RDF4J Workbench
Version 2.1.2
Runtime Information
Operating System    Windows 10 10.0 (amd64)
Java Runtime    Oracle Corporation Java HotSpot(TM) 64-Bit Server VM (1.8.0_111)
Process User    gwcox
Memory
Used    315 MB
Maximum 889 MB

У меня есть набор файлов RDF, содержащих онтологии, над которыми я работаю. Некоторые RDF-файлы импортируют другие. Например, мой файл онтологий /RDF экземпляров импортирует несколько онтологий, определяющих мои классы и отношения.

Файлы RDF хранятся локально, а не в URI, используемых для их идентификации. Мне часто нужно очищать свой репозиторий и перезагружать мои онтологии в процессе разработки и отладки. В настоящее время для полной функциональности необходимо загрузить полдюжины онтологий.

Как загрузить несколько онтологий, хранящихся в виде локальных файлов, в мой активный репозиторий в рабочей среде RDF4J? Я могу использовать сам инструмент RDF4J или скрипт командной строки для загрузки. Я знаю, что могу вручную использовать команду Modify/Add из рабочей среды несколько раз, но я бы хотел сократить ее до одной команды, чтобы сэкономить время и избежать ошибок.

Благодарю.

2 ответа

Решение

Сам RDF4J Workbench не имеет функциональности для добавления нескольких файлов за один раз.

Однако, если вам нужно многократно выполнять это, простой подход - использовать консоль и написать для нее короткий пакетный скрипт. Сценарий - это просто текстовый файл с последовательными консольными командами (по одной на строку). Например:

open myRepository
clear
load /path/to/file1.rdf into urn:context1
load /path/to/file2.rdf into urn:context2

Затем вы можете просто выполнить это, выполнив (из командной строки):

cat script.txt | ./console.sh 

Еще один способ достичь желаемого - использовать curl и получить доступ к RDF4J-серверу напрямую через его REST API. Например, чтобы загрузить файл Turtle в ваш репозиторий с помощью curl, вы должны сделать что-то вроде этого:

curl -X POST -H "Content-type: text/turtle" --data-binary @file.ttl http://localhost:8080/rdf4j-server/repositories/myRepo/statements

Наконец, вы можете, конечно, также написать короткую Java-программу, используя RDF4J Repository API для взаимодействия с сервером.

Чтобы уточнить ответ Джин Брукстра, я собираюсь использовать сценарий консоли. Вот мой конкретный сценарий (loadMyOntologies.txt):

connect "http://localhost:8088/rdf4j-server"
open TakeRDF4J4SPIN
clear
load "C:\Users\Greg\TBCFreeWorkspace\NSC_2025_Sharing\soo.rdf"
load "C:\Users\Greg\TBCFreeWorkspace\NSC_2025_Sharing\Instantiations.rdf"
exit

Обратите внимание, что я изменил порт, на котором работает мой сервер Apache Tomcat, на 8088.

Конечно, версии других могут отличаться по имени репозитория (аргумент команды open) и путям к онтологиям.

Я добавлю больше load команд по мере увеличения количества моих онтологий, с которыми я работаю. Кроме того, я работаю в контексте / графике по умолчанию, поэтому я опустил необязательный urn:context что Джин в комплекте.

Я получаю доступ к выше через простую партию (loadMyOntologies.bat) файл, так как я работаю с Windows 8:

.\console.bat < loadMyOntologies.txt

Мои пакетные и текстовые файлы находятся в моей папке bin RDF4J (путь сокращен ниже), где console.bat находится (версия для Windows console.sh что упомянул Джин)

c:\Users\Greg\...\eclipse-rdf4j-2.0.1\bin

Я подтвердил в рабочей среде RDF4J, что я могу комбинировать этот сценарий с работой в рабочей среде, и сценарий сэкономит мне значительное количество времени, особенно потому, что я объединяю больше онтологий для решения более крупных проблем.

Если вы обращаете действительно пристальное внимание, вы можете заметить, что версия RDF4J в этом примере (2.0.1) старше, чем версия, которую я первоначально разместил (2.1.2). Я заканчиваю на другой машине, которую я еще не обновил, но она работает! Я уверен, что это решение применимо и к более новой версии на моем другом компьютере.

Другие вопросы по тегам