annotate service/rdf_to_mqtt/rdf_over_http.py @ 1532:7cc7700302c2

more service renaming; start a lot more serv.n3 job files Ignore-this: 635aaefc7bd2fa5558eefb8b3fc9ec75 darcs-hash:2c8b587cbefa4db427f9a82676abdb47e651187e
author drewp <drewp@bigasterisk.com>
date Thu, 06 Feb 2020 16:36:35 -0800
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1532
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
1 from rdflib import Graph, URIRef, Literal, Namespace
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
2 from rdflib.parser import StringInputSource
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
3
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
4 ROOM = Namespace('http://projects.bigasterisk.com/room/')
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
5
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
6
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
7 def rdfGraphBody(body, headers):
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
8 g = Graph()
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
9 g.parse(StringInputSource(body), format='nt')
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
10 return g
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
11
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
12
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
13 def expandQueryParamUri(txt) -> URIRef:
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
14 if txt.startswith(':'):
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
15 return ROOM[txt.lstrip(':')]
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
16 # etc
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
17 return URIRef(txt)
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
18
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
19
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
20 def rdfStatementsFromRequest(arg, body, headers):
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
21 if arg.get('s') and arg.get('p'):
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
22 subj = expandQueryParamUri(arg['s'][-1])
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
23 pred = expandQueryParamUri(arg['p'][-1])
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
24 turtleLiteral = body
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
25 try:
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
26 obj = Literal(float(turtleLiteral))
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
27 except ValueError:
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
28 obj = Literal(turtleLiteral)
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
29 yield (subj, pred, obj)
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
30 else:
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
31 g = rdfGraphBody(body, headers)
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
32 assert len(g) == 1, len(g)
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
33 yield g.triples((None, None, None)).next()
7cc7700302c2 more service renaming; start a lot more serv.n3 job files
drewp <drewp@bigasterisk.com>
parents:
diff changeset
34 # could support multiple stmts