# HG changeset patch # User drewp@bigasterisk.com # Date 1454321723 28800 # Node ID 5ad229334a88723efe72f05da4831a41ae70d3e3 # Parent 5bbcf7d9a5f5b2a43a94c6ae3a53c43afee0450c rdflib can parse trig now Ignore-this: ad1feb1d88249f509d2906b6cdbe62c6 diff -r 5bbcf7d9a5f5 -r 5ad229334a88 service/reasoning/inference.py --- 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): """ diff -r 5bbcf7d9a5f5 -r 5ad229334a88 service/reasoning/rdflibtrig.py --- 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 diff -r 5bbcf7d9a5f5 -r 5ad229334a88 service/reasoning/reasoning.py --- 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()