You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Steve Vestal <st...@galois.com> on 2022/12/31 20:07:13 UTC
listIndividuals versus listInstances
Given an OntModel myModel and an OntClass myClass contained in myModel,
the call myModel.listIndividuals(myClass) provides the expected list of
Individuals that are members of myClass; but the call
myClass.listInstances() doesn't list anything. I am curious what the
difference is between the two (I was not able to make that out from the
javadoc).
Re: listIndividuals versus listInstances
Posted by Steve Vestal <st...@galois.com>.
Thank you, you answered my question: they should behave the same.
I tried a couple of reasoners and no reasoning, same result.
I'm doing something a bit odd in how reasoning is structured. I recall
seeing some code in OntModelImpl that handles special cases for
Individuals. It would probably take me more trial-and-error time to
create a simple self-contained test that reproduces this than to fish
around with the debugger first. OntModel#listIndividuals works for me,
good enough for now.
On 1/1/2023 3:49 AM, Lorenz Buehmann wrote:
> I can't reproduce this with a dummy example just containing a single
> OWL class with a single individual.
>
> Both ways return the individual. Do you have some inference enabled?
> Can you share sample data and code? All entities are strongly typed
> (don't know if this matters here)?
>
>
> OntModel::listIndividuals(type) calls
>
>> getGraph().find( null, RDF.type.asNode(), type.asNode() );
> OntClass::listInstances() does
>
>> getModel()
>> .listStatements( null, RDF.type, this )
>> .mapWith( s -> s.getSubject().as( Individual.class ) )
>> .filterKeep( o -> o.hasRDFType( OntClassImpl.this,
>> direct ))
>> .filterKeep( new UniqueFilter<Individual>());
>
> On 31.12.22 21:07, Steve Vestal wrote:
>> Given an OntModel myModel and an OntClass myClass contained in
>> myModel, the call myModel.listIndividuals(myClass) provides the
>> expected list of Individuals that are members of myClass; but the
>> call myClass.listInstances() doesn't list anything. I am curious
>> what the difference is between the two (I was not able to make that
>> out from the javadoc).
>>
>>
Re: listIndividuals versus listInstances
Posted by Lorenz Buehmann <bu...@informatik.uni-leipzig.de>.
I can't reproduce this with a dummy example just containing a single OWL
class with a single individual.
Both ways return the individual. Do you have some inference enabled?
Can you share sample data and code? All entities are strongly typed
(don't know if this matters here)?
OntModel::listIndividuals(type) calls
> getGraph().find( null, RDF.type.asNode(), type.asNode() );
OntClass::listInstances() does
> getModel()
> .listStatements( null, RDF.type, this )
> .mapWith( s -> s.getSubject().as( Individual.class ) )
> .filterKeep( o -> o.hasRDFType( OntClassImpl.this,
> direct ))
> .filterKeep( new UniqueFilter<Individual>());
On 31.12.22 21:07, Steve Vestal wrote:
> Given an OntModel myModel and an OntClass myClass contained in
> myModel, the call myModel.listIndividuals(myClass) provides the
> expected list of Individuals that are members of myClass; but the call
> myClass.listInstances() doesn't list anything. I am curious what the
> difference is between the two (I was not able to make that out from
> the javadoc).
>
>