RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information as graphs.
RDFLib may be installed with setuptools (easy_install) or pip::
$ easy_install rdflib
or
$ pip install rdflib
RDFLib aims to be a pythonic RDF API, a Graph is a python collection of RDF Subject,Predicate,Object Triples:
import rdflib
g=rdflib.Graph()
g.load('http://dbpedia.org/resource/Semantic_Web')
for s,p,o in g:
print s,p,o
The components of the triples are URIs (resources) or Literals (values), URIs are grouped together by namespace, common namespaces are included in RDFLib:
semweb=rdflib.URIRef('http://dbpedia.org/resource/Semantic_Web')
type=g.value(semweb, rdflib.RDFS.label)
Where rdflib.RDFS
is the RDFS Namespace, graph.value
returns an
object of the triple-pattern given (or an arbitrary one if more
exist). New Namespaces can also be defined:
dbpedia=Namespace('http://dbpedia.org/ontology/')
abstracts=list(x for x in g.objects(semweb, dbpedia['abstract']) if x.language=='en')
See also ./examples
The library contains parsers and serializers for RDF/XML, N3, NTriples, N-Quads, Turtle, TriX, RDFa and Microdata.
The library presents a Graph interface which can be backed by any one of a number of Store implementations.
This core RDFLib package includes store implementations for in memory storage and persistent storage on top of the Berkeley DB.
A SPARQL 1.1 implementation is included - supporting SPARQL 1.1 Queries and Update statements.
RDFLib is open source and is maintained on GitHub. RDFLib releases, current and previous are listed on PyPI
RDFLib has a plugin-architecture for store-implementation, as well as parsers/serializers, several other projects exist which extend RDFLib features:
- rdflib-json - Serializer and parser for json-ld
More information is available on the project webpage:
https://github.com/RDFLib/rdflib/
Continuous integration status details available from travis.ci, test coverage from coveralls:
The documentation can be built by doing::
$ python setup.py build_sphinx
And is also available from ReadTheDocs:
http://readthedocs.org/docs/rdflib/
Support is available through the rdflib-dev group:
http://groups.google.com/group/rdflib-dev
and on the IRC channel #rdflib on the freenode.net server