A C++ Framework to Support the Implementation of the CommonKADS Knowledge Model

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    A C++ Framework to Support the Implementation of the CommonKADS Knowledge Model - Presentation Transcript

    1. A C++ Framework to Support the Implementation of the CommonKADS Knowledge Model Adriano Cosera,, Deucélia Eva Pedrosoa and Roberto Pachecoa, b a UFSC, Postgraduate Program in Knowledge Engineering and Management, Florianópolis – SC, BRAZIL b UFSC, Department of Computing and Statistics, Florianópolis – SC, BRAZIL
    2. Introduction • This work comprises the building of a C++ framework to support the development of knowledge systems by means of the CommonKADS methodology. • The framework consists of a class hierarchy that represents the CommonKADS knowledge model for a translator. • This translator in turn generates a C++ code based on the Conceptual Modelling Language (CML). • One of the purposes of this study is to show that CommonKADS methodology is accessible to developers who use commercially available programming languages like C++.
    3. A Development Process Using the Framework Final CommonKADS CML Knowledge CML/C++ C++ Classes Implementation Editor Model Translator Framework Classes • This is a possible flow of development for a knowledge system based on C++, using the framework proposed here. • A CASE tool (e.g. eKADS) can be used to generate the knowledge model specification in the CML language. • This specification is used as input for the automatic C++ code generator. • The programmer carry out the final composition of the application by instantiating the generated classes and invoking the necessary methods to perform the system’s tasks.
    4. A Class Hierarchy for the Knowledge Model • The classes composing the hierarchy are limited to the knowledge domain (concepts, relationships, value types and rules types); and to the knowledge bases, comprised of instances of the rule types.
    5. A Class Hierarchy for the Knowledge Model • The inference and task layers, which also comprise the knowledge model, are not considered yet. • Structures of the knowledge domain are generalized by the TDomainElement class, thus the rule types can rely on any type of structure among their antecedent and consequent parameters. • Each rule type adds connection functions, which are the rules themselves. • The knowledge bases are repositories for the rule types and their connection functions. • Although the framework does not yet contemplates inferences and tasks, it is possible to resolve simple problems by means of the EvaluateBinaryCase method.
    6. The Automatic Translator • The second component of the framework is an automatic translator that generates C++ code from the CML language, which is a semi-formal notation to specify the CommonKADS models. • The translator has a simple interface that enables the user to open files in the CML language and generate the C++ classes in a selected folder. • The files generated are displayed on a list and can be opened and edited in the same environment. • The class hierarchy showed is used as the basis for the classes written by the translator. • Next figure shows a small knowledge base in CML and part of the generated C++ code.
    7. The Automatic Translator CML KNOWLEDGE-BASE SystemDescription; USES: ResidenceAbstraction FROM ResidenceAssessment; EXPRESSIONS: applicant.age < 23 has_abstraction applicant.age_category = until22; applicant.age >= 23 AND applicant.age < 65 has_abstraction applicant.age_category = bet23_64; applicant.age >= 65 has_abstraction applicant.age_category = up65; END KNOWLEDGE-BASE SystemDescription; C++ void SystemDescriptionConnection1(TRuleType* ruleType) { TResidenceAbstraction* rule = dynamic_cast<TResidenceAbstraction*>(ruleType); TResidenceApplication* antecedent = rule->Antecedent(); TResidenceApplication* consequent = rule->Consequent(); if( antecedent->applicant()->age < 23 )consequent->applicant()->age_category = until22; } TSystemDescription::TSystemDescription() {TResidenceAbstraction* ruleType0 = new TResidenceAbstraction(); ruleType0->Connections().push_back(SystemDescriptionConnection1); Rules().push_back(ruleType0);}
    8. Example of Application • To validate the framework, it was used to implement an example application given by Schreiber et al. (1999). • This example deals with the process of renting real estate in Holland. People who want to rent a residence must apply with a government agency that advertises real estate available every fortnight. • The first task identified in this process is the assessment of the application. • The knowledge model for the task was extracted from a PROLOG implementation, reconstructed using the eKADs software and exported in the CML language. • The CML specification was then processed by the automatic translator, which generated the C++ classes. • To solve the assessment task, little programming effort was necessary. • Next figure shows the assessment application screen with an application been evaluated.
    9. Example of Application
    10. Conclusion • The final objective of the CommonKADS methodology is to build knowledge systems, into which all the effort made in the analysis and modelling stages converge. • It is believed that supporting tools for the implementation of models can contribute to the consolidation of the methodology on the market. • We presented a framework conceived to facilitate – and to a certain extent – automate the implementation of the CommonKADS knowledge model using the C++ programming language. • Taking into consideration the limitations of the current stage of the framework, the results obtained in its application are really satisfactory. • The programming effort to generate the final implementation of an example knowledge task was minimal. • One next step for improving the framework is the modelling and implementation of the inference and task layers, which also comprise the knowledge model.
    11. References 1. Fowler, M., Scott, K. UML Distilled: A Brief Guide to the Standard Object Modeling Language. Addison Wesley Longman, Inc., 2000. 2. Motta, E. The Knowledge Modelling Paradigm on Knowledge Engineering. Handbook of Software Engineering and Knowledge Engineering, 2000. 3. Schreiber, G., Akkermans, H., Anjewierden, A., De Hoog, R., Shadbolt, N., De Velde, W. V., Wielinga, B. Knowledge Engineering and Management - The CommonKADS Methodology. The MIT Press, 1999. 4. Schreiber, G., Wielinga, B.J., Akkermans, J.M., Van de Velde, W., Anjewierden, A. CML: The CommonKADS Conceptual Modelling Language. Proc. 8th European Knowledge Acquisition Workshop, 1-25, Hoegaarden, Belgium, 1994. 5. Studer, R., Benjamins, V. R., Fensel, D. Knowledge Engineering: Principles and Methods. Data Knowledge Engineering, 25(1-2):161— 197, 1998.

    + inscit2006inscit2006, 3 years ago

    custom

    1021 views, 0 favs, 1 embeds more stats

    Adriano Coser, Deucélia Eva Pedroso and Roberto Pac more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1021
      • 1016 on SlideShare
      • 5 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 0
    Most viewed embeds
    • 5 views on http://www.instac.es

    more

    All embeds
    • 5 views on http://www.instac.es

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories