def explain(graph): values = ')\n ('.join([' '.join([x.n3() for x in triple]) for triple in graph.triples((None,None,None))]) values = 'VALUES (?s ?p ?o)\n{\n('+ values + ')\n}' try: nanopubs = self.db.query('''select distinct ?np where { hint:Query hint:optimizer "Runtime" . ?np np:hasAssertion?|np:hasProvenance?|np:hasPublicationInfo? ?g; np:hasPublicationInfo ?pubinfo; np:hasAssertion ?assertion; graph ?assertion { ?s ?p ?o.} }''' + values, initNs=self.NS.prefixes) result = ConjunctiveGraph() for nanopub_uri, in nanopubs: self.nanopub_manager.get(nanopub_uri, result) except Exception as e: print(str(e), entity) raise e return result.resource(entity)
def get_entity_sparql(entity): try: statements = self.db.query('''select distinct ?s ?p ?o ?g where { hint:Query hint:optimizer "Runtime" . ?np np:hasAssertion?|np:hasProvenance?|np:hasPublicationInfo? ?g; np:hasPublicationInfo ?pubinfo; np:hasAssertion ?assertion; {graph ?np { ?np sio:isAbout ?e.}} UNION {graph ?assertion { ?e ?p ?o.}} graph ?g { ?s ?p ?o } }''',initBindings={'e':entity}, initNs=self.NS.prefixes) result = ConjunctiveGraph() result.addN(statements) except Exception as e: print(str(e), entity) raise e #print result.serialize(format="trig") return result.resource(entity)
def get_entity_disk(entity): try: nanopubs = self.db.query('''select distinct ?np where { hint:Query hint:optimizer "Runtime" . ?np np:hasAssertion?|np:hasProvenance?|np:hasPublicationInfo? ?g; np:hasPublicationInfo ?pubinfo; np:hasAssertion ?assertion; {graph ?np { ?np sio:isAbout ?e.}} UNION {graph ?assertion { ?e ?p ?o.}} }''',initBindings={'e':entity}, initNs=self.NS.prefixes) result = ConjunctiveGraph() for nanopub_uri, in nanopubs: self.nanopub_manager.get(nanopub_uri, result) # result.addN(nanopubs) except Exception as e: print(str(e), entity) raise e #print result.serialize(format="trig") return result.resource(entity)