a map that contains the instance of the class that
generated the exception and the value that violates
the facet. The map is offered to allow the developer
to manager or alert the user about the exception.
Standard method signatures are used instead of pre-
defined classes to avoid blocking the use of
inheritance by classes of the conceptual model. A
pre-defined abstract class would consume the single
inheritance offered by OO languages.
The concept named Identification (Table 2)
results in the code defined in Table 4. In this case, k-
annotations were used directly in a class declaration.
As Identification is a part of Sample, it used
@PartOf. When this annotation is used, it is
mandatory to define a constructor with a single
parameter. This class type of the parameter must be
the same as the part owner (e.g.: Sample). Also, the
method getOwner is implemented for obtaining the
instance of the owner from its parts.
It is possible to notice that
@OnKnowledgeViolation is defined with the class
declaration instead of with a property. When this
annotation is declared with a class, all knowledge
violations are managed by it. This functionality
avoids defining the same annotation multiple times
in the same class. Also, the facet @FacetPattern is
used with an attribute that is a string. This facet is
very useful to avoid errors related to string patterns,
for instance, the pattern of dates.
5 CONCLUSIONS
This paper presents an approach based on metadata
annotations for implementing the conceptual model
of a KS. The proposed approach defines a common
vocabulary and tools that can be shared among
multiples projects. Also, it is compatible with
multiple knowledge modelling languages.
The approach defines a standard path for the task
of implementing the conceptual model, so the
problems related to the use of ad-hoc solutions can
be reduced and even eliminated. This may help to
reduce the implementation time and improve the
reusability of conceptual knowledge models.
As future work, the CM model presented in
section 4 will be completely implemented using k-
annotations to identify important improvements to
this approach. In addition, the next step of this
research is to define connections between the CM
implementation based on k-annotations and the
implementation of the task model. A link between
both implementations can provide ways to develop
inferences machines based on the use of aspects.
Using aspects, redundant code for each inference
machine implementation could be reduced or
eliminated. The future investigation will focus on k-
aspects, an approach to build reusable inference
machines using the aspect oriented paradigm.
ACKNOWLEDGEMENTS
This work is supported by Finep and ENDEEPER
Co. that retails PETROLEDGE, the described KS.
REFERENCES
Abel, M 2001, ‘Estudo da perícia em petrografia
sedimentar e sua importância para a engenharia de
conhecimento’, PhD thesis, Universidade Federal do
Rio Grande do Sul.
Angele, J, Fensel, D, Landes, D & Studer, R 1998,
‘Developing Knowledge-Based Systems with MIKE’,
Automated Software Engg, vol. 5, no. 2, pp. 389-418.
Auer, S 2006, ‘Towards Agile Knowledge Engineering:
Methodology, Concepts and Applications’, PhD
thesis, University of Leipzig.
Castro, ESE, Victoreti, FI, Fiorini, SF, Abel, M & Price,
RT 2008, ‘Um Caso de Integração de Gerenciamento
Ágil de Projetos à Metodologia CommonKADS’, In
Proceedings of the 1st Workshop of Software Project
Management, Brazil, pp. 12-21.
Chalmeta, R & Grangel, R 2008, ‘Methodology for the
implementation of knowledge management systems’,
Journal of American Society for Information Science
and Technology, vol. 59, no. 5, pp. 742-755.
Fowler, M 1997, Analysis Patterns: Reusable Object
Models, Addison-Wesley, California.
Kiczales, G, Hilsdale, E, Hugunin, J, Kersten, M, Palm, J
& Griswold, W 2001, ‘An overview of AspectJ’, In
Proceedings of the 15th European Conference on
Object-Oriented Programming, UK, pp. 327-353.
Knublauch, H 2002, ‘An Agile Development
Methodology for Knowledge-Based Systems’, PhD
thesis, Universidade of Ulm.
Meseguer, P & Preece, A 1995, ‘Verification and
Validation of Knowledge-Based Systems with Formal
Specifications’, The Knowledge Engineering Review,
vol. 10, no. 4, pp. 331-343.
Piveta, E, Moreira, A, Pimenta, M, Araújo, J, Guerreiro, P
& Price, T 2007, ‘Avoiding Bad Smells in Aspect-
Oriented Software’, In Proceedings of the 19th
International Conference on Software Engineering
and Knowledge Engineering, USA, pp. 81-84.
Schreiber, G, Akkermans, H, Anjewierden, A, Hoog, RD,
Shadbolt, N, Velde, D & Wielinga, B 2000,
Knowledge Engineering and Management: The
CommonKADS Methodology, MIT Press, Cambridge.
Stephens, RT 2004, ‘Utilizing Metadata as a Knowledge
Communication Tool’, in Proceedings of IEEE
IPCC2004, UK, pp. 55-60.
ICEIS 2009 - International Conference on Enterprise Information Systems
72