} // addObservation()

        public InferentialTableBuilder getTableBuilder(String table_name)
        {
            InferentialTableBuilder table_builder = null;

            if (_tableBuilders.ContainsKey(table_name))
            {
                table_builder = _tableBuilders[table_name];
            }

            if (table_builder == null)
            {
                table_builder = new InferentialTableBuilder(table_name);
                _tableBuilders[table_name] = table_builder;
                //InferentialTableBuilder existingTableBuilder = null;

                //if (_tableBuilders.ContainsKey(table_name))
                //    existingTableBuilder = _tableBuilders[table_name];
                //else
                //if (_tableBuilders.ContainsKey(table))
                //    existingTableBuilder = _tableBuilders[table] = table_builder;
                //if (existingTableBuilder != null)
                //{
                //    table_builder = existingTableBuilder;
                //}
            }
            return(table_builder);
        } // getTableBuilder()
        } // build()

        protected MutableTable buildTable(InferentialTableBuilder tableBuilder)
        {
            return(tableBuilder.buildTable());
        }
        public void addObservation(String table, Document document)
        {
            InferentialTableBuilder table_nuilder = getTableBuilder(table);

            table_nuilder.addObservation(document);
        } // addObservation()