anchor.diff:  url                 = postgresql://semantics:password@dagobert:5432/zamia_ai
   
   [semantics]
  -modules             = common_sense, weather, smalltalk, radio
  +modules             = data, config, base, dt, humans, weather, media, movies, literature, tech, smalltalk, politics, personality, chat
   server_host         = dagobert
   server_port         = 8302
   
  
positive.code: NOTE: If you're looking for the scripts that I am using to build my VoxForge models, those
  are over at https://github.com/gooofy/speech.
  
  Right now the rough idea is to use a custom prolog system at the core for logic reasoning,
  an RDF triple store for holding data and a seq2seq model to map natural language to prolog.
  
  ```
  natural language -> [ tokenizer ] -> tokens -> [ seq2seq model ] -> prolog -> [ prolog engine ] -> say/action preds
  ```
  
  One of the key features of the current setup is the way training data is stored/generated.
  I am using a modularized approach here (see the modules/ directory for humble beginnings of this)
  where I store snippets of natural language which uses a macro system for somewhat rule-based
  generation of language examples along with RDF triples for data and prolog code to execute it
  
  Knowledge Base Notes
  --------------------
  
  For documentation on ZamiaAI semantic processing, see <<doc/semantics#,semantics>>.
  
  === contexts
  
  Contexts are stored individually per-user in KB (sparqlalchemy/rdf)
  
  e.g.
  ```
     aiu:Alice  aiup:name       'Alice Green'
                aiup:topics     "[weather, wde:Q37373, ...]"
                aiup:favMovie   wde:Q...
                ...
  ```
  stored values can be arbitrary prolog structures (e.g. lists) which are stored in JSON format
  if no corresponding RDF datatype exists. context\_push/context\_score operations work on such
  stored list literals, see aiup:topics above for an example.
  
  a dedicated default user exists which can be used to store defaults for context values
  ```
     aiu:default aiup:name       'Alice Green'
                 aiup:favMovie   wde:Q...
                 ...
  ```
  === self context
  
  to store information the AI system knows about itself (i.e. its name, when it was born, favorite
  movie etc) a special user aiu:self is used
  
  e.g.
  ```
      aiu:self   rdfs:label    "HAL 9000"@en;
                 rdfs:label    "HAL 9000"@de;
                 wdpd:P31      wde:Q68;       # InstanceOf computer
                 wdpd:P21      wde:Q6581097;  # SexOrGender male
                 wdpd:P131     wde:Q1022;     # LocatedIn Stuttgart
                 ai:favMovie   wde:Q103474;   # favMovie 2001: A Space Odyssey
                 ai:favChannel wde:Q795291.   # favChannel b5 aktuell
  ```
  
  module initialization / test setup
  
negative.code: api_key             = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  city_id             = 2825297
  city_pred           = stuttgart
  
  [context]
  place               = 'http://www.wikidata.org/entity/Q1022'
  cannel              = 'http://www.wikidata.org/entity/Q795291'
  time                = today
  ```
  
  Language Model
  