Uploaded image for project: 'Apache Jena'
  1. Apache Jena
  2. JENA-368

schemagen with inference fails for classes with restrictions on mutually referring properties when run with --inference

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • Jena 2.7.4, Jena 2.10.0
    • None
    • Cmd line tools
    • None
    • Windows, Java 7 x64 apache-jena-2.10.0-20121218.064300-7

    Description

      schemagen fails with a GC error when run with --inference on a file that contains two classes with property restrictions (in this case cardinality restrictions) on properties that refer between the pair of classes.

      Coomenting out the property domains has no effect, but commenting out either on of the property ranges results in output as normal.

      The larger vocabulary from which the case is derived also contained datatype definitions which motivated theuse of --inference in order to have the datatypes included in the schemagen output. However the simutaneous presence of property restrictions of this form mean that output cannot be generated without modifying the vocabulary file processed by schemagen.

      [ex-restriction.ttl to be attached]

      $ which schemagen ; schemagen -a http://example.org/def/ex/ -i ex-restriction.ttl --owl --inference
      /jena/apache-jena-2.10.0-SNAPSHOT/bin/schemagen
      /* CVS $Id: $ */

      import com.hp.hpl.jena.rdf.model.*;

      /**

      • Vocabulary definitions from ex-restriction.ttl
      • @author Auto-generated by schemagen on 18 Dec 2012 11:56
        */
        public class Ex_restriction {
        /** <p>The RDF model that holds the vocabulary terms</p> */
        private static Model m_model = ModelFactory.createDefaultModel();

      /** <p>The namespace of the vocabulary as a string</p> */
      public static final String NS = "http://example.org/def/ex/";

      /** <p>The namespace of the vocabulary as a string</p>

      • @see #NS */
        public static String getURI() {return NS;}

      /** <p>The namespace of the vocabulary as a resource</p> */
      public static final Resource NAMESPACE = m_model.createResource( NS );

      Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
      at java.util.HashMap.createEntry(HashMap.java:869)
      at java.util.HashMap.addEntry(HashMap.java:856)
      at java.util.HashMap.put(HashMap.java:484)
      at com.hp.hpl.jena.reasoner.rulesys.impl.TempNodeCache.getTemp(TempNodeCache.java:86)
      at com.hp.hpl.jena.reasoner.rulesys.FBRuleInfGraph.getTemp(FBRuleInfGraph.java:351)
      at com.hp.hpl.jena.reasoner.rulesys.impl.BBRuleContext.getTemp(BBRuleContext.java:156)
      at com.hp.hpl.jena.reasoner.rulesys.builtins.MakeInstance.bodyCall(MakeInstance.java:70)
      at com.hp.hpl.jena.reasoner.rulesys.impl.LPInterpreter.run(LPInterpreter.java:624)
      at com.hp.hpl.jena.reasoner.rulesys.impl.LPInterpreter.next(LPInterpreter.java:195)
      at com.hp.hpl.jena.reasoner.rulesys.impl.Generator.pump(Generator.java:253)
      at com.hp.hpl.jena.reasoner.rulesys.impl.ConsumerChoicePointFrame.pump(ConsumerChoicePointFrame.java:181)
      at com.hp.hpl.jena.reasoner.rulesys.impl.LPBRuleEngine.pump(LPBRuleEngine.java:311)
      at com.hp.hpl.jena.reasoner.rulesys.impl.LPTopGoalIterator.moveForward(LPTopGoalIterator.java:112)
      at com.hp.hpl.jena.reasoner.rulesys.impl.LPTopGoalIterator.hasNext(LPTopGoalIterator.java:225)
      at com.hp.hpl.jena.util.iterator.WrappedIterator.hasNext(WrappedIterator.java:76)
      at com.hp.hpl.jena.util.iterator.WrappedIterator.hasNext(WrappedIterator.java:76)
      at com.hp.hpl.jena.util.iterator.UniqueExtendedIterator.hasNext(UniqueExtendedIterator.java:77)
      at com.hp.hpl.jena.util.iterator.WrappedIterator.hasNext(WrappedIterator.java:76)
      at com.hp.hpl.jena.util.iterator.FilterIterator.hasNext(FilterIterator.java:55)
      at com.hp.hpl.jena.util.iterator.Map1Iterator.hasNext(Map1Iterator.java:49)
      at com.hp.hpl.jena.util.iterator.WrappedIterator.hasNext(WrappedIterator.java:76)
      at jena.schemagen.writeRDFProperties(schemagen.java:928)
      at jena.schemagen.writeProperties(schemagen.java:874)
      at jena.schemagen.processInput(schemagen.java:205)
      at jena.schemagen.go(schemagen.java:191)
      at jena.schemagen.go(schemagen.java:176)
      at jena.schemagen.main(schemagen.java:156)

      Attachments

        1. ex-restriction.ttl
          1 kB
          Stuart Williams

        Activity

          People

            Unassigned Unassigned
            skw@lilac-cottage.org.uk Stuart Williams
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: