Thanks,
and indeed it was loading and empty database.

One conclusion is that for small files that may be wrong, it 's safer to
load with SPARQL Update and
LOAD <remoteURI> [ INTO <uri> ]

and for that it would be convenient if
tdb.tdbupdate --update=FILE

would also accept a string :) .


2015-02-20 15:51 GMT+01:00 Andy Seaborne <[email protected]>:

> On 20/02/15 11:40, Jean-Marc Vanel wrote:
>
>> When rebuilding my TDB from scratch,
>> I found a way to reproduce the problem.
>>
>> 1. load a bad syntax file ( attached )
>> 2. load any good file in same named graph
>>
>> Hope it helps.
>>
>
> Was it loading and empty database?
>
> It's because of the syntax error.  It breaks the load.
>
> The bulk loader into an empty database does not load triples as they come
> in.  It does the minimum work then goes back and builds indexes. If it
> breaks during loading, the database is not built properly.  It is trading
> speed for reliability.
>
> It is a good idea to parse a file before loading it to check for errors.
> It is much easier to correct an error before loading into a database than
> fixing it in a database.  "riot --validate" does more checks than tdbloader
> does., e.g. literal lexical forms.
>
>         Andy
>
>
>>
>> 2015-02-20 12:24 GMT+01:00 Jean-Marc Vanel <[email protected]
>> <mailto:[email protected]>>:
>>
>>     Hi
>>
>>     It seems that the database , or some graph in it , is corrupted.
>>     That's with :
>>       "org.apache.jena" % "apache-jena-libs" % "2.12.1"
>>
>>     On another TDB directory instance , the same file is loaded fine.
>>
>>     The relevant code seems to be:
>>          public synchronized String readPrefix(String graphName, String
>>     prefix) {
>>              Node g = NodeFactory.createURI(graphName) ;
>>              Node p = NodeFactory.createLiteral(prefix) ;
>>              Iterator<Tuple<Node>> iter = nodeTupleTable.find(g, p, null)
>> ;
>>              try {
>>                  if ( ! iter.hasNext() )
>>                      return null ;
>>                  Tuple<Node> t = iter.next() ;
>>                  Node uri = t.get(2) ;
>>     *            return uri.getURI() ; // uri is probably null !*
>>              } finally { Iter.close(iter) ; }
>>          }
>>
>>     A user can hope that a better error message is displayed :) .
>>
>>
>>     java -cp $JARS tdb.tdbloader --verbose --loc=TDB
>>     --graph=av-cobus-onto $ONTOS/barter_user.owl.n3
>>     SLF4J: Class path contains multiple SLF4J bindings.
>>     SLF4J: Found binding in
>>     [jar:file:/home/jmv/deploy/semantic_forms_play-1.0-
>> SNAPSHOT/lib/ch.qos.logback.logback-classic-1.1.1.jar!/org/slf4j/impl/
>> StaticLoggerBinder.class]
>>     SLF4J: Found binding in
>>     [jar:file:/home/jmv/deploy/semantic_forms_play-1.0-
>> SNAPSHOT/lib/org.slf4j.slf4j-log4j12-1.7.6.jar!/org/slf4j/
>> impl/StaticLoggerBinder.class]
>>     SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an
>>     explanation.
>>     SLF4J: Actual binding is of type
>>     [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
>>     Java maximum memory: 259522560
>>     symbol:http://jena.hpl.hp.com/ARQ#constantBNodeLabels = true
>>     symbol:http://jena.hpl.hp.com/ARQ#regexImpl =
>>     symbol:http://jena.hpl.hp.com/ARQ#javaRegex
>>     symbol:http://jena.hpl.hp.com/ARQ#stageGenerator =
>>     com.hp.hpl.jena.tdb.solver.StageGeneratorDirectTDB@1049a04
>>     symbol:http://jena.hpl.hp.com/ARQ#strictSPARQL = false
>>     symbol:http://jena.hpl.hp.com/ARQ#enablePropertyFunctions = true
>>     Exception in thread "main" java.lang.NullPointerException
>>     *at
>>     com.hp.hpl.jena.tdb.store.DatasetPrefixesTDB.readPrefix(
>> DatasetPrefixesTDB.java:88)*
>>
>>     at
>>     com.hp.hpl.jena.sparql.graph.GraphPrefixesProjection.get(
>> GraphPrefixesProjection.java:96)
>>     at
>>     com.hp.hpl.jena.sparql.graph.GraphPrefixesProjection.set(
>> GraphPrefixesProjection.java:74)
>>     at
>>     com.hp.hpl.jena.shared.impl.PrefixMappingImpl.setNsPrefix(
>> PrefixMappingImpl.java:70)
>>     at
>>     com.hp.hpl.jena.tdb.store.bulkloader.BulkLoader$
>> DestinationGraph.prefix(BulkLoader.java:361)
>>     at
>>     org.apache.jena.riot.lang.LangTurtleBase.emitPrefix(
>> LangTurtleBase.java:492)
>>     at
>>     org.apache.jena.riot.lang.LangTurtleBase.directivePrefix(
>> LangTurtleBase.java:164)
>>     at
>>     org.apache.jena.riot.lang.LangTurtleBase.directive(
>> LangTurtleBase.java:140)
>>     at
>>     org.apache.jena.riot.lang.LangTurtleBase.runParser(
>> LangTurtleBase.java:79)
>>     at org.apache.jena.riot.lang.LangBase.parse(LangBase.java:42)
>>     at
>>     org.apache.jena.riot.RDFParserRegistry$ReaderRIOTLang.read(
>> RDFParserRegistry.java:182)
>>     at org.apache.jena.riot.RDFDataMgr.process(RDFDataMgr.java:906)
>>     at org.apache.jena.riot.RDFDataMgr.parse(RDFDataMgr.java:687)
>>     at org.apache.jena.riot.RDFDataMgr.parse(RDFDataMgr.java:666)
>>     at org.apache.jena.riot.RDFDataMgr.parse(RDFDataMgr.java:654)
>>     at
>>     com.hp.hpl.jena.tdb.store.bulkloader.BulkLoader.
>> loadTriples$(BulkLoader.java:129)
>>     at
>>     com.hp.hpl.jena.tdb.store.bulkloader.BulkLoader.
>> loadNamedGraph(BulkLoader.java:102)
>>     at com.hp.hpl.jena.tdb.TDBLoader.loadNamedGraph$(TDBLoader.java:253)
>>     at com.hp.hpl.jena.tdb.TDBLoader.loadGraph$(TDBLoader.java:232)
>>     at com.hp.hpl.jena.tdb.TDBLoader.loadGraph(TDBLoader.java:174)
>>     at com.hp.hpl.jena.tdb.TDBLoader.load(TDBLoader.java:111)
>>     at tdb.tdbloader.loadNamedGraph(tdbloader.java:113)
>>     at tdb.tdbloader.exec(tdbloader.java:102)
>>     at arq.cmdline.CmdMain.mainMethod(CmdMain.java:102)
>>     at arq.cmdline.CmdMain.mainRun(CmdMain.java:63)
>>     at arq.cmdline.CmdMain.mainRun(CmdMain.java:50)
>>     at tdb.tdbloader.main(tdbloader.java:44)
>>
>>
>>     --
>>     Jean-Marc Vanel
>>     Déductions SARL - Consulting, services, training,
>>     Rule-based programming, Semantic Web
>>     http://deductions-software.com/
>>     +33 (0)6 89 16 29 52 <tel:%2B33%20%280%296%2089%2016%2029%2052>
>>     Twitter: @jmvanel , @jmvanel_fr ; chat:
>>     irc://irc.freenode.net#eulergui <http://irc.freenode.net#eulergui>
>>
>>
>>
>>
>> --
>> Jean-Marc Vanel
>> Déductions SARL - Consulting, services, training,
>> Rule-based programming, Semantic Web
>> http://deductions-software.com/
>> +33 (0)6 89 16 29 52
>> Twitter: @jmvanel , @jmvanel_fr ; chat: irc://irc.freenode.net#eulergui
>> <http://irc.freenode.net#eulergui>
>>
>
>


-- 
Jean-Marc Vanel
Déductions SARL - Consulting, services, training,
Rule-based programming, Semantic Web
http://deductions-software.com/
+33 (0)6 89 16 29 52
Twitter: @jmvanel , @jmvanel_fr ; chat: irc://irc.freenode.net#eulergui

Reply via email to