I had the same reaction. Is this described in the documentation? I have been 
away from Jena for about a year, but luckily it looks like I have finally 
gotten commitment to do some work with it again. I was not aware of this 
characteristic of sub models when I started playing around with them a year 
ago. I'll be doing another technical/performance evaluation, and things like 
this are very important to know.

-----Original Message-----
From: ashish nijhara [mailto:[email protected]] 
Sent: Tuesday, November 27, 2012 9:16 AM
To: [email protected]
Subject: Re: Storing to the correct sub model

Thanks Dave. you gave me a really interesting information.

Is that the purpose of designing sub models really? that sub models will 
typically represent static things?

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
So, my ontology set up is like the following:

parent ontology -> A.owl->only concepts
child ontology 1-> B.owl-> some new concepts+ some Named Individuals, this 
imports A.owl child ontology 2-> c.owl-> some new concepts+ some Named 
Individuals [different than B.owl], this also imports A.owl

data.rdf -> only individuals created during runtime [this data.rdf needs to be 
divided into further sub models based on what data is required]. So it is a 
Tree of Graphs essentially.

I attached the reasoner on the Ontmodel of child ontology 1 and added data.rdf 
as a subModel to the OntModel. This data.rdf can have further sub models 
(models directly mapped to graphs in a database using SDB), so I would need 
correct keys (uris) of these of the submodels (graphs).

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

If Jena is primarily designed to work the other way, then my approach may end 
up using more memory or?

Thanks,
Ashish



On Tue, Nov 27, 2012 at 1:21 AM, Dave Reynolds <[email protected]>wrote:

> On 23/11/12 08:10, ashish nijhara wrote:
>
>> Hi All,
>>
>> I have a problem statement as the following:
>>
>> I have an OntModel which has only stored concepts with pre-defined 
>> individuals or named individuals. There is a reasoner attached to it.
>>
>> I have a sub model which needs to contain only the working data. No 
>> new concepts can be added here.
>>
>>     final OntModelSpec spec = OntModelSpec.OWL_DL_MEM;
>>     final OntModel ontModel = ModelFactory.**createOntologyModel(spec);
>>     ontModel.read(<url>);
>>
>>     final Reasoner reasoner = PelletReasonerFactory.** 
>> theInstance().create();
>>     reasoner.bindSchema(ontModel);
>>
>>     final OntModel dataModel = ModelFactory.**createOntologyModel();
>>     ontModel.addSubModel(**dataModel);
>>
>>     ontModel.prepare();
>>
>> ...........
>> ...........
>> ...........
>>
>> Now when I create an individual, I would like to add this to the subModel.
>> To do this, I need to find correct Sub Model.
>>
>> ontModel.listSubModels() will return all the submodels (there are 
>> more than one sub models to the ontModel).
>>
>> How do I fetch my correct subModel that is the dataModel above? There 
>> is no method in Jena to get me a particular subModel or it there 
>> something I need to do more to achieve this.?
>>
>
> Seems like an odd arrangement. When you add statements to an OntModel 
> the additions go into the base model. So normal practice is to make 
> the things you don't want to change (like the ontology) the sub-models.
>
> If you go round finding particular sub-models and adding directly to 
> them you will probably need to call rebind() on the OntModel to 
> restart the reasoner over the changed data.
>
> If you really do want to use this sub-model arrangement they you will 
> need to keep an index of sub-models somewhere else. Jena itself is 
> just treating an OntModel as set of graphs, there's no associated 
> label or annotation on the graphs.
>
> Dave
>
>

Reply via email to