Knowledge Engineering


In the traditional approach to systems design, a system analyst, together with the ultimate end-users, or clients, for the project, will complete a functional specification of the system. At that point, the project is essentially in the hands of professional project management and programming staff, because that group possesses the knowledge and skill required to deliver the agreed upon features and functions. In the development of knowledge systems, this is simply not the case. Following the specification of function, a new problem arises. This is because it is not an algorithm that is being developed but knowledge that is being encoded for machine use.

 

The immediate problem is that traditional applications developers do not have sufficient knowledge of the applications area to complete the project from the starting point of a functional specification. This information generally exists in a variety of forms, depending on the application area. In some cases an individual or group of individuals may uniquely possess the relevant knowledge. In other cases, the knowledge may exist in the form of published materials like manuals or textbooks. In still other cases, the knowledge does not presently exist at all, and must be created and developed along with the system itself. This is an extremely difficult circumstance. Further compounding this problem is a critical factor: Regardless of the form in which the knowledge currently exists, it is not in a form that is ready for use by a knowledge system. Someone must decide what knowledge is relevant and desirable for inclusion, acquire the knowledge, and represent it in a form suitable for a knowledge system to apply. In all but trivial applications the task of representing the knowledge requires not only coding individual “chunks” of knowledge, but also organizing and structuring these individual components.

 

Historically, owing to the remoteness and enigmatic quality of artificial intelligence technologies, the person doing the actual systems development and the “expert,” or source of knowledge, were not the same. The availability of tools, in place of enigmatic technologies, has had an impact on reducing this problem. Even if one can imagine the case in which the “expert” whose knowledge is to be modeled is also an “expert” with the use of artificial intelligence development tools, there still remains a sizable problem.

 

In case where knowledge resides with some practitioner or expert, it does not exist explicitly as a series of IF …THEN rules, ready to be encoded. Most practitioners and experts find it difficult to explain explicitly what they are doing while solving problems. They are not cognizant of the underlying rules they are applying. Their expertise has been developed from numerous experiences and involves highly developed pattern recognition skills and heuristics.

 

In the case where the knowledge to be included is contained in text material like manuals, regulations, procedures, and the like, the information is still not in a form ready for inclusion in an expert system. It must be remembered that one of the most often cited advantages of expert systems is that they make explicit the knowledge that is most often implicit and unavailable for review, evaluation, dissemination, and modification. The task of making knowledge both explicit and available for systems application is that of knowledge engineering. Most literature on the development and application of knowledge systems has identified the need for individuals skilled in knowledge engineering as a critical factor to widespread use of technology.

 

Knowledge engineering involves acquiring, representing, and coding knowledge. The representation and coding aspects of systems development have been greatly impacted by these newly available tools. The speed with which prototyping can be accomplished has also helped reduce some of the difficulty in acquiring or refining knowledge. The knowledge engineer now finds it much less costly in time and effort to represent, code, and test early approaches to systems development, providing a more efficient feedback loop. This feedback loop is critical in the development of knowledge systems. The end-user/client for the project is, by nature, going to be much more involved in the systems design process. The “programmer” often is incapable of deciding if the system is behaving properly, owing to a lack of fundamental knowledge about the application area. This is simply not as strong a factor, where the programmer is capable of evaluating the accuracy and efficiency of algorithms. When the product is actionable knowledge rather than algorithms, the ability to evaluate project progress shifts to the end-user/client. This creates the increased emphasis on the feedback loop.

 

My Consultancy–Asif J. Mir – Management Consultant–transforms organizations where people have the freedom to be creative, a place that brings out the best in everybody–an open, fair place where people have a sense that what they do matters. For details please visit www.asifjmir.com, Line of Sight

Advertisements