コード例 #1
0
ファイル: test_io_rdf.py プロジェクト: edwardt/algebraixlib
    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)
コード例 #2
0
    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')
コード例 #3
0
    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.
コード例 #4
0
    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)