# HG changeset patch # User drewp # Date 1580951538 28800 # Node ID f4e1493e9526dc9cec3fd3ae6332d576680ca597 # Parent 0e0713fd23e797a275ed8b056019743c5844f25d there's a plan Ignore-this: 994107ade471f5e66c4746996c9e5a11 darcs-hash:dd80cdf9badb6cc9fb22989a34ce555e663f63f0 diff -r 0e0713fd23e7 -r f4e1493e9526 README.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.md Wed Feb 05 17:12:18 2020 -0800 @@ -0,0 +1,26 @@ +# 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.