The paradigm shift towards networked, mobile, ubiquitous computing has brought a number of challenges which require new ways to deal with increasingly complex patterns of interaction. Autonomous, reactive and mobile computational entities are needed to take care of unforeseen problems, to optimize the flow of communication, to offer a simplified, and personalized view to end users. These requirements naturally lead towards the emergence of agent programs with increasingly sophisticated inference capabilities, as well as autonomy and self-reliance. Jinni's threads are coordinated through blackboards, local to each process.
Associative search is used as the basic synchronization mechanism.
Threads are controlled with tiny interpreters using a scripting language based on a subset of Prolog. Mobile threads allow Jinni to interoperate with remote high performance BinProlog servers for CPU-intensive knowledge processing and with other Jinni components over the Internet. The synergy of these features makes Jinni a convenient development platform for distributed AI , and in particular, for building intelligent autonomous agent applications . Among the potential targets for Jinni based products, lightweight rule based programs assisting customers of Java-enabled appliances from Web based TVs to mobile cell phones and car computers , all requiring knowledge components to adjust to increasingly sophisticated user expectations. An intelligent stock market trading agent is a perfect application for Jinni.