#!/usr/bin/python """Semantic Web API Tests.""" import sys def ntuplesTest(): from ntuples import parse, serialize, parseNTuples, parsent testdoc = """ <#x> _:y "z" . _:p . """.strip() t = parseNTuples(testdoc) print t.__class__, t t = parsent(testdoc) print t.__class__, t t = parse(testdoc) print t.__class__, t # print serialize(x) # testdoc = parse("""<#x> _:y "z" .\n_:p q .""") # query = parse("""?x ?y "z" .""") # testdoc = parse(""" .\n . # "Sean" .""") # query = parse(""" ?x .\n ?y .""") # print testdoc, query # q = Query() # print q.uquery(testdoc, query) # testdoc = parse("""<#Bob> <#sonOf> <#Fred> .\n<#Fred> <#sonOf> <#John> . # <#John> <#sonOf> <#Wayne> .""") # query = parse("""?x <#sonOf> ?y .\n?y <#sonOf> ?z .""") # r = Query() # print r.uquery(testdoc, query) def queryTest(): from ntuples import parse, serialize, parsent from query import query print query(parse('<#a> <#y> <#b> .\n<#p> <#y> <#q> .')[None], parse('?x <#y> ?z .')[None], 1) print '--' print query(parsent("""<#Sean> <#likes> <#TheSimpsons> . <#Sean> <#likes> <#SemanticWeb> . <#Sean> <#name> "Sean" ."""), parsent('<#Sean> <#likes> ?x .'), 1) print '--' print query(parsent("""<#Sean> <#likes> <#TheSimpsons> . <#Sean> <#likes> <#SemanticWeb> . <#Sean> <#likes> <#Music> . <#Sean> <#name> "Sean" ."""), parsent('<#Sean> <#likes> ?x .\n<#Sean> <#name> ?y .'), 1) print '--' print query(parsent("""<#Bob> <#sonOf> <#Fred> . <#Fred> <#sonOf> <#John> . <#John> <#sonOf> <#Wayne> ."""), parsent("""?x <#sonOf> ?y .\n?y <#sonOf> ?z ."""), 1) print '--' print query(parsent("""<#Aaron> <#eats> <#Fred> ."""), parsent("""<#Aaron> <#likes> ?x ."""), 1) print '--' print query(parsent("""<#Sean> <#likes> <#TheSimpsons> . <#Sean> <#name> "Sean" . <#Sean> <#blargh> "x" . <#Sean> <#likes> <#SemanticWeb> . <#Sean> <#blargh> "y" . <#Sean> <#likes> <#Music> ."""), parsent("""<#Sean> <#likes> ?x . <#Sean> <#name> ?y . <#Sean> <#blargh> ?z ."""), 1) print '--' print query(parsent("""<#Sean> <#likes> <#TheSimpsons> . <#Sean> <#likes> <#TheSemanticWeb> . <#Aaron> <#name> "Aaron" . <#Aaron> <#likes> <#ThePlex> . <#Sean> <#name> "Sean" ."""), parsent('?x <#name> ?y .\n?x <#likes> ?z .'), 1) def redmonkTest(): from ntuples import parse, parsent, serialize from query import query print "And now for redmonk's test..." import time t = time.time() f = parsent(open('/home/swapi/test/store.n3', 'r').read()) q = parsent(open('/home/swapi/test/query.n3', 'r').read()) print 'Time taken:', time.time()-t t = time.time() r = `query(f, q)` print 'Time taken:', time.time()-t # i = open('sq-out.n3', 'r').read().count('[') print r.count('([') # , i def apiTest(): import api, ntuples x = api.Triple((api.Article(''), api.Article('_:y'), api.Article('"z"'))) y = api.Triple((api.Article('"p"'), api.Article('<#q>'), api.Article('_:r'))) # , 'RF')) z = api.Triple((api.Article(''), api.Article('_:y'), api.Article('"x"'))) s = api.TripleStore((x, y)) s.extend((x, z, z, z, x)) print x, s s = s.remove(x) print s.query(ntuples.parsent('?x ?y "x" .')[0]) print s s = s.remove(ntuples.parsent('?x ?y "x" .')[0]) print s print '--' x = api.Triple((api.Article(''), api.Article('_:y'), api.Article('"z"'))) print x y = api.TripleStore((x, x)) print y y = y.remove(x) print y def ptestTest(): import query, ntuples print "import query, ntuples" x = ntuples.parsent("""<#Sean> <#likes> <#TheSimpsons> . <#Sean> <#likes> <#TheSemanticWeb> . <#Aaron> <#name> "Aaron" . <#Aaron> <#likes> <#ThePlex> . <#Sean> <#name> "Sean" .""") print '''x = ntuples.parsent("""<#Sean> <#likes> <#TheSimpsons> . <#Sean> <#likes> <#TheSemanticWeb> . <#Aaron> <#name> "Aaron" . <#Aaron> <#likes> <#ThePlex> . <#Sean> <#name> "Sean" .""")''' print "print x" print ">>>", x y = ntuples.parsent('?x <#name> ?y .\n?x <#likes> ?z .') print """y = ntuples.parsent('?x <#name> ?y .\n?x <#likes> ?z .')""" print "print y" print ">>>", y print "print query.query(x, y)" print ">>>", query.query(x, y) if __name__=="__main__": if len(sys.argv) < 2: print __doc__ elif sys.argv[1][-8:] == '-ntuples': ntuplesTest() elif sys.argv[1][-6:] == '-query': queryTest() elif sys.argv[1][-8:] == '-redmonk': redmonkTest() elif sys.argv[1][-4:] == '-api': apiTest() elif sys.argv[1][-6:] == '-ptest': ptestTest() else: print __doc__