annotate service/reasoning/oneShot @ 1126:82046a1c75f3

rules updates for storage and changing Ignore-this: d9a72db03ad987a7253a6b5b51eee14e darcs-hash:2196749d0e3ce3ba8d60a4222a29e7f04c27f51e
author drewp <drewp@bigasterisk.com>
date Mon, 03 Jul 2017 19:50:38 -0700
parents e1693cc0b992
children b069bb37f817
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
852
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
1 #!/usr/bin/python
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
2 """
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
3 send a statement to the reasoning server for one update cycle. Args
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
4 are s/p/o in n3 notation, with many prefixes predefined here.
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
5 """
1055
e1693cc0b992 fix oneshot. more time reportin
drewp <drewp@bigasterisk.com>
parents: 934
diff changeset
6 import sys, restkit, time
852
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
7 s, p, o = sys.argv[1:]
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
8
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
9 prefixes = {
1126
82046a1c75f3 rules updates for storage and changing
drewp <drewp@bigasterisk.com>
parents: 1055
diff changeset
10 'room' : 'http://projects.bigasterisk.com/room/',
82046a1c75f3 rules updates for storage and changing
drewp <drewp@bigasterisk.com>
parents: 1055
diff changeset
11 'shuttle': 'http://bigasterisk.com/room/livingRoom/shuttlepro/',
82046a1c75f3 rules updates for storage and changing
drewp <drewp@bigasterisk.com>
parents: 1055
diff changeset
12 'sensor': 'http://bigasterisk.com/homeauto/sensor/',
82046a1c75f3 rules updates for storage and changing
drewp <drewp@bigasterisk.com>
parents: 1055
diff changeset
13 }
852
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
14
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
15 def expand(term):
934
3bb18b7d21df reasoning actions: generalize them a bit but then add a bunch of special cases for mpd for now
drewp <drewp@bigasterisk.com>
parents: 852
diff changeset
16 if ':' not in term or term.startswith(('<', '"', "'")):
852
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
17 return term
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
18 left, right = term.split(':', 1)
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
19 if left in prefixes:
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
20 return '<%s%s>' % (prefixes[left], right)
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
21 return term
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
22
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
23 stmt = '%s %s %s .' % (expand(s), expand(p), expand(o))
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
24 print "Sending: %s" % stmt
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
25
1055
e1693cc0b992 fix oneshot. more time reportin
drewp <drewp@bigasterisk.com>
parents: 934
diff changeset
26 t1 = time.time()
852
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
27 reasoning = restkit.Resource("http://bang:9071/")
1055
e1693cc0b992 fix oneshot. more time reportin
drewp <drewp@bigasterisk.com>
parents: 934
diff changeset
28 ret = reasoning.post("oneShot",
e1693cc0b992 fix oneshot. more time reportin
drewp <drewp@bigasterisk.com>
parents: 934
diff changeset
29 headers={"content-type": "text/n3"},
e1693cc0b992 fix oneshot. more time reportin
drewp <drewp@bigasterisk.com>
parents: 934
diff changeset
30 payload=stmt)
e1693cc0b992 fix oneshot. more time reportin
drewp <drewp@bigasterisk.com>
parents: 934
diff changeset
31 g = float(ret.headers['x-graph-ms'])
e1693cc0b992 fix oneshot. more time reportin
drewp <drewp@bigasterisk.com>
parents: 934
diff changeset
32 print "%.1f ms for graph update; %.1f ms other overhead" % (g, 1000 * (time.time() - t1) - g)