def get_properties_from_input(file, input_format): input_graph = ConjunctiveGraph() input_graph.parse(file, format=input_format) # collapse to single list property_set = list() for row in input_graph.predicates(): property_set.append(row) return set(property_set)
def get_properties_from_input(file, input_format): input_graph = ConjunctiveGraph() input_graph.parse(file, format=input_format) # collapse to single list property_set = set() for row in input_graph.predicates(): property_set.add(row) return property_set
# or: primer.add((myNS['pat'], myNS['age'], long(24))) # Now, with just that, lets see how the system # recorded *way* too many details about what # you just asserted as fact. # from pprint import pprint pprint(list(primer)) # just think .whatever((s, p, o)) # here we report on what we know pprint(list(primer.subjects())) pprint(list(primer.predicates())) pprint(list(primer.objects())) # and other things that make sense # what do we know about pat? pprint(list(primer.predicate_objects(myNS.pat))) # who is what age? pprint(list(primer.subject_objects(myNS.age))) # Okay, so lets now work with a bigger # dataset from the example, and start # with a fresh new graph. primer = ConjunctiveGraph()
def make_property_graph(properties, args): graph = ConjunctiveGraph() output_graph = ConjunctiveGraph() GH = 'https://raw.githubusercontent.com' OBO = 'https://purl.obolibrary.org/obo' ontologies = [ OBO + '/sepio.owl', OBO + '/geno.owl', OBO + '/iao.owl', OBO + '/ero.owl', OBO + '/pco.owl', OBO + '/xco.owl', OBO + '/ro.owl', GH + '/jamesmalone/OBAN/master/ontology/oban_core.ttl', ] for ontology in ontologies: print("parsing: " + ontology) try: graph.parse(ontology, format=rdflib_util.guess_format(ontology)) except SAXParseException as e: logger.error(e) logger.error('Retrying: ' + ontology) graph.parse(ontology, format="turtle") except OSError as e: # URLError: # simple retry logger.error(e) logger.error('Retrying: ' + ontology) graph.parse(ontology, format=rdflib_util.guess_format(ontology)) # Get object properties output_graph = add_property_to_graph( graph.subjects(RDF['type'], OWL['ObjectProperty']), output_graph, OWL['ObjectProperty'], properties) # Get annotation properties output_graph = add_property_to_graph( graph.subjects(RDF['type'], OWL['AnnotationProperty']), output_graph, OWL['AnnotationProperty'], properties) # Get data properties output_graph = add_property_to_graph( graph.subjects(RDF['type'], OWL['DatatypeProperty']), output_graph, OWL['DatatypeProperty'], properties) # Hardcoded properties output_graph.add( (URIRef('https://monarchinitiative.org/MONARCH_cliqueLeader'), RDF['type'], OWL['AnnotationProperty'])) output_graph.add( (URIRef('https://monarchinitiative.org/MONARCH_anonymous'), RDF['type'], OWL['AnnotationProperty'])) # Check monarch data triple data_url = "https://data.monarchinitiative.org/ttl/{0}".format( re.sub(r".*/", "", args.input)) new_url = "https://data.monarchinitiative.org/ttl/{0}".format( re.sub(r".*/", "", args.output)) if (URIRef(data_url), RDF.type, OWL['Ontology']) in output_graph: output_graph.remove(URIRef(data_url), RDF.type, OWL['Ontology']) output_graph.add((URIRef(new_url), RDF.type, OWL['Ontology'])) for row in output_graph.predicates(DC['source'], OWL['AnnotationProperty']): if row == RDF['type']: output_graph.remove( (DC['source'], RDF['type'], OWL['AnnotationProperty'])) output_graph.add((DC['source'], RDF['type'], OWL['ObjectProperty'])) return output_graph
def make_property_graph(properties, args): graph = ConjunctiveGraph() output_graph = ConjunctiveGraph() ontologies = [ 'https://raw.githubusercontent.com/monarch-initiative/SEPIO-ontology/master/src/ontology/sepio.owl', 'https://raw.githubusercontent.com/monarch-initiative/GENO-ontology/develop/src/ontology/geno.owl', 'http://purl.obolibrary.org/obo/ro.owl', 'http://purl.obolibrary.org/obo/iao.owl', 'http://purl.obolibrary.org/obo/ero.owl', 'https://raw.githubusercontent.com/jamesmalone/OBAN/master/ontology/oban_core.ttl', 'http://purl.obolibrary.org/obo/pco.owl', 'http://purl.obolibrary.org/obo/xco.owl' ] for ontology in ontologies: print("parsing: " + ontology) try: graph.parse(ontology, format=rdflib_util.guess_format(ontology)) except SAXParseException as e: logger.error(e) logger.error('Retrying: ' + ontology) graph.parse(ontology, format="turtle") except OSError as e: # URLError: # simple retry logger.error(e) logger.error('Retrying: ' + ontology) graph.parse(ontology, format=rdflib_util.guess_format(ontology)) # Get object properties output_graph = add_property_to_graph( graph.subjects(RDF['type'], OWL['ObjectProperty']), output_graph, OWL['ObjectProperty'], properties) # Get annotation properties output_graph = add_property_to_graph( graph.subjects(RDF['type'], OWL['AnnotationProperty']), output_graph, OWL['AnnotationProperty'], properties) # Get data properties output_graph = add_property_to_graph( graph.subjects(RDF['type'], OWL['DatatypeProperty']), output_graph, OWL['DatatypeProperty'], properties) # Hardcoded properties output_graph.add( (URIRef('https://monarchinitiative.org/MONARCH_cliqueLeader'), RDF['type'], OWL['AnnotationProperty'])) output_graph.add( (URIRef('https://monarchinitiative.org/MONARCH_anonymous'), RDF['type'], OWL['AnnotationProperty'])) # Check monarch data triple data_url = "https://data.monarchinitiative.org/ttl/{0}".format( re.sub(r".*/", "", args.input)) new_url = "https://data.monarchinitiative.org/ttl/{0}".format( re.sub(r".*/", "", args.output)) if (URIRef(data_url), RDF.type, OWL['Ontology']) in output_graph: output_graph.remove(URIRef(data_url), RDF.type, OWL['Ontology']) output_graph.add((URIRef(new_url), RDF.type, OWL['Ontology'])) for row in output_graph.predicates( DC['source'], OWL['AnnotationProperty']): if row == RDF['type']: output_graph.remove( (DC['source'], RDF['type'], OWL['AnnotationProperty'])) output_graph.add((DC['source'], RDF['type'], OWL['ObjectProperty'])) return output_graph
# Now, with just that, lets see how the system # recorded *way* too many details about what # you just asserted as fact. # from pprint import pprint pprint(list(primer)) # just think .whatever((s, p, o)) # here we report on what we know pprint(list(primer.subjects())) pprint(list(primer.predicates())) pprint(list(primer.objects())) # and other things that make sense # what do we know about pat? pprint(list(primer.predicate_objects(myNS.pat))) # who is what age? pprint(list(primer.subject_objects(myNS.age))) # Okay, so lets now work with a bigger # dataset from the example, and start # with a fresh new graph.