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:

  1. Machine Interpretation

    • rectifies and amplifies formal modeling

    • facilitates machine action

    • requires that both bits and semantics are accessible

  2. Least Power

    • 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

  3. Stationary Action

    • 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.

  4. Logic + Control

    • facilitates declarative programming

    • facilitates flexibility in choices of performance tradeoffs

    • promotes reuse

  5. Delta Encoding

    • facilitates provenance

    • facilitates revision control

    • facilitates pub/sub for selective search and retrieval

Subscribe to get short notes like this on Machine-Centric Science delivered to your email.