def test_export_table(self): table = rt['1'] lefts = table.get_left_set() self.assertRaises(AttributeError, lambda: export_table(lefts, table, '1')) csv = io.StringIO(newline='') self.assertRaises(AssertionError, lambda: export_table(csv, lefts, table, '1')) csv = io.StringIO(newline='') export_table(file_or_path=csv, lefts=lefts, table=table, out_format='csv') csv_str = csv.getvalue() if self.print_examples: print('csv:', csv_str) self.assertEqual(csv_str, """\ "?cnt", "?eng", "?fav", "?name", "_:b0" "6", "id:james", "type:couplet", "james", "blank node" """) json = io.StringIO(newline='') export_table(file_or_path=json, lefts=lefts, table=table, out_format='json') json_str = json.getvalue() if self.print_examples: print('json:', json_str) self.assertEqual(json_str, """\ {"head":{"vars":["?cnt", "?eng", "?fav", "?name", "_:b0"]}, "results":{"bindings":[ {"?cnt": {"type":"literal", "datatype":"http://www.w3.org/2001/XMLSchema#integer", "value":"6"} , "?eng": {"type":"uri", "value":"id:james"} , "?fav": {"type":"uri", "value":"type:couplet"} , "?name": {"type":"literal", "value":"james"} , "_:b0": {"type":"bnode", "value":"blank node"} } ]}}""") table = rt['2'] lefts = table.get_left_set() csv = io.StringIO(newline='') export_table(file_or_path=csv, lefts=lefts, table=table, out_format='csv') csv_str = csv.getvalue() if self.print_examples: print('csv:', csv_str) json = io.StringIO(newline='') export_table(file_or_path=json, lefts=lefts, table=table, out_format='json') json_str = json.getvalue() if self.print_examples: print('json:', json_str)
print('Input graph (as MathObject):', graph_algebra) # Query the MathObject graph, retrieving the id, name and favorite MathObject of all engineers who # have all three. start = time() engineers_algebra = join( triple_match(graph_algebra, '?eng', rdflib.URIRef('rdf:name'), '?name'), triple_match(graph_algebra, '?eng', rdflib.URIRef('rdf:type'), rdflib.URIRef('cat:engineer')), triple_match(graph_algebra, '?eng', rdflib.URIRef('fav:mathobject'), '?fav') ) elapsed_algebra = time() - start engineers_algebra_json = io.StringIO() export_table( file_or_path=engineers_algebra_json, lefts=Set(['?eng', '?name', '?fav']), table=engineers_algebra, out_format='json') if print_examples: print('Engineers (data algebra API, took {time:.3f} s): {result}'.format( time=elapsed_algebra, result=engineers_algebra)) print('The data in RDF JSON:\n{json}'.format(json=engineers_algebra_json.getvalue())) # SPARQL (using rdflib) ---------------------------------------------------------------------------- # Import the example graph as rdflib Graph. graph_rdflib = rdflib.Graph() graph_rdflib.parse(data=sample_graph, format='turtle')
print('Input graph (as MathObject):', graph_algebra) # Query the MathObject graph, retrieving the id, name and favorite MathObject of all engineers who # have all three. start = time() engineers_algebra = join( triple_match(graph_algebra, '?eng', rdflib.URIRef('rdf:name'), '?name'), triple_match(graph_algebra, '?eng', rdflib.URIRef('rdf:type'), rdflib.URIRef('cat:engineer')), triple_match(graph_algebra, '?eng', rdflib.URIRef('fav:mathobject'), '?fav')) elapsed_algebra = time() - start engineers_algebra_json = io.StringIO() export_table(file_or_path=engineers_algebra_json, lefts=Set(['?eng', '?name', '?fav']), table=engineers_algebra, out_format='json') if print_examples: print('Engineers (data algebra API, took {time:.3f} s): {result}'.format( time=elapsed_algebra, result=engineers_algebra)) print('The data in RDF JSON:\n{json}'.format( json=engineers_algebra_json.getvalue())) # SPARQL (using rdflib) ---------------------------------------------------------------------------- # Import the example graph as rdflib Graph. graph_rdflib = rdflib.Graph() graph_rdflib.parse(data=sample_graph, format='turtle') # Query the rdflib graph, retrieving the same data as with the previous data algebra query.
def test_export_table(self): table = rt['1'] lefts = table.get_left_set() self.assertRaises(AttributeError, lambda: export_table(lefts, table, '1')) csv = io.StringIO(newline='') self.assertRaises(AssertionError, lambda: export_table(csv, lefts, table, '1')) csv = io.StringIO(newline='') export_table(file_or_path=csv, lefts=lefts, table=table, out_format='csv') csv_str = csv.getvalue() if self.print_examples: print('csv:', csv_str) self.assertEqual( csv_str, """\ "?cnt", "?eng", "?fav", "?name", "_:b0" "6", "id:james", "type:couplet", "james", "blank node" """) json = io.StringIO(newline='') export_table(file_or_path=json, lefts=lefts, table=table, out_format='json') json_str = json.getvalue() if self.print_examples: print('json:', json_str) self.assertEqual( json_str, """\ {"head":{"vars":["?cnt", "?eng", "?fav", "?name", "_:b0"]}, "results":{"bindings":[ {"?cnt": {"type":"literal", "datatype":"http://www.w3.org/2001/XMLSchema#integer", "value":"6"} , "?eng": {"type":"uri", "value":"id:james"} , "?fav": {"type":"uri", "value":"type:couplet"} , "?name": {"type":"literal", "value":"james"} , "_:b0": {"type":"bnode", "value":"blank node"} } ]}}""") table = rt['2'] lefts = table.get_left_set() csv = io.StringIO(newline='') export_table(file_or_path=csv, lefts=lefts, table=table, out_format='csv') csv_str = csv.getvalue() if self.print_examples: print('csv:', csv_str) json = io.StringIO(newline='') export_table(file_or_path=json, lefts=lefts, table=table, out_format='json') json_str = json.getvalue() if self.print_examples: print('json:', json_str)