VIPALC'06 Speakers and Subjects

Thomas Linder Puls
PDC, Denmark

Tutorial: Visual Prolog Objects and Polymorphism

The programming language Visual Prolog has gone through a huge development in the latest years, and this will also continue in the future. Most noticeable is the shift to object-orientation, and (soon to come) the introduction of parametric polymorphism.  In this paper we will explain the reason for introducing these features.  Examples will be used to illustrate how these facilities can help to tackle the increasing complexity and size of software.

Gildas Ménier
South Brittany University, France

Approximate Semi-structured Document Retrieval
in Large XML Databases

We introduce a Visual Prolog system (called alpha) designed to manage a large base of semi-structured documents. The system involves a query language able to mix both structural and textual properties and to deliver approximate answers. We describe the algorithms implemented involved both in search and indexing and the prototyping system developed.

Michael Alexander
Cool Blue Interactive, USA

Domain Specific Languages

Visual Prolog has made remarkable strides in becoming a modern vehicle for object-oriented programming. And I must confess, having been away from the product for a while, I am duly impressed with the thoroughness and thoughtfulness with which the language has been overhauled since the 5.x-era versions.

Nevertheless, I’d like to set up a counterpoint, as it were, to suggest that in spite of all this new-found object-oriented goodness,  we ought not turn our backs on the seemingly old-school notion of language-oriented programming - in particular the use of domain-specific languages as a design-pattern.

Vitaly Markov
The Kuban State Technological University, Russia

The Intellectual System for Orthogonal Cutting – Packing

Modern process engineering of control and information processing are frequently grounded on a solution of some not polynomial (NP) problems for which the polynomial algorithm for not determined Turing machine with infinite memory is unknown. The solution of these problems represents significant interest for practice. Among NP-problems it is possible to select tasks of expending of not restored resources having both material, and the information nature. For example is spectrum of problems from the task of definition of Hamilton's path on the complete graph to the task of optimal packing.

George A. Stathis
ENB Ltd, Greece

Assembly Language Extensions of Visual Prolog for Data-mining Applications with Huge Data

Pure Assembly Language is the fastest way to implement Visual Prolog predicates that can achieve intelligent processing of huge data. High-level logic programming power is then combined with extremely low-level speed enhancements. A number of special techniques emerge that combine the best of both worlds: Visual Prolog and Assembler.

Erkki Laitila
SwMaster Ltd, Finland

Program Comprehension:
Theories and Prolog Based Methodologies

 Software maintenance is said to account for more than 50 % of all software efforts. Of this the attempts to understand the code can take 70 %. In spite of its importance, program comprehension is not well understood.
This paper tells how Prolog can be used in modeling source code. An essentially new method, symbolic analysis, is presented and compared to static and dynamic analyses, which form the bulk of the current practices. We will show how a multi-paradigm tool, Visual Prolog, can serve as an excellent model formulation tool in describing complex source code to cover typical program understanding models.

Yuri Ilyin,
PDC, Russia

Tutorial: Using COM

LIFETIME MANAGEMENT: COM technology is based on objects. If we want to use a component, we create the component instance. From this instance we can retrieve objects, which correspond to the exported interfaces. In COM it is necessary to inform the invoked component when the received object is not used anymore.
In Visual Prolog object’s lifecycle is usually controlled by references to the object. Hence we have chosen to create comInterface object on the top of COM objects. When comInterface object is released by the Garbage Collector, the corresponding COM object is release by explicit Release invocation. However if COM objects are used intensively it can be worth to force the release in comInterface object explicitly as many objects waiting for garbage collecting can take much memory.

Carsten Kehler Holst,
PDC, Denmark

An Exercise in Constraint Programming in Visual Prolog 7

 The currently very popular logical puzzle is used as an example. We show how such a problem can be solved using constraint programming and explain a simple approach to finite domains constraint solving. Furthermore we show how to build an interactive GUI that visualizes the workings of the constraint solver.

Jens Hintze Holm

Pro/3 – A Production System-type Expert System Shell

 Pro/3 is an expert system shell with a knowledge model which can include high volumes of facts, crisp logic rules (PROLOG-type inference) with substantial add-on’s for handling statistical and other operations on sets of facts, as well as inexact reasoning rules with certainty factors, probabilities and fuzzy sets. Pro/3 can be operated as a backward chaining system, where all queries are resolved by interpreting all facts and rules in the knowledge base on the fly. This is however all but impractical in knowledge bases of some size, and  a forward chaining super-structure, which derives sentences once and for all and stores them in the knowledge base, is used instead. The system is then a production system where the knowledge base serves as the working memory. Possible applications include problems involving inexact classifications (stock selection, market state assessment, medical diagnostics, network diagnostics), event forecasting with certainty rules and rule-intensive applications in general.

Olivier HAAS, France

Visual Prolog and the MDA Approach

 Model-Driven Architecture (MDA), designed and promoted by the Object Management Group is an approach for software engineering in which a repository, expressed in UML and OCL, is laid down at the center of the project. This repository is stratified, from top to bottom, in CIM, PIM and PSM models, a given model being possibly at the same time a PIM and a PSM, that is, a PIM from one point of view and a PSM from another, higher or more conceptual than the former. This stratification represents a gradation in the abstraction cycle, since the deeper we progress through that stratification and its grades, the closer we are to the final code, and the more far we are from the top requirements.

Elena Efimova, Olga Safronova, Dmitry Vinogradov
The Russian State University for the Humanities

A Prototype of JSM-system in Visual Prolog

The paper describes a Visual Prolog 6.3 PE program for the JSM-method of hypotheses generation.

 The JSM-method is a synthesis of cognitive procedures (induction, analogy, and abduction). This method is a tool for calculation of “cause-effects” relationship on various research domains. The origin of JSM-method can be traced to works of John Stuart Mill in the middle of XIX century. Modern approach to plausible reasoning of JSM-type was been created by Prof. V.K. Finn about 25 years ago. After that the JSM-method was been applied to chemistry, pharmacology, medicine, sociology, Internet-technology problems etc.

Hans Siggaard Jensen,
Learning Lab Denmark

Prolog, Planning and Projects

In the area of project management there is an interesting relation between planning and management. Developing tools for supporting project management will have to understand that relation.
Tools for planning have been developed using Prolog – CAPS from PDC is a good example. Prolog as a programming language is based on a kernel of a unification and resolution theorem prover. So everything done is a proof of the existence of a contradiction and the basic rule of inference is the Modus Tollens. Theorem proving in itself is a form of planning. And automated theorem proving is a form of automated planning.
 The further insight of importance is that all deduction systems can be viewed as computation systems – that deduction and computation are really in some fairly abstract sense equivalent (Lalement 1993).

Nagoya University of Foreign Studies, Japan

MY Server – “desktop server” for School Teachers

 The author has developed an e-learning / e-teaching tool (called “MY Server”) for school teachers with Visual Prolog ver.6.3. The basic concept of the development is discussed and the procedure how to use list processing for CGI programming is briefly introduced.

Thomas Linder Puls,
PDC, Denmark

Tutorial: Object Oriented GUI Programming

This tutorial introduces the pfc/gui package by numerous examples, beginning very trivially, but gradually building more interesting and realistic examples. The examples serve an educational purpose and at the same time illustrate the transparency and consistency of the package. The fundamental notions of properties, events and controls are introduced. These techniques are later used to teach more abstract concepts such as domain controls, contents validation and finally how business quality user interfaces are best put together.

Victor Yukhtenko,
PDC Russia

DLL-based Component Technology
Using Visual Prolog 6 / 7 Features

DLL-based component technology (The Visual Prolog Puzzle or VPPZL or just PZL) is the set of agreements to build VIP-based applications on the basis of the standard VIP6 packages placed into DLLs. The VIP6 package fitted to PZL-technology agreements is named pzlComponent. The VIP project (executable or DLL), which contains pzlComponents, organized in a special way, is named pzlContainer. The full set of operations to manipulate with pzlComponents and pzlContainers created. The first version of the application, which supports these operations (Elementary Studio), gives the possibility to use the PZL-technology in the practical programming. The tools, which support the PZL-technology, use this technology also and thus follow the idea of the open-architect applications.

Paul S. Cerkez
Nova Southeastern University & DCS Corporation, USA

A Decision Support System to Convert Images to a Standardized Format for Neural Network Processing

The GDI+ is a new capability to Visual Prolog.  This paper will report on the trials, tribulations, and lessons learned while developing an application using this new capability.  It will center on an application that pre-processes images before they are sent on to a neural network for analysis.  This paper presents a discussion of the system requirements, how they were implemented in VIP 6.3, the results of testing, and the lessons learned during the application’s development

Tadeusz Szuba
AGH University, Cracow, Poland

Nondeterministic, molecular concept of the Prolog execution model for Computational Collective Intelligence application.

 The language of Prolog urgently requires a new model of computations, because the present one (Turing machine based) blocks it’s further development and makes Prolog uncompetitive, even heading towards a decline. A molecular and nondeterministic model of computations is proposed instead. This paper describes this concept and demonstrates that based on this, a redefined model of Prolog (Random Prolog Processor - RPP) can be used for new, astonishing applications such as Collective Intelligence (CI). The social structure optimizing technology, e.g. companies, through it’s Collective Intelligence  IQ calculation and improvement, can be a very profitable application in the future. It can revive Prolog, push it towards new development directions and attract new users, because other programming languages seem ineffective for this application domain.

Chan Bok,
Axon Research, Singapore

Developing an Idea Processor in Prolog

 This paper describes the design concepts behind the development of the Axon Idea Processor, a software developed in Visual Prolog to provide an environment for supporting the thinking process. Some of the reasons for using Prolog as the programming language are also explained in this paper.

Carsten Kehler Holst,
PDC, Denmark

Visual Prolog and Large Scale Projects

We examine some of the demands of large scale applications and how they have influenced the design of Visual Prolog and will continue to do so.