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