I am using solr as a store for Jena.  Works fine until I try reification.

I need a way to take a statement (SPO) and have an id for it.

Then I can use the id, for my reification.

Is there any way to store an id in a java Statement, or to get on from a
Statement?

In essence, I am looking for a surrogate key for a statement.

Thanks.


On Tue, Nov 27, 2012 at 10:45 AM, ashish nijhara
<[email protected]>wrote:

> Thanks Dave for the wonderful explanation. :)
>
> Much appreciated.
>
> Thanks,
> Ashish
>
> On Tue, Nov 27, 2012 at 11:28 PM, Dave Reynolds
> <[email protected]>wrote:
>
> > The explanation of imports processing and the resulting trees of models
> is
> > well-described in the Ontology documentation.
> >
> > As I said to Ashish the sub-model system (which under the hood is
> > MultiUnion) is general purpose. You are free to change sub-models and
> those
> > changes are immediate reflected in the dynamic union. You are free to use
> > this mechanism how you wish.
> >
> > There is a distinguished member of the union where updates to the union
> > get sent. So *if* you had a single mutable model and a collection of
> > imported models then it would be sensible to make the mutable model the
> > base model. Hence my original comment to Ashish. That's not the same as
> > saying that you are constrained to *only* use sub-models that way.
> >
> > Dave
> >
> >
> > On 27/11/12 14:23, David Jordan wrote:
> >
> >> 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:nijhara.ashish@gmail.**com<
> [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
> >>>
> >>>
> >>>
> >>
> >
>



-- 
"If you are lucky enough to have lived in Paris as a young man, then
wherever you go for the rest of your life, it stays with you, for Paris is
a moveable feast." -  Ernest Hemingway

www.scottstreit.com

Reply via email to