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 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:
Quick Startfrom surf import *
store = Store( reader='rdflib',
rdflib_store = 'IOMemory')
session = Session(store)
print 'Load RDF data'
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:
#create a person object
somebody = Person()
somebody_else = Person()
somebody.foaf_knows = somebody_else
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:
Copyright © 2013 Black Duck Software, Inc. and its contributors, Some Rights Reserved. Unless otherwise marked, this work is licensed under a Creative Commons Attribution 3.0 Unported License . Ohloh ® and the Ohloh logo are trademarks of Black Duck Software, Inc. in the United States and/or other jurisdictions. All other trademarks are the property of their respective holders.