def translate(server, mapper, area, time): """ Translate """ # retrieve table list tables = server.list_tables(DATABASE) logger.info("Retrieved {} tables".format(len(tables))) # initiate reference managers references = ReferenceManager() visited = ReferenceManager() # load disk references if provided #scope = _retrieve_external_references(area) #logger.info("Found {} root references".format(len(scope))) # select relevant subset based on scope _retrieve_root_references(references, server, PRIMARY_TABLE, area) logger.info("Found {} matching root objects".format( len(set(references.references(table=PRIMARY_TABLE))))) # start with PRIMARY_TABLE g = translate_generic(server, mapper, references, visited, time) # secondary tables for table in SECONDARY_TABLES: _retrieve_secondary_references(g, references, server, table, visited) references.difference_update( visited) # remove those we already visited g += translate_generic(server, mapper, references, visited, time) # add meta data add_metadata(g, "rws.{}".format(DATABASE), time, DATABASE) return g
def translate(gdb, mapper, area, time): """ Translate """ # determine database database = mapper.database_name() g = translate_gdb(gdb, mapper, area, time) # add meta data add_metadata(g, "rws.{}".format(database), time, database) return g
def enrich(schema, database, graph, time): """ Add OTL enrichments """ # init graph instance g = Graph(identifier=gen_hash("OTL", time)) # enrich _enrich(g, database, schema, graph) # add meta-data add_metadata(g, DEFAULT_SCHEMA_PREFIX, time, "OTL") return g
def link(schema, source_database, target_database, source_graph, target_graph, time): """ Add interlinks """ # init graph instance g = Graph(identifier=gen_hash("xref", time)) # add links _interlink(g, schema, source_database, target_database, source_graph, target_graph) # add meta-data add_metadata(g, DEFAULT_SCHEMA_PREFIX, time, "XREF") return g
def link(schema, source_database, target_database, source_graph, target_graph, include_backlinks, time): """ Add interlinks """ # init graph instance g = Graph(identifier=gen_hash("xref.schema", time)) # add links _interlink(g, schema, source_database, target_database, source_graph, target_graph) if include_backlinks: _interlink(g, schema, target_database, source_database, target_graph, source_graph) # add meta-data add_metadata(g, DEFAULT_SCHEMA_PREFIX, time, "EXTRA", is_ontology=True) return g
def translate(database, mapper, time): """ Translate """ global DEFAULT_NAMESPACE DEFAULT_NAMESPACE += "{}/".format(database) global DEFAULT_PREFIX DEFAULT_PREFIX += ".{}".format(database) # init graph instance g = Graph(identifier=gen_hash(DEFAULT_PREFIX, time)) # update namespaces _update_namespaces(g.namespace_manager) for table in mapper.classes(): logger.info("Processing table {}".format(table)) _table_to_class(g, table, mapper) # add meta-data add_metadata(g, DEFAULT_PREFIX, time, database, is_ontology=True) return g