Loading a .trig file with inference to Fuseki using the 'tdbloader" bulk loader?

RdNetwork Source

I am currently writing some Java code extracting some data and writing them as Linked Data, using the TRIG syntax. I am now using Jena, and Fuseki to create a SPARQL endpoint to query and visualize this data.

The data is written so that each source dataset gives me a .trig file, containing one named graph. So I want to load thoses files in Fuseki. Except that it doesn't seem to understand the Trig syntax...

If I remove the named graphs, and rename the files as .ttl, everything loads perfectly in the default graphs. But if I try to import trig files :

  • using Fuseki's webapp uploader, it either crashes ("Can't make new graphs") or adds nothing except the prefixes, as if the graphs other than the default ones could not be added (the logs say nothing helpful except the error code and description).

  • using Java code, the process is too slow. I used this technique : " Loading a .trig file into TDB? " but my trig files are pretty big, so this solution is not very good for me.

  • So I tried to use the bulk loader, the console command 'tdbloader'. This time everything seems fine, but in the webapp, there is still no data.

You can see the process going fine here : Quads are added just fine

But the result still keeps only the default graph and its original data : Nothing is added

So, I don't know what to do. The guys behind Jena and Fuseki suggested not to use the bulk loader in the Java code (rather than the command line tool), so that's one solution I guess I'd like to avoid.

Did I miss something obvious about how to load TRIG files to Fuseki? Thanks.

UPDATE : As it seemed to be a problem in my configuration (see the comments of this post for a link to my config file; I cannot post more than 2 links), I tried to add some kind of specification for some named graphs I would like to see added to the dataset on Fuseki.

I added code to link (with ja:namedgraph) external graphs that I added via tdbloader. This seems to work. Great!

Now another problem : there's no inference, even when my config file specifies an Inference model... I set that queries should be applied with named graphs merged as the default graph, but this does not seem to carry the OWL Inference rules...So simple queries work, but I have 1/ to specify the graph I query (with "FROM") and 2/ no inference in my data.



answered 2 years ago AndyS #1

The two methods are to use the tdb bulkloader offline or you can POST data into the dataset directly. (i.e. HTTP POST operations to http://localhost:3030/ds).

You can test where your graph are there with a query like

SELECT (count(*) AS ?C) { GRAPH ?g { ?s ?p ?o } }

The named graphs will show up when the Fuseki server is started unless your configuration of the SPARQL services only exports one graph.

comments powered by Disqus