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). Я заканчиваю на другой машине, которую я еще не обновил, но она работает! Я уверен, что это решение применимо и к более новой версии на моем другом компьютере.