#!/usr/bin/python import cgi import urllib import re import RDF def main(): print "Content-Type: text/html" print print """ """ #url = fs.getfirst("url") #all = fs.getfirst("all") #rdql = fs.getfirst("rdql") form = cgi.FieldStorage() form.__call__ = lambda s: form[s].value if form.has_key('url'): url=form('url') else: url="" if (form.has_key('rdql')): rdql=form('rdql') else: rdql="" if (form.has_key('all')): all=form('all') else: all="" h1=RDF.Storage(storage_name="mysql",name="abc",options_string="merge='yes',host='127.0.0.1',user='root',password='****',database='redland'") model = RDF.Model(h1) if (url): print """I will parse %s for you.
""" %(url) urldata = urllib.urlopen(url) parser=RDF.Parser(name="rdfxml") for statement in parser.parse_string_as_stream(urldata.read(), "%s"%url): model.append(statement) print "%s\n
"%statement if (rdql): print """
Running RDQL query: %s\n
"""%(cgi.escape(rdql)) q1 = RDF.Query("%s"%rdql) res = q1.execute(model) if not res: print "No results found.
" else: for statement in res: for key in statement: value = statement[key] r = re.compile(r'(http://[^<>\s"]+)') result = r.match("%s"%value) if result: value = r.sub(r'\1',"%s"%value) print "%s: %s, "%(key, value) print "\n
" print "
" print """ Show all Triples
Enter a URL to add to the RDF database:
Or Enter an RDQL query string:
""" if (all): print "
The triples currently in the store are:
" for statement in model: print "%s\n
"%(statement) print """ """ if __name__=="__main__": main()