LionWeb-io / specification

Specifications of the LionWeb initiative
http://lionweb.io/specification/
7 stars 0 forks source link

Optionally support orphans in repository #219

Open enikao opened 9 months ago

enikao commented 9 months ago

An orphan node is a node present in the repository that is not mentioned in any other node as containment or annotation, and is not a partition.

A repository MAY support orphans by keeping them in a special place called trash (#217)

We cannot create orphans explicitly.

A node becomes an orphan if it already exists in the repository, but the node's id is removed from its parent containment/annotation, and the node is not moved to another parent in the same operation.

Orphans could be a #218.

If some other node does reference the orphan, the repository MUST NOT update/change that reference. Rationale: We in general do support unresolved or unresolvable references.

Questions:

joswarmer commented 9 months ago

As orphans do not exist anymore, references should never resolve.
There should be a special "recover" operation to get access to orphans/ I am not sure how it would look and what it should do exactly, we might need a special "orphan API.

enikao commented 9 months ago

Decision: For now, we don't support orphans

During a store call (#227) unmentioned children/annotations are immediately forgotten by the repository unless moved.