Exemplo n.º 1
0
def run(args, timestamp):
    pi = ProgressIndicator()

    # load mapping table
    if not is_readable(args.mapping):
        raise Exception("Wrong file permissions: {}".format(args.mapping))
    mapping = SchemaOTL(args.mapping)

    print("Importing referenced graph...")
    pi.start()
    params = import_graph(args.graph, mapping)
    pi.stop()

    print("Generating enrichments...")
    pi.start()
    graph = enrich(mapping, params['name'], params['graph'], timestamp)
    pi.stop()

    # validate output path
    output_path = args.output
    if output_path is None:
        output_path = "./{}-otl{}_{}".format(params['name'],\
                                               "-schema" if params['type'] is OWL.Ontology else "",\
                                               timestamp)
    if not is_writable(output_path):
        return

    # write graph
    print("Writing graph to disk...")
    write(graph, output_path, args.serialization_format)
Exemplo n.º 2
0
def run(args, timestamp):
    pi = ProgressIndicator()

    # load database mapping table
    mapping = SchemaDB(args.database_schema)
    database = mapping.database_name()

    # validate output path
    output_path = args.output
    if output_path is None:
        output_path = "./{}_{}".format(database, timestamp)
    if not is_writable(output_path):
        return

    if args.area is None:
        scope = Area()
    else:
        scope = Area(float(args.area[0]), float(args.area[1]),
                     float(args.area[2]), float(args.area[3]))

    # translate database to RDF
    print("Translating {}...".format(database.upper()))
    pi.start()
    if args.gdb is not None:
        graph = _run_gdb(args.gdb, mapping, scope, timestamp)
    else:
        graph = _run_sql(args.server, database, mapping, scope, timestamp)
    pi.stop()

    # write graph
    print("Writing graph to disk...")
    write(graph, output_path, args.serialization_format)
Exemplo n.º 3
0
def run(args, timestamp):
    pi = ProgressIndicator()

    # load mapping table
    if not is_readable(args.crossreference_mapping):
        raise Exception("Wrong file permissions: {}".format(args.crossreference_mapping))
    mapping = SchemaXR(args.crossreference_mapping)
    database_pairs = mapping.database_pairs()

    print("Importing referenced graphs...")
    pi.start()
    params = import_graphs(args.source_graph,\
                           args.target_graph,\
                           {db for pair in database_pairs for db in pair})
    pi.stop()

    # generate crossreferences
    print("Generating cross-references...")
    pi.start()
    graph = params['linker'](mapping,\
                             params['source_name'],\
                             params['target_name'],\
                             params['source_graph'],\
                             params['target_graph'],\
                             args.include_backlinks,\
                             timestamp)
    pi.stop()

    # validate output path
    output_path = args.output
    if output_path is None:
        output_path = "./xref_{}-{}{}_{}".format(params['source_name'],\
                                                 params['target_name'],\
                                                 "-schema" if params['linker'] is tbox_link else "",\
                                                 timestamp)
    if not is_writable(output_path):
        return

    # write graph
    print("Writing graph to disk...")
    write(graph, output_path, args.serialization_format)
Exemplo n.º 4
0
def run(args, timestamp):
    # load database mapping table
    mapping = SchemaDB(args.database_schema)

    database = mapping.database_name()

    # validate output path
    output_path = args.output
    if output_path is None:
        output_path = "./{}-schema_{}".format(database, timestamp)
    if not is_writable(output_path):
        return

    # translate database to RDF
    pi = ProgressIndicator()
    print("Translating {}...".format(database.upper()))
    pi.start()
    graph = translate(database, mapping, timestamp)
    pi.stop()

    # write graph
    print("Writing graph to disk...")
    write(graph, output_path, args.serialization_format)
Exemplo n.º 5
0
def run(args, timestamp):
    # validate input paths
    if len(args.graphs) < 2:
        raise Exception("Requires at least 2 input graphs")
    _check_paths(args.graphs)

    # validate output path
    output_path = args.output
    if output_path is None:
        output_path = "./merge_{}".format(timestamp)
    if not is_writable(output_path):
        return

    print("Merging graphs...")
    pi = ProgressIndicator()
    pi.start()
    graph = multiread(args.graphs)
    update_metadata(graph, default_namespace_of(graph)[0], timestamp)
    pi.stop()

    # write graph
    print("Writing graph to disk...")
    write(graph, output_path, args.serialization_format)