def prolog_persist(self): """ persist all currently asserted dynamic memory predicates from the prolog KB """ # q = 'predicate_property(Head, (dynamic)), clause(Head,Bod).' # for r in self.prolog_query(q): # logging.info(repr(r)) # # print "%s" % repr(r) self.session.query(model.Mem).delete() q = u'memory(REALM, K, V, S).' for r in self.prolog_query(q): # logging.info(repr(r)) realm = r[0].name k = r[1].name v = xsb_to_json(r[2]) score = r[3] m = model.Mem(realm=realm, k=k, v=v, score=score) self.session.add(m) # import pdb; pdb.set_trace() self.session.commit()
def mem_set(self, realm, k, v): self.session.query(model.Mem).filter(model.Mem.realm == realm).filter( model.Mem.k == k).delete() m = model.Mem(realm=realm, k=k, v=json.dumps(v)) self.session.add(m)