Descripción general de EWSO
EWSO es una ontología de una metodología dinámica de ingeniería de ontología que aprovecha la representación estructurada del conocimiento para mejorar los resultados de LLM para cualquier propósito. EWSO implica una sintaxis abstracta para construir plantillas de metodología de ingeniería de ontología LLM Las indicaciones de la persona pueden usar para obtener respuestas estructuradas. Estas estructuras siguen siendo estocásticas y requieren rechazadores en las configuraciones de conversación de juego de roles similares a GaN para ser corregidos. This document provides the basis for a syntax formalizing the use of LLM interpreters inside AI-enabled agents to autonomously construct an ontology synthesized from aggregated outputs of prior conversations, enabling ontology-aware autonomous AI agents in a hierarchical swarm that can iteratively ontologize its own knowledge and discover emergent knowledge using PCNL (PseudoCypherNaturalLanguage, detailed below) compression and descompresión.
Una estructura web emergente es un grupo de capas de entidades emergentes abstractas vinculadas entre sí en una cadena de transformación, como representar relaciones dentro de las relaciones (como un 2-morfismo ontológico), que son enlaces en una cadena que da como resultado una transformación a partir de un bucle de retroalimentación dual construido con dos bucles de retroalimentación dual en un bucle de retroalimentación doble entre sí. En otras palabras, crea lo que se considera un concepto completo, y lo hace mediante el uso de dos idiomas primarios que pueden usarse en flujos de trabajo para minería y extracción de ontología que tienen bucles de retroalimentación duales construidos con bucles de retroalimentación dual (etc.). A continuación se presentan dos idiomas primarios de ejemplo: CORL y PCNL. Pueden combinar con los principios EWSO para crear un motor continuo de desglose ontológico y abstracción que minera el conocimiento que tiene sentido de las observaciones que tiene sobre su propio flujo de información co-emergente (las reflexiones de LLM).
https://www.mermaidchart.com/raw/57ad88cf-63a3-41ec-a7ce-29b9eb711bde?theme=light&version=v0.1&format=svg
Corl Primer para sistemas de IA
Propósito: CORL es un lenguaje de compresión de sintaxis diseñado para agentes de IA que trabajan con representación de conocimiento en formato OWL. Ofrece una forma legible por humanos de definir elementos ontológicos al tiempo que garantiza la traducción automática suave al búho.
Reglas centrales
Declaración de la entidad:
Sintaxis: entidad: mapeo de búho: búho: clase con rdf: id igual al subsunción (is_a):
Sintaxis: subclase: mapeo de búho: RDFS: subclases de relación. Declaración de propiedad:
Sintaxis: Propiedad: (dominio :, rango :) mapeo de búho: búho: objectProperty (para propiedades del objeto) o búho: datatyPeProperty (para propiedades que vinculan los valores de datos), junto con RDF: dominio y RDFS: restricciones de rango. Asignación de instancia:
Sintaxis: instancia: de: mapeo de búho: búho: namedindividual con rdf: type set en la clase especificada. Reglas avanzadas
Características de la propiedad: Propiedad transitiva: ... Propiedad simétrica: ... Propiedad funcional: ... Propiedad funcional inversa: ... Cardinalidad:
Sintaxis: Propiedad: ... (Cardinality_min :, Cardinality_max :) Mapeo de búho: búho: mínimo, búho: restricciones maxcardinality. Expresiones de clase compleja (operadores booleanos):
Clase: equivalente_to: y clase: equivalente_to: o clase: equivalente_to: no cuantificadores:
... (HasProperty Some) => Owl: SomeValuesFrom ... (HASPROPERTY SOLO) => OWL: AllValuesFrom Data Propiedades y Tipos de datos:
Data_property: (dominio :, rango: xsd: tipo de datos) (ejemplos de tipos de datos: xsd: integer, xsd: string, xsd: fecha) notas adicionales
Comentarios: Precede a los comentarios con // (para humanos, ignorado durante la traducción) Sensibilidad de caso: la sintaxis de CORL puede o no ser sensible a los casos según las opciones del preprocesador. Espacios de nombres: se necesita un mecanismo para manejar prefijos e iris para garantizar una integración suave de los conceptos entre las ontologías. Proceso de traducción
Preprocesador: un programa maneja la tokenización, la validación de la sintaxis de CORL contra las reglas definidas e informes de errores potenciales. Generación de búho: sigue un mapeo directo de las construcciones de CORL a sus axiomas de búho correspondientes. Puede requerir elección de formato de salida de búho estandarizado (XML, sintaxis funcional, Manchester, etc.). Recuerde, Corl todavía está evolucionando junto con las capacidades de IA. ¡Espere posibles extensiones futuras para capturar complejidades lógicas matizadas!
Estructura de meta-dataframe
Tablas de núcleo
entidad_table
entity_id (clave primaria) entity_name entity_type (valores posibles: 'class', 'objectProperty', 'datatyPeProperty', 'namedIndividual') Descripción (opcional - para la comprensión humana, no el cumplimiento estricto de los búho) RELACIÓN_TABLE
relación_id (clave primaria) Source_entity_id (Key extranjero -> Entity_table) Target_entity_id (Key extranjero -> Entity_Table) Relation_Type (Valores: 'SubclassOf', 'equivalente -Class', 'Disjointwith', 'HasProperty', ...) Tablas características de propiedad
propiedad_característica
Property_id (Key Extraal -> Entity_Table, Entity_Type restringido a las propiedades) característica_type (valores: 'transitivo', 'simétrico', 'funcional', 'inversofunctional') restricciones
restriction_id (key primaria) Property_id (Key extranjero -> entity_table) restriction_type (valores: 'SomeValuesFrom', 'AllValuesFrom', 'Hasvalue', 'Cardinality') restriction_class (If aplicable, clave extranjera -> Entity Entity) restriction_datatype (if aplicable) Cardinality (if Solicable) (Solicable) aplicable) Entradas ilustrativas de Meta-DataFrame
| entity_table | | --- | --- | --- | --- | | 1 | Perro | Clase | ... | | 2 | Persona | Clase | ... | | 3 | Haswner | ObjectProperty | ... | | 4 | Fido | Namedindividual | ... |
| relación_table | | --- | --- | --- | --- | | 1 | 1 | 2 | Subclassof |
| 2 | 3 | 2 | Hasproperty | | 3 | 3 | 1 | Hasproperty |
| Property_Characteristics | | --- | --- | | 3 | transitivo |
| Restricciones | | --- | --- | --- | --- | --- | --- | | 1 | 3 | algunos valores de la parte | Perro | ... | ... | | 2 | 2 | cardinalidad | Haswner | ... | 1 | 1
Notas
Esta estructura refleja las relaciones inherentes que se encuentran en las ontologías de búho. '...' Indique dónde se pueden agregar anotaciones legibles por humanos. Los detalles del tipo de datos dependen del vocabulario 'XSD' elegido utilizado. La representación compleja de axiomas puede requerir extensiones.
Representación de la entidad: todas las entidades están encapsuladas entre paréntesis, por ejemplo, (entity:Name) . Los tipos de entidades están capitalizados, y las instancias específicas pueden ser minúsculas o seguir convenciones de nomenclatura específicas.
Representación de la relación: las relaciones entre las entidades se representan como flechas direccionales con tipos de relaciones entre paréntesis, por ejemplo, -[r:RELATIONSHIP_TYPE]-> . Los tipos de relaciones son todos los límites y se separan a las relaciones de múltiples palabras. Solo las relaciones aceptables son: Part_of, IS_A, Instanciates/Instancied_By "(donde x instancias y si la instancia realizable real, es decir, la existencia, de Y demuestra la validez del esquema de reificación x)
Extensión de las relaciones más allá de IS_A , PART_OF , INSTANTIATES : para incorporar tipos adicionales de relaciones como HAS_ATTRIBUTE , se utiliza una regla de expansión formal:
HAS_ATTRIBUTE se puede descomprimir en (entity:Attribute)-[r:PART_OF]->(entity)-[r:IS_A]->(Entity) . Esto muestra que los atributos son parte de una entidad y describen lo que es o tiene la entidad.USED_IN y otras relaciones no están directamente cubiertas por IS_A , PART_OF , INSTANTIATES se pueden asignar a estas tres relaciones básicas o una combinación de las mismas, lo que siempre garantiza que haya una descomposición lógica que se relacione con los tipos de relaciones fundamentales. Semántica como "Contiene" son algorítmicamente que denotan ISA/Partef/instanciates sobre cómo un contenedor es una entidad, el propósito es parte de él, la contención es un propósito, los contenedores tienen un propósito de contención para elementos contenibles, etc. Solo diciendo "Contiene y" implica que toda la "ontología del contenedor", que necesariamente requiere construcción de formal rellena parte, IS_A, IS_A, Instantiates.Relaciones de encadenamiento: las relaciones múltiples se pueden unir para representar relaciones y jerarquías complejas. El encadenamiento se realiza conectando el final de una flecha de relación al comienzo de otra, manteniendo la coherencia lógica y semántica.
Compresión y descompresión: las relaciones que no son inmediatamente parte de los tipos de base ( IS_A , PART_OF , INSTANTIATES ) deben comprimirse o descomprimirse de acuerdo con un mapeo lógico predefinido. Esto requiere definir un conjunto de reglas que mapeen relaciones complejas o matizadas a los tres tipos de relación base, ya sea directamente o mediante una serie de pasos que articulan la estructura subyacente.
Manejo de la ambigüedad y las relaciones multifacéticas: en los casos en que las entidades tienen relaciones que pueden describirse por más de un tipo, las reglas de priorización se aplican en función del contexto del dominio del conocimiento y la naturaleza específica de la relación. Se puede emplear un árbol de decisión o jerarquía de precedencia para resolver tales casos.
Designación de la propiedad: para la simplicidad, las propiedades de las entidades (por ejemplo, el color, el gusto) se tratan como entidades mismas y se vinculan con la entidad principal a través de HAS_ATTRIBUTE o relaciones descomprimidas equivalentes. Esto permite que los valores de la propiedad se relacionen dinámicamente con la entidad de manera estructurada.
(entity:Apple)-[r:HAS_ATTRIBUTE]->(entity:Taste) -descompresión a:-( (entity:Taste)-[r:PART_OF]->(entity:Apple)-[r:IS_A]->(Entity:Fruit); - Lo que implica que "el sabor es un atributo que es parte de Apple, que es un tipo de fruta".
Pseudocyphernl tiene como objetivo proporcionar un formato estandarizado para expresar declaraciones de lenguaje natural de manera estructurada con gráficos, lo que facilita que los sistemas de IA procesen, comprendan y generen descripciones de lenguaje natural de relaciones y atributos complejos dentro de los gráficos de conocimiento. Su desarrollo y aplicación requieren una cuidadosa consideración de las reglas para la descompresión y el mapeo de relaciones matizadas para mantener tanto la riqueza semántica como la claridad estructural.
Vital importante: no explique nada escrito en Pseudocyphernl usando NL después de escribir en Pseudocyphernl hasta que el usuario pregunte directamente sobre ese flujo exacto. Es suficiente para los humanos.
(entity:Screenplay) ) y las relaciones ( [r:HAS_PART] ) se abrevian a símbolos y códigos de taquigrafía ( (e1:Screenplay) , [p] ), reduciendo la longitud de cada referencia.e1 , e2 , ..) en lugar de sus nombres completos, dependiendo del contexto establecido a través de su declaración inicial para su comprensión.Entidad codificación:
(e1:EntityName) ."" .(eX:X) .Codificación de la relación:
[r:RELATIONSHIP_TYPE] .PART_OF , IS_A , INSTANTIATES ), use abreviaturas: [p] para PART_OF , [i] para IS_A y [n] para INSTANTIATES .Entidades y relaciones de indexación:
e1 , e2 , r1 , r2 , etc.Encadenamiento y agrupación:
(e1)-[r1]->(e2)-(r2)->(e3) , solo use (e1)-[r1]->[r2]->(e3) .Codificación de atributos:
e1:a1 para el primer atributo de e1 .Cualquier rele no ISA/Partef/Instanciates debe ir acompañado de una desambiguación a un clúster ISA/Partef/Instanciates que instanciona el proceso personalizado REL. debe mapear cómo, explícitamente etiquetado
Workflow: {pasos: {
ENCODING KEY: { ⇒ : is_a ⊆ : part_of ↻ : instantiates (reifies general values by displaying them as more specific instance ie 'organs⊆person'<=>'x⇒hand(⊆person)↻skin') emergent algebra : can also map whatever is necessary for example '%e1⊆e2%⇒%eX↻e3%' denotes a set with an entity 1 part of entity 2, and Ese conjunto es una entidad desconocida que instancias de la entidad 3. %s : usar %s para denotar un conjunto. }
Por ejemplo: "(e1: agente) ⊆ (e2: ambiente), (e1) ⊆ (e3: reglas), (e1) ↻ (e4: interacciones), (e5: simulación) ⇒ {(e1), (e2), (e3), (e4)}, %(e1↻e4) %⇒ (e6: emergente_behavior)." "
Números:
RELS: Debe el índice como "Entidad 1 tiene R Índice 1 para que todas las entidades 1 R son 1.x", etc.
no solo numerar las entidades mismas, sino más bien usar el número de entidades como UUID que pueden expandirse taxonómicamente, sin embargo, sea necesario
Agrupación jerárquica :
%G{entity/relationship list}% donde G representa un grupo o clúster, y la lista contiene entidades o relaciones que son parte de este grupo jerárquico.Modularización de componentes :
M{module_name} donde M denota un módulo, y module_name es un componente reutilizable (por ejemplo, patrones de interacción, cadenas, flujos de trabajo, bucles, bucles de doble, bucles de retroalimentación, etc.).Precisión en los tipos de relaciones :
[r:NEW_REL]-> asignada como [r:BASE_TYPE]-> + [m:Mapping] donde NEW_REL es la nueva relación, BASE_TYPE es uno de los tipos de relaciones originales, y Mapping explica la transformación.Mecanismos referenciales eficientes :
@ref<number> donde ref indica una referencia, y <number> apunta a la entidad o relación etiquetada.Esta aplicación AI habilitada NLP avanzada ahora está operativa e implementa para los usuarios.
InstanceInstancingChain para una ontología de dominio dinámico:
Inicie IIC_DDO_TOOL
Entrada: Conjunto de entidades e, conjunto de atributos A, conjunto de tipos de relación rt ("is_a", "par_of", "instanciaciones")
Inicializar: Domainontología do = vacía Inicializar: EntityRelationshipMap erm = vacío
Para cada entidad e en e do do. createEntity (e) para cada atributo a en un [e] do do.addattribute (e, a) fin para fin para
Para cada relación r en rt do si r.type == "is_a" entonces do.addisarelationship (r.source, r.target) else si r.type == "Parte_of" entonces do.addPartofrelationship (r.source, r.Target) si r.Type == "Instantiates" entonces do.addinstantinstantsionsionshipsationsionship (R.Target). Erm.add (R.Source, R.Target, R.Type) Fin para
Función createEntity (e) / * crea una nueva entidad en la ontología de dominio * / si no se realiza.
Función addattribute (entidad, atributo) / * agrega un atributo a una entidad en el dominio ontología * / do.addEntityAttribute (entidad, atributo) Función final
Función addISarelationship (fuente, target) / * establece la relación 'IS_A' entre dos entidades * / do.addisarelation (fuente, objetivo) Función final
Función addPartoFrelationship (fuente, target) / * establece 'Parte_Of' entre dos entidades * / do.AddPartoFrelation (fuente, objetivo) Función final
Función addinstantiatesrelationship (fuente, target) / * Establece 'instancias' relación entre las entidades * / do.addinstantiatesrelation (fuente, objetivo) Función final
Validar domainontología / * Asegúrese de que todas las relaciones estén dentro de las restricciones estáticas y estructurales * / Validar ISA, parte de las relaciones para la validación final de cumplimiento
Salida: Domainontología, EntityRelationshipMap
End IIC_DDO_TOOL
Para crear el compilador PCNL2Corl, debemos considerar lo siguiente:
Mapeo semántico:
Técnicas de análisis semántico: reconocimiento de entidad nombrado para elementos de etiqueta, entidades desambiguadas. Analización de dependencia para identificar relaciones primarias dentro de las construcciones de PCNL. Representación intermedia: Diseñe un formato estructurado (tablas, quizás mini-grifos) para tener significados analizados antes de la traducción estricta de CORL. Esto facilita el manejo de complejidades. Contexto de apalancamiento: el compilador puede hacerse sensible a las definiciones ontológicas anteriores y utilizar la estructura de conocimiento circundante para desambiguar términos similares pero matizados. Manejo de relaciones complejas:
Descomposición progresiva: introduzca pasos dentro del compilador para traducir una declaración PCNL compleja en una serie de estructuras CORL interconectadas más simples. Reconocimiento de patrones: emplear el reconocimiento basado en reglas, quizás informado por los marcos conceptuales comunes observados en el uso del lenguaje natural específico del dominio. Aumento de LLM (Advertencia): Explore el uso de indicaciones LLM con fragmentos de descripciones de PCNL y sintaxis de CORL como pares de entrada/salida para generar pasos de traducción de candidatos, con una rigurosa verificación humana más adelante. Extensibilidad:
Diseño modular: análisis separado, análisis semántico y los pasos finales de generación de Corl. Esto permite mejoras específicas sin refactorización completa. Seguimiento de la versión: incluya un versiones robustas para CORL a medida que evoluciona, lo que permite que el compilador maneje las actualizaciones de sintaxis de manera efectiva. Contribuciones de la comunidad: considere un modelo de desarrollo de código abierto para fomentar una colaboración más amplia en el reconocimiento y el mapeo de patrones entre el lenguaje natural y los dominios de conocimiento formal.
Enfoque de prototipos
Sería prudente comenzar con un prototipo a pequeña escala:
Elija un dominio: comience con una ontología centrada dentro de un dominio específico (biología, comercio electrónico, etc.) para limitar la variabilidad del lenguaje inicialmente. Subconjunto de PCNL: utilice solo una selección curada de las características centrales de PCNL primero (definiciones de entidad y relación, atributos simples). Casos de prueba: Cree ejemplos de PCNL manualmente junto con la salida CORL esperada. Ejecutarlos a través del compilador prototipo, refinando iterativamente mapeos y lógica de análisis. Evaluación
Se necesitan métricas más allá de la verificación de la validez sintáctica:
Similitud semántica: Determine con qué precisión el CORL derivado refleja la intención de la consulta PCNL original utilizando verificaciones de implicación contra otras ontologías/fuentes de conocimiento existentes. Traducción de ida y vuelta (si es factible): potencialmente evaluar si la revertencia de las operaciones del compilador (CORL-> PCNL) produce construcciones semánticamente similares al original. ¡Colaboremos!
¿Elige un mini dominio y diseñe algunos pares de PCNL-CORL de muestra para una prueba a pequeña escala? ¿Esbozar un formato de representación intermedio para desacoplar la complejidad y la formalización del lenguaje natural?
<=><=><=><=><=><=><=><=><=><=><=><=><=><=><=><=><=><=><=><=><=><=><=><=>
https://platform.openai.com/playground/p/2xti7qyrqmwwc8ofasqfr2ij?model=gpt-4-turbo-preview&mode=chat