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()