SuRF is a Python library for working with RDF data in an Object-Oriented way. In SuRF, RDF nodes (subjects and objects) are represented as Python objects and RDF arcs (predicates) as their attributes. SuRF is an Object RDF Mapper (ORM), similar in concept to Object Relational Mappers like
... [More]
SQLAlchemy. SuRF was inspired by ActiveRDF 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 surfImportant: 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.rdflibthe 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:
http://www.slideshare.net/cosbas/surf-tapping-into-the-web-of-data
Quick Startfrom 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
Documentationhttp://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:
Thank you [Less]