def parse(items): item = items[0] obj = {} for key in item: if key in ["id","@context","@type","id","minValue","maxValue", "task:enforces", "value"]: obj[key] = item[key] graph.parse(json.dumps(obj))
def parse(items): item = items[0] obj = {} for key in item: if key in [ "id", "@context", "@type", "id", "minValue", "maxValue", "task:enforces", "value" ]: obj[key] = item[key] graph.parse(json.dumps(obj))
def get_available_conditions(): discrete_result = graph.query(conditions_query) continuous_result = graph.query(conditions_cont_query) response = {} i = 0 for row in discrete_result: response[i] = {'device':row[0], 'variable':row[1]} i += 1 for row in continuous_result: response[i] = {'device':row[0], 'variable':row[1], 'unit':row[2]} i += 1 return response
def get_available_conditions(): discrete_result = graph.query(conditions_query) continuous_result = graph.query(conditions_cont_query) response = {} i = 0 for row in discrete_result: response[i] = {'device': row[0], 'variable': row[1]} i += 1 for row in continuous_result: response[i] = {'device': row[0], 'variable': row[1], 'unit': row[2]} i += 1 return response
def test_conditions(measurement): measurement_str = measurement["@id"] var_str = measurement["dev:valueOf"] conditions_str = """ PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX auraTask: <https://raw.githubusercontent.com/AuraMiddleware/aura-semantics/master/semantics/ontologies/AuraTask#> PREFIX auraDev: <https://raw.githubusercontent.com/AuraMiddleware/aura-semantics/master/semantics/ontologies/AuraDevice#> PREFIX variable: <"""+var_str+"""> PREFIX measurement: <"""+measurement_str+"""> SELECT DISTINCT ?condition ?minValue ?maxValue ?value WHERE { measurement: auraDev:Value ?value . ?condition auraTask:enforces variable: . ?condition auraTask:Range:MinValue ?minValue . ?condition auraTask:Range:MaxValue ?maxValue . FILTER(?value < ?minValue || ?value > ?maxValue) } """ result = graph.query(conditions_str) i = 0 for row in result: i += 1 print("violated condition #" + str(i)) print(row[0])#condition? print(row[1])#minValue print(row[2])#maxValue print(row[3])#value
def test_conditions(measurement): measurement_str = measurement["@id"] var_str = measurement["dev:valueOf"] conditions_str = """ PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX auraTask: <https://raw.githubusercontent.com/AuraMiddleware/aura-semantics/master/semantics/ontologies/AuraTask#> PREFIX auraDev: <https://raw.githubusercontent.com/AuraMiddleware/aura-semantics/master/semantics/ontologies/AuraDevice#> PREFIX variable: <""" + var_str + """> PREFIX measurement: <""" + measurement_str + """> SELECT DISTINCT ?condition ?minValue ?maxValue ?value WHERE { measurement: auraDev:Value ?value . ?condition auraTask:enforces variable: . ?condition auraTask:Range:MinValue ?minValue . ?condition auraTask:Range:MaxValue ?maxValue . FILTER(?value < ?minValue || ?value > ?maxValue) } """ result = graph.query(conditions_str) i = 0 for row in result: i += 1 print("violated condition #" + str(i)) print(row[0]) #condition? print(row[1]) #minValue print(row[2]) #maxValue print(row[3]) #value
?actuator auraActuate:changeState ?variable. }""" available_cont_commands = """ PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX auraDevice: <https://raw.githubusercontent.com/AuraMiddleware/aura-semantics/master/semantics/ontologies/AuraDevice#> PREFIX auraActuate: <https://raw.githubusercontent.com/AuraMiddleware/aura-semantics/master/semantics/ontologies/AuraActuate#> SELECT DISTINCT ?device ?variable WHERE { ?device auraDevice:hasPlatform ?platform . ?platform auraDevice:hasActuator ?actuator . ?actuator auraActuate:increases ?variable. }""" conditions_query = graph.make_query(available_conditions) conditions_cont_query = graph.make_query(available_cont_conditions) commands_query = graph.make_query(available_commands) commands_cont_query = graph.make_query(available_cont_commands) def get_available_conditions(): discrete_result = graph.query(conditions_query) continuous_result = graph.query(conditions_cont_query) response = {} i = 0 for row in discrete_result: response[i] = {'device':row[0], 'variable':row[1]} i += 1 for row in continuous_result: response[i] = {'device':row[0], 'variable':row[1], 'unit':row[2]}
def create(collection, obj): if not verify(collection, obj["@id"]): graph.parse(json.dumps(obj)) db.store(collection, obj) else: print("Already have " + str(obj["@id"]) + " in database.")
from aura.managers import SemanticManager graph = SemanticManager.get_graph() if graph != None: file = open('graph.xml', 'w') file.write(graph.serialize(format='pretty-xml').decode()) file.close()
?actuator auraActuate:changeState ?variable. }""" available_cont_commands = """ PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX auraDevice: <https://raw.githubusercontent.com/AuraMiddleware/aura-semantics/master/semantics/ontologies/AuraDevice#> PREFIX auraActuate: <https://raw.githubusercontent.com/AuraMiddleware/aura-semantics/master/semantics/ontologies/AuraActuate#> SELECT DISTINCT ?device ?variable WHERE { ?device auraDevice:hasPlatform ?platform . ?platform auraDevice:hasActuator ?actuator . ?actuator auraActuate:increases ?variable. }""" conditions_query = graph.make_query(available_conditions) conditions_cont_query = graph.make_query(available_cont_conditions) commands_query = graph.make_query(available_commands) commands_cont_query = graph.make_query(available_cont_commands) def get_available_conditions(): discrete_result = graph.query(conditions_query) continuous_result = graph.query(conditions_cont_query) response = {} i = 0 for row in discrete_result: response[i] = {'device': row[0], 'variable': row[1]} i += 1 for row in continuous_result: response[i] = {'device': row[0], 'variable': row[1], 'unit': row[2]}
def create(collection, obj): if not verify(collection, obj['@id']): graph.parse(json.dumps(obj)) db.store(collection, obj) else: print("Already have " + str(obj['@id']) + " in database.")
def remove(items): for i in items: graph.remove(items[i]['id'])