import wolfpack # rdflib from rdflib.URIRef import URIRef from rdflib.Literal import Literal from rdflib.BNode import BNode from rdflib.Namespace import Namespace from rdflib.constants import TYPE # Import RDFLib's default TripleStore implementation. from rdflib.TripleStore import TripleStore RSS = Namespace("http://purl.org/rss/1.0/") FOAF = Namespace("http://xmlns.com/foaf/0.1/") DC = Namespace("http://purl.org/dc/elements/1.1/") def rdfanswer(listener, text): listener.say("nothing") store = TripleStore() store.load("http://www.planetrdf.com/index.rdf") #store.load("file://C:\\Dokumente und Einstellungen\\Sauermann\\Eigene Dateien\\1\\index.rdf") listener.say("on http://www.planetrdf.com/index.rdf") listener.say("news are:"); output = "" for channel in store.subjects(TYPE, RSS["channel"]): # the channel for itemsSeq in store.objects(channel, RSS["items"]): # the items, get them for p, item in store.predicate_objects(itemsSeq): if p.startswith("http://www.w3.org/1999/02/22-rdf-syntax-ns#_"): try: # I have the item, print title for title in store.objects(item, RSS["title"]): for creator in store.objects(item, DC["creator"]): output += creator +": "+title + "\n" except: pass listener.say(output) def test(listener, speaker, text, keywords): rabbit = wolfpack.addnpc("jack_rabbit", speaker.pos) rabbit.name = "Bunny" def myfoafs(listener, speaker, text, keywords): listener.say("getting friends...") speaker.message('zzz all follow me') store = TripleStore() # #store.load("http://www.leobard.net/foaf.xml") store.load("http://leo.gnowsis.com/data/foaf.xml") # find leo leo = None for p in store.subjects(FOAF["nick"], Literal("leobard")): leo = p if leo == None: print "leo not found" return 1 # find friends for person in store.objects(leo, FOAF["knows"]): # nick and name nick = "" name = "" for p in store.objects(person, FOAF["nick"]): nick = p + ": " for p in store.objects(person, FOAF["name"]): name = p listener.say(nick + name) # create mouse friendpet = wolfpack.addnpc("jack_rabbit", speaker.pos) friendpet.name = nick+name