Thanks Rob. You were right, these tests pass:

        assertEquals(infModel.listStatements().toList().size(),
nonInfModel.listStatements().toList().size());

        assertEquals(infModel.listStatements().toList().size(),
union.listStatements().toList().size());

On Mon, Sep 21, 2020 at 11:35 AM Rob Vesse <rve...@dotnetrdf.org> wrote:
>
> I think your test assertions are faulty, from 
> https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/Model.html#size--
>
> size will return the number of statements in a concrete model, for a 
> virtualized model such as one created by an inference engine, it will return 
> an estimated lower bound for the numberof statements in the model but it is 
> possible for a subsequent listStatements on such a model to discover more 
> statements than size() indicated.
>
> So size() is not guaranteed to include the count of inferred statements.  If 
> you want to count the size of an inference model you will need to iterate 
> over the statements and count those directly as the Javadoc implies
>
> Rob
>
> On 21/09/2020, 10:27, "Martynas Jusevičius" <marty...@atomgraph.com> wrote:
>
>     Alternatively, how do I create a read-only union which has all the
>     statements of an InfModel? ModelFactory.createUnion() does not:
>
>             Model union =
>     ModelFactory.createUnion(ModelFactory.createDefaultModel(), infModel);
>             assertEquals(infModel.size(), union.size());
>
>     expected:<1350> but was:<2264>
>
>     On Mon, Sep 21, 2020 at 11:02 AM Martynas Jusevičius
>     <marty...@atomgraph.com> wrote:
>     >
>     > Hi,
>     >
>     > I want to load an ontology with imports into an inference model, but
>     > then materialize the triples as no further changes will be made to the
>     > model and we would like to avoid the reasoner overhead for read-only
>     > access.
>     >
>     > How does one do the materialization? Simple add() doesn't seem to cut 
> it:
>     >
>     >     @Test
>     >     public void testMaterialize()
>     >     {
>     >         OntModel infModel =
>     > 
> OntDocumentManager.getInstance().getOntology("https://www.w3.org/ns/ldt#";,
>     > OntModelSpec.OWL_MEM_RDFS_INF);
>     >         OntModel nonInfModel =
>     > ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
>     >         nonInfModel.add(infModel);
>     >         assertEquals(infModel.size(), nonInfModel.size());
>     >     }
>     >
>     > expected:<1350> but was:<2264>
>     >
>     >
>     > Martynas
>
>
>
>

Reply via email to