Domain knowledge

Most general, domain knowledge is the knowledge which is valid and directly used for a pre-selected domain of human or an autonomous computer activity.

Different specialists and experts use and develop their own domain knowledge.

If the concept domain knowledge or domain expert is used we emphasize a specific domain which is an object of the discourse/interest.

More particular, in software engineering, domain knowledge is knowledge about the environment in which the target system operates. Domain knowledge is important, because it usually must be learned from software users in the domain ( as domain specialists/experts), rather than from software people. Communicating between end-users and software people is often difficult. They must find a common language to communicate in. Developing enough shared vocabulary to communicate can often take a while.

Expert’s domain knowledge (frequently informal and ill structured) is transformed in computer programs and active data, for example in a set of rules in knowledge bases, by knowledge engineers.

Remarks - The same knowledge can be included in different domain knowledge. - Knowledge which may be efficient in every domain is called domain-independent knowledge, for example logics and mathematics. - Operations on domain knowledge are performed by meta-knowledge.

Examples

 * Word processors encode specific knowledge about fonts and formatting of text (word wrapping, word breaks, etc), and even spelling and grammar.
 * Embedded controllers for automobile engines know how to control engines.
 * Medical software encodes knowledge and information about patients and medicine.


 * Financial Software encode formal rules related to Purchasing, Accounts, and Inventory

Literature
Hjørland, B. & Albrechtsen, H. (1995). Toward A New Horizon in Information Science: Domain Analysis. Journal of the American Society for Information Science, 1995, 46(6), 400-425.