Example 8: Exporting triples¶
This example shows how to serialize contents of a repository to a file. As usual we’ll start with obtaining a connection to the repository:
from franz.openrdf.connect import ag_connect
conn = ag_connect('python-tutorial', create=True, clear=True)
Now let’s import some data:
conn.addData("""
<ex://s> <ex://p1> <ex://o1> , <ex://o2> ;
<ex://p2> <ex://o3> .""")
Data can be exported by passing a file name or a file-like object as
the output parameter of getStatements(). In this case we’ll
want to print all statements to standard output. We can do this by
passign True as the output file:
from franz.openrdf.rio.rdfformat import RDFFormat
conn.getStatements(output=True, output_format=RDFFormat.NTRIPLES)
We can see that results are printed in the specified format:
<ex://s> <ex://p1> <ex://o1> .
<ex://s> <ex://p1> <ex://o2> .
<ex://s> <ex://p2> <ex://o3> .
We can also use other arguments of getStatements() to constrain
the set of exported tripes:
conn.getStatements(None, conn.createURI('ex://p1'), None,
output=True,
output_format=RDFFormat.NTRIPLES)
As expected, the result contains only two triples.
<ex://s> <ex://p1> <ex://o1> .
<ex://s> <ex://p1> <ex://o2> .
A file path can also be passed as the output argument:
import os
import sys
conn.getStatements(output='example8.nt')
with open('example8.nt', 'r') as f:
sys.stdout.write(f.read())
os.remove('example8.nt')
This outputs data read from the file:
<ex://s> <ex://p2> <ex://o3> .
<ex://s> <ex://p1> <ex://o2> .
<ex://s> <ex://p1> <ex://o1> .