Not OP but good question. The diffs end up being semantic and not merely a difference of triples. This is due at least in part to the open world nature of RDF and concepts such as reasoning and materialization.
In our world the diffs are actually simply triples - the consequences of, for example, changing a class can be complex though but the diffs are just "these triples minus, these triples plus" which really helps simplify things.
We also support a bi-modal interpretation of ontologies - if you put them in a graph of type "schema" they are interpreted in a closed world way, in a graph of type "inference" they are interpreted as being open world.
In our experience the inference stuff is super cool (for example we use a property chain rule in our system database to allow arbitrary nesting of authority domains) but 99% of the effort is trying to make sure that your data and schema line up and for this, you really want to be operating in a closed world regime.
Opposite experience here. Services like Dark Sky and Wunderground are so inaccurate up here in Alaska that it's dangerous. NWS is also often pretty wrong but way less wrong than anything else. Interesting to hear your
Mjolnir takes a very minimalist approach, you install the main app, then install luarocks and pull in all the plug-in modules with that. We wanted to ship as many modules as we could, with the app, so it would be more immediately useful out of the box.
(there are other changes Hammerspoon has made, but that is probably the largest)