#!/usr/bin/python """Eep RDF API: Inference Engine Tests""" __author__ = 'Sean B. Palmer' __license__ = 'Copyright (C) 2001 Sean B. Palmer. GNU GPL 2' import eep, query, infer def test(): store = eep.parse("""<#Sean> <#likes> <#TheSimpsons> . <#Sean> <#likes> <#TheSemanticWeb> . <#Aaron> <#name> "Aaron" . <#Aaron> <#likes> <#ThePlex> . <#Sean> <#name> "Sean" .""") r = infer.rule('?x <#name> ?y .\n?x <#likes> ?z .', # log:implies '?z <#likedBy> ?y .') print infer.filter(r, store) print store = eep.parse("""<#Bob> <#sonOf> <#Fred> . <#Fred> <#sonOf> <#John> . <#John> <#sonOf> <#Wayne> .""") r = infer.rule('?x <#sonOf> ?y .\n?y <#sonOf> ?z .', # log:implies '?x <#grandchildOf> ?z .') print infer.apply(r, store, 1) print store = eep.parse("""<#Bob> <#sonOf> <#Fred> . <#Fred> <#sonOf> <#John> . <#John> <#sonOf> <#Wayne> .""") r = infer.rule('?x ?y ?z .', # log:implies '?x ?y ?z .\n?z ?y ?x .') print infer.apply(r, store, 1) def earlTest(): # print 'And now for the big EARL query...\n' store = eep.parse(open('agree.nt', 'r').read()) r = infer.rule(open('a.nt', 'r').read(), open('c.nt', 'r').read()) for y in [eep.serialize(x) for x in infer.filter(r, store)]: print y+'\n' if __name__=="__main__": test()