Mercurial > code > home > repos > homeauto
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 |
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 | 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) |