Example #1
0
def objectPropertySolutions(agent, bindings, zexpr, propname_given):
    "Generator that returns a tuple (obj, propname, val) for each solution"
    d1 = agent.getInfo(P_ObjectProperty)
    obj_iter = makeSequence(termEvalOpt(agent, bindings, zexpr[0]))
    propname_iter = makeSequence(propname_given)
    for obj in obj_iter or d1:
        d2 = d1.get(obj, NULLDICT)
        if d2 and (obj_iter or termMatch(agent, bindings, zexpr[0], obj)):
            for propname in propname_iter or d2:
                val = d2.get(propname)
                if val is not None \
                       and termMatch(agent, bindings, zexpr[2], val) \
                       and (propname_iter or termMatch(agent, bindings, zexpr[1], propname)):
                    yield (obj, propname, val)
Example #2
0
 def retractall(self, agent, bindings, zexpr):
     if (len(zexpr) != 3): raise AssertionError
     removefacts = list(objectPropertySolutions(agent, bindings, zexpr, termEvalOpt(agent, bindings, zexpr[1])))
     for fact in removefacts:
         setObjectProperty(agent, fact[0], fact[1], None, False)
Example #3
0
 def solutions(self, agent, bindings, zexpr):
     if (len(zexpr) != 3): raise AssertionError
     for tup in objectPropertySolutions(agent, bindings, zexpr, termEvalOpt(agent, bindings, zexpr[1])):
         yield SOLVED
Example #4
0
 def solution(self, agent, bindings, zexpr):
     if (len(zexpr) != 3): raise AssertionError
     for x in objectPropertySolutions(agent, bindings, zexpr, termEvalOpt(agent, bindings, zexpr[1])):
         return SOLVED
     return NOT_SOLVED