Programming languages are expressions of the language designer's ideas of how a computer should be instructed to solve the kinds of problems the designer thinks are important. Prolog is a programming language that originated in the theoretical work of Colmerauer at the University of Marseilles in the early 1970's. The aspects of process are implicit rather than explicit. The solution is non-deterministic in the sense that the programmer does not explicitly determine the method of solution out of a number that might be provided, and that the problem may have several solutions, each of which may be formed using different derivations. Although Prolog is not entirely successful as a logic language, it facilitates the statement of many problems that would be very difficult to state in mainstream procedural programming languages.
Programming languages have typical introductory examples that are given as a brief description.
It is capable of handling very complex, arbitrary, data types, such as lists of items, trees, or graphs. It is practically limited to certain problem domains, but many of these are ideal for anthropologically interesting problems. The language is widely available for mainframes and micros, especially in the UK, where much of the development of the language has taken place. We are using a version of Prolog written in Java, so that we can use it in java applets on web pages. Although not a full implementation, it is sufficient for the purpose of representing our kinship models.