[Pellet-users] Nullpointer when writing model containing Enumerated Datatype

Evren Sirin evren at clarkparsia.com
Thu Jul 24 18:50:23 UTC 2008


This seems to be a bug triggered in the case when there are no classes 
in the ontology. The bug is recorded at [1] and if you add a named class 
to your ontology you will see that the problem goes away.

Cheers,
Evren

[1] http://cvsdude.com/trac/clark-parsia/pellet-devel/ticket/141

On 7/18/08 6:44 PM, Jan Vlug wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> I have an owl file with an Enumerated Datatype as defined in: 
> http://www.w3.org/TR/owl-ref/#EnumeratedDatatype
>
> When I load this file, it validates without problems, but writing the 
> model results in a NullPointerException.
> See below for the owl file, java program and stack trace.
>
> Am I doing something wrong?
>
> ==================================================================
> enumeration.owl file:
> <?xml version="1.0" encoding="UTF-8"?>
>
> <!DOCTYPE rdf:RDF [
> ~   <!ENTITY rdf         "http://www.w3.org/1999/02/22-rdf-syntax-ns#">
> ~   <!ENTITY xsd         "http://www.w3.org/2001/XMLSchema#">
> ]>
>
> <rdf:RDF
> ~     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
> ~     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
> ~     xmlns:owl="http://www.w3.org/2002/07/owl#"
> ~   xml:base="http://a.b.c.d/foo">
> ~   <owl:Ontology rdf:about=""/>
>
> ~   <owl:DatatypeProperty rdf:ID="DEMO_DATATYPE_PROPERTY">
> ~     <rdfs:range>
> ~       <owl:DataRange>
> ~         <owl:oneOf>
> ~          <rdf:List>
> ~           <rdf:first rdf:datatype="&xsd;string">FIRST</rdf:first>
> ~           <rdf:rest rdf:resource="&rdf;nil" />
> ~          </rdf:List>
> ~         </owl:oneOf>
> ~       </owl:DataRange>
> ~     </rdfs:range>
> ~   </owl:DatatypeProperty>
>
> </rdf:RDF>
> ==================================================================
> example program:
> package test;
>
> import java.io.FileInputStream;
>
> import org.mindswap.pellet.jena.PelletReasonerFactory;
>
> import com.hp.hpl.jena.rdf.model.InfModel;
> import com.hp.hpl.jena.rdf.model.Model;
> import com.hp.hpl.jena.rdf.model.ModelFactory;
> import com.hp.hpl.jena.reasoner.Reasoner;
> import com.hp.hpl.jena.reasoner.ValidityReport;
>
>
> public class PelletCrashTest
> {
> ~   public static void main(String[] args)
> ~     throws Exception
> ~   {
> ~     Model emptyModel = ModelFactory.createDefaultModel( );
> ~     Reasoner reasoner = PelletReasonerFactory.theInstance().create();
>
> ~    // create an inferencing model using Pellet reasoner
> ~     InfModel model = ModelFactory.createInfModel( reasoner, emptyModel );
> ~     FileInputStream file = new 
> FileInputStream("ontologies/enumeration.owl");
>
> ~     model.read(file, null);
>
> ~     // print validation report
> ~     ValidityReport report = model.validate();
>
> ~     System.out.println("clean?" + report.isClean());
> ~     System.out.println("valid?" + report.isValid());
>
> ~     model.write(System.out);
>
> ~     System.out.println();
> ~   }
> }
> ==================================================================
> stacktrace:
> Exception in thread "main" java.lang.NullPointerException
> ~     at 
> org.mindswap.pellet.taxonomy.CDOptimizedTaxonomyBuilder.clearMarks(CDOptimizedTaxonomyBuilder.java:425)
> ~     at 
> org.mindswap.pellet.taxonomy.CDOptimizedTaxonomyBuilder.classify(CDOptimizedTaxonomyBuilder.java:736)
> ~     at 
> org.mindswap.pellet.taxonomy.CDOptimizedTaxonomyBuilder.classify(CDOptimizedTaxonomyBuilder.java:717)
> ~     at 
> org.mindswap.pellet.KnowledgeBase.getAllEquivalentClasses(KnowledgeBase.java:2767)
> ~     at 
> org.mindswap.pellet.jena.PelletInfGraph.eqClassIterator(PelletInfGraph.java:978)
> ~     at 
> org.mindswap.pellet.jena.PelletInfGraph.findInTBox(PelletInfGraph.java:556)
> ~     at 
> org.mindswap.pellet.jena.PelletInfGraph.findWithContinuation(PelletInfGraph.java:212)
> ~     at 
> com.hp.hpl.jena.reasoner.BaseInfGraph.graphBaseFind(BaseInfGraph.java:345)
> ~     at 
> com.hp.hpl.jena.reasoner.BaseInfGraph.graphBaseFind(BaseInfGraph.java:334)
> ~     at com.hp.hpl.jena.graph.impl.GraphBase.find(GraphBase.java:240)
> ~     at 
> com.hp.hpl.jena.graph.compose.DisjointUnion.graphBaseFind(DisjointUnion.java:27)
> ~     at com.hp.hpl.jena.graph.impl.GraphBase.find(GraphBase.java:240)
> ~     at 
> com.hp.hpl.jena.graph.impl.GraphBase.graphBaseFind(GraphBase.java:260)
> ~     at com.hp.hpl.jena.graph.impl.GraphBase.find(GraphBase.java:257)
> ~     at 
> com.hp.hpl.jena.rdf.model.impl.ModelCom.listStatements(ModelCom.java:385)
> ~     at 
> com.hp.hpl.jena.rdf.model.impl.ModelCom.listStatements(ModelCom.java:390)
> ~     at 
> com.hp.hpl.jena.xmloutput.impl.Basic.writeRDFStatements(Basic.java:75)
> ~     at 
> com.hp.hpl.jena.xmloutput.impl.Basic.writeRDFStatements(Basic.java:66)
> ~     at com.hp.hpl.jena.xmloutput.impl.Basic.writeBody(Basic.java:40)
> ~     at 
> com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.writeXMLBody(BaseXMLWriter.java:452)
> ~     at 
> com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.write(BaseXMLWriter.java:424)
> ~     at 
> com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.write(BaseXMLWriter.java:410)
> ~     at com.hp.hpl.jena.rdf.model.impl.ModelCom.write(ModelCom.java:270)
> ~     at test.PelletCrashTest.main(PelletCrashTest.java:34)
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
> Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org
>
> iEYEARECAAYFAkiBHLsACgkQvuFuLCp9giDaFgCfU+kzMeXXLFW/I2J2dpYM+8ti
> EtsAnAuSODEv+jfLHVZDYoH9pdJcIajU
> =lzLb
> -----END PGP SIGNATURE-----
>
>
> _______________________________________________
> Pellet-users mailing list
> Pellet-users at lists.owldl.com
> http://lists.owldl.com/mailman/listinfo/pellet-users
> _______________________________________________
>
> Sponsored by Clark & Parsia, LLC http://clarkparsia.com/
>   



More information about the Pellet-users mailing list