예제 #1
0
    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()
예제 #2
0
 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)