Mercurial > code > home > repos > homeauto
changeset 1040:2fa7daf06f34
rdflib can parse trig now
Ignore-this: ad1feb1d88249f509d2906b6cdbe62c6
darcs-hash:c141fa6a86e7d395c4c80facc9ed7fcadcf40b29
author | drewp <drewp@bigasterisk.com> |
---|---|
date | Mon, 01 Feb 2016 02:15:23 -0800 |
parents | 77e7e8d76a81 |
children | 5fa741cb02a3 |
files | service/reasoning/inference.py service/reasoning/rdflibtrig.py service/reasoning/reasoning.py |
diffstat | 3 files changed, 23 insertions(+), 28 deletions(-) [+] |
line wrap: on
line diff
--- a/service/reasoning/inference.py Sat Jan 30 06:45:55 2016 -0800 +++ b/service/reasoning/inference.py Mon Feb 01 02:15:23 2016 -0800 @@ -15,7 +15,6 @@ from FuXi.Rete import ReteNetwork from rdflib import plugin from rdflib.store import Store -from rdflibtrig import parseTrig, addTrig def infer(graph, rules): """
--- a/service/reasoning/rdflibtrig.py Sat Jan 30 06:45:55 2016 -0800 +++ b/service/reasoning/rdflibtrig.py Mon Feb 01 02:15:23 2016 -0800 @@ -1,28 +1,7 @@ import re, time import restkit -from rdflib import URIRef -try: - from rdflib import StringInputSource - from rdflib.Graph import Graph -except ImportError: - from rdflib.parser import StringInputSource - from rdflib import Graph - -def parseTrig(trig): - """ - yields quads - """ - m = re.match(r"<([^>]+)> \{(.*)\}\s*$", trig, re.DOTALL) - if m is None: - raise NotImplementedError("trig format was too tricky: %r..." % trig[:200]) - - ctx = URIRef(m.group(1)) - n3 = m.group(2) - g = Graph() - g.parse(StringInputSource(n3), format="n3") - for stmt in g: - yield stmt + (ctx,) - +from rdflib.parser import StringInputSource +from rdflib import ConjunctiveGraph def addTrig(graph, url, timeout=2): t1 = time.time() @@ -31,5 +10,7 @@ raise ValueError("status %s from %s" % (response.status, url)) trig = response.body_string() fetchTime = time.time() - t1 - graph.addN(parseTrig(trig)) + g = ConjunctiveGraph() + g.parse(StringInputSource(trig), format='trig') + graph.addN(g.quads()) return fetchTime
--- a/service/reasoning/reasoning.py Sat Jan 30 06:45:55 2016 -0800 +++ b/service/reasoning/reasoning.py Mon Feb 01 02:15:23 2016 -0800 @@ -24,7 +24,8 @@ from rdflib.parser import StringInputSource from cyclone.httpclient import fetch import cyclone.web, cyclone.websocket -from inference import addTrig, infer +from inference import infer +from rdflibtrig import addTrig from graphop import graphEqual from docopt import docopt @@ -169,7 +170,6 @@ self.inputGraph = InputGraph([], self.graphChanged) self.inputGraph.updateFileData() - def readRules(self): self.rulesN3 = open('rules.n3').read() # for web display self.ruleStore = N3RuleStore() @@ -559,11 +559,26 @@ r = Reasoning() if arg['-v']: + from colorlog import ColoredFormatter + log.handlers[0].setFormatter(ColoredFormatter("%(log_color)s%(levelname)-8s%(reset)s %(white)s%(message)s", + datefmt=None, + reset=True, + log_colors={ + 'DEBUG': 'cyan', + 'INFO': 'green', + 'WARNING': 'yellow', + 'ERROR': 'red', + 'CRITICAL': 'red,bg_white', + }, + secondary_log_colors={}, + style='%' +)) + import twisted.python.log twisted.python.log.startLogging(sys.stdout) log.setLevel(logging.DEBUG) outlog.setLevel(logging.DEBUG) task.LoopingCall(r.poll).start(1.0) - reactor.listenTCP(9071, Application(r)) + reactor.listenTCP(9071, Application(r), interface='::') reactor.run()