Import and export

Added · Seed

… work moves between the artifact and the other tools its actors use, and a reference will not do: the other tool cannot follow a link, the work has to arrive in a form the other tool can change, or the actor is gathering in what they made elsewhere. The copy that results is separate from its source from the moment it is made.

Problem

Export usually flattens the work. The copy keeps the visible content and drops the structure, links, comments, history and record of who made what. Import has the opposite problem: the artifact takes in what it can parse and drops the rest without saying so. The actor finds out what was lost later, by which time the copy and its source have already diverged.

Solution

Offer import and export in formats other tools can read, and keep as much of the work’s structure as the format can carry. Before an export, say what the copy will leave behind; after an import, show what was not taken in. Mark each copy with where and when it came from.

Continuation

The copy and its source now change independently, so the copy carries provenance marking of where and when it was made, which lets a later reader tell which of two diverging versions is the source. Export in a format another program can read is also how local-first ownership lets the actor take their work elsewhere, and the two are designed together. Where the other tool can follow a link, deep linking moves the work by reference and leaves a single copy, which avoids the divergence altogether…

All connections
Precedes
Provenance marking — The copy and its source now change independently, so the copy carries provenance marking of where and when it was made, which lets a later reader tell which of two diverging versions is the source.
Enables
Tool ecology — Work moves between the artifact and the other tools its actors use, and a reference will not do: the other tool cannot follow a link, the work has to arrive in a form the other tool can change, or the actor is gathering in what they made elsewhere.
Enacts
Shareability — export decides what of the work travels to other tools, and in what form
Complements
Local-first ownership — Export in a format another program can read is also how local-first ownership lets the actor take their work elsewhere, and the two are designed together.
Alternatives
Deep linking — Where the other tool can follow a link, deep linking moves the work by reference and leaves a single copy, which avoids the divergence altogether

Resources & references