#!/usr/bin/env python """ RDF Utilities License: GPL 2; share and enjoy! Author: Sean B. Palmer, inamidst.com Dependencies: http://www.redland.opensource.ac.uk/ Redland and Python Bindings """ import urllib import RDF class Graph(object): def __init__(self, uri=None, storage=None): self.model = RDF.Model(storage) if uri: u = urllib.urlopen(uri) s = u.read() u.close() parser = RDF.Parser(name="rdfxml") for statement in parser.parse_string_as_stream(s, uri): self.model.append(statement) def rdql(self, query): q = RDF.Query(query) return q.execute(self.model) def main(): foaf = Graph("http://inamidst.com/proj/rdf/foaf") result = foaf.rdql("""SELECT ?name WHERE (?person foaf:name ?name) USING foaf FOR """) print '\n'.join([str(res['name']) for res in result]) if __name__=="__main__": main()