annotate service/reasoning/oneShot @ 1462:2b29f14eb6bd

try new graph+view widget Ignore-this: d5f9c5dc52f04324368716ba2f604fdb darcs-hash:44e85a5c075ef73c34a58deaa3a3c1e8390dae52
author drewp <drewp@bigasterisk.com>
date Sun, 24 Nov 2019 00:01:00 -0800
parents 1a277dba4cdc
children c8562ace4917
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 """
1414
1a277dba4cdc oneShot can send to a dev instance
drewp <drewp@bigasterisk.com>
parents: 1197
diff changeset
6 import sys, requests, time, os
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 = {
1133
114ca7fd9d01 IR remote rule
drewp <drewp@bigasterisk.com>
parents: 1126
diff changeset
10 '': 'http://projects.bigasterisk.com/room/',
1126
82046a1c75f3 rules updates for storage and changing
drewp <drewp@bigasterisk.com>
parents: 1055
diff changeset
11 'room' : 'http://projects.bigasterisk.com/room/',
82046a1c75f3 rules updates for storage and changing
drewp <drewp@bigasterisk.com>
parents: 1055
diff changeset
12 'shuttle': 'http://bigasterisk.com/room/livingRoom/shuttlepro/',
82046a1c75f3 rules updates for storage and changing
drewp <drewp@bigasterisk.com>
parents: 1055
diff changeset
13 'sensor': 'http://bigasterisk.com/homeauto/sensor/',
82046a1c75f3 rules updates for storage and changing
drewp <drewp@bigasterisk.com>
parents: 1055
diff changeset
14 }
852
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
15
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
16 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
17 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
18 return term
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
19 left, right = term.split(':', 1)
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
20 if left in prefixes:
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
21 return '<%s%s>' % (prefixes[left], right)
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
22 return term
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
23
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
24 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
25 print "Sending: %s" % stmt
6ccd930834d1 scan more input files. oneshot and immediate update features.
drewp <drewp@bigasterisk.com>
parents:
diff changeset
26
1055
e1693cc0b992 fix oneshot. more time reportin
drewp <drewp@bigasterisk.com>
parents: 934
diff changeset
27 t1 = time.time()
1197
d8acab2b01f5 mqtt has two devices now. various older cleanups.
drewp <drewp@bigasterisk.com>
parents: 1133
diff changeset
28 ret = requests.post(
1414
1a277dba4cdc oneShot can send to a dev instance
drewp <drewp@bigasterisk.com>
parents: 1197
diff changeset
29 'http://%s/oneShot' % os.environ.get('REASONING', 'bang:9071'),
1197
d8acab2b01f5 mqtt has two devices now. various older cleanups.
drewp <drewp@bigasterisk.com>
parents: 1133
diff changeset
30 headers={"content-type": "text/n3"},
d8acab2b01f5 mqtt has two devices now. various older cleanups.
drewp <drewp@bigasterisk.com>
parents: 1133
diff changeset
31 data=stmt.encode('ascii'))
1055
e1693cc0b992 fix oneshot. more time reportin
drewp <drewp@bigasterisk.com>
parents: 934
diff changeset
32 g = float(ret.headers['x-graph-ms'])
e1693cc0b992 fix oneshot. more time reportin
drewp <drewp@bigasterisk.com>
parents: 934
diff changeset
33 print "%.1f ms for graph update; %.1f ms other overhead" % (g, 1000 * (time.time() - t1) - g)