def __get_num_triples_in_database(self): query = """ SELECT (COUNT(*) AS ?no) { ?s ?p ?o } """ result = sparql.query(query,self.__url_query) numResults = result["results"]["bindings"][0]["no"]["value"] return numResults
def convert_value(self,source_unit_url,destination_unit_url,source_value): if not self.get_unit_class(source_unit_url) == self.get_unit_class(destination_unit_url): raise ValueError query = ''' PREFIX qudt: <http://qudt.org/schema/qudt#> SELECT ?sou_offset ?sou_mult ?des_offset ?des_mult WHERE {{ <{source}> qudt:conversionOffset ?sou_offset. <{source}> qudt:conversionMultiplier ?sou_mult. <{destin}> qudt:conversionOffset ?des_offset. <{destin}> qudt:conversionMultiplier ?des_mult. }}''' take = lambda x: (float(x["results"]["bindings"][0]["sou_offset"]["value"]), float(x["results"]["bindings"][0]["sou_mult"]["value"]), float(x["results"]["bindings"][0]["des_offset"]["value"]), float(x["results"]["bindings"][0]["des_mult"]["value"])) result = sparql.query(query.format(source = source_unit_url, destin = destination_unit_url),self.__url_query) if result["results"]["bindings"] == []: raise ValueError sou_offset,sou_mult,des_offset,des_mult = take(result) des_value = ((sou_offset - des_offset) + float(source_value)) * sou_mult / float(des_mult) return des_value
def convert_value(self, source_unit_url, destination_unit_url, source_value): if not self.get_unit_class(source_unit_url) == self.get_unit_class( destination_unit_url): raise ValueError query = ''' PREFIX qudt: <http://qudt.org/schema/qudt#> SELECT ?sou_offset ?sou_mult ?des_offset ?des_mult WHERE {{ <{source}> qudt:conversionOffset ?sou_offset. <{source}> qudt:conversionMultiplier ?sou_mult. <{destin}> qudt:conversionOffset ?des_offset. <{destin}> qudt:conversionMultiplier ?des_mult. }}''' take = lambda x: ( float(x["results"]["bindings"][0]["sou_offset"]["value"]), float(x["results"]["bindings"][0]["sou_mult"]["value"]), float(x["results"]["bindings"][0]["des_offset"]["value"]), float(x["results"]["bindings"][0]["des_mult"]["value"])) result = sparql.query( query.format(source=source_unit_url, destin=destination_unit_url), self.__url_query) if result["results"]["bindings"] == []: raise ValueError sou_offset, sou_mult, des_offset, des_mult = take(result) des_value = ((sou_offset - des_offset) + float(source_value)) * sou_mult / float(des_mult) return des_value
def __get_num_triples_in_database(self): query = """ SELECT (COUNT(*) AS ?no) { ?s ?p ?o } """ result = sparql.query(query, self.__url_query) numResults = result["results"]["bindings"][0]["no"]["value"] return numResults
def get_mult_factor(self, unit): query = ''' PREFIX qudt: <http://qudt.org/schema/qudt#> SELECT ?mult WHERE {{ <{unit}> qudt:conversionMultiplier ?mult }} ''' return sparql.query(query.format(unit = unit),self.__url_query)
def get_offset(self, unit): query = ''' PREFIX qudt: <http://qudt.org/schema/qudt#> SELECT ?offset WHERE {{ <{unit}> qudt:conversionOffset ?offset. }} ''' return sparql.query(query.format(unit = unit),self.__url_query)
def get_units_in_class(self, ClassURL): query = """PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?unit WHERE { ?unit rdf:type <%s> }""" query = query % ClassURL result = sparql.query(query, self.__url_query) return result
def get_units_in_class(self,ClassURL): query = """PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?unit WHERE { ?unit rdf:type <%s> }""" query = query % ClassURL result = sparql.query(query, self.__url_query) return result
def get_mult_factor(self, unit): query = ''' PREFIX qudt: <http://qudt.org/schema/qudt#> SELECT ?mult WHERE {{ <{unit}> qudt:conversionMultiplier ?mult }} ''' return sparql.query(query.format(unit=unit), self.__url_query)
def get_offset(self, unit): query = ''' PREFIX qudt: <http://qudt.org/schema/qudt#> SELECT ?offset WHERE {{ <{unit}> qudt:conversionOffset ?offset. }} ''' return sparql.query(query.format(unit=unit), self.__url_query)
def __get_sym(self, UnitURL): query = ''' PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX qudt: <http://qudt.org/schema/qudt#> SELECT ?symbol WHERE {{ <{unitURL}> qudt:quantityKind ?kind. ?symbol qudt:referenceQuantity ?kind }} ''' return sparql.query(query.format(unitURL=UnitURL), self.__url_query)
def __get_sym(self, UnitURL): query = ''' PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX qudt: <http://qudt.org/schema/qudt#> SELECT ?symbol WHERE {{ <{unitURL}> qudt:quantityKind ?kind. ?symbol qudt:referenceQuantity ?kind }} ''' return sparql.query(query.format(unitURL = UnitURL),self.__url_query)
def get_unit_class(self, UnitURL): query = """PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX owl: <http://www.w3.org/2002/07/owl#> SELECT ?class WHERE { <%s> rdf:type ?class. FILTER NOT EXISTS{?class rdf:type owl:DeprecatedClass} }""" query = query % UnitURL result = sparql.query(query, self.__url_query) return result
def list_all_unit_classes(self): query = """ PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?class WHERE { <http://qudt.org/schema/qudt#Unit> ^rdfs:subClassOf+ ?class }""" result = sparql.query(query, self.__url_query) unitClasses = [] for item in result["results"]["bindings"]: classURI = item["class"]["value"] unitClasses.append(classURI) return unitClasses
def get_SI_vector(self, si_sym): query = ''' PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX qudt:<http://qudt.org/schema/qudt#> SELECT ?vec WHERE {{ <{si_sym}> qudt:dimensionVector ?vecs. ?vecs qudt:basisElement ?vec. }} ''' return sparql.query(query.format(si_sym = si_sym),self.__url_query)
def list_all_unit_classes(self): query = """ PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?class WHERE { <http://qudt.org/schema/qudt#Unit> ^rdfs:subClassOf+ ?class }""" result = sparql.query(query,self.__url_query) unitClasses = [] for item in result["results"]["bindings"]: classURI = item["class"]["value"] unitClasses.append( classURI ) return unitClasses
def get_SI_vector(self, si_sym): query = ''' PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX qudt:<http://qudt.org/schema/qudt#> SELECT ?vec WHERE {{ <{si_sym}> qudt:dimensionVector ?vecs. ?vecs qudt:basisElement ?vec. }} ''' return sparql.query(query.format(si_sym=si_sym), self.__url_query)
def get_unit_class(self,UnitURL): query = """PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX owl: <http://www.w3.org/2002/07/owl#> SELECT ?class WHERE { <%s> rdf:type ?class. FILTER NOT EXISTS{?class rdf:type owl:DeprecatedClass} }""" query = query %UnitURL result = sparql.query(query,self.__url_query) return result
def list_domain_tool_unit_classes(self): query = """PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX qudt4dt: <http://qudt4dt.org/ontology#> SELECT ?class WHERE { qudt4dt:DomainToolUnit ^rdfs:subClassOf+ ?class }""" result = sparql.query(query, self.__url_query) unitClasses = [] for item in result["results"]["bindings"]: classURI = item["class"]["value"] unitClasses.append(classURI) return unitClasses
def list_domain_tool_unit_classes(self): query = """PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX qudt4dt: <http://qudt4dt.org/ontology#> SELECT ?class WHERE { qudt4dt:DomainToolUnit ^rdfs:subClassOf+ ?class }""" result = sparql.query(query, self.__url_query) unitClasses = [] for item in result["results"]["bindings"]: classURI = item["class"]["value"] unitClasses.append( classURI ) return unitClasses