def produce_ttl(dataset, target_dir, gaf_path, ontology_graph): gafparser = GafParser() gafparser.config = assocparser.AssocParserConfig( ontology=ontology_graph ) with open(gaf_path) as sg: lines = sum(1 for line in sg) ttl_path = os.path.join(os.path.split(gaf_path)[0], "{}_cam.ttl".format(dataset)) click.echo("Producing ttl: {}".format(ttl_path)) rdf_writer = assoc_rdfgen.TurtleRdfWriter() transformer = assoc_rdfgen.CamRdfTransform(writer=rdf_writer) parser_config = assocparser.AssocParserConfig(ontology=ontology_graph) with open(gaf_path) as gf: with click.progressbar(iterable=gafparser.association_generator(file=gf), length=lines) as associations: for association in associations: if "header" not in association or not association["header"]: transformer.provenance() transformer.translate(association) with open(ttl_path, "wb") as ttl: click.echo("Writing ttl to disk") rdf_writer.serialize(destination=ttl) return ttl_path
def make_products(dataset, target_dir, gaf_path, products, ontology_graph): gafparser = GafParser() gafparser.config = assocparser.AssocParserConfig( ontology=ontology_graph, paint=True ) with open(gaf_path) as sg: lines = sum(1 for line in sg) product_files = { "gpad": open(os.path.join(os.path.split(gaf_path)[0], "{}.gpad".format(dataset)), "w"), "ttl": open(os.path.join(os.path.split(gaf_path)[0], "{}_cam.ttl".format(dataset)), "wb") } if not products["gpad"] and not products["ttl"]: # Bail if we have no products return [] # def write_gpi_entity(association, bridge, gpiwriter): with open(gaf_path) as gf: # gpi info: click.echo("Using {} as the gaf to build data products with".format(gaf_path)) if products["ttl"]: click.echo("Setting up {}".format(product_files["ttl"].name)) rdf_writer = assoc_rdfgen.TurtleRdfWriter(label=os.path.split(product_files["ttl"].name)[1] ) transformer = assoc_rdfgen.CamRdfTransform(writer=rdf_writer) parser_config = assocparser.AssocParserConfig(ontology=ontology_graph) if products["gpad"]: click.echo("Setting up {}".format(product_files["gpad"].name)) gpadwriter = GpadWriter(file=product_files["gpad"]) click.echo("Making products...") with click.progressbar(iterable=gafparser.association_generator(file=gf), length=lines) as associations: for association in associations: if products["ttl"]: if "header" not in association or not association["header"]: transformer.provenance() transformer.translate(association) if products["gpad"]: gpadwriter.write_assoc(association) # post ttl steps if products["ttl"]: click.echo("Writing ttl to disk") rdf_writer.serialize(destination=product_files["ttl"]) # After we run through associations for f in product_files.values(): f.close() return [product_files[prod].name for prod in sorted(product_files.keys()) if products[prod]]
def convert(association, ontology, output, association_file): click.echo("converting {}".format(association)) rdfWriter = assoc_rdfgen.TurtleRdfWriter() rdfTransformer = assoc_rdfgen.CamRdfTransform(writer=rdfWriter) parser_config = assocparser.AssocParserConfig( ontology=make_ontology(ontology)) parser = _association_parser(association, parser_config) associations = parser.association_generator(file=association_file) for assoc in associations: rdfTransformer.provenance() rdfTransformer.translate(assoc) rdfWriter.serialize(destination=output)
def convert(association, ontology, output, association_file): click.echo("converting {}".format(association)) rdfWriter = assoc_rdfgen.TurtleRdfWriter( label=os.path.basename(output.name)) rdfTransformer = assoc_rdfgen.CamRdfTransform(writer=rdfWriter) parser_config = assocparser.AssocParserConfig( ontology=make_ontology(ontology)) parser = _association_parser(association, parser_config) with open(association_file) as af: lines = sum(1 for line in af) with open(association_file) as af: associations = parser.association_generator(file=af) with click.progressbar(iterable=associations, length=lines) as assocs: for assoc in assocs: rdfTransformer.provenance() rdfTransformer.translate(assoc) click.echo("Writing ttl to disk") rdfWriter.serialize(destination=output)