Prova
Prova is an open source programming language that combines Prolog with Java.
Description
Prova is a rule-based scripting system that is used for middleware. The language combines imperative and declarative programming by using a prolog syntax that allows calls to Java functions. In this way a strong Java code base is combined with Prolog features such as backtracking.
Prova is derived from Mandarax, a Java-based
web applications in biomedical data integration, in particular, the GoPubMed
system.
The design goals of Prova:
- Combine declarative and object-oriented programming.
- Expose logic and agent behavior as rules.
- Access command-line shells like Perl.
- Make the Java API of various packages accessible as 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, 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 has been used as the key service integration engine in the
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.
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.