def _turtle_to_ntriples(self, data): # Turtle syntax is not supported by allegro graph # HACK workaround using redland import RDF model = RDF.Model() parser = RDF.TurtleParser() try: parser.parse_string_into_model(model, data.read(), '-') except RDF.RedlandError, err: raise TripleStoreError(err)
def _parse(self, file, format, base_uri=None): if format == 'turtle': parser = RDF.TurtleParser() else: parser = RDF.Parser(format) if isinstance(base_uri, unicode): base_uri = base_uri.encode('utf8') data = file.read() file.close() try: stream = parser.parse_string_as_stream(data, base_uri) except RDF.RedlandError, err: raise TripleStoreError(err)
def get_parser(url, format=None): if format is None: format = get_format(url) if format == 'ttl': parser = RDF.TurtleParser() elif format == 'nt' or format == 'n3': # FIXME: this probably won't do for n3 parser = RDF.NTriplesParser() elif format == 'nq': parser = RDF.Parser(name='nquads') elif format == 'rdf': parser = RDF.Parser(name="rdfxml") elif format == 'sparql': return None elif format == 'sitemap': return None else: raise NameError("unsupported format") return parser
if opt in ("-i", "--input"): inputUri = "file:" + arg elif opt in ("-o", "--output"): outputUri = arg elif opt in ("-h", "--help"): help() sys.exit(0) if (inputUri == None): sys.stderr.write("\nNo input file given.\n") help() sys.exit(1) sys.stderr.write("Input: " + inputUri + "\n") ttlParser = RDF.TurtleParser() inStream = ttlParser.parse_as_stream(inputUri) namespaces = ttlParser.namespaces_seen() ntrSerializer = RDF.NTriplesSerializer() string = ntrSerializer.serialize_stream_to_string(inStream) bnode = re.compile(r'_(:[r0-9]+)') string = re.sub(bnode, r'bnode\1', string) string = "@prefix " + bnodePrefix + ": <" + bnodeNamespace + "> .\n" + string outStream = ttlParser.parse_string_as_stream(string, inputUri) ttlSerializer = RDF.Serializer(name="turtle")