Principles for Robustly Interoperable Digital Objects
I have been ruminating on core values in service of stewardship of evolving scientific knowledge.
Specifically, what principles can I lean upon to guide me in the design of robustly interoperable digital objects?
Here is what has jelled so far for me:
-
-
rectifies and amplifies formal modeling
-
facilitates machine action
-
requires that both bits and semantics are accessible
-
-
-
constrained interpretation promotes interoperability
-
lower barrier to support diverse and unanticipated use cases
-
behavior is more likely to be understood and predicted with high confidence
-
-
-
small deviations from intended sequence-of-processes (i.e. task path) does not require large compensating efforts to reach intended outcome.
-
emphases monotonicity, smooth steering, and suitable granularity of progress.
-
emphasizes resilience of desired budget over desired schedule rather than minimization of initial budget over initial schedule.
-
-
-
facilitates declarative programming
-
facilitates flexibility in choices of performance tradeoffs
-
promotes reuse
-
-
-
facilitates provenance
-
facilitates revision control
-
facilitates pub/sub for selective search and retrieval
-