2012-04-07 10 views
1

Ich versuche mit der owlim library zu arbeiten, um die Eule Ontologie-Datei zu bearbeiten. Ich begann mit dem Beispielcode, der in der Eulenbibliothek enthalten ist. Wenn ich die Bibliothek mit diesem Beispielcode verwende, funktioniert alles perfekt. Es nutzt de owlim.ttl Datei, um das Repository zu konfigurieren und diese enthält den Pfad zu diesem Repository zu:owlim Bibliothek Verwendung der Konfigurationsdatei

(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#" ; 
     ] 
    ]. 

Auf der documentation site sie ausdrücklich sagen:

'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',

aber wenn ich diesen Pfad in eine andere Datei ändern, bekomme ich immer noch die gleiche Ausgabe wie zuvor. Selbst wenn ich versuche, etwas in diesem example.rfs-Repository zu ändern, ändern sich die Ergebnisse der Abfragen nicht. Weiß jemand, was das Problem sein könnte? Ist der Pfad anderswo angegeben?

Antwort

2

Der Konfigurationsparameter imports wird nur für die einmalige Initialisierung des Repositorys mit schreibgeschütztem Schema verwendet. Nach der Erstellung können diese Anweisungen nicht mehr geändert werden. Wenn Sie diesen Parameter später ändern und mit einem alten Repository neu starten, werden keine Unterschiede angezeigt.

Um ein anderes importiertes Schema zu verwenden, müssen Sie ein neues Repository erstellen.

+0

Ich habe die Anweisungen geändert, als die Anwendung nicht ausgeführt wurde. Wenn ich die Anwendung neu kompiliere und neu starte, denke ich, dass sie das Repository neu lädt? (d. h. wenn die Anwendung gestoppt wird, ist das Repository im Speicher verschwunden und wenn die Anwendung neu gestartet wird, muss das Repository erneut geladen werden) – Consec

+2

OWLIM-Lite serialisiert den Inhalt eines Repository beim Herunterfahren und lädt es beim Start neu. Sobald das Repository erstellt wurde, wird Ihre importierte Ontologie nicht erneut geladen, unabhängig davon, ob Sie die Ontologiedatei ändern oder ob OWLIM ausgeführt wird. Die Absicht mit diesem Parameter ist das einmalige Laden des Schemas, das sich niemals ändern wird. Wenn Sie diese Ontologie/dieses Schema ändern müssen, müssen Sie Ihr Repository neu erstellen und alle anderen Daten neu laden. Nur weil OWLIM nicht läuft, bedeutet das nicht, dass das Repository nicht existiert. Ich hoffe, das hilft, Barry – Barry

+0

Vielen Dank für diese Informationen Barry. Ich sehe, was das Problem ist, aber ich weiß nicht sicher, was die Lösung sein könnte: Muss ich das Repository der vorherigen Sitzung explizit löschen, wenn der Loader initialisiert wird? Ich habe versucht, die example.rdfs manuell zu löschen und sie durch ein anderes Repository zu ersetzen, aber wie du gesagt hast, hat dies keine Auswirkungen. – Consec