Jena gang:

I am trying to store triples retrieved from Stanbol in JSON-LD format,
but having
no luck so far.  I'm using Jena 2.10.1 and using the Jena JSONLD project from
https://github.com/afs/jena-jsonld

My (Groovy) code looks like this:


static main(args)
{
    JenaJSONLD.init();
    def content = """Quoddy can now recognize famous people like
Richard Marx""";

    // call Stanbol REST API to get enrichment data
    RESTClient restClient = new RESTClient( "http://localhost:8080"; )

    // println "content submitted: ${content}";
    def restResponse = restClient.post( path:'enhancer',
                                                         body: content,
                                                      // headers:
['Accept':'application/rdf+xml'],

requestContentType : TEXT );

    String restResponseText = restResponse.getData();
    println "restResponseText:\n ${restResponseText}\n\n";

    // Make a TDB-backed dataset
    String directory = "MyDatabases/Dataset2" ;
    Dataset dataset = TDBFactory.createDataset(directory) ;
    dataset.begin(ReadWrite.READ) ;
    // Get model inside the transaction
    Model model = dataset.getDefaultModel() ;
    dataset.end() ;

    dataset.begin(ReadWrite.WRITE) ;
    model = dataset.getDefaultModel() ;
    StringReader reader = new StringReader( restResponseText );
    model.read( reader, "http://www.example.com";, "JSON-LD" );
    // RDFDataMgr.read(model, reader, "http://example.com/";, JenaJSONLD.JSONLD);
    dataset.commit();
    dataset.end();

    println "done";
}

and results in a NullPointerException like this:

Caught: java.lang.NullPointerException
java.lang.NullPointerException
at org.apache.jena.riot.RDFDataMgr.processTriples(RDFDataMgr.java:796)
at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:289)
at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:273)
at org.apache.jena.riot.adapters.RDFReaderRIOT.read(RDFReaderRIOT.java:61)
at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:267)
at com.hp.hpl.jena.rdf.model.Model$read.call(Unknown Source)
at org.example.stanbol.StanbolJenaMain2.main(StanbolJenaMain2.groovy:58)


If I do the same thing with RDF/XML (and appropriate code changes) I
can save the triples fine.  But I really want to use JSON-LD, as I do
other stuff with the JSON-LD
that comes back, using Javascript on the client-side, and it makes
life a lot easier
if I just take the JSON-LD and use it everywhere.


Any thoughts? Am I doing something wrong, or is there just a bug in
the JSONLD module?  I can also post the blog of json that I get back
if it would help.


Thanks,


Phil

This message optimized for indexing by NSA PRISM

Reply via email to