You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There's currently some diff/merge functionality in the Unify code base that has not been vetted in some time. I expect that the following use scenario for Unify is likely:
A datomic database might have some schema + data under management by Unify, and another chunk of data in Datomic from collecting live data, tracking experiments, etc.
For this scenario, it makes sense for Unify to be able to manage the data it imports in batch by computing diffs and then transacting the diffs. This does require the constraint that every attribute in the schema have a definition of uniqueness. I.e., this enforcement set rather than bag semantics at the storage level rather than just as a side effect of queries without a :with clause. More concretely, you could not then store {:measurement/gene "EGFR" :measurement/sample 22 :measurement/fpkm 3.0"} even if two such measurements were taken, without some other disambiguating attribute.
This is not specific to Unify, though. Without an implicit or explicit source of uniqueness, you can't determine (by definition) if an entity with the same attributes represents the same entity or a second entity with the same values. After more thought and reading, I think this is a fair constraint to enforce: you must provide a means of determining uniqueness for everything you want managed by diff/merge to use that functionality, so I will update Unify with a release that provides this functionality under that constraint.
The text was updated successfully, but these errors were encountered:
There's currently some diff/merge functionality in the Unify code base that has not been vetted in some time. I expect that the following use scenario for Unify is likely:
A datomic database might have some schema + data under management by Unify, and another chunk of data in Datomic from collecting live data, tracking experiments, etc.
For this scenario, it makes sense for Unify to be able to manage the data it imports in batch by computing diffs and then transacting the diffs. This does require the constraint that every attribute in the schema have a definition of uniqueness. I.e., this enforcement set rather than bag semantics at the storage level rather than just as a side effect of queries without a
:with
clause. More concretely, you could not then store{:measurement/gene "EGFR" :measurement/sample 22 :measurement/fpkm 3.0"}
even if two such measurements were taken, without some other disambiguating attribute.This is not specific to Unify, though. Without an implicit or explicit source of uniqueness, you can't determine (by definition) if an entity with the same attributes represents the same entity or a second entity with the same values. After more thought and reading, I think this is a fair constraint to enforce: you must provide a means of determining uniqueness for everything you want managed by diff/merge to use that functionality, so I will update Unify with a release that provides this functionality under that constraint.
The text was updated successfully, but these errors were encountered: