Veo que te gusta pensar en los datos como algo tangible. Yo también. Por ejemplo, no me gusta la forma en que uno aprende cálculo Lambda en algunas escuelas. Ya sabes, diciendo que Lambda es lo único que uno necesita para diseñar cualquier cosa. En un modelo matemático puro, es verdad. Pero en una computadora real, la función *comportamiento* (la función pura global que cambia cada vez que el sistema aprende de la palabra externa) necesita ser materializada de alguna manera. La forma en que se materializa es en realidad una preocupación importante, especialmente si se busca la persistencia. Un intento ingenuo sería definir todo el comportamiento del sistema en un único archivo de código fuente plano, como un archivo "comportamiento.lisp" copiado en bruto en algún disco duro. Este archivo tendría que ser renovado en cada iteración del sistema. Naive como he dicho. La forma actual de trabajar consiste en dividir el comportamiento entre archivos planos de sólo lectura en disco (código de software y activos) y cajas de lectura/escritura que se rellenan con valores mutables (datos de usuario y varias configuraciones). El comportamiento del sistema es por lo tanto 90% cableado y el 10% restante es todo acerca de pequeñas cajas que se llena con entradas. Mis pensamientos son sobre encontrar una forma definitiva de almacenar la función de comportamiento de un sistema en ejecución. Quiero que sea completamente plástico y auto-indexado. Al principio, tenía la intención de hacer otra base de datos de objetos. Pero finalmente me di cuenta de que reemplazar archivos por algunos conjuntos de pares de valor de ranura (o base de datos de entidad-relación, o gráficos etiquetados o predicados) no cambió fundamentalmente nada excepto de una mejor granularidad de datos. Uno todavía se enfrenta a un sistema tonto que no puede obtener y manipular la mayor parte de la información que posee. Debido a que los objetos de valores de ranura, base de datos relacional, gráficos etiquetados, predicados, archivos XML, RDF y cualquier almacenamiento de datos existentes que he descubierto en Google se basan en un solo antepasado: el metamodelo de caja/valor, que está mal. ¿Por qué? Se trata de *reificación*, es decir. hacer más cosas tangibles para que el sistema funcione. En un sistema basado en caja/valor, uno podría dedup y hashmap valores, pero uno no podría dedup cajas (porque su contenido no puede ser compartido entre contextos) y uno no puede ni dedup ni hashmap un "algo de valor en alguna caja" información en absoluto. Esta última -relación- no es *tangible* para el sistema. Y sin embargo, como dije antes, aquí es donde *significa * reside como bits por sí mismos no tienen sentido. Si descartas gráficos pero abrazas estructuras de flechas (que en realidad reemplaza a las gráficas académicas), ahora puedes consultar el sistema para tal relación, como (color-&gt;amarillo) y obtener todos los contextos donde esta relación está involucrada. Además ahora, esta relación es un ciudadano de primera clase. Puede usarlo como un árbitro (una cabeza) o un árbitro (una cola) para generar información significativa. Ahora las computadoras pueden trabajar nativamente en el *significado* de los datos que almacenan. En realidad, supongo que es lo que me parece alucinante.