usc-isi-i2 / Web-Karma

Information Integration Tool

Home Page:http://www.isi.edu/integration/karma/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Karma Offline Batch Mode

venkateshzifo opened this issue · comments

Hi,

I am using karma offline to pro-grammatically convert the JSON to RDF using below code

   GenericRDFGenerator rdfGenerator = new GenericRDFGenerator();

  //Construct a R2RMLMappingIdentifier that provides the location of the model and a name for the model and add the model to the JSONRDFGenerator. You can add multiple models using this API.
  R2RMLMappingIdentifier modelIdentifier = new R2RMLMappingIdentifier(
  				"student-model", new File(workingDir + "student-model.ttl").toURI().toURL());
  rdfGenerator.addModel(modelIdentifier);

  String filename = workingDir + "student.json";
  StringWriter sw = new StringWriter();
  PrintWriter pw = new PrintWriter(sw);
  JSONKR2RMLRDFWriter writer = new JSONKR2RMLRDFWriter(pw);
  RDFGeneratorRequest request = new RDFGeneratorRequest("student-model", filename);
  System.out.println("filename : " + filename);
  request.setInputFile(new File(filename));
  request.setAddProvenance(true);
  request.setDataType(InputType.JSON);
  request.addWriter(writer);
  rdfGenerator.generateRDF(request);
  String jsonld = sw.toString();
  System.out.println("Generated JSON-LD: " + jsonld);

When I run this program I am getting below error. Could you please help me with this ?

INFO [2019-07-11 17:42:14,173] (WorksheetR2RMLJenaModelParser->loadSourceModelIntoJenaModel->219): Load model:file:/E:/Lab4.0/mappingtool/src/main/resources/student-model.ttl
ERROR [2019-07-11 17:42:14,597] (KR2RMLWorksheetRDFGenerator->generateRDF->252): Unable to generate RDF:
java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936)
at edu.isi.karma.kr2rml.writer.SFKR2RMLRDFWriter.checkAndAddsubjUri(SFKR2RMLRDFWriter.java:111)
at edu.isi.karma.kr2rml.writer.SFKR2RMLRDFWriter.outputTripleWithURIObject(SFKR2RMLRDFWriter.java:71)
at edu.isi.karma.kr2rml.KR2RMLWorksheetRDFGenerator.getColumnContextTriples(KR2RMLWorksheetRDFGenerator.java:311)
at edu.isi.karma.kr2rml.KR2RMLWorksheetRDFGenerator.generateColumnProvenanceInformation(KR2RMLWorksheetRDFGenerator.java:272)
at edu.isi.karma.kr2rml.KR2RMLWorksheetRDFGenerator.generateRDF(KR2RMLWorksheetRDFGenerator.java:247)
at edu.isi.karma.rdf.GenericRDFGenerator.generateRDF(GenericRDFGenerator.java:187)
at edu.isi.karma.rdf.GenericRDFGenerator.generateRDF(GenericRDFGenerator.java:143)
at edu.isi.karma.rdf.GenericRDFGenerator.generateRDF(GenericRDFGenerator.java:220)
at mappingtool.Test.main(Test.java:38)
ERROR [2019-07-11 17:42:14,600] (GenericRDFGenerator->generateRDF->192): Error occurred while generating RDF
java.io.IOException: Unable to generate RDF: null
at edu.isi.karma.kr2rml.KR2RMLWorksheetRDFGenerator.generateRDF(KR2RMLWorksheetRDFGenerator.java:254)
at edu.isi.karma.rdf.GenericRDFGenerator.generateRDF(GenericRDFGenerator.java:187)
at edu.isi.karma.rdf.GenericRDFGenerator.generateRDF(GenericRDFGenerator.java:143)
at edu.isi.karma.rdf.GenericRDFGenerator.generateRDF(GenericRDFGenerator.java:220)
at mappingtool.Test.main(Test.java:38)
Exception in thread "main" edu.isi.karma.webserver.KarmaException: Unable to generate RDF: null
at edu.isi.karma.rdf.GenericRDFGenerator.generateRDF(GenericRDFGenerator.java:193)
at edu.isi.karma.rdf.GenericRDFGenerator.generateRDF(GenericRDFGenerator.java:143)
at edu.isi.karma.rdf.GenericRDFGenerator.generateRDF(GenericRDFGenerator.java:220)
at mappingtool.Test.main(Test.java:38)

I have attached the sample JSON and model file(generated from Karma UI) which i have used for the reference.

I am getting "A JSONObject text must begin with '{' at 1 [character 2 line 1]", when i run through command prompt. My JSON(in attached zip) is valid one, not able to understand why this error is coming.

sample.zip

Can someone help me on this ? I am not able to use the JAVA API for conversion. I followed the Karma Batch Mode documentation but no success :(

Hi,
I apologize for the delay in my response.

It seems that the error is occurring because your json file is empty except for "[]".
Could you check if you get the same error if there is more information in the json file?

The model file that you have points to your data having specific columns, and your json file seems to be empty.
Please reopen the issue if you face the above problem.
Thanks