#!/usr/bin/env python """ com.inamidst.addrdf - Arcs Add RDF Widget Author: Sean B. Palmer, inamidst.com """ import trio def parse_value(s): s = s.replace('\\"', '"') s = s.replace('\\t', '\t') s = s.replace('\\r', '\r') s = s.replace('\\n', '\n') return s.decode('unicode-escape') def parse_term(string): if string.startswith('<'): return trio.rdf.URIReference(parse_value(string[1:-1])) elif string.startswith('_:'): return trio.rdf.BlankNode(string[2:]) elif string.startswith('"'): return trio.rdf.PlainLiteral(parse_value(string[1:-1])) raise ValueError(string) def main(arcs, write, params): term = params['uri'][0] node = parse_term(term) uri = node.value try: label, facts = arcs.library.add(uri) except Exception, e: write('Error: ' + str(e)) else: write('Loaded %s facts' % facts) if __name__ == '__main__': print __doc__