2012-04-07 2 views
1

owlim library으로 작업하여 올빼미 온톨로지 파일을 편집하려고합니다. 올빼미 라이브러리에 포함 된 '시작하기'예제 코드로 시작했습니다. 이 예제 코드로 라이브러리를 사용하면 모든 것이 완벽하게 작동합니다. 이 저장소를 구성하는 데 owlim.ttl 파일을 사용하며,이 역시이 저장소의 경로를 포함하십시오 documentation siteowlim 라이브러리 구성 파일 사용

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

는 명시 적으로 그런 말 :

'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

imports 구성 매개 변수는 읽기 전용 스키마가있는 저장소의 초기화에만 한 번 사용됩니다. 생성 된 후에는이 명령문을 변경할 수 없으므로 나중에이 매개 변수를 수정하고 이전 저장소를 사용하여 다시 시작하면 차이점을 볼 수 없습니다.

다른 가져온 스키마를 사용하려면 새 저장소를 만들어야합니다.

+0

응용 프로그램이 실행되고 있지 않을 때 명령문을 변경했습니다. 응용 프로그램을 다시 컴파일하고 다시 시작할 때 저장소가 다시로드된다고 생각합니까? (즉, 응용 프로그램이 중지되면 메모리의 저장소가 사라지고 응용 프로그램이 다시 시작될 때 저장소가 다시로드됩니다) – Consec

+2

OWLIM-Lite는 종료시 저장소의 내용을 직렬화하고 시작시 다시로드합니다. 저장소가 생성되면 가져온 온톨로지는 온톨로지 파일을 변경했는지 또는 OWLIM을 실행할 때 실행 중인지 여부와 관계없이 다시로드되지 않습니다. 이 매개 변수의 의도는 절대 변경되지 않는 스키마를 한 번만로드하는 것입니다. 이 온톨로지/스키마를 변경해야하는 경우 저장소를 다시 만들고 다른 데이터를 다시로드해야합니다. OWLIM이 실행되고 있지 않기 때문에 저장소가 존재하지 않는다는 것을 의미하지는 않습니다. 이 정보가 도움이되기를 바랍니다, 배리 – Barry

+0

배리 감사합니다. 문제가 무엇인지 알지만 솔루션이 무엇인지 확실하지 않습니다. 로더가 초기화 될 때 이전 세션의 저장소를 명시 적으로 삭제해야합니까? 수동으로 example.rdfs를 삭제하고 다른 저장소로 바꾸려고했으나 아무런 효과가 없다고 말했던 것처럼. – Consec

관련 문제