Yes, sorry - I didn't recognize that quads are expected instead of triples but Andy give you the correct answer.
Good to hear that it works for you now. On 27.01.2017 16:48, Ullah, Izhar wrote: > 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 >>> >>>
