Prova es un lenguaje de programación de código abierto que combina Prolog con Java .
Descripción
Prova es un sistema de programación basado en reglas que se utiliza para middleware . El lenguaje combina programación imperativa y declarativa mediante el uso de una sintaxis prolog que permite llamadas a funciones Java. De esta manera, se combina una sólida base de código Java con funciones Prolog como el backtracking.
Prova se deriva de Mandarax, un sistema de inferencia basado en Java desarrollado por Jens Dietrich. Prova extiende Mandarax al proporcionar una sintaxis de lenguaje adecuada , integración de sintaxis nativa con Java, mensajería de agentes y reglas de reacción. El desarrollo de este lenguaje fue apoyado por la subvención proporcionada dentro de los proyectos de la UE GeneStream y BioGRID. En el proyecto, el lenguaje se utiliza como una columna vertebral basada en reglas para aplicaciones web distribuidas en la integración de datos biomédicos , en particular, el sistema GoPubMed .
Los objetivos de diseño de Prova:
- Combine programación declarativa y orientada a objetos .
- Exponer la lógica y el comportamiento del agente como reglas.
- Acceda a fuentes de datos a través de contenedores escritos en Java o shells de línea de comandos como Perl .
- Hacer que la API de Java de varios paquetes sea accesible como reglas.
- Ejecutar dentro del entorno de ejecución de Java.
- Permitir la creación rápida de prototipos de aplicaciones.
- Ofrecer una plataforma basada en reglas para la programación de agentes distribuidos.
Prova tiene como objetivo brindar soporte para tareas de integración de datos cuando lo siguiente es importante:
- Transparencia de ubicación (local, remota, espejos);
- Transparencia de formato (base de datos, RDF , XML , HTML , archivos planos , recursos computacionales);
- Resiliencia al cambio (las bases de datos y los sitios web cambian con frecuencia);
- Utilización de tecnologías abiertas y de código abierto ;
- Comprensibilidad y modificabilidad por parte de un especialista no informático;
- Representación del conocimiento económico ;
- Extensibilidad con funcionalidad adicional;
- Aprovechamiento de ontologías .
Prova se ha utilizado como motor de integración de servicios clave en el producto Xcalia, donde se utiliza para calcular planes de ejecución globales eficientes en múltiples fuentes de datos, como servicios web, transacciones de monitores TP como CICS o IMS , mensajes de MOM como MQ-Series, aplicaciones empaquetadas con un conector JCA , fuentes de datos heredadas en mainframes con un conector JCA, objetos Java EJB remotos considerados como proveedores de datos o incluso objetos Java locales. Prova permite ofrecer una plataforma de software innovadora para implementaciones de arquitectura orientada a servicios .
Referencias
- A. Kozlenkov y M. Schroeder. PROVA: Rule-based Java-Scripting for a Bioinformatics Semantic Web. En E. Rahm, editor, International Workshop on Data Integration in the Life Sciences, Leipzig, Alemania, en Lecture Notes in Computer Science, Springer-Verlag, vol. 2994, pp. 17–30, 2004.
- N. Combs y J.-L. Ardoint. Reglas versus scripts en la inteligencia artificial de los juegos, Taller AAAI 2004 sobre desafíos en la IA de los juegos, 2004.
- J. Dietrich, A. Kozlenkov, M. Schroeder y G. Wagner. Agentes basados en reglas para la Web semántica, Electronic Commerce Research and Applications, vol. 2, núm. 4, págs. 323–338, 2004.
- A. Paschke, M. Bichler y J. Dietrich. ContractLog: un enfoque para la supervisión y ejecución de acuerdos de nivel de servicio basados en reglas, Conferencia internacional sobre reglas y lenguajes de marcado de reglas para la web semántica (RuleML 2005), Galway, Irlanda, 2005.
- A. Kozlenkov, R. Penaloza, V. Nigam, L. Royer, G. Dawelbait y M. Schroeder. Prova: Scripting Java basado en reglas para aplicaciones web distribuidas: un estudio de caso en bioinformática, Taller Reactivity on the Web, Munich 2006.
Enlaces externos
- Página de inicio de Prova