Khalkhi
=======

Khalkhi is a framework around persons and services on them. It is supposed to be applied everywhere where the concept of persons is used and make code for that easier, but more powerful. It builds on KABC, the KDE addressbook framework.

The concept behind all this is that an entry in the addressbook, known as a "person", is a collection of different properties, mostly addresses in different systems (email, phone, postal, chat). Some properties can have different items, like the phone numbers, others only one (birthday). For every property, certain services are possible.

There are three types of services: action services, action services for some given data, and status services. As an example, the person property "email address" is linked to services such as:
"Email to..." (a regular action service)
"Email file/url to..." (a data action service)
"Number of unread emails..." (a status service)
Available adapters to properties and services are all given by plugins. Code using the framework simply queries the property/service trader and then operates on the results in a general way, without really needing to know what the service offers. Those needing more fine-grained control over the data can use property and service ID's to filter.

Most programs only care for one system, like KMail for emailing or Kopete for chatting. Support for a person's other properties is usually hardcoded and thus limited. By using Khalkhi programs can get automaticaly support for everything plugins are installed for, with desktop wide consistency, and fully concentrate on the program's main purpose. Khalkhi delivers also a set of GUI related classes for common usages, like context menus or gui elements, to help to minimize code.

The framework is still a work in progress, with emphasis on the concept up until recently. However, the code is relatively stable, so it should be usable without trouble.

So far only KAddressbook in this branch is changed to use Khalkhi, to give an example and testing ground. In trunk/playground/pim are two other applications of an earlier state of the framework, the Contacts Kicker applet and the Contacts Cards server. Once the architecture is declared stable, other PIM programs should be ported.

Khalkhi is developed by:
* Friedrich W. H. Kossebau <kossebau kde org>
* you?


About the name:
---------------

"Khalkhi" is a latin transcription of "ხალხი", the Georgian term for "people", as in "group of persons".
It is pronounced [χalχi] (in ISA), the "kh" is like...
... the "ch" in Scottish "loch".
... the "ch" in German "Bach".
... the χ in Greek.
... the χ in Russian.
... an aspirated ח.
... the Arabic خ.
... the "h" in Croatian, Serbian, Slovenian, Bosnian.
... the "x" in Serbian (Cyrillic), Macedonian.
... the "ch" in Czech.

So simply Khalkhi :)
