Mercurial > code > home > repos > homeauto
view 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 |
line wrap: on
line source
from rdflib import Graph, URIRef, Literal, Namespace from rdflib.parser import StringInputSource ROOM = Namespace('http://projects.bigasterisk.com/room/') def rdfGraphBody(body, headers): g = Graph() g.parse(StringInputSource(body), format='nt') return g def expandQueryParamUri(txt) -> URIRef: if txt.startswith(':'): return ROOM[txt.lstrip(':')] # etc return URIRef(txt) def rdfStatementsFromRequest(arg, body, headers): if arg.get('s') and arg.get('p'): subj = expandQueryParamUri(arg['s'][-1]) pred = expandQueryParamUri(arg['p'][-1]) turtleLiteral = body try: obj = Literal(float(turtleLiteral)) except ValueError: obj = Literal(turtleLiteral) yield (subj, pred, obj) else: g = rdfGraphBody(body, headers) assert len(g) == 1, len(g) yield g.triples((None, None, None)).next() # could support multiple stmts