Dear Lorenz and Andy,

Apologies for the belated reply. Many thanks to both of you for your help.

Lorenz,
I'm afraid the data is valid because I have checked the validation of my jsonld 
data on https://jsonformatter.curiousconcept.com/
which checks whether the json data is valid or not. Besides, I have retrieved 
the data from the same jsonld file running SPARQL queries in Jena code.

Andy,
I liked both your advice and a simple code you suggested. I dropped the 
following line of code: 
TDBLoader.load(TDBInternal.getBaseDatasetGraphTDB(TDBFactory.createDatasetGraph(location)),in,false);

and followed a simple code which worked. I really appreciate it.

Best regards,

Izhar
________________________________________
From: Andy Seaborne [[email protected]]
Sent: 26 January 2017 08:39
To: [email protected]
Subject: Re: Using TDB with Jena

You do not need to use the loader; if you do the input must be N-Quads
if you pass in an InputStream.  At a guess, and we can't see the data,
the app tried to read JSON-LD.


Use RDFDataMgr.read.


dataset.begin(ReadWrite.WRITE);
try {
RDFDataMgr.read(dataset,
                "/Users/izharullah/workspace/MyTDB/Soil1A.jsonld") ;
dataset.commit();
} finally { dataset.end(); }


Or

Txn.executeWrite(dataset, ()->
    RDFDataMgr.read(dataset,
                "/Users/izharullah/workspace/MyTDB/Soil1A.jsonld") ;
    );

        Andy

On 26/01/17 07:54, Lorenz B. wrote:
> Hello Izhar,
>
> from the error messages I guess that the data is invalid:
>
>
> [line: 2, col: 10] Expected BNode or IRI: Got: 
> [STRING2:56e1613a0dd8e408f1ca4d9d]
>
>
> You can check line 2 or post here at least the beginning of the file
> (~10 lines or something) that you load into TDB.
>
>
> Lorenz
>
>> Hi,
>>
>> I just started learning Jena programming and have very little acquaintance 
>> with its APIs. I ran the following code using TDB and a SPARQL query just to 
>> test it but I got some errors after running the program. Here is the code:
>>
>>
>> public class TDBexample2 {
>>
>>
>>     public static void main(String[] args) {
>>
>>         FileManager fm = FileManager.get();
>>
>>         fm.addLocatorClassLoader(TDBexample2.class.getClassLoader());
>>
>>         InputStream in = 
>> fm.open("/Users/izharullah/workspace/MyTDB/Soil1A.jsonld");
>>
>>
>>         Location location = Location.create 
>> ("/Users/izharullah/workspace/MyTDB");
>>
>>
>>         // Load some initial data
>>
>>         
>> TDBLoader.load(TDBInternal.getBaseDatasetGraphTDB(TDBFactory.createDatasetGraph(location)),
>>  in, false);
>>
>>
>>
>>         String queryString =
>>
>>
>>
>>             "SELECT (COUNT(*) AS ?count) { " +
>>
>>             "    ?s ?p ?o . " +
>>
>>             "}" ;
>>
>>
>>
>>
>>
>>         Dataset dataset = TDBFactory.createDataset(location);
>>
>>         dataset.begin(ReadWrite.READ);
>>
>>         try {
>>
>>             Query query = QueryFactory.create(queryString);
>>
>>             QueryExecution qexec = QueryExecutionFactory.create(query, 
>> dataset);
>>
>>             try {
>>
>>                 ResultSet results = qexec.execSelect();
>>
>>                 while ( results.hasNext() ) {
>>
>>                     QuerySolution soln = results.nextSolution();
>>
>>                     Literal count = soln.getLiteral("count");
>>
>>                     System.out.println(count);
>>
>>                 }
>>
>>             } finally {
>>
>>                 qexec.close();
>>
>>             }
>>
>>         } finally {
>>
>>             dataset.end();
>>
>>         }
>>
>>     }
>>
>>
>> }
>>
>>
>> I got some unexpected errors, here is the snapshot:
>>
>>
>> Exception in thread "main" org.apache.jena.riot.RiotException: [line: 2, 
>> col: 10] Expected BNode or IRI: Got: [STRING2:56e1613a0dd8e408f1ca4d9d]
>>
>> at 
>> org.apache.jena.riot.system.ErrorHandlerFactory$ErrorHandlerStd.fatal(ErrorHandlerFactory.java:136)
>>
>> at org.apache.jena.riot.lang.LangEngine.raiseException(LangEngine.java:165)
>>
>> at org.apache.jena.riot.lang.LangEngine.exceptionDirect(LangEngine.java:158)
>>
>> at org.apache.jena.riot.lang.LangEngine.exception(LangEngine.java:151)
>>
>> at org.apache.jena.riot.lang.LangNTuple.checkIRIOrBNode(LangNTuple.java:90)
>>
>> at org.apache.jena.riot.lang.LangNQuads.parseOne(LangNQuads.java:86)
>>
>> at org.apache.jena.riot.lang.LangNQuads.runParser(LangNQuads.java:54)
>>
>> at org.apache.jena.riot.lang.LangBase.parse(LangBase.java:42)
>>
>> at 
>> org.apache.jena.riot.RDFParserRegistry$ReaderRIOTLang.read(RDFParserRegistry.java:178)
>>
>> at org.apache.jena.riot.RDFDataMgr.process(RDFDataMgr.java:859)
>>
>> at org.apache.jena.riot.RDFDataMgr.parse(RDFDataMgr.java:698)
>>
>> at org.apache.jena.riot.RDFDataMgr.parse(RDFDataMgr.java:677)
>>
>> at 
>> org.apache.jena.tdb.store.bulkloader.BulkLoader.loadQuads$(BulkLoader.java:152)
>>
>> at 
>> org.apache.jena.tdb.store.bulkloader.BulkLoader.loadDataset(BulkLoader.java:115)
>>
>> at org.apache.jena.tdb.TDBLoader.loadDataset$(TDBLoader.java:265)
>>
>> at org.apache.jena.tdb.TDBLoader.loadDataset(TDBLoader.java:200)
>>
>> at org.apache.jena.tdb.TDBLoader.load(TDBLoader.java:85)
>>
>> at TDBexample2.main(TDBexample2.java:28)
>>
>>
>> Can someone help me what is the problem with the code?
>>
>> Many thanks in advance.
>>
>>
>> Best regards,
>>
>>
>> Izhar
>>
>>

Reply via email to