• Public
  • Public/Protected
  • All

An update to which further updates can be asserted or entailed.



  • InterimUpdate





Readonly update

update: Promise<MeldPreUpdate>

A promise that resolves to the current update. If any modifications made by the methods above have affected the @insert and @delete of the update, they will have been applied.



  • alias(subjectId: Iri | null, property: "@id" | Iri, alias: Iri | SubjectProperty): void
  • Substitutes the given alias for the given property subject, property, or subject and property, in updates provided to the application. This allows a constraint to hide a data implementation detail.


    • subjectId: Iri | null

      the subject to which the alias applies

    • property: "@id" | Iri

      if @id, the subject IRI is aliased. Otherwise, the property is aliased.

    • alias: Iri | SubjectProperty

      the alias for the given subject and/or property. It is an error if the property is @id and a SubjectProperty alias is provided.

    Returns void


  • assert(update: Update): void
  • An assertion is an update that maintains the data integrity of the domain by changing data that the app created, or that was the result of a prior assertion.

    An assertion is incorporated into the final update sent to other clones and echoed to the local app. Examples of assertions:

    • Recover a previous value into an empty mandatory property
    • Rewrite a list index predicate to a CRDT-specific form



    • update: Update

      the update to assert into the domain

    Returns void


  • entail(update: Update): void
  • An entailment is an update that maintains the data integrity of a domain by changing only entailed data. Entailed data is data that can be deduced automatically, and can only be created by entailment, and not by an app.

    An entailment is not included in updates sent to other clones or to the local app. Examples of entailments:

    • The size of a collection
    • Membership of a duck-type class
    • Removal of excess property values

    Note that graph edges that are deleted by entailments retain a hidden presence in the clone metadata, commonly known as a 'tombstone'. Since this can give rise to unbounded storage use, constraints should endeavour to remove these hidden graph edges when the opportunity arises. They can be obtained using the hidden method.




    • update: Update

      the update to entail into the domain

    Returns void


  • hidden(subjectId: Iri, property: Iri): Consumable<Value>
  • Recovers hidden graph edges for the given subject and property; that is, values that have been deleted from the graph by entailment. Hidden edges can be removed permanently by asserting their deletion.


    • subjectId: Iri

      the subject for which to obtain the graph edge

    • property: Iri

      the property for which to obtain the graph edge

    Returns Consumable<Value>


  • remove(assertions: Assertions): void
  • Removes assertions (not entailments) from this update, prior to application to the dataset. This is used to rewrite assertions made by the application, or the work of prior constraints.

    Removal of an assertion is possible:

    1. during constraint checking,
    2. during constraint application, if the assertion was made by another constraint. An attempt to remove an assertion made in the original update will be ignored, which may lead to unexpected results.



    • assertions: Assertions

      Subject assertions to remove

    Returns void


  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Static property
  • Static method
  • Inherited property
  • Protected method

Generated using TypeDoc. Delivered by Vercel. @m-ld/m-ld - v0.9.2 Source code licensed MIT. Privacy policy