RMLio / RML-Mapper

Generate High Quality Linked Data from multiple originally (semi-)structured data (legacy)
http://RML.io
52 stars 20 forks source link

Exception: java.lang.NoSuchFieldError: TYPE #17

Closed jimkont closed 7 years ago

jimkont commented 7 years ago

Trying to run the mappings by code I get the following error. When I try to run this by command line with the same mapping file everything runs fine


java.lang.NoSuchFieldError: TYPE

    at be.ugent.mmlab.rml.processor.StdSubjectMapProcessor.processSubjectTypeMap(StdSubjectMapProcessor.java:137)
    at be.ugent.mmlab.rml.processor.AbstractRMLProcessor.processSubjectMap(AbstractRMLProcessor.java:92)
    at be.ugent.mmlab.rml.performer.NodeRMLPerformer.perform(NodeRMLPerformer.java:60)
    at be.ugent.mmlab.rml.processor.concrete.JSONPathProcessor.execute(JSONPathProcessor.java:94)
    at be.ugent.mmlab.rml.processor.concrete.JSONPathProcessor.execute(JSONPathProcessor.java:47)
    at be.ugent.mmlab.rml.core.StdRMLEngine.processInputStream(StdRMLEngine.java:270)
    at be.ugent.mmlab.rml.core.StdRMLEngine.startTriplesMapExecution(StdRMLEngine.java:228)
    at be.ugent.mmlab.rml.core.StdRMLEngine.generateTriplesMapTriples(StdRMLEngine.java:181)
    at be.ugent.mmlab.rml.core.StdRMLEngine.generateRDFTriples(StdRMLEngine.java:154)
    at be.ugent.mmlab.rml.core.StdRMLEngine.runRMLMapping(StdRMLEngine.java:100)
    at be.ugent.mmlab.rml.core.StdRMLEngine.run(StdRMLEngine.java:71)

the code that throws this error is the following:

        StdRMLEngine engine = new StdRMLEngine();

        StdRMLMappingFactory  mappingFactory = new StdRMLMappingFactory();
        RMLDocRetrieval mapDocRetrieval = new RMLDocRetrieval();
        String mppingDocLocation = Resources.getResource("carbonMapping.ttl").toString().replace("file:","");
        Repository repository =
                mapDocRetrieval.getMappingDoc(mppingDocLocation, RDFFormat.TURTLE);

        RMLMapping maping = mappingFactory.extractRMLMapping(repository);

        Map<String, String> parameters = new HashMap<>();
        String [] exeTriplesMap = new String[0];

        RMLDataset dataset = new StdRMLDataset(false);
        return engine.runRMLMapping(dataset, maping, null, null, null);

The same error happens on both master and extensions-fno branch.

andimou commented 7 years ago

can you try with full path for the mappingDocLocation and let us know?

andimou commented 7 years ago

ah but no.. it seems like it reads the map doc

andimou commented 7 years ago

can you try return engine.runRMLMapping(dataset, maping, "", null, null);?

jimkont commented 7 years ago

looks like in extensions-fno it works now, sorry! the submodules were not initialized correctly before

jimkont commented 7 years ago

hmm, it runs now without a fail but it returns an empty RDF file and the following exception

java.io.FileNotFoundException: /home/dimitris/.m2/repository/be/ugent/mmlab/rml/RML-Processor/0.4/resources/functions/metadata.json (No such file or directory)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:195)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at java.io.FileInputStream.<init>(FileInputStream.java:93)
    at java.io.FileReader.<init>(FileReader.java:58)
    at be.ugent.mmlab.rml.function.FunctionHandler.loadFromDisk(FunctionHandler.java:54)
    at be.ugent.mmlab.rml.function.FunctionHandler.<init>(FunctionHandler.java:47)
    at be.ugent.mmlab.rml.function.ConcreteFunctionProcessor.getInstance(ConcreteFunctionProcessor.java:40)
    at be.ugent.mmlab.rml.logicalsourcehandler.termmap.AbstractTermMapProcessor.<init>(AbstractTermMapProcessor.java:38)
    at be.ugent.mmlab.rml.logicalsourcehandler.termmap.concrete.JSONPathTermMapProcessor.<init>(JSONPathTermMapProcessor.java:17)
    at be.ugent.mmlab.rml.processor.concrete.ConcreteTermMapFactory.create(ConcreteTermMapFactory.java:70)
    at be.ugent.mmlab.rml.processor.concrete.JSONPathProcessor.<init>(JSONPathProcessor.java:33)
    at be.ugent.mmlab.rml.processor.concrete.ConcreteRMLProcessorFactory.create(ConcreteRMLProcessorFactory.java:47)
    at be.ugent.mmlab.rml.core.StdRMLEngine.generateRMLProcessor(StdRMLEngine.java:205)
    at be.ugent.mmlab.rml.core.StdRMLEngine.startTriplesMapExecution(StdRMLEngine.java:229)
    at be.ugent.mmlab.rml.core.StdRMLEngine.generateTriplesMapTriples(StdRMLEngine.java:186)
    at be.ugent.mmlab.rml.core.StdRMLEngine.generateRDFTriples(StdRMLEngine.java:159)
    at be.ugent.mmlab.rml.core.StdRMLEngine.runRMLMapping(StdRMLEngine.java:105)