Prova
From Wikipedia, the free encyclopedia
This article or section is written like an advertisement. Please help rewrite this article from a neutral point of view. Mark blatant advertising which would require a fundamental rewrite in order to become encyclopedic for speedy deletion, using {{db-spam}}. (December 2007) |
Prova is an open source programming language which combines Prolog with Java. Currently on version 1.9 and development version RC 2.0.
Prova positions itself as a rule-based scripting (RBS) system for middleware. The language intend to mix imperative and declarative programming using a prolog syntax but allowing the calls of pure java functions. As such it gains the use of a strong java code base but with a significant lost of prolog key features such as backtracking. It also lacks of a well defined syntax. These weaknesses keep prova to gain a strong user base.
Prova is derived from Mandarax, a Java-based inference system developed by Jens Dietrich. It's main developers Alex Kozlenkov, Adrian Paschke and Michael Schroeder. Prova extends Mandarax by providing a proper language syntax, native syntax integration with Java, agent messaging and reaction rules. The development of this language was supported by the grant provided within the EU projects GeneStream and BioGRID. In the project, the language is used as a rule-based backbone for distributed web applications in biomedical data integration, in particular, the GoPubMed system.
The design goals of Prova
- Marry the benefits of declarative and object-oriented programming;
- Combine the syntaxes of Prolog and Java — two excellent logic and object-oriented languages;
- Expose logic and agent behaviour as rules;
- Access data sources via wrappers written in Java or command-line shells like Perl;
- Make all Java API from available packages directly accessible from rules;
- Run within the Java runtime;
- Enable rapid prototyping of applications;
- Offer a rule-based platform for distributed agent programming.
Prova aims to provide support for data integration tasks when the following is important:
- Location transparency (local, remote, mirrors);
- Format transparency (database, RDF, XML, HTML, flat files, computation resource);
- Resilience to change (databases and web sites change often);
- Use of open and open source technologies;
- Understandability and modifiability by a non-IT specialist;
- Economical knowledge representation;
- Extensibility with additional functionality;
- Leveraging ontologies.
Prova is the key service integration engine in the Xcalia product "Xcalia Core for Services 4.3.0" where it is used for computing efficient global execution plans across multiple datasources such as Web services, TP monitors transactions like CICS or IMS, messages of MOM like MQ-Series, packaged applications with a JCA connector, legacy data sources on mainframes with a JCA connector, remote EJB Java objects considered as data providers or even local Java objects. Prova allows to deliver an innovative software platform for Service-oriented_architecture implementations.
[edit] See also
[edit] External links
[edit] References
- A. Kozlenkov and M. Schroeder. PROVA: Rule-based Java-Scripting for a Bioinformatics Semantic Web. In E. Rahm, editor, International Workshop on Data Integration in the Life Sciences, Leipzig, Germany, in Lecture Notes in Computer Science, Springer-Verlag, vol. 2994, pp. 17—30, 2004.
- N. Combs and J.-L. Ardoint. Rules versus Scripts in Games Artificial Intelligence, AAAI 2004 Workshop on Challenges in Game AI, 2004.
- J. Dietrich, A. Kozlenkov, M. Schroeder, and G. Wagner. Rule-based Agents for the Semantic Web, Electronic Commerce Research and Applications, vol. 2, no. 4, pp. 323-338, 2004.
- A. Paschke, M. Bichler, and J. Dietrich. ContractLog: An Approach to Rule Based Monitoring and Execution of Service Level Agreements, Int. Conf. on Rules and Rule Markup Languages for the Semantic Web (RuleML 2005), Galway, Ireland, 2005.
- A. Kozlenkov, R. Penaloza, V. Nigam, L. Royer, G. Dawelbait, and M. Schroeder. Prova: Rule-based Java Scripting for Distributed Web Applications: A Case Study in Bioinformatics, Reactivity on the Web Workshop, Munich 2006.