本文整理汇总了Python中actions.Actions.putResults方法的典型用法代码示例。如果您正苦于以下问题:Python Actions.putResults方法的具体用法?Python Actions.putResults怎么用?Python Actions.putResults使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类actions.Actions
的用法示例。
在下文中一共展示了Actions.putResults方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Reasoning
# 需要导入模块: from actions import Actions [as 别名]
# 或者: from actions.Actions import putResults [as 别名]
class Reasoning(object):
def __init__(self):
self.prevGraph = None
self.actions = Actions(sendToLiveClients)
self.rulesN3 = "(not read yet)"
self.inferred = Graph() # gets replaced in each graphChanged call
self.inputGraph = InputGraph([], self.graphChanged)
self.inputGraph.updateFileData()
def updateRules(self):
rulesPath = 'rules.n3'
try:
t1 = time.time()
self.rulesN3, self.ruleStore = readRules(
rulesPath, outputPatterns=[
# Incomplete. See escapeoutputstatements.py for
# explanation.
(None, ROOM['brightness'], None),
(None, ROOM['playState'], None),
(None, ROOM['powerState'], None),
(None, ROOM['state'], None),
])
ruleParseTime = time.time() - t1
except ValueError:
# this is so if you're just watching the inferred output,
# you'll see the error too
self.inferred = Graph()
self.inferred.add((ROOM['reasoner'], ROOM['ruleParseError'],
Literal(traceback.format_exc())))
raise
return [(ROOM['reasoner'], ROOM['ruleParseTime'],
Literal(ruleParseTime))], ruleParseTime
@STATS.graphChanged.time()
def graphChanged(self, inputGraph, oneShot=False, oneShotGraph=None):
"""
If we're getting called for a oneShot event, the oneShotGraph
statements are already in inputGraph.getGraph().
"""
log.info("----------------------")
log.info("graphChanged (oneShot=%s):", oneShot)
t1 = time.time()
oldInferred = self.inferred
try:
ruleStatStmts, ruleParseSec = self.updateRules()
self.inferred, inferSec = self._makeInferred(inputGraph.getGraph())
self.inferred += unquoteOutputStatements(self.inferred)
self.inferred += ruleStatStmts
if oneShot:
# It's possible a oneShotGraph statement didn't
# trigger a rule to do something, but was itself the
# output statement. Probably we could just mix in the
# whole inputGraph here and not special-case the
# oneShotGraph.
self.inferred += oneShotGraph
t3 = time.time()
self.actions.putResults(self.inputGraph.getGraph(), self.inferred)
putResultsTime = time.time() - t3
finally:
if oneShot:
self.inferred = oldInferred
log.info("graphChanged took %.1f ms (rule parse %.1f ms, infer %.1f ms, putResults %.1f ms)" %
((time.time() - t1) * 1000,
ruleParseSec * 1000,
inferSec * 1000,
putResultsTime * 1000))
def _makeInferred(self, inputGraph):
t1 = time.time()
out = infer(inputGraph, self.ruleStore)
for p, n in NS.iteritems():
out.bind(p, n, override=True)
inferenceTime = time.time() - t1
out.add((ROOM['reasoner'], ROOM['inferenceTime'],
Literal(inferenceTime)))
return out, inferenceTime