2012-04-07 3 views
1

Я пытаюсь работать с owlim library, чтобы отредактировать файл онтологии совы. Я начал с кода примера «get-started», включенного в библиотеку совы. Когда я использую библиотеку с этим примером кода, все работает отлично. Он использует де owlim.ttl файл для настройки хранилища, и это содержит путь к этому репозиторию тоже:owlim library использование файла конфигурации

(owlim.ttl :)

@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>. 
@prefix rep: <http://www.openrdf.org/config/repository#>. 
@prefix sr: <http://www.openrdf.org/config/repository/sail#>. 
@prefix sail: <http://www.openrdf.org/config/sail#>. 
@prefix owlim: <http://www.ontotext.com/trree/owlim#>. 

[] a rep:Repository ; 
    rep:repositoryID "owlim" ; 
    rdfs:label "OWLIM Getting Started" ; 
    rep:repositoryImpl [ 
    rep:repositoryType "openrdf:SailRepository" ; 
    sr:sailImpl [ 
     owlim:ruleset "owl-horst-optimized" ; 
     owlim:entity-index-size "5000000" ; 
     owlim:cache-memory "180m" ; 
     sail:sailType "swiftowlim:Sail" ; 
     owlim:noPersist "false" ; 
     owlim:storage-folder "storage" ; 
     owlim:base-URL "http://example.org/owlim#" ; 
     owlim:repository-type "in-memory-repository" ; 
     owlim:imports "./sesame/example.rdfs" ; 
     owlim:defaultNS "http://example.org/owlim#" ; 
     ] 
    ]. 

На documentation site они явно говорят, что:

'With the example set up, OWLIM-Lite loads two ontologies at start up as specified by the imports parameter in the repository configuration file, i.e. owlim.ttl',

но когда я изменяю этот путь к другому файлу, я все равно получаю тот же вывод, что и раньше. Даже когда я пытаюсь что-то изменить в этом репозитории example.rdfs, результаты запросов не меняются. Кто-нибудь знает, в чем проблема? Указан ли путь в другом месте?

ответ

2

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

Чтобы использовать другую импортированную схему, вы должны создать новый репозиторий.

+0

Я изменил утверждения, когда приложение не было запущено. Когда я перекомпилирую и перезагружаю приложение, он думает, что он перезагружает репозиторий? (то есть, когда приложение остановлено, репозиторий в памяти пропадает, и когда приложение перезагружается, репозиторий должен быть снова загружен) – Consec

+2

OWLIM-Lite сериализует содержимое репозитория при выключении и перезагружает его при запуске. После создания репозитория ваша импортированная онтология не будет загружена снова независимо от того, измените ли вы файл онтологии или будет ли OWLIM запущен, когда вы это сделаете. Целью этого параметра является однократная загрузка схемы, которая никогда не изменится. Если вам нужно изменить эту онтологию/схему, то вы должны воссоздать свой репозиторий и перезагрузить любые другие данные. Просто потому, что OWLIM не работает, не означает, что репозиторий не существует. Надеюсь, это поможет, барри – Barry

+0

Благодарим вас за эту информацию Барри. Я вижу, в чем проблема, но я не знаю точно, что такое решение: я должен явно удалить репозиторий предыдущего сеанса при инициализации загрузчика? Я попытался вручную удалить example.rdfs и заменить его другим репозиторием, но, как вы сказали, это не имеет никакого эффекта. – Consec