Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python: Using RDFLIB to graph a Sesame database

Is it possible to draw a graph of a Sesame RDF database using RDFLIB? This is what I tried:

endpoint = "http://127.0.0.1:8080/openrdf-workbench/repositories/movies/explore?resource=%3Cfile%3A%2F%2Fmovies_export.rdf%3E"

from rdflib import Graph
g = Graph()
g.parse(endpoint) 

This is the error:

Traceback (most recent call last):
  File "C:\Software\rdflib\movieGraph.py", line 10, in <module>
    g.parse(endpoint)
  File "c:\python26_32bit\lib\site-packages\rdflib\graph.py", line 756, in parse

    parser = plugin.get(format, Parser)()
  File "c:\python26_32bit\lib\site-packages\rdflib\plugin.py", line 89, in get
    raise PluginException("No plugin registered for (%s, %s)" % (name, kind))
rdflib.plugin.PluginException: No plugin registered for (application/xml, <class
 'rdflib.parser.Parser'>)

I think the only trick is specifying a proper URL to cause Sesame to return a .rdf xml layout.

Author of question: reposted to http://answers.semanticweb.com/questions/9414/python-using-rdflib-to-graph-a-sesame-database (see answer there)

like image 519
NealWalters Avatar asked Nov 13 '22 23:11

NealWalters


1 Answers

Your endpoint URL is wrong. It points to the Sesame Workbench, which is not a (SPARQL) endpoint, but a client application. The SPARQL endpoint for any Sesame database is always on the Sesame server, and is equal to the repository URL. In your case, probably http://127.0.0.1:8080/openrdf-sesame/repositories/movies.

Looking at what you're doing, I think you do not need a SPARQL endpoint but just want an export of the complete Sesame database. For this, you can use http://127.0.0.1:8080/openrdf-sesame/repositories/movies/statements. See the Sesame HTTP communication protocol for more details.

(answer copied from my own answer on another site, posted here for completeness)

like image 70
Jeen Broekstra Avatar answered Dec 19 '22 22:12

Jeen Broekstra