view README.md @ 1530:f4e1493e9526

there's a plan Ignore-this: 994107ade471f5e66c4746996c9e5a11 darcs-hash:dd80cdf9badb6cc9fb22989a34ce555e663f63f0
author drewp <drewp@bigasterisk.com>
date Wed, 05 Feb 2020 17:12:18 -0800
parents
children def4a53cbb6c
line wrap: on
line source

# Goals

Make rules easy to add and experiment with. 
Be transparent and debuggable. 
Don't pack things into names that need to be parsed out. 
Prefer RDF and URIs over ad-hoc structures and ids. 
Integrate with lots of outside data sources. 

## Input

Services create RDF graphs (legacy) and send MQTT messages (esp32 nodes, and eventually everything)

`mqtt_to_rdf` gathers those inputs; writes some of them to influxdb; turns them into an RDF graph

`collector` takes multiple RDF graphs and merges them into new combinations

## Reasoning
`reasoning` takes an RDF graph and N3 rules; emits an RDF graph (and makes HTTP PUT and POST requests)

## Output

`rdf_to_mqtt` takes RDF graph and emits MQTT messages

(`reasoning` does some of its own output actions)

Services (sometimes, the same ones that gathered input) perform home automation outputs.