def hasParseError_rdflib(q, parse_path=True): """ if has parse error, return true. input: q, the same as GetSPO_rdflib, one row from DataFrame with key: query output: boolean """ try: # from ipdb import set_trace; set_trace() pq = parser.parseQuery(q['query']) if parse_path: # using function in rdflib to absolutize/resolve prefixes # may cause prefix error prologue = translatePrologue(pq[0], None) # using function in rdflib to simplify filter inner_traverse(pq[1], inner_simplifyFilters) pq[1] = traverse(pq[1], visitPost=functools.partial(translatePName, prologue=prologue)) # using function in rdflib to translate path if 'where' in pq[1].keys(): pq[1]['where'] = traverse(pq[1]['where'], visitPost=translatePath) return False except: #from ipdb import set_trace; set_trace() return True
def GetSPOfromQuery(q, getBlankNode=False): pq = parser.parseQuery(q) form = GetQueryForm(pq) # using function in rdflib to absolutize/resolve prefixes prologue = translatePrologue(pq[0], None) pq[1] = traverse(pq[1], visitPost=functools.partial(translatePName, prologue=prologue)) # using function in rdflib to simplify filter inner_traverse(pq[1], inner_simplifyFilters) # using function in rdflib to translate path if 'where' in pq[1].keys(): pq[1]['where'] = traverse(pq[1]['where'], visitPost=translatePath) if form == 'DescribeQuery': triples, graph, bind, values, service, filter_info, describe_var = proQueryForm( pq) else: triples, graph, bind, values, service, filter_info = proQueryForm(pq) so = GetSOFromTriple(triples, getBlankNode=getBlankNode) p = GetPFromTriple(triples, getBlankNode=getBlankNode) if form == 'DescribeQuery': so = so + describe_var return list(set(so + p))
def parseStr(query): pq = parser.parseQuery(query) # using function in rdflib to absolutize/resolve prefixes # may cause prefix error prologue = translatePrologue(pq[0], None) # using function in rdflib to simplify filter inner_traverse(pq[1], inner_simplifyFilters) pq[1] = traverse(pq[1], visitPost=functools.partial(translatePName, prologue=prologue)) # using function in rdflib to translate path if 'where' in pq[1].keys(): pq[1]['where'] = traverse(pq[1]['where'], visitPost=translatePath) return pq
def GetInfo(query): pq = parser.parseQuery(query) prologue = translatePrologue(pq[0], None) pq[1] = traverse(pq[1], visitPost=functools.partial(translatePName, prologue=prologue)) # using function in rdflib to simplify filter inner_traverse(pq[1], inner_simplifyFilters) # using function in rdflib to translate path if 'where' in pq[1].keys(): pq[1]['where'] = traverse(pq[1]['where'], visitPost=translatePath) info = proQueryForm(pq, additional=False) return info