Common Logic (CL) es un marco para una familia de lenguajes lógicos, basado en lógica de primer orden, destinado a facilitar el intercambio y la transmisión de conocimiento en sistemas basados en computadora.[1]
CL permite y alienta el desarrollo de una variedad de formas sintácticas diferentes, llamadas dialectos. Un dialecto puede usar cualquier sintaxis deseada, pero debe ser posible demostrar con precisión cómo la sintaxis concreta de un dialecto se ajusta a la semántica abstracta de CL, que se basa en una interpretación teórica del modelo. Cada dialecto puede ser tratado como un lenguaje formal. Una vez que se establece la conformidad sintáctica, un dialecto obtiene la semántica CL de forma gratuita, ya que se especifican solo en relación con la sintaxis abstracta y, por lo tanto, son heredados por cualquier dialecto conforme. Además, todos los dialectos CL son equivalentes (es decir, se pueden traducir automáticamente entre sí), aunque algunos pueden ser más expresivos que otros.
En general, un subconjunto menos expresivo de CL puede traducirse a una versión más expresiva de CL, pero la traducción inversa solo se define en un subconjunto del lenguaje más amplio.
ISO publica Common Logic como "ISO/IEC 24707: 2007 - Tecnología de la información - Common Logic (CL): un marco para una familia de lenguajes basados en lógica".[2] Está disponible para su compra en el catálogo de ISO, y está disponible gratuitamente en el índice de normas disponibles públicamente de ISO.[3]
El estándar CL incluye especificaciones para tres dialectos, el formato de intercambio lógico común (CLIF) (anexo A), el formato de intercambio de gráfico conceptual (CGIF) (anexo B) y una notación basada en XML para lógica común (XCL) (anexo C ). La semántica de estos dialectos se define en el Estándar por su traducción a la sintaxis abstracta y la semántica de la lógica común. Muchos otros lenguajes basados en la lógica también podrían definirse como subconjuntos de CL mediante traducciones similares; entre ellos están los lenguajes RDF y OWL, que han sido definidos por el W3C .
El desarrollo de la norma ISO comenzó en junio de 2003 bajo el Grupo de trabajo 2 (Metadatos) del Subcomité 32 (Intercambio de datos) bajo ISO/IEC JTC1, y se completó en octubre de 2007. En este momento se está preparando una corrección técnica, corrigiendo algunos errores en el estándar original.