Metadata - a new idea

## This page describes the basic data definition language.

key: value 
   ## comment
   child-key-a: value
   child-key-a: value
   ## second value for key-a
   child-key-b: value
      key-c: value
      key-d: -- value 1 -- value 2 -- etc..
      ## where -- seperates entries in a list, this can also be represented 
      ## by indentation, which allows the values to have further attributes
      key-d: 
      -- value 1
      -- value 2
           key-e: value 
      -- value 3

## keys may be of two types:
## either an attribute describing the entity, or
## a universal property
## universal properties describe aspects of an attribute
## and by convention, universal keys are common across all attributes
## if not defined, universal properties are inherited from parent attributes 

## by convention universal properties start with ** and use single letters
## for example

   title: This is a book
      **l: english
   title: Celui ci est une livre   
      **l: french
      
## where **l means the language of the text used in the attribute value

## universal properties are defined by the application, the following being
## examples that might be used

**l = language
**d = application domain (definition of the meaning of keys)
**i = process for interpretting text values
**c = date/time of creation or update
**o = responsibility for creation/update
**n = update cycle number (0 for new key)
**r = rule for representing the attribute as text when the key is linked

## there are 3 special generic keys

  key:
     ## comment
     @@ identifier of another description, the values of the linked description can be placed here
     !! an identifier for this key 

## all other keys are defined by the application

## There are two additional conventions that may be adopted :

  &: implies a repeat of the previous attribute
  
  attributA_attributeB: is shorthand for 
  
  attributeA:
     attributeB: 
     
## an example being :

   written_by: John Smith

## A separate description is introduced by a key with no indentation

## Values may run over several lines using | , the text is preserved as is, and > ,
 the text is run together, a blank line indicating a paragraph. (Similar to YAML)

   description: >
      This is some text running over a line and which can be merged 
      together into a single line.
      
      The blank line above indicating the start of a new paragraph.
   table: |
      Name         Number         Arrived        Left
      Smith        12             5              0
      Jones        6              4              2
      Andrews      21             17             3

## will preserve the layout of this text.