def yield_class_triples_of_an_s(self, target_node, instantiation_property): for s, p, o in self._rdflib_graph.triples( (URIRef( remove_corners(a_uri=target_node, raise_error_if_no_corners=False)), URIRef( remove_corners(a_uri=instantiation_property, raise_error_if_no_corners=False)), None)): yield str(s), str(p), self._add_lang_if_needed(o)
def _yield_remote_class_triples_of_an_s(self, target_node, instantiation_property): str_query = "SELECT {0} WHERE {{ <{1}> <{2}> {0} . }}".format( _DEF_OBJ_VARIABLE, remove_corners(a_uri=target_node, raise_error_if_no_corners=False), remove_corners(a_uri=instantiation_property, raise_error_if_no_corners=False)) for an_elem in query_endpoint_single_variable( endpoint_url=self._endpoint_url, str_query=str_query, variable_id=_DEF_OBJ_ID): yield (target_node, instantiation_property, an_elem)
def tune_token(a_token, allow_untyped_numbers=False, raise_error_if_no_corners=True, base_namespace=None): if a_token.startswith("<"): return IRI(remove_corners(a_uri=a_token, raise_error_if_no_corners=raise_error_if_no_corners)) elif a_token.startswith('"'): content, elem_type = parse_literal(an_elem=a_token, base_namespace=base_namespace) return Literal(content=content, elem_type=elem_type) elif a_token.startswith("_:"): return BNode(identifier=a_token[2:]) elif a_token.strip() == "[]": return BNode(identifier=a_token) if allow_untyped_numbers: try: candidate_float = float(a_token) if _is_integer(candidate_float): return Literal(content=a_token.strip(), elem_type=INTEGER_TYPE) return Literal(content=a_token.strip(), elem_type=FLOAT_TYPE) except: pass content, elem_type = parse_unquoted_literal(a_token) return Literal(content=content, elem_type=elem_type)
def _parse_instantiation_prop(data, error_pool): candidate = _parse_str_param(data=data, error_pool=error_pool, key=INSTANTIATION_PROPERTY_PARAM, default_value=RDF_TYPE, opt_message="The default value is rdf:type") return remove_corners(a_uri=candidate, raise_error_if_no_corners=False)
def create_IRIs_from_string_list(str_list): result = [] for an_str in str_list: result.append( create_IRI_from_string( remove_corners(a_uri=an_str, raise_error_if_no_corners=False))) return result
def _decide_instantiation_property(instantiation_property): if instantiation_property == None: return _RDF_TYPE if type(instantiation_property) == type(_RDF_TYPE): return instantiation_property if type(instantiation_property) == str: return Property(remove_corners(a_uri=instantiation_property, raise_error_if_no_corners=False)) raise ValueError("Unrecognized param type to define instantiation property")
def read_target_classes_from_file(file_target_classes): result = [] with open(file_target_classes, "r") as in_stream: for a_line in in_stream: candidate = a_line.strip() if candidate != "": result.append(remove_corners(a_uri=candidate, raise_error_if_no_corners=False)) return result
def _decide_instantiation_property(instantiation_property_str): if instantiation_property_str == None: return RDF_TYPE_STR if type(instantiation_property_str) == Property: return str(instantiation_property_str) if type(instantiation_property_str) == str: return remove_corners(a_uri=instantiation_property_str, raise_error_if_no_corners=False) raise ValueError("Unrecognized param type to define instantiation property")
def _yield_remote_s_p_triples_of_an_o(self, target_node): str_query = "SELECT {0} {1} WHERE {{ {0} {1} <{2}> .}}".format( _DEF_SUBJ_VARIABLE, _DEF_PRED_VARIABLE, remove_corners(a_uri=target_node, raise_error_if_no_corners=False)) for a_tuple_sp in query_endpoint_sp_of_an_o( endpoint_url=self._endpoint_url, str_query=str_query, p_id=_DEF_PRED_ID, s_id=_DEF_SUBJ_ID): yield a_tuple_sp[0], a_tuple_sp[1], target_node
def _yield_remote_p_o_triples_of_an_s(self, target_node): str_query = "SELECT {0} {1} WHERE {{ <{2}> {0} {1} .}} ".format( _DEF_PRED_VARIABLE, _DEF_OBJ_VARIABLE, remove_corners(a_uri=target_node, raise_error_if_no_corners=False)) for a_tuple_po in query_endpoint_po_of_an_s( endpoint_url=self._endpoint_url, str_query=str_query, p_id=_DEF_PRED_ID, o_id=_DEF_OBJ_ID): yield target_node, a_tuple_po[0], a_tuple_po[1]
def tune_subj(a_token, raise_error_if_no_corners=True): if a_token.startswith("<"): return IRI(remove_corners(a_uri=a_token, raise_error_if_no_corners=raise_error_if_no_corners)) elif a_token.startswith("_:"): return BNode(identifier=a_token[2:]) elif a_token.strip() == "[]": return BNode(identifier=a_token) else: # ??? raise ValueError("Unrecognized token in subject position: " + a_token)
def tune_target_classes_if_needed(list_target_classes, prefix_namespaces_dict): result = [] for a_original_class in list_target_classes: if a_original_class.startswith("<"): result.append(remove_corners(a_uri=a_original_class)) else: result.append( unprefixize_uri_if_possible( target_uri=a_original_class, prefix_namespaces_dict=prefix_namespaces_dict)) return result
def tune_subj(a_token): if a_token.startswith("<"): return IRI(remove_corners(a_token)) elif a_token.startswith('"'): content, elem_type = parse_literal(a_token) return Literal(content=content, elem_type=elem_type) elif a_token.startswith("_:"): return BNode(identifier=a_token[2:]) elif a_token.strip() == "[]": return BNode(identifier=a_token) else: # ??? content, elem_type = parse_unquoted_literal(a_token) return Literal(content=content, elem_type=elem_type)
def _process_base_line(self, line): pieces = line.split(" ") # base_url = pieces[1] if not pieces[1].endswith(":") else pieces[1][: - 1] # base_url = remove_corners(pieces[2]) self._base = remove_corners(pieces[1])
def _process_prefix_line(self, line): pieces = line.split(" ") prefix = pieces[1] if not pieces[1].endswith(":") else pieces[1][:-1] base_url = remove_corners(pieces[2]) self._prefixes[prefix] = base_url
def tune_prop(a_token, raise_error_if_no_corners=True): return Property(remove_corners(a_uri=a_token, raise_error_if_no_corners=raise_error_if_no_corners))
def tune_prop(a_token): return Property(remove_corners(a_token))
def yield_p_o_triples_of_an_s(self, target_node): for s, p, o in self._rdflib_graph.triples((URIRef( remove_corners(a_uri=target_node, raise_error_if_no_corners=False)), None, None)): yield str(s), str(p), self._add_lang_if_needed(o)
def _parse_unprefixed_node_selector(self, raw_selector): return NodeSelectorNoSparql(raw_selector=raw_selector, target_node=remove_corners(raw_selector), sgraph=self._sgraph)
def tune_target_classes_if_needed(list_target_classes): result = [] for a_original_class in list_target_classes: result.append(remove_corners(a_uri=a_original_class, raise_error_if_no_corners=False)) return result