The Midgard 1.4 (Bifrost) Reference is organized around the
    design of the database storage backend. For every entity, like a topic
    or an article, a record type exists. The record type definition of an
    entity is a direct reflection of the database table that holds
    instances, records, of those entities. The records are not manipulated
    directly, but through functions that work with objects.  The parameters
    of those objects often map directly to the fields of the record type
    they relate to. Sometimes relevant information from different record
    types is merged into one object.  
 For every entity this reference holds a section with a
    Record Type Definition, an Object
    Definition and an explanation of the available functions that
    are related to that particular record type. A separate section is dedicated to functions
    that do not relate to a specific record type.  
 To allow for quick lookups the functions are documented following
    a strict order.  
| 
  mgd_function_title
  Name
  mgd_function_title - short description
  Description
  return type mgd_function_title(type parameter, type parameter, [type parameter]);
  Minimum version: some midgard version
  Short explanation.
  Returns [something] if successful. Returns [something else] on failure.
  <?
    // Optional: a coding example.
  ?>
     | 
 If the return type of a function is object, the available
    parameters and methods from that object can be found by examining the
    related Object Definition.  
Table 1. Midgard Functions
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | 
|---|
| mgd_create_____ | X |  | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | 
| mgd_update_____ | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | 
| mgd_delete_____ | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | 
| mgd_delete______tree |  |  |  |  |  |  |  |  | X |  |  |  |  |  |  | X | X | X | 
| mgd_move_____ | X |  | X | X |  |  |  |  | X | X |  |  |  |  |  |  |  | X | 
| mgd_copy_____ | X |  | X | X |  |  |  |  | X | X |  | X |  |  |  | X | X | X | 
| mgd_get_____ | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | 
| mgd_get______by_name | X |  | X |  |  | X | X |  | X | X | X |  |  |  | X |  | X | X | 
| mgd_list______s |  |  | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | 
| mgd_is_in______tree |  |  |  |  |  |  |  |  | X |  |  |  |  |  |  |  |  | X | 
| mgd_walk______tree |  |  |  |  |  |  |  |  | X |  |  |  |  |  |  |  | X | X | 
| mgd_is______owner | X |  |  | X |  | X | X |  | X |  |  |  |  |  |  | X |  | X | 
| mgd_stat_attachment |  |  |  | X |  |  |  |  |  |  |  |  |  |  |  |  |  |  |