Abstract Wikipedia/ZObject

From Meta, a Wikimedia project coordination wiki
Jump to navigation Jump to search

ZObject is the basic data unit in Wikilambda. A ZObject may be a string, list of ZObjects, or a JSON object. A persistent ZObject may only be a JSON object.

The keys of JSON object are Z#K#, where value are other ZObjects.

  • Z1/ZObject
    • Z1K1/type (Z4/Type)
  • Z2/Persistent object
    • Z2K1/id (Z6/string)
    • Z2K2/value (Z1/ZObject)
    • Z2K3/label (Z12/Multilingual text)
  • Z3K1/Key
    • Z3K1/value type (Z4/Type)
    • Z3K2/key id (Z6/String)
    • Z3K3/label (Z12/Multilingual text)
  • Z4/Type
    • Z4K1/identity (Z4/Type)
    • Z4K2/keys (Z10/List(Z3/Key))
    • Z4K3/validator (Z8/Function(...))
  • Z5/Error
    • Z5K1/error type
  • Z6/String
    • Z6K1/string value (Z6/String)
  • Z7/Function call
    • Z7K1/function (Z8/Function)
    • Others based on Z8/Function
  • Z8/Function (generic)
    • K1/arguments (Z10/List(Z17/Argument declaration))
    • K2/return type (Z4/Type)
    • K3/tests (Z10/List(Z20/Test))
    • K4/implementation (Z14/Implementation)
    • K5/identity (Z8/Function)
  • Z9/Reference
    • Z9K1/reference ID (Z6/String)
  • Z10/List (generic)
    • K1/head
    • K2/tail