SuRF is an Object - RDF Mapper based on the popular rdflib python library. It exposes the RDF triple sets as sets of resources and seamlessly integrates them into the Object Oriented paradigm of python in a similar manner as ActiveRDF does for ruby.
Use the pypi repository to get the latest version of SuRF.
Check the latest documentation at: http://packages.python.org/SuRF/
$ easy_install -U surf
Important: since version 0.5.0, the surf plugin architecture is based on setuptools. In order to install surf and it's available plugins just do the following
$ easy_install -U surf $ easy_install -U surf.allegro_franz $ easy_install -U surf.sesame2 $ easy_install -U surf.sparql_protocol $ easy_install -U surf.rdflib
the plugins are also available under the following keys:
- allegro_franz
- sesame2
- sparql_protocol
- rdflib
An outdated presentation of SuRF at EUROPYTHON 2009 is available here, although the internals of SuRF have changed with the release of version 0.5.0 - most notably the plugin architecture, much of the public interface still remains the same see slideshow here:
Quick Start
from surf import *
store = Store( reader='rdflib',
writer='rdflib',
rdflib_store = 'IOMemory')
session = Session(store)
print 'Load RDF data'
store.load_triples(source='http://www.w3.org/People/Berners-Lee/card.rdf')
Person = session.get_class(ns.FOAF['Person'])
all_persons = Person.all()
print 'Found %d persons that Tim Berners-Lee knows'%(len(all_persons))
for person in all_persons:
print person.foaf_name.first
#create a person object
somebody = Person()
somebody_else = Person()
somebody.foaf_knows = somebody_else
Documentation
http://packages.python.org/SuRF/
If you are using SuRF in you projects please let us know, and remember that you can always include the Powered By SuRF logo using the following html snippet of code:
<a href="http://code.google.com/p/surfrdf/"><img src="http://surfrdf.googlecode.com/files/surf-logo-poweredby.png" alt="Powered by SuRF" width="150px"/></a>
Thank you