Prova es un lenguaje de programación de código abierto que combina Prolog con Java .
Descripción
Prova es un sistema de secuencias de comandos basado en reglas que se utiliza para middleware . El lenguaje combina programación imperativa y declarativa mediante el uso de una sintaxis de prólogo que permite llamadas a funciones Java. De esta manera, se combina una sólida base de código Java con características de Prolog como el retroceso.
Prova se deriva de Mandarax , un sistema de inferencia basado en Java desarrollado por Jens Dietrich . Prova amplía Mandarax proporcionando 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 .
- Exponga la lógica y el comportamiento de los agentes como reglas.
- Acceda a fuentes de datos a través de envoltorios escritos en Java o shells de línea de comandos como Perl .
- Haga que la API de Java de varios paquetes sea accesible como reglas.
- Ejecutar dentro del tiempo de ejecución de Java.
- Habilite la creación rápida de prototipos de aplicaciones.
- Ofrezca una plataforma basada en reglas para la programación de agentes distribuidos .
Prova tiene como objetivo proporcionar soporte para las 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 , recurso de cálculo);
- Resistencia al cambio (las bases de datos y los sitios web cambian con frecuencia);
- Uso de tecnologías abiertas y de código abierto ;
- Comprensibilidad y modificabilidad por parte de un no especialista en TI;
- Representación económica del conocimiento ;
- Extensibilidad con funcionalidad adicional;
- Aprovechando 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 global eficientes a través de múltiples fuentes de datos como servicios web, TP supervisa transacciones como CICS o IMS , mensajes de MOM como MQ-Series , empaquetados aplicaciones con conector JCA , fuentes de datos heredadas en mainframes con conector JCA, objetos Java EJB remotos considerados 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: Java-Scripting basado en reglas para una web semántica bioinformática . En E. Rahm, editor, Taller internacional sobre integración de datos en las ciencias biológicas, Leipzig, Alemania, en Lecture Notes in Computer Science, Springer-Verlag, vol. 2994, págs. 17 a 30, 2004.
- N. Combs y J.-L. Ardoint. Reglas versus guiones en inteligencia artificial de juegos, AAAI 2004 Workshop on Challenges in Game AI, 2004.
- J. Dietrich, A. Kozlenkov, M. Schroeder y G. Wagner. Agentes basados en reglas para la Web Semántica, Investigación y Aplicaciones de Comercio Electrónico, vol. 2, no. 4, págs. 323–338, 2004.
- A. Paschke, M. Bichler y J. Dietrich. ContractLog: Un enfoque para el monitoreo basado en reglas y la ejecución de acuerdos de nivel de servicio, Int. Conf. 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 de reactividad en la web, Munich 2006.