• Nenhum resultado encontrado

UM FRAMEWORK PARA SISTEMAS BASEADOS EM CONHECIMENTO NO CONTEXTO DA METODOLOGIA COMMONKADS

N/A
N/A
Protected

Academic year: 2022

Share "UM FRAMEWORK PARA SISTEMAS BASEADOS EM CONHECIMENTO NO CONTEXTO DA METODOLOGIA COMMONKADS"

Copied!
97
0
0

Texto

(1)

G ´ECEN DACOME DE MARCHI

UM FRAMEWORK PARA SISTEMAS BASEADOS EM CONHECIMENTO NO CONTEXTO DA METODOLOGIA

COMMONKADS

MARING ´A 2010

(2)
(3)

G ´ECEN DACOME DE MARCHI

UM FRAMEWORK PARA SISTEMAS BASEADOS EM CONHECIMENTO NO CONTEXTO DA METODOLOGIA

COMMONKADS

Dissertac¸˜ao apresentada ao Programa de P´os-Graduc¸˜ao em Ciˆencia da Computac¸˜ao da Universidade Estadual de Maring´a, como requisito para obtenc¸˜ao do grau de Mestre em Ciˆencia da Computac¸˜ao.

Orientadora: Profa. Dra. Maria Madalena Dias

MARING ´A 2010

(4)

       Dados Internacionais de Catalogação­na­Publicação (CIP)        (Biblioteca Central ­ UEM, Maringá – PR., Brasil)

        Marchi, Gécen Dacome

M317m      Um framework para sistemas baseados em 

conhecimento no contexto da metodologia CommonKADS /  Gécen Dacome Marchi. ­­ Maringá, 2010.

       77 p. : il., figs.

       Orientadora : Profª. Drª. Maria Madalena Dias.

       Dissertação (mestrado) ­ Universidade Estadual de  Maringá, Programa de Pós­Graduação em Ciência da  Computação, 2010.

       1. Framework ­ CommonKADS. 2. Sistema de  conhecimento ­ Cloud computing ­ Framework ­ 

CommonKADS. 3. CommonKADS. 4. Computação nas nuvens. 

I. Dias, Maria Madalena, orient. II. Universidade  Estadual de Maringá. Programa de Pós­Graduação em  Ciência da Computação. III. Título.

CDD 21.ed. 006.332

(5)
(6)
(7)

Agradecimentos

A minha esposa, por me apoiar e ter sido paciente com as longas noites de estudo.` Ao meu filho, por ter sido fonte de inspirac¸˜ao e se privar de minha presenc¸a.

Aos meus pais, me confortando com palavras de confianc¸a e incentivo.

A minha orientadora pelo seu apoio e presenc¸a durante a realizac¸˜ao deste trabalho.`

Ao meu amigo Maur´ılio, que me incentivou e n˜ao negou esforc¸os para me ajudar desde os primeiros dias do Mestrado at´e a entrega deste trabalho.

A toda a coordenadoria do Programa de P´os-Graduac¸˜ao em Ciˆencia da Computac¸˜ao da Universidade Estadual de Maring´a, pela compreens˜ao, apoio e oportunidade de estar concluindo este curso.

A CAPES - Coordenac¸˜ao de Aperfeic¸oamento de Pessoal de N´ıvel Superior, pelo ininter- rupto apoio financeiro.

i

(8)

ii

(9)

Resumo

O processo de desenvolvimento de sistemas de conhecimento exige metodologias es- pec´ıficas, sendoCommonKADSa mais conhecida e utilizada atualmente. Para agilizar esse processo, podem ser usados frameworks que tˆem como objetivos a reutilizac¸˜ao e a obtenc¸˜ao de software com alta coes˜ao e baixo acoplamento. Estas caracter´ısticas s˜ao desejadas pelos engenheiros e desenvolvedores de software, principalmente por facilitarem a manutenc¸˜ao. A alta dependˆencia de especialistas de dom´ınio durante o desenvolvimento e o uso de sistemas de conhecimento leva a uma maior exigˆencia de comunicac¸˜ao, tanto entre os desenvolvedores e esses especialistas quanto entre esses

´ultimos e o sistema. A comunicac¸˜ao entre o desenvolvedor e os especialistas de dom´ınio pode ser facilitada com a construc¸˜ao dos modelos da metodologiaCommonKADS, os quais s˜ao utilizados para representac¸˜ao do conhecimento e das caracter´ısticas gerais do sistema a ser implementado. Para aumentar a disponibilidade de sistemas de conheci- mento e facilitar a sua comunicac¸˜ao com os especialistas de dom´ınio e demais usu´arios, pode-se usar servic¸os WEB. A principal contribuic¸˜ao deste trabalho ´e o desenvolvimento de umframework, denominado Knowframe auxilia a construc¸˜ao de sistemas de conhe- cimento, facilitando o mapeamento dos conceitos da metodologiaCommonKADSpara implementac¸˜ao de sistemas de conhecimento e preservando a estrutura de projeto. Este frameworkpossibilita tamb´em, que esses sistemas sejam disponibilizados como servic¸os WEB de forma simples e transparente ao desenvolvedor.

iii

(10)

iv

(11)

Abstract

In addition to requiring the use of methodologies, techniques and tools for building knowledge systems, as in the development of any kind of software should be considered the complexity of these systems and high dependence on domain experts. The comple- xity ranges from the acquisition of knowledge and explanation to its representation and distribution. To make the process of developing systems for more systematic knowledge, there are specific methodologies, CommonKADS is the best known and currently used, and to expedite this process can be used as frameworks that have goals and achieving reuse of software with high cohesion and loosely. These characteristics are desired by the engineers and software developers, especially by facilitating maintenance. The high dependence on domain experts during the development and use of systems of knowledge leads to greater demand for communication both among developers and experts such as between the latter and the system. Communication between developers and domain experts can be facilitated with the construction of models of the CommonKADS metho- dology, which are used for knowledge representation and general characteristics of the system being implemented. To increase the availability of knowledge and facilitate their communication with domain experts and other users, you can use web services. In this context, this paper presents a Framewok developed according to the CommonKADS de- sign methodology, where the main concern is the manner of acquisition and knowledge representation. This framework, as well as facilitate the construction of knowledge systems, enables these systems are available as web services.

v

(12)

vi

(13)

Sum ´ario

Lista de Figuras ix

Lista de Tabelas xi

1 Introduc¸˜ao 1

1.1 Contexto e Motivac¸˜ao . . . 1

1.2 Objetivos . . . 2

1.2.1 Objetivos espec´ıficos: . . . 2

1.2.2 Contribuic¸˜oes . . . 2

1.3 Metodologia . . . 3

1.4 Organizac¸˜ao do Trabalho . . . 4

2 Revis˜ao Bibliogr´afica 7 2.1 Considerac¸˜oes Iniciais . . . 7

2.2 Engenharia do Conhecimento . . . 7

2.2.1 CommonKADS . . . 8

2.2.2 Modelo do Conhecimento . . . 10

2.2.3 Modelo de Projeto . . . 18

2.2.4 Outras Metodologias . . . 29

2.3 Computac¸˜ao nas nuvens . . . 31

2.4 Frameworks . . . 34

2.4.1 Classificac¸˜ao . . . 35

2.4.2 Padr˜oes de Projeto . . . 36

2.5 Trabalhos Relacionados . . . 39

2.5.1 KBeansShell . . . 39

2.5.2 Knowledge Representation Package . . . 40

2.5.3 UPML(Unified Problem-solving Method Development Language): A Framework for knowledge system reuse . . . 41

2.6 Considerac¸˜oes Finais . . . 42

3 OFrameworkKnowframe 43 3.1 Considerac¸˜oes Iniciais . . . 43

3.2 Vis˜ao Geral . . . 43

3.3 Projeto doFramework . . . 44

3.3.1 Caso de Uso: EnviarPlugins . . . 44

vii

(14)

3.3.2 Caso de Uso: Gerenciar Bases de Conhecimento . . . 47

3.3.3 Caso de Uso: Executar Tarefa . . . 50

3.3.4 Caso de Uso: Recuperar Processamento . . . 52

3.4 A APITask Plugin . . . 55

3.4.1 Requisitos para Implementac¸˜ao de umPlugin . . . 58

3.4.2 Realizando requisic¸˜oes aosPlugins . . . 59

3.5 Mapeamento da MetodologiaCommonKADSpara o Knowframe . . . 60

3.6 Ferramentas Utilizadas . . . 61

3.7 Considerac¸˜oes Finais . . . 61

4 Aplicac¸˜ao do Knowframe 63 4.1 Considerac¸˜oes Iniciais . . . 63

4.2 Modelo do Conhecimento . . . 63

4.3 Modelo de Projeto . . . 64

4.4 Registro e Teste doPlugin . . . 65

4.5 Considerac¸˜oes Finais . . . 69

5 Conclus˜oes 71 5.1 Trabalhos futuros . . . 72

Referˆencias Bibliogr´aficas 73

viii

(15)

Lista de Figuras

1.1 Metodologia . . . 4

2.1 Modelos doCommonKADS . . . 9

2.2 Exemplo de Conceito (CONCEPT) . . . 13

2.3 Exemplo de Relac¸˜ao(BINARY-RELATION) . . . 13

2.4 Exemplo de Tipo de Regra . . . 14

2.5 Exemplo de Base de Conhecimento . . . 15

2.6 Exemplo de Inferˆencia - adaptado de (Schreiber et al., 1999) . . . 16

2.7 Exemplo de Tarefa - adaptado de (Schreiber et al., 1999) . . . 18

2.8 Projeto e Implementac¸˜ao . . . 19

2.9 Arquitetura de Referˆencia . . . 22

2.10 Arquitetura de Referˆencia - Modelo do Aplicativo . . . 23

2.11 O padr˜aoPlugin . . . 38

3.1 Vis˜ao Geral dos M´odulos doFramework . . . 45

3.2 Diagrama de Casos de Uso . . . 46

3.3 Diagrama de Classes - EnviarPlugins . . . 47

3.4 Diagrama de Sequˆencia 1 - EnviarPlugins . . . 48

3.5 Diagrama de Sequˆencia 2 - EnviarPlugins . . . 48

3.6 Diagrama de Classes - Gerenciar Bases de Conhecimento . . . 49

3.7 Diagrama de Sequˆencia - Listar Bases de Conhecimento . . . 50

3.8 Diagrama de Sequˆencia - Listar Esquemas . . . 50

3.9 Diagrama de Sequˆencia - Listar Tipos de Regra . . . 51

3.10 Diagrama de Sequˆencia - Editar e Salvar Regras . . . 51

3.11 Diagrama de Classes - Executar Tarefa . . . 53

3.12 Diagrama de Sequˆencia - Editar e Salvar Rule Type . . . 54

3.13 Diagrama de Classes - Recuperar Processamento . . . 54

3.14 Diagrama de Sequˆencia - Recuperar Processamento . . . 55

3.15 Diagrama de Classes - APITask Plugin . . . 56

3.16 Diagrama de Classes -Anotac¸˜oes. . . 57

3.17 Diagrama de Classes -Dom´ınio . . . 58

3.18 Exemplo de Implementac¸˜ao dePlugin . . . 59

3.19 Exemplo de URL - Execuc¸˜ao de Tarefa . . . 59

3.20 Exemplo de URL - Recuperac¸˜ao de Processamento . . . 60

4.1 Modelo do Conhecimento - CML . . . 64 ix

(16)

4.2 Diagrama de Classes . . . 66

4.3 Utilizac¸˜ao da anotac¸˜aoRuleTypeInstance. . . 66

4.4 GUI para envio e registro dePlugins . . . 67

4.5 GUI para alterac¸˜ao de Express˜oes . . . 67

4.6 GUI - Teste . . . 68

4.7 GUI - Resposta do Teste . . . 69

x

(17)

Lista de Tabelas

2.1 Sum´ario de caracter´ısticas das metodologias para sistema baseado em conheci- mento. Fonte (Dias e Pacheco, 2009) . . . 30 3.1 Mapeamento da MetodologiaCommonKADSpara o Knowframe . . . 62

xi

(18)

xii

(19)

Lista de Siglas

XML:Extensible Markup Language

OKBC:Open Knowledge Base Connectivity

UPML:Unified Problem-solving Method Development Language KBS:Knowledge-based Systems

PSM:Problem-solving Methods

CORBA:Common Object Request Broker Architecture ORB:Object Request Broker

DCOM:Distributed Component Object Model ODMG:Object Data Management Group OMT:Object Modelling Technique

OOSE:Object Oriented Software Engineering RDD:Responsibility Driving Design

SDL:Specification and Description Language MSC:Message Sequence Charts

MAS:Multiagent Systems

UML:Unified Modeling Language;

MOO:A Methodology for Online Optimization through Mining the Offline Optimum;

SPEDE:Structured Process Elicitation and Demonstration Environment;

MIKE:Model-based and Incremental Knowledge Engineering;

MOKA:Methodology for Knowledge-Based Engineering Applications;

OTK:On-To-Knowledge;

XP.K:eXtreme Programming of Knowledge-based systems;

CML:CommonKADS Model Language DFD: Diagrama de Fluxo de Dados MVC: Modelo-Visualizac¸˜ao-Controle ATM:Asynchronous Transfer Mode REST:Representational State Transfer API:Application Programming Interface HTTP:HyperText Transfer Protocol GUI:Graphical User Interface

JEE:Java Platform Enterprise Edition JSP:Java Server Pages

URL:Uniform Resource Locator XSD:XML Schema Definition

IDE:Integrated Development Environment

xiii

(20)

xiv

(21)

C

AP

´

ITULO

1

Introduc¸ ˜ao

1.1 Contexto e Motivac¸ ˜ao

Al´em da exigˆencia do uso de metodologias, t´ecnicas e ferramentas para a construc¸˜ao de sistemas de conhecimento, como ocorre no desenvolvimento de qualquer tipo de software, devem ser consideradas tamb´em a complexidade desses sistemas e a alta dependˆencia de especialistas de dom´ınio. A complexidade vai desde a aquisic¸˜ao e elucidac¸˜ao do conhecimento at´e a sua representac¸˜ao e distribuic¸˜ao.

Dessa forma justifica-se o surgimento de diversas metodologias com o objetivo de fornecer suporte `a construc¸˜ao de aplicativos para gest˜ao de conhecimento, tais como: Vital (Shadbolt et al., 1993), SPEDE (Structured Process Elicitation and Demonstration Environment) (Cottam et al., 1998), CommonKADS (Schreiber et al., 1994), MAS-CommonKADS (Iglesias et al., 1998), MIKE (Model-based and Incremental Knowledge Engineering) (Angele et al., 1998a), MOKA (Methodology for Knowledge-Based Engineering Applications) (Oldham et al., 1998), OTK (On-To-Knowledge) (Sure e R., 1999), XP.K (eXtreme Programming of Knowledge-based systems) (Knublauch, 2002).

Dentre elas se destaca a Metodologia CommonKADS que fornece suporte a todo o processo de especificac¸˜ao de um sistema de conhecimento e ´e, atualmente, a mais utilizada no desenvol- vimento de sistema baseado em conhecimento, conforme (Sutton e Patkar, 2009), (Silva, 2008), (Viegas et al., 2006), (Vieira, 2006), (Lambert et al., 2005), (Ko e Vas, 2003), (Post et al., 1997) e (Sandberg e de Hoog, 1996).

1

(22)

2 1. Introduc¸˜ao Por outro lado, observa-se uma corrida por grandes organizac¸˜oes como: VMware, Sun Microsystem, IBM, Amazon, Google, Micrisoft e Yahoo para disponibilizar infra-estrutura onde servic¸os baseados na web possam ser disponibilizados para atender a grande demanda de clientes que consomem este tipo de servic¸o (Leigang e Mingqing, 2009) (Maggiani, 2009) (Zhang e Zhou, 2009) (Vouk, 2008).

Por´em, segundo (Schreiber et al., 1999), a utilizac¸˜ao de CommonKADS, desenvolvimento de sistemas de conhecimento que possibilitem a disponibilizac¸˜ao de servic¸os web, s˜ao quest˜oes de investigac¸˜ao e, mesmo relatando que pesquisas estavam sendo realizadas, n˜ao se encontrou nenhum trabalho publicado.

E neste contexto que se insere este trabalho, cujo prop´osito ´e possibilitar aos aplicativos que´ tenha sido projetados utilizando CommonKADS possam ser disponibilizados por ambientes web e que possam ser consumidos por clientes. Tamb´em facilitar o mapeamento do projeto para a implementac¸˜ao.

1.2 Objetivos

O objetivo deste trabalho ´e o desenvolvimento do Knowframe, umFrameworkpara o dom´ınio de aplicac¸˜oes constru´ıdas para gest˜ao de conhecimento, baseadas na metodologia Common- KADSe por meio desteFrameworkdisponibilizar servic¸os web.

1.2.1 Objetivos espec´ıficos:

• Aprofundar o entendimento de engenharia e gest˜ao de conhecimento, especificamente da metodologiaCommonKads;

• Estudar os conceitos e fundamentos deFrameworkse Padr˜oes de Projeto, para identificar os padr˜oes de projeto adequados para neste trabalho;

• Projetar oFrameworkutilizando UMLUnified Modeling Language;

• Realizar uma aplicac¸˜ao pr´atica usando oframeworkknowframe.

1.2.2 Contribuic¸ ˜ oes

A principal contribuic¸˜ao deste trabalho ´e a disponibilizac¸˜ao do Framework Knowframe, de- senvolvido na linguagem de programac¸˜ao Java, que ´e uma das linguagens mais populares atualmente.

(23)

1.3 Metodologia 3 Outra contribuic¸˜ao ´e a aplicac¸˜ao pr´atica realizada poder´a servir de referˆencia na construc¸˜ao de sistemas de gest˜ao de conhecimento, para projetos que utilizem t´ecnicas de Orientac¸˜ao a Objetos, em outras linguagens de programac¸˜ao.

Al´em de facilitar a utilizac¸˜ao doCommonKADSo Knowframe deve contribuir para que as aplicac¸˜oes constru´ıdas com esta metodologia possuam propriedades como: alta coes˜ao e baixo acoplamento, arquitetura plug´avel e orientada a interfaces, facilidade de realizac¸˜ao de alterac¸˜oes promovendo maior reuso.

1.3 Metodologia

A presente trabalho ´e de car´ater explorat´orio e de natureza qualitativa, envolvendo pesquisa bibliogr´afica e documental. Qualitativa porque considera que h´a um v´ınculo indissoci´avel entre o mundo objetivo e a subjetividade do sujeito que n˜ao pode ser traduzida em n´umeros (Gil, 1991). N˜ao requer o uso de m´etodos e t´ecnicas estat´ısticas (Silva e Menezes, 2001).

Explorat´oria, pois, visa proporcionar maior familiaridade com o problema com vistas a torn´a-lo expl´ıcito ou construir hip´oteses. Neste caso, faz-se uso de levantamento bibliogr´afico e an´alise de exemplos que estimulem a compreens˜ao (Gil, 1991).

Como ilustrado na Figura 1.1 iniciou-se este trabalho realizando um levantamento bibli- ogr´afico sobre CommonKADS, Frameworks e Computac¸˜ao nas Nuvens. A respeito de Com- monKADSgrande ˆenfase foi dada aos Modelos do Conhecimento e de Projeto devido `a maior relevˆancia destes modelos para este trabalho. Ap´os realizado o estudo sobre Frameworks classificou-se este como umFrameworkde dom´ınio de aplicac¸˜ao e tamb´em foram identificadas caracter´ısticas comuns entre o objetivo de um Framework e da metodologia CommonKADS, um exemplo ´e a reutilizac¸˜ao de an´alise, projeto e c´odigo. Computac¸˜ao nas Nuvens ´e atualmente muito utilizada e disponibilizada por v´arias empresas, sendo esta a motivac¸˜ao para que este Frameworkfosse executado e disponibilizado em um ambiente de execuc¸˜ao que pudesse prover suas funcionalidades como servic¸o.

Ap´os a realizac¸˜ao dos estudos iniciais deste trabalho, seguiu-se com a identificac¸˜ao dos principais requisitos e melhores pr´aticas de construc¸˜ao de uma aplicac¸˜ao utilizando Common- KADS, que serviu de linha guia para a fase de definic¸˜ao daAPIna etapa de Projeto. Nesta etapa, al´em da definic¸˜ao daAPIe dos metadados sobre os artefatos de codificac¸˜ao doFramework, foi definido como os servic¸os do ambiente poderiam ser disponibilizados para serem acessados pelos clientes, optou-se por uma arquiteturaREST.

Definido aAPI e o ambiente de Execuc¸˜ao doFramework seguiu-se com a implementac¸˜ao da API do Framework e do ambiente de Execuc¸˜ao seguido de uma aplicac¸˜ao do Knowframe, servindo de exemplo para a an´alise e compreens˜ao.

(24)

4 1. Introduc¸˜ao

Figura 1.1:Metodologia

Ressalta-se que a ilustrac¸˜ao da figura 1.1 n˜ao demonstra a natureza c´ıclica da construc¸˜ao deste trabalho pois a cada fase retornava-se nas fases anteriores quando se fazia necess´ario.

1.4 Organizac¸ ˜ao do Trabalho

Este trabalho est´a organizado da seguinte forma:

No Cap´ıtulo 2 s˜ao apresentados os principais conceitos que fundamentam a realizac¸˜ao deste trabalho.

(25)

1.4 Organizac¸˜ao do Trabalho 5 O Cap´ıtulo 3 ´e descrito o trabalho incluindo uma vis˜ao geral doFramework e detalhes do projeto e implementac¸˜ao.

O Cap´ıtulo 4 ´e demostrado o estudo de caso desenvolvido utilizando oFrameworkproposto.

Por fim, no Cap´ıtulo 5 s˜ao apresentadas a conclus˜ao, sugest˜oes e trabalhos futuros.

(26)

6 1. Introduc¸˜ao

(27)

C

AP

´

ITULO

2

Revis ˜ao Bibliogr ´afica

2.1 Considerac¸ ˜ oes Iniciais

Neste cap´ıtulo s˜ao apresentados os principais conceitos e caracter´ısticas das ´areas envolvidas neste trabalho. Inicia-se pela metodologia CommonKADS, o segundo item apresentado ´e Computac¸˜ao nas nuvens e ´e realizado tamb´em uma descric¸˜ao sucinta do estilo REST. Para que haja um bom entendimento sobre a importˆancia do uso deframeworksno desenvolvimento de software, ´e necess´ario sua descric¸˜ao, conforme ´e apresentado neste cap´ıtulo.

Tamb´em faz parte deste cap´ıtulo, a descric¸˜ao sucinta de trabalhos encontrados na literatura que, de uma forma ou outra contribu´ıram para a realizac¸˜ao deste trabalho.

2.2 Engenharia do Conhecimento

A engenharia do conhecimento evoluiu a partir do final dos anos de 1970 em diante, vem da arte de construir sistemas especialistas, sistemas baseados em conhecimento e sistemas de conhecimento intensivo. Schreiber et al. (1999) utiliza esses termos indistintamente, mas a final o que ´e conhecimento?

Conhecimento ´e um termo que todos n´os temos um bom entendimento intuitivo do que significa, mas ´e dif´ıcil de definir de uma maneira formal. Muitas pessoas tentam chegar a definic¸˜oes satisfat´orias, mas essas parecem ser boas aproximac¸˜oes. Do ponto de vista de engenharia de sistemas, a melhor maneira de ver o conhecimento ´e como um tipo especial

7

(28)

8 2. Revis˜ao Bibliogr´afica de informac¸˜ao, dessa forma a Engenharia do conhecimento visa fornecer ferramentas e t´ecnicas para modelar e representar o conhecimento (Schreiber et al., 1999).

2.2.1 CommonKADS

Segundo Schreiber et al. (1994) CommonKADS ´e resultante de uma s´erie de pesquisas inter- nacionais e projetos de aplicac¸˜oes de engenharia do conhecimento desde 1983. A metodologia tem sido progressivamente estendida, oferecendo uma abordagem estruturada que ´e baseada em alguns pensamentos ou princ´ıpios adquiridos a partir da experiˆencia dos autores, pesquisadores e colaboradores ao longo dos anos. Os princ´ıpios fundamentais s˜ao (Schreiber et al., 1994):

• Engenharia do conhecimento n˜ao ´e um tipo de ”minerac¸˜ao na cabec¸a do especialista”, mas consiste em construir modelos de diferentes aspectos do conhecimento humano.

Na vis˜ao doCommonKADS, um projeto de conhecimento implica na construc¸˜ao de um conjunto de modelos que juntos s˜ao partes importantes dos produtos entregues pelo pro- jeto.

• O princ´ıpio do n´ıvel de conhecimento: na modelagem do conhecimento, primeiro concentra-se na estrutura conceitual do conhecimento, deixando os detalhes de programac¸˜ao para mais tarde.

Na vis˜ao do CommonKADS, o conhecimento deve ser modelado para refletir o dom´ınio do mundo real e o artefato gerado deve preservar a estrutura conceitual da an´alise do conhecimento que ´e chamado de projeto de preservac¸˜ao da estrutura.

• Conhecimento tem uma estrutura interna est´avel que ´e analis´avel por distinguir pap´eis e tipos de conhecimentos espec´ıficos.

O conhecimento pode ser complexo, mas n˜ao ´e ca´otico, o conhecimento parece ter uma estrutura interna bastante est´avel, no qual reconhecemos padr˜oes semelhantes.

• Um projeto de conhecimento deve ser gerenciado pelo aprendizado de suas experiˆencias utilizando um modelo espiral controlado.

CommonKADSfavorece uma abordagem de gest˜ao configur´avel e equilibrada do projeto, mais flex´ıvel do que o modelo em cascata e mais controlada do que prototipagem r´apida.

A Figura 2.1 apresenta o conjunto de modelos doCommonKADS que ´e a express˜ao con- creta dos princ´ıpios fundamentais citados anteriormente e constitui o n´ucleo da metodologia CommonKADS. Os modelos est˜ao separados em trˆes grupos pois devem responder as seguintes perguntas (Schreiber et al., 1994):

(29)

2.2 Engenharia do Conhecimento 9

Figura 2.1:Modelos doCommonKADS (Schreiber et al., 1999)

1. Por quˆe? - Por que um sistema de conhecimento ´e uma soluc¸˜ao em potencial? Para quais problemas? Que benef´ıcios, custos e impactos organizacionais ele ter´a? O entendimento do ambiente e do contexto organizacional ´e o ponto mais importante deste questiona- mento.

2. Qual? - Qual ´e a natureza e a estrutura do conhecimento envolvidos? Qual a natureza e a estrutura de comunicac¸˜ao correspondentes? Obter a descric¸˜ao conceitual do conheci- mento utilizado na realizac¸˜ao de uma tarefa ´e um dos pontos chave deste questionamento.

3. Como? - Como o conhecimento deve ser implementado no sistema computacional?

Como a arquitetura de software e os mecanismos computacionais devem ser vistos. Os aspectos t´ecnicos da implementac¸˜ao s˜ao o principal foco neste questionamento.

Um conjunto pr´e-definido de modelos cada um focando um aspecto responde a todas as essas perguntas. Apesar de cada um dos modelos direcionar o detalhamento de um aspecto, todos juntos fornecem uma vis˜ao para compreens˜ao do problema. A seguir, estes modelos est˜ao descritos conforme Schreiber et al. (1994):

Modelo da Organizac¸˜ao: apoia a an´alise das principais caracter´ısticas de uma organizac¸˜ao, a fim de descobrir problemas e oportunidades para sistemas de conhecimento, estabelecer sua viabilidade e avaliar o impacto das ac¸˜oes de conhecimento pretendidas na organizac¸˜ao.

(30)

10 2. Revis˜ao Bibliogr´afica Modelo da Tarefa: representa as subpartes relevantes de um processo de neg´ocio. O modelo de tarefa analisa o layout global da tarefa, suas entradas e sa´ıdas, pr´e-requisitos e crit´erios de desempenho, bem como dos recursos e competˆencias necess´arios.

Modelo do Agente: respons´avel pela execuc¸˜ao das tarefas, descreve as caracter´ısticas dos agentes, em particular suas competˆencias, autoridades e restric¸˜oes para agir. Al´em disso, relaciona as ligac¸˜oes de comunicac¸˜ao entre agentes necess´arios para executar uma tarefa.

Modelo do Conhecimento: o objetivo do modelo de conhecimento ´e explicar em detalhes os tipos e estruturas do conhecimento utilizados na realizac¸˜ao de uma tarefa. Descreve o conhecimento envolvido no dom´ınio do projeto. Com este modelo, ´e poss´ıvel detalhar como o conhecimento est´a relacionado em cada tarefa, quais agentes o possuem e como seus com- ponentes relacionam-se entre si. O modelo do Conhecimento deve ser compreendido pelas pessoas que est˜ao envolvidas no projeto, pois deve ser um importante ve´ıculo de comunicac¸˜ao entre especialistas e usu´arios.

Modelo de Comunicac¸˜ao: ´e respons´avel por modelar a transac¸˜ao de comunicac¸˜ao entre os agentes envolvidos em uma tarefa, de forma independente de implementac¸˜ao ou de conceito, como ocorre no modelo de conhecimento.

Modelo do Projeto: os modelos anteriores podem ser vistos como especificac¸˜oes de re- quisitos para um sistema de conhecimento. O modelo do projeto deve conter a convers˜ao das informac¸˜oes contidas nos modelos anteriores, consideradas como especificac¸˜oes de requisitos, em especificac¸˜oes t´ecnicas do sistema quanto `a arquitetura, plataforma de implementac¸˜ao, m´odulos de softwares, construtores de representac¸˜ao e mecanismos computacionais necess´arios para implementar as func¸˜oes verificadas nos modelos de conhecimento e de comunicac¸˜ao.

Na Figura 2.1 observa-se que os modelos de organizac¸˜ao, tarefa e agente s˜ao os fato- res cr´ıticos de sucesso para a construc¸˜ao de um sistema de conhecimento, pois capturam as informac¸˜oes base para os pr´oximos modelos. Os modelos de conhecimento e de comunicac¸˜ao produzem uma descric¸˜ao conceitual das func¸˜oes e dados que devem ser capturados e entregues por um sistema de conhecimento, e o modelo de projeto converte tudo em uma especificac¸˜ao t´ecnica que serve de apoio para a implementac¸˜ao do software.

Nas subsec¸˜oes 2.2.2 e 2.2.3 os Modelos de Conhecimento e de Projeto s˜ao detalhados, pois estes se fazem relevantes para este trabalho.

2.2.2 Modelo do Conhecimento

Nesta subsec¸˜ao, s˜ao apresentados conceitos e caracter´ısticas do modelo de conhecimento con- forme Schreiber et al. (1994).

(31)

2.2 Engenharia do Conhecimento 11 O modelo de conhecimento ´e uma ferramenta que nos ajuda a esclarecer a estrutura de uma tarefa de processamento da informac¸˜ao intensiva de conhecimento. O modelo de conhecimento da aplicac¸˜ao fornece uma especificac¸˜ao dos dados e das estruturas de conhecimento necess´aria para a aplicac¸˜ao. O modelo foi desenvolvido como parte do processo de an´alise. ´E, portanto, formulado no vocabul´ario da aplicac¸˜ao, ou seja, tanto no dom´ınio (por exemplo, carros, casas, navios) e quanto na tarefa de racioc´ınio (por exemplo, a avaliac¸˜ao, a configurac¸˜ao, diagn´ostico).

O modelo de conhecimento n˜ao cont´em quaisquer termos de implementac¸˜ao espec´ıficos, estes s˜ao deixados para a fase de projeto.

O modelo de conhecimento tem uma estrutura que ´e, em essˆencia, semelhante aos modelos tradicionais de an´alise em engenharia de software. A tarefa de racioc´ınio ´e descrita por meio de uma decomposic¸˜ao hier´arquica de func¸˜oes ou ”processos”. Os tipos de dados e conhecimentos que as func¸˜oes operam s˜ao descritos utilizando-se de um esquema semelhante a um modelo de dados ou modelo de objetos. As notac¸˜oes s˜ao, em prop´osito, similares aquelas encontrados em outros m´etodos contemporˆaneos.

Um modelo de conhecimento possui trˆes partes, cada uma captura um grupo de estruturas de conhecimento relacionadas. Cada parte ´e uma categoria de conhecimento. A primeira categoria

´e chamada de conhecimento do dom´ınio, esta categoria indica o conhecimento espec´ıfico do dom´ınio e tipos de informac¸˜oes necess´arias para comunicac¸˜ao a respeito do mesmo. A segunda categoria do modelo de conhecimento cont´em o conhecimento de inferˆencia, este descreve os passos b´asicos de inferˆencia necess´arias para fazer uso do conhecimento do dom´ınio. Esta categoria pode ser vista como blocos de construc¸˜ao do racioc´ınio de m´aquina. Na engenharia de software, as inferˆencias constituem o mais baixo n´ıvel de decomposic¸˜ao funcional. A terceira categoria de conhecimento ´e o conhecimento de tarefa, que descreve os objetivos que uma aplicac¸˜ao tem como fim, e como estes objetivos podem ser realizados por meio de uma decomposic¸˜ao em sub-tarefas e (ultimamente) inferˆencias.

Nos pr´oximos sub-itens s˜ao apresentados os detalhes de cada categoria de conhecimento.

Conhecimento de Dom´ınio

O conhecimento do dom´ınio descreve as principais informac¸˜oes est´aticas e objetos do conhe- cimento em um dom´ınio de aplicac¸˜ao. Uma descric¸˜ao de conhecimento de dom´ınio consiste em um ou mais esquemas de dom´ınio e uma ou mais bases de conhecimentos, s˜ao descritos a seguir:

Esquema de Dom´ınio: descreve a estrutura da informac¸˜ao/conhecimento est´atico do dom´ınio da aplicac¸˜ao, assemelha-se a um modelo de dados ou modelo de objetos.

(32)

12 2. Revis˜ao Bibliogr´afica Base de conhecimento: uma base de conhecimento cont´em instˆancias de tipos espec´ıficos em um esquema de dom´ınio.

O modelo do conhecimento fornece um conjunto de construc¸˜oes de modelagem para espe- cificar o esquema do dom´ınio de uma aplicac¸˜ao. Muitas construc¸˜oes s˜ao similares a aquelas encontradas em modelagem de dados moderna. Utiliza-se a notac¸˜ao fornecida pelo diagrama de classe UML, al´em das construc¸˜oes inclu´ıdas para cobrir aspectos de modelagem que s˜ao espec´ıficos de sistemas intensivos de conhecimento, as trˆes principais construc¸˜oes s˜ao:

• Conceito: um CONCEPT (conceito) descreve um conjunto de objetos ou instˆancias que ocorrem no dom´ınio da aplicac¸˜ao e que possuem caracter´ısticas semelhantes. A noc¸˜ao de conceito ´e semelhante ao que ´e chamado de ”classe”ou ”instˆancia de uma classe”em outras abordagens. Uma diferenc¸a com abordagens orientadas a objetos ´e que emCON- CEPT n˜ao se inclui func¸˜oes (isto ´e, operac¸˜oes, m´etodos) na descric¸˜ao de conceitos.

Exemplos de conceitos no dom´ınio de e-comerce podem ser: um carrinho de compras e um produto, apresentados na Figura 2.2.

Caracter´ısticas de CONCEPT pode ser descrita de diversas maneiras. A maneira mais simples ´e definir um ATTRIBUTE (atributo) de um conceito. Um atributo pode conter um VALUE (valor), informac¸˜oes que instˆancias de conceitos possuem. Essas partes da informac¸˜ao devem ser atˆomicas, o que significa que elas s˜ao representadas como simples valores. Assim, um conceito n˜ao pode ter um atributo que cont´em uma instˆancia de um outro conceito como o seu valor, na realidade isso ´e uma relac¸˜ao que ´e descrito a seguir. O modelo do conhecimento tamb´em suporta a especificac¸˜ao de generalizac¸˜ao/especializac¸˜ao, conceitos podem ser organizados em hierarquias por meio de construc¸˜oesSUBTYPE-OF.

Observa-se na Figura 2.2 o exemplo de dois conceitos representados utilizando o dia- grama de classe UML e logo abaixo sua representac¸˜ao em CML(CommonKADS Model Language) que ´e uma linguagem que pode ser utilizada para definic¸˜ao do modelo de conhecimento.

• Relac¸˜ao: relac¸˜ao entre conceitos ´e definida como uma construc¸˜aoRELATIONouBINARY - RELATION. Relac¸˜oes podem ser usadas no padr˜ao comum entidade - relacionamento, mas tamb´em podem ser usadas para tipos de modelagem mais complexas. Para cada argumento, a cardinalidade (algumas vezes chamada de multiplicidade) pode ser definida.

A cardinalidade padr˜ao ´e 1, significa que a cardinalidade padr˜ao na relac¸˜ao ´e obrigat´oria.

A Figura 2.3 mostra um exemplo de relac¸˜ao bin´aria com uma representac¸˜ao em UML e em CML, nota-se que essa representac¸˜ao ´e similar a de um conceito, pois pode conter

(33)

2.2 Engenharia do Conhecimento 13

Figura 2.2: Exemplo de Conceito (CONCEPT)

atributos tamb´em, mas difere com relac¸˜ao aos argumentos que s˜ao os outros dois concei- tos.

Figura 2.3:Exemplo de Relac¸˜ao(BINARY-RELATION)

• Tipo de regra: um RULE TYPE (tipo de regra) ´e semelhante a uma relac¸˜ao, onde o antecedente e o consequente podem ser vistos como argumentos. Mas os argumentos s˜ao de natureza diferente. Antecedentes e consequentes de um tipo de regra n˜ao s˜ao instˆancias de conceito, mas representam express˜oes sobre essas instˆancias.

A Figura 2.4 apresenta um exemplo de um tipo de regra, nesse caso o tipo de regra restric¸˜ao de cr´edito ´e definida de forma gr´afica, a figura mostra tamb´em as express˜oes que est˜ao relacionadas `a regra.

A noc¸˜ao de ”regra”, como ´e utilizada noCommonKADSn˜ao est´a ligada de alguma forma a implementac¸˜ao espec´ıfica de regras formais. Um tipo de formalismo pode ser uma t´ecnica adequada de codificac¸˜ao, mas n˜ao h´a garantia nem uma necessidade para que isso seja verdade. Os tipos de regra s˜ao um ve´ıculo de an´alise e devem capturar as dependˆencias l´ogicas estruturais que ocorrem em um dom´ınio de aplicac¸˜ao.

(34)

14 2. Revis˜ao Bibliogr´afica

Figura 2.4: Exemplo de Tipo de Regra

Um esquema de dom´ınio descreve tipo de conhecimento de dom´ınio, tais como conceitos, relac¸˜oes e tipos de regra. Uma base de conhecimento cont´em exemplos desses tipos de co- nhecimento. Por exemplo, no dom´ınio de diagn´ostico de carro, poder´ıamos ter uma base de conhecimento com instˆancias de tipos de regra.

Na Figura 2.5 tem-se apenas um esquema, mas, em aplicac¸˜oes mais complexas, h´a muitas vezes uma necessidade de introduzir v´arios esquemas de dom´ınio.

Um fato que pode ser ressaltado ´e que n˜ao h´a necessidade que a base de conhecimentos seja completada durante a an´alise, frequentemente um conjunto de instˆancias parciais ´e suficiente nas fases iniciais de desenvolvimento e ´e completado quando modelo de conhecimento estiver suficientemente est´avel.

Conhecimento de Infer ˆencia

Conhecimento de dom´ınio ´e descrito como uma estrutura de informac¸˜ao. No conhecimento de inferˆencia descreve-se como esta estrutura est´atica pode ser utilizada para realizar um processo de racioc´ınio. Os principais itens de conhecimento de inferˆencia s˜ao: as inferˆencias, os pap´eis de conhecimento e as func¸˜oes de transferˆencia.

Uma func¸˜ao folha (ou seja, uma inferˆencia) ´e descrita na ´ıntegra por meio de uma especificac¸˜ao declarativa da sua entrada e sa´ıda. O processo interno de inferˆencia ´e uma caixa preta, e n˜ao

´e considerado de interesse para a modelagem de conhecimento. Esta abordagem proporciona uma diretriz para decidir quando parar a decomposic¸˜ao funcional, um problema que ocorre

(35)

2.2 Engenharia do Conhecimento 15

Figura 2.5: Exemplo de Base de Conhecimento

com frequˆencia na an´alise de sistema. Destaca-se a caracter´ıstica que a inferˆencia utiliza e o conhecimento contido em alguma base de conhecimento para derivar novas informac¸˜oes a partir de sua entrada dinˆamica.

Podem ser distinguidos dois tipos de pap´eis de conhecimento, pap´eis dinˆamicos e est´aticos.

Pap´eis dinˆamicos s˜ao entradas em tempo de execuc¸˜ao e sa´ıdas de inferˆencias. Cada invocac¸˜ao de inferˆencia possui diferentes instanciac¸˜oes de pap´eis dinˆamicos. Os pap´eis est´aticos tipica- mente correspondem ao armazenamento de dados.

Um conjunto de inferˆencias pode ser representado graficamente em uma estrutura de in- ferˆencia. A Figura 2.6 mostra um exemplo deste tipo de inferˆencia com a utilizac¸˜ao das seguintes convenc¸˜oes:

• Retˆangulos representam pap´eis dinˆamicos de conhecimento. O nome do papel de conhe- cimento est´a escrito no retˆangulo.

• Ovais representam inferˆencias. Setas s˜ao utilizadas para indicar dependˆencia de entrada e sa´ıda entre os pap´eis e as inferˆencias.

(36)

16 2. Revis˜ao Bibliogr´afica

• O nome de papel est´atico est´a escrito entre duas linhas horizontais compactas. Esta representac¸˜ao ´e propositalmente semelhante ao armazenamento de dados em DFD (Di- agrama de Fluxo de Dados). Pap´eis est´aticos est˜ao ligados atrav´es de uma linha `a in- ferˆencia em que s˜ao utilizados. Incluir pap´eis est´aticos ´e opcional nas estruturas de inferˆencia, onde a ˆenfase recai sobre os aspectos dinˆamicos de fluxo de dados.

Figura 2.6:Exemplo de Inferˆencia - adaptado de (Schreiber et al., 1999)

Um papel de conhecimento constitui um nome funcional para um conjunto de objetos de dom´ınio que podem desempenhar este papel. Algumas operac¸˜oes de inferˆencia operam sobre ou produzem um determinado objeto, outras trabalham sobre um conjunto de objetos. Isto pode levar a ambiguidades nas estruturas de inferˆencia, por exemplo, se uma inferˆencia produz um objeto e uma outra inferˆencia trabalha sobre um conjunto desses objetos, possivelmente gerados por algumas invocac¸˜oes repetidas da primeira inferˆencia.

Para ilustrar o exemplo de inferˆencia da Figura 2.6 pode-se mapear esta inferˆencia para o dom´ınio de empr´estimo de carro. O pap´eis dinˆamicos candidato e concedido podem ser mapeados respectivamente para os conceitos pessoa e empr´estimo, o modelo causal pode ser mapeado para o tipo de regra da Figura 2.4. Ou seja, a inferˆencia age sobre o conceitopessoa, utilizando as express˜oes definidas no tipo de regra da Figura 2.4, tendo como resultado o conceitoempr´estimo.

E, finalmente, pode-se citar a func¸˜ao de transferˆencia que ´e uma func¸˜ao que transfere um item de informac¸˜ao entre o agente de racioc´ınio descrito no modelo de conhecimento e o mundo

(37)

2.2 Engenharia do Conhecimento 17 exterior (um outro sistema, alguns usu´arios). Func¸˜oes de transferˆencia s˜ao caixas pretas do ponto de vista do modelo de conhecimento.

Conhecimento de Tarefa

Um aspecto importante do conhecimento ´e o que se quer fazer com ele. Quais s˜ao os objetivos que pretende-se alcanc¸ar com a aplicac¸˜ao de conhecimentos?

A seguir est˜ao relacionados alguns objetivos t´ıpicos:

• Avaliar um pedido de hipoteca a fim de minimizar o risco de perder dinheiro.

• Encontrar a causa de uma avaria em uma fotocopiadora, a fim de restabelecer o servic¸o o mais rapidamente poss´ıvel.

• Projetar um elevador para a um novo edif´ıcio.

Conhecimento de tarefa ´e a categoria do conhecimento que descreve essas metas e as estrat´egias que ser˜ao empregadas para realizar esses objetivos. Conhecimento de tarefa ´e nor- malmente descrito em um modo hier´arquico: tarefas de alto n´ıvel comoProjetar elevador s˜ao decompostas em pequenas tarefas, que por sua vez podem ser divididas em tarefas ainda menor.

No n´ıvel mais baixo de decomposic¸˜ao de tarefa, as tarefas est˜ao ligadas a inferˆencias e func¸˜oes de transferˆencia, podemos observar essa divis˜ao na Figura 2.7.

Dois tipos de conhecimento executam um papel proeminente na descric¸˜ao da tarefa de co- nhecimento: a tarefa e o m´etodo de tarefa. Uma tarefa define um racioc´ınio objetivo em termos de um par entrada-sa´ıda. Por exemplo, uma tarefa tipicamente deDiagn´osticotem como entrada uma reclamac¸˜ao e produz como sa´ıda uma categoria de falha mais comprovada. Um m´etodo de tarefa descreve como uma tarefa pode ser realizada por meio de uma decomposic¸˜ao em sub-func¸˜oes. A tarefa e o m´etodo de tarefa podem ser melhor compreendidos, respectivamente, da vis˜aoo que(o que deve ser feito) e da vis˜aocomo(como ´e feito) sobre tarefas de racioc´ınio.

Uma tarefa define uma func¸˜ao complexa de racioc´ınio. A tarefa de alto n´ıvel tipicamente corresponde a uma tarefa identificada no modelo de tarefa. A especificac¸˜ao de uma tarefa nos diz quais s˜ao suas entradas e sa´ıdas. A principal diferenc¸a de uma func¸˜ao tradicional e uma tarefa ´e que a tarefa ´e descrita em uma forma independente de dom´ınio. A tarefa, tal como inferˆencias, s˜ao especificadas em termos de nomes de pap´eis funcionais. Existem, no entanto, duas diferenc¸as principais entre tarefas e inferˆencias:

• N˜ao se inclu´ı pap´eis est´aticos na especificac¸˜ao de tarefas. Pap´eis est´aticos s´o s˜ao introdu- zidos em n´ıvel de inferˆencias.

(38)

18 2. Revis˜ao Bibliogr´afica

Figura 2.7: Exemplo de Tarefa - adaptado de (Schreiber et al., 1999)

• N˜ao se especifica o mapeamento dos pap´eis sobre os termos espec´ıficos de dom´ınio. O mapeamento ´e uma forma indireta: pap´eis de tarefa est˜ao ligados a pap´eis de inferˆencia por meio da estrutura de controle. Pap´eis de inferˆencia associados tˆem cada um mapea- mento para a construc¸˜ao de dom´ınio.

Sobre M´etodo de tarefa pode-se dizer que descreve como uma tarefa ´e realizada por meio de uma decomposic¸˜ao em sub-func¸˜oes. Tais sub-func¸˜oes pode ser uma outra tarefa, uma inferˆencia definida no conhecimento de inferˆencia, ou uma func¸˜ao de transferˆencia. O n´ucleo do m´etodo

´e formado por estruturas de controle que descrevem em que ordem as sub-func¸˜oes devem ser realizadas.

2.2.3 Modelo de Projeto

Nesta subsec¸˜ao s˜ao descritas as etapas da construc¸˜ao do Modelo de Projeto conforme apresen- tadas em (Schreiber et al., 1999).

O Modelo de Projeto apoia a transformac¸˜ao de requisitos especificados no modelo de an´alise e este modelo em um software. A principal entrada para o processo de desenvolvimentoCom- monKADS ´e o Modelo de Conhecimento, o qual pode ser visualizado como uma especificac¸˜ao dos requisitos para a soluc¸˜ao de problemas.

(39)

2.2 Engenharia do Conhecimento 19

Figura 2.8:Projeto e Implementac¸˜ao Adaptado de (Schreiber et al., 1999)

No desenvolvimento do sistema, o ponto de vista e o vocabul´ario s˜ao bem diferentes, em comparac¸˜ao com outros modelos. O desenvolvimento do sistema se preocupa com o software e sua organizac¸˜ao interna. ´E como se fug´ıssemos do dom´ınio da aplicac¸˜ao e comec¸´assemos a prestar atenc¸˜ao no sistema resultante. Os outros modelos podem ser vistos como precursores dos requisitos para este processo de desenvolvimento, isto pode ser observado na Figura 2.8.

O desenvolvimento de sistemas de conhecimento intensivo n˜ao ´e muito diferente em sua essˆencia do desenvolvimento de qualquer outro sistema de informac¸˜ao. Neste caso, tamb´em assume-se que exista um conhecimento pr´evio em m´etodos de desenvolvimento e engenharia de software em geral, sendo a arquitetura de software uma quest˜ao central ao processo de desenvolvimento. Uma arquitetura de software descreve a estrutura do software em termos de subsistemas e m´odulos.

O Modelo de Projeto apresenta uma arquitetura de referˆencia que pode ser usada para sistemas de conhecimento baseados em CommonKADS. Uma arquitetura de referˆencia ´e o esqueleto de uma arquitetura que pode ser o subs´ıdio para uma s´erie de sistemas, consiste em um meio poderoso que prove apoio ao processo de desenvolvimento. A arquitetura de

(40)

20 2. Revis˜ao Bibliogr´afica referˆencia doCommonKADSusa um importante princ´ıpio de projeto moderno, que ´e o princ´ıpio de desenvolvimento com preservac¸˜ao da estrutura. Este princ´ıpio prega que tanto o conte´udo quanto a estrutura da informac¸˜ao contida nos modelos de an´alise s˜ao preservados durante o desenvolvimento, este princ´ıpio facilita a transparˆencia e a manutenc¸˜ao do projeto, garantindo um projeto de alta qualidade.

A preservac¸˜ao da estrutura garante que o processo de desenvolvimento possa suprir crit´erios de qualidade, tais como:

• Possibilidade de reutilizac¸˜ao da programac¸˜ao: o desenvolvimento com preservac¸˜ao de estrutura prepara o caminho para a reutilizac¸˜ao de fragmentos da programac¸˜ao de um sistema de conhecimento, pois o prop´osito e papel dos fragmentos de programac¸˜ao s˜ao explicitados estes podem ser de v´arios tipos e tamanhos, desde implementac¸˜oes de in- ferˆencias at´e implementac¸˜oes de um grupo de inferˆencias que controlam o conhecimento.

• Facilidade de manutenc¸˜ao e adaptabilidade: a preservac¸˜ao da estrutura do modelo de an´alise possibilita detectar alguma omiss˜ao ou inconsistˆencia no produto implementado em uma porc¸˜ao particular do modelo, simplificando a manutenc¸˜ao consideravelmente, al´em de facilitar futuras expans˜oes de funcionalidade. Experiˆencias com sistemas desen- volvidos com preservac¸˜ao de estrutura indicam que eles realmente s˜ao muito mais f´aceis de manter do que sistemas convencionais.

• Explicac¸˜ao: a necessidade de explicar a l´ogica subjacente ao processo de racioc´ınio

´e uma caracter´ıstica t´ıpica dos sistemas de conhecimento intensivo. A abordagem de preservac¸˜ao da estrutura facilita o desenvolvimento que explicam o processo de racioc´ınio no vocabul´ario do modelo de conhecimento.

• Apoio `a obtenc¸˜ao de conhecimento: a descric¸˜ao do modelo de conhecimento pode se encaixar ao papel de informac¸˜ao semˆantica sobre partes do c´odigo fonte. Essa informac¸˜ao adicional pode ser usada para dar apoio `a obtenc¸˜ao,debuge refinamento de conhecimento em v´arios aspectos.

O desenvolvimento com preservac¸˜ao de estrutura est´a tamb´em sendo publicamente recomen- dado em engenharia de software em geral, especialmente na ´area de projeto e modelagem orientados a objetos. A motivac¸˜ao nesse caso segue um racioc´ınio parecido, com ˆenfase na facilidade de reutilizac¸˜ao e manutenc¸˜ao.

Um processo comum de desenvolvimento comec¸a com a especificac¸˜ao da arquitetura do software. Assim que sua estrutura geral ´e definida pela arquitetura, pode-se especificar a arquitetura com mais detalhes. Essa ´e a base para o aplicativo em si. Al´em disso, as decis˜oes de

(41)

2.2 Engenharia do Conhecimento 21 desenvolvimento devem ser tomadas considerando as plataformas de software e hardware que ser˜ao utilizadas na implementac¸˜ao. Essas decis˜oes devem ser tomadas no in´ıcio do processo de desenvolvimento, pois podem influenciar todo o processo, no CommonKADSutiliza-se os mesmos conceitos.

A seguir est˜ao descritas as etapas de construc¸˜ao do modelo de projeto.

Primeira etapa: Arquitetura de Desenvolvimento do Sistema

NoCommonKADSh´a uma arquitetura de referˆencia definida que pode ser usada para a maioria dos aplicativos. Essa arquitetura ´e descrita em dois n´ıveis de granularidade.

Primeiro com alta granularidade tem-se aArquitetura Global do Sistema que se baseia na met´afora MVC (Modelo-Visualizac¸˜ao-Controle), conforme Figura 2.9. A arquitetura MVC foi desenvolvida para programas na linguagem de programac¸˜ao SmallTalk-80, essa arquitetura possui trˆes subsistemas:

• Modelo do aplicativo: especifica as func¸˜oes e dados que resultam na funcionalidade do aplicativo. No caso de um sistema baseado em CommonKADS, o modelo do aplicativo cont´em as func¸˜oes racionais. Os dados do modelo do aplicativo s˜ao as respectivas bases de dados de conhecimento e os dados dinˆamicos manipulados durante o processo racional.

• Vis˜ao: especifica visualizac¸˜oes externas das func¸˜oes e dados do aplicativo, exibindo objetos do aplicativo numa tela de interface com o usu´ario. A visualizac¸˜ao disponibiliza informac¸˜ao est´atica e dinˆamica para agentes externos, como usu´arios e outros sistemas em software. A separac¸˜ao de objetos do aplicativo de suas visualizac¸˜oes ´e um dos pontos fortes de uma arquitetura do tipo MVC. A arquitetura original em MVC tem maior foco em visualizac¸˜ao de objetos em interface com usu´ario, mas pode ser usada para criar interfaces com outros sistemas em software.

• Controle: o subsistema de controle ´e na verdade a unidade central de comando e controle, ativa func¸˜oes do aplicativo e decide o que fazer quando os resultados retornam. O controle tamb´em define suas pr´oprias visualizac¸˜oes de objetos para exibir informac¸˜oes. O controle implementa o modelo de comunicac¸˜ao, em particular o controle das informac¸˜oes especificadas no plano de comunicac¸˜ao e por dentro das transac¸˜oes.

Na arquitetura MVC, as entradas no sistema s˜ao tratadas pelo controle. O controle pode enviar mensagens de ativac¸˜ao para uma ou mais func¸˜oes do aplicativo, o que no caso do CommonKADSnormalmente s˜ao func¸˜oes racionais (como a ativac¸˜ao de uma tarefa).

Ap´os ter descrito aArquitetura Global do Sistemapode-se detalhar o subsistema do Modelo do Aplicativo, este cont´em os elementos do software que deveriam realizar as func¸˜oes e dados

(42)

22 2. Revis˜ao Bibliogr´afica

Figura 2.9:Arquitetura de Referˆencia Adaptado de (Schreiber et al., 1999)

especificados durante a an´alise. Em termos deCommonKADS, o modelo do aplicativo cont´em as func¸˜oes racionais (tarefas e inferˆencias) e as estruturas de informac¸˜ao e conhecimento (o dom´ınio de conhecimento). A arquitetura de referˆencia desse subsistema ´e exibida na Figura 2.10, esta ´e baseada nos seguintes princ´ıpios:

1. A arquitetura deveria seguir o princ´ıpio de desenvolvimento com preservac¸˜ao de estrutura, dando suporte ao mapeamento facilitado do material de an´alise para transposic¸˜ao ao pro- jeto, al´em de disponibilizar ganchos para refinamentos espec´ıficos do desenvolvimento que possam ser necess´arios.

2. Por diversos motivos, a arquitetura com decomposic¸˜ao de componentes orientada a obje- tos foi selecionada para esse subsistema, tais como:

(43)

2.2 Engenharia do Conhecimento 23

• Apesar de alguns dos componentes de an´alise terem car´ater funcional (como tarefas e inferˆencias), suas descric¸˜oes durante a an´alise s˜ao de um objeto de informac¸˜ao.

Tarefas e inferˆencias s˜ao descritas de modo declarativo, o que pode ser facilmente mapeado como uma especificac¸˜ao de objeto.

• A integrac¸˜ao e/ou coordenac¸˜ao com outros sistemas torna-se mais importante na etapa de desenvolvimento. Como a orientac¸˜ao a objetos ´e o paradigma que prevalece atualmente em engenharia de software, um projeto baseado nesse paradigma de um sistema de conhecimento intensivo facilitar´a a integrac¸˜ao.

• Al´em disso, muitos ambientes de implementac¸˜ao usam uma abordagem orientada a objetos, o mapeamento para um ambiente desse tipo ser´a mais f´acil.

Figura 2.10: Arquitetura de Referˆencia - Modelo do Aplicativo (Schreiber et al., 1999)

(44)

24 2. Revis˜ao Bibliogr´afica A ideia por tr´as dos objetos na Figura 2.10 ´e que se incorporam as estruturas do modelo de conhecimento no projeto e adicionam-se detalhes espec´ıficos da implementac¸˜ao. Por exemplo, na Figura 2.10 foi introduzido o objeto inference method (m´etodo de inferˆencia). Esse objeto n˜ao aparece durante a an´alise, pois inferˆencias s˜ao especificadas como uma caixa-preta. Por´em, durante o desenvolvimento deve-se especificar um m´etodo (ou algoritmo) para que a inferˆencia seja implementada, utilizando os pap´eis especificados para tal inferˆencia. Outros objetos da ar- quitetura s˜ao incorporados diretamente da an´alise, mas cont´em detalhes adicionais, espec´ıficos do desenvolvimento. Por exemplo, osdynamic roles(pap´eis dinˆamicos) tˆem um tipo de dados associado, assim como um n´umero de operac¸˜oes de acesso/modificac¸˜ao que habilitam o uso dos pap´eis dinˆamicos como a mem´oria de trabalho do sistema racional.

Segunda etapa: Identificar a plataforma de implementac¸ ˜ao

Em teoria, pode-se desenvolver um sistema independentemente da plataforma de implementac¸˜ao que ser´a utilizada. Pode-se fazer um projeto orientado a objetos e implement´a-lo em COBOL.

Deve levar mais tempo do que se fosse escolhida uma linguagem adequada, mas a princ´ıpio n˜ao h´a limitac¸˜ao inerente. Na pr´atica, por´em, tudo isso importa.

E por essa raz˜ao que normalmente ´e uma boa pr´atica identificar no in´ıcio do projeto quais´ s˜ao as limitac¸˜oes em relac¸˜ao `a plataforma de implementac¸˜ao. Isso significa que se a plataforma

´e fixada pelo cliente desde o in´ıcio, deve-se tomar cuidado.

As etapas 2 e 3 se influenciam mutuamente. Caso a selec¸˜ao de plataforma seja livre, deve ser selecionada a que se ad´eque melhor `as decis˜oes de arquitetura. Uma diretriz importante a citar ´e que, n˜ao havendo limites externos para essa etapa, adi´a-la para ap´os a execuc¸˜ao da terceira etapa.

Atualmente a escolha de uma plataforma de implementac¸˜ao ´e basicamente uma escolha de software. O n´umero de plataformas de hardware diminuiu consideravelmente e os softwares mais populares est˜ao dispon´ıveis em plataformas diferentes. Portanto, deve-se concentrar na escolha do software.

As seguintes caracter´ısticas s˜ao relevantes `a escolha do software:

• Disponibilidade de uma biblioteca de objetos de visualizac¸˜ao: a falta de um recurso como esse implica sem d´uvida em trabalho extra em implementac¸˜ao. Um sistema processador em massa poderia ser uma excec¸˜ao.

• Representac¸˜ao declarativa do conhecimento: o conhecimento no sistema (muitas vezes em forma de ?regras?) deve estar dispon´ıvel de tal maneira que possa ser gerenciado, atu- alizado ou refinado facilmente. Portanto, uma representac¸˜ao declarativa do conhecimento

´e a melhor, o que pode ser um problema em alguns ambientes orientados a objetos.

(45)

2.2 Engenharia do Conhecimento 25

• Interface padr˜ao para outros softwares: muitas vezes ´e necess´ario que se acesse um ou mais bancos de dados. Deve-se ent˜ao utilizar um protocolo que interaja com o banco de dados. Para um sistema distribu´ıdo, ´e desejado que se use uma interface padr˜ao do tipo CORBA.

• Tipagem de linguagem: dada a natureza do sistema desejado, uma tipagem orientada a objetos do software simplifica o mapeamento de an´alise e desenvolvimento a serem trans- posto para programac¸˜ao. Numa linguagem como Prolog, com quase nenhuma tipagem o projetista tem de construir seu pr´oprio tipo de representac¸˜ao.

• Fluidez de controle: o ambiente tem suporte a uma abordagem de passagem de mensa- gens? ´E poss´ıvel ter v´ariasthreads?

• Apoio a CommonKADS: o software fornece uma implementac¸˜ao da arquitetura Com- monKADS, possui um pacote de bibliotecas CommonKADS? Suporta uma ligac¸˜ao com uma ferramenta case CommonKADS? Esses dois recursos agilizam a implementac¸˜ao consideravelmente e s˜ao bastante ´uteis se um prot´otipo ´e necess´ario.

Terceira etapa: Especificando os componentes da arquitetura

Nesta etapa do processo de desenvolvimento s˜ao definidos os componentes da arquitetura com mais detalhes, em particular as interfaces entre subsistemas e/ou entre m´odulos de sistema, como ´e apresentado a seguir.

OControle: realiza uma abordagem de controle guiada por eventos com um componente central de controle. As seguintes decis˜oes s˜ao t´ıpicas em um processo como este. O controle deve controlar algo automaticamente? Ser´a poss´ıvel a interrupc¸˜ao da execuc¸˜ao de uma tarefa?

Haver´a necessidade de processamento concorrente. A necessidade de recursos complexos de arquitetura para o controle depende seriamente da complexidade do modelo de comunicac¸˜ao.

Normalmente para sistemas simples os seguintes recursos s˜ao geralmente necess´arios:

• Gerenciadores de eventos que ativem func¸˜oes de modelo do aplicativo a pedido de um agente (evento) externo.

• Gerenciadores de eventos que recebam func¸˜oes de transferˆencia no modelo do aplicativo.

• Gerenciadores de eventos para eventos internos, em especial eventos que sejam gerados por func¸˜oes de transferˆencia.

• Gerenciadores de eventos que exibam informac¸˜ao sobre os processos de racioc´ınios.

(46)

26 2. Revis˜ao Bibliogr´afica

• Gerenciadores de eventos que abortem a execuc¸˜ao de uma func¸˜ao.

Normalmente, cada transac¸˜ao ser´a implementada como um gerenciador de eventos ou como

uma combinac¸˜ao desses. O controle define seus objetos de visualizac¸˜ao para representar meta-informac¸˜ao sobre os processos de controle do sistema.

NoModelo do aplicativo, se concentra o n´ucleo doCommonKADSeste ´e subdividido nos sub-itens:

• Tarefa (task): ´e necess´ario definir duas operac¸˜oes: (1) uma operac¸˜ao de inicializac¸˜ao que possa ser usada para gerar valores de entrada da tarefa; e (2) uma operac¸˜ao execute que deve iniciar o m´etodo de tarefa correspondente. Para esta ´ultima ´e necess´ario decidir se o valor de retorno ´e booleano, o que indicaria sucesso ou falha do m´etodo de tarefa. Essa decis˜ao depende do tipo de controle utilizado no item abaixo.

• M´etodo de tarefa (task method): as duas decis˜oes principais para o desenvolvimento de um m´etodo de tarefa s˜ao relacionadas a operacionalizac¸˜ao da estrutura de controle. A primeira decis˜ao se relaciona com a linguagem de controle utilizada. O controle em modelos de conhecimento ´e comumente especificado de modo imperativo, mas ainda

´e definido em pseudo-programac¸˜ao informal. O designer deve decidir sobre um con- junto de instruc¸˜oes para a implementac¸˜ao das estruturas de controle. Deve-se tamb´em considerar construc¸˜oes de controle para processamentos concorrentes e sincronizac¸˜ao.

Parte da linguagem de controle ´e obtida pela execuc¸˜ao de operac¸˜oes em outros objetos da arquitetura como pap´eis dinˆamicos, tarefas, inferˆencias e func¸˜oes de transferˆencia (todas as subfunc¸˜oes). A segunda decis˜ao se relaciona com o local onde a estrutura de controle ´e definida. Numa abordagem orientada a objetos parece natural visualizar esse local como a implementac¸˜ao de um m´etodo execute, mas isso pode destruir sua natureza declarativa.

• Inferˆencia (inference): como uma tarefa, o desenvolvimento do objeto de inferˆencia base- ado na informac¸˜ao contida no modelo do aplicativo. No desenvolvimento ´e comum supor que uma inferˆencia tem uma esp´ecie de mem´oria interna para as soluc¸˜oes encontradas.

Essa mem´oria ´e reiniciada toda vez que uma tarefa que precisou de inferˆencia ´e conclu´ıda.

Uma execuc¸˜ao de inferˆencia falha se n˜ao h´a nenhuma soluc¸˜ao nova encontrada. As decis˜oes de desenvolvimento relacionadas com a inferˆencia tˆem relac¸˜ao com a definic¸˜ao de operac¸˜oes que habilitam a execuc¸˜ao de inferˆencias. Comumente s˜ao necess´arias trˆes operac¸˜oes: executeque obt´em as entradas de inferˆencia est´aticas e dinˆamicas e iniciam o m´etodo de inferˆencia,has-solutionenew-solutionque s˜ao testes que podem ser realizados pelo m´etodo de tarefa.

(47)

2.2 Engenharia do Conhecimento 27

• M´etodo de inferˆencia (inference method): durante a an´alise, o engenheiro de conheci- mento toma um ponto de vista de deduc¸˜ao automatizada de uma inferˆencia em particular:

ser´a especificada uma inferˆencia de maneira tal em que esta saiba que ´e poss´ıvel de- rivar uma conclus˜ao, dado o conhecimento dispon´ıvel, n˜ao importando qu˜ao complexa a derivac¸˜ao possa ser na pr´atica. Na an´alise, a ˆenfase cai em uma descric¸˜ao orientada por competˆencias: ´e poss´ıvel fazer essa inferˆencia em princ´ıpio, e qual ´e a informac¸˜ao necess´aria para sua realizac¸˜ao? Um m´etodo de inferˆencia especifica uma t´ecnica compu- tacional que faz esse trabalho. Os m´etodos de inferˆencia podem ser vistos como parte de inferˆencias, ou seja, inclu´ıdos na implementac¸˜ao da operac¸˜ao execute. Na pr´atica o que ocorre ´e que muitos aplicativos apenas requerem m´etodos simples de ligac¸˜ao de regras, al´em de alguns m´etodos de selec¸˜ao.

• Pap´eis Dinˆamicos: para os pap´eis dinˆamicos h´a duas decis˜oes de arquitetura a tomar. A primeira ´e em relac¸˜ao a quais tipos de dados d˜ao suporte aos pap´eis dinˆamicos? Normal- mente temos elementos ´unicos, conjuntos (set, desordenado e sem duplicatas), sacolas (bag, desordenado e com duplicatas permitidas) e listas (list, ordenado e com duplicatas permitidas), e posteriormente quais operac¸˜oes esses tipos de dados d˜ao suporte? Por exemplo, para conjuntos podem ser ´uteis as operac¸˜oes de selecionar (select, obter um objeto aleat´orio do conjunto), adicionar (add, adicionar elementos ao conjunto) e subtrair (subtract, excluir elementos do conjunto).

• Papel est´atico: a arquitetura precisa habilitar func¸˜oes de acesso, que podem fornecer todas as instˆancias de um papel de conhecimento, apenas uma instˆancia de um papel de conhecimento ou verificar se existe certa entrada de conhecimento. Normalmente se tem todas as instˆancias de um papel de conhecimento, sendo suficiente para a maioria dos aplicativos. As func¸˜oes de acesso normalmente delegam o pedido para as func¸˜oes de acesso definidas para a o banco de dados de conhecimento correspondente.

• Base de conhecimento, com relac¸˜ao as bases de conhecimento existem trˆes decis˜oes a serem tomadas:

– Decidir sobre o formato de representac¸˜ao para as instˆancias de tipos de regra. N˜ao necessariamente utiliza-se um formalismo de produc¸˜ao de regras, um formalismo relacional pode ser suficiente.

– Definir func¸˜oes de acesso e modificac¸˜ao. Estas func¸˜oes de acesso normalmente correspondem `as necessidades das func¸˜oes de acesso do objeto papel est´atico.

– As bases de conhecimento est˜ao sujeitas a modificac¸˜oes e/ou analise de func¸˜oes.

Essas func¸˜oes est˜ao relacionadas com as func¸˜oes de edic¸˜ao, que permitem que um

(48)

28 2. Revis˜ao Bibliogr´afica mantenedor de conhecimento possa atualizar, depurar e/ou aperfeic¸oar as bases de conhecimento do sistema.

• Construc¸˜ao de Dom´ınio: os conceitos fazem parte dessa construc¸˜ao, relac¸˜oes e tipos de regras s˜ao comumente inclu´ıdos somente para fins de documentac¸˜ao e n˜ao requerem quaisquer recursos adicionais de arquitetura.

Visualizac¸˜oes: as visualizac¸˜oes apresentam o sistema aos agentes externos. Para atingir este objetivo, devem ser disponibilizados recursos como janelas, menus, navegadores e figuras, entre outros. E tamb´em para garantir a integridade das visualizac¸˜oes a arquitetura deve possuir objetos que liguem o modelo do aplicativo a uma ou mais visualizac¸˜oes, mantendo-as sempre consistentes entre si.

Dois tipos de interfaces de usu´ario s˜ao normalmente requeridas para sistemas de conheci- mento intensivo:

• Interface com o usu´ario final: o objetivo do sistema ´e disponibilizar o conhecimento dos especialistas a relativos leigos, dessa forma a interface com este tipo de usu´ario deve fornecer as facilidades requeridas para manipular as funcionalidades do sistema de conhecimento.

• Interface com o especialista: normalmente ´e necess´aria uma interface adicional para permitir a interac¸˜ao do especialista com o sistema. Essa interface deve permitir ao es- pecialista localizar os processos racionais do sistema na terminologia do modelo de co- nhecimento e tamb´em prover recursos para editar, refinar e estender bancos de dados de conhecimento.

Quarta Etapa: Especificando o aplicativo dentro da arquitetura

Na ´ultima etapa, o desenvolvimento deve ser completado, indicando as partes espec´ıficas do aplicativo dentro da arquitetura. Podem-se distinguir duas etapas desse processo:

• Mapear a informac¸˜ao de an´alise na arquitetura: partindo da arquitetura de referˆencia fica claro que a informac¸˜ao de an´alise, especialmente o modelo de arquitetura, pode ser mapeado facilmente em componentes da arquitetura, criando diversas instˆancias de componentes da arquitetura. Por exemplo, para cada tarefa no modelo de conhecimento, um objeto de tarefa da arquitetura correspondente deve ser criado. Esse processo de mapeamento pode ser feito manualmente ou por algum meio automatizado. Quando realizado de forma automatizada a margem de erros ´e reduzida, por isso essa forma ´e a prefer´ıvel.

(49)

2.2 Engenharia do Conhecimento 29

• Adicionar detalhes necess´arios para o desenvolvimento do aplicativo: neste item s˜ao re- lacionados os componentes da arquitetura que geralmente necessitam de alguns cuidados adicionais, s˜ao eles:

– Controle: neste ressalta-se uma transformac¸˜ao do modelo de comunicac¸˜ao em uma especificac¸˜ao de controle. Alguns fatores que podem dificultar o desenvolvimento do Controle s˜ao: interac¸˜ao externa complexa, controle de usu´ario sobre os processos racionais concorrentes e no caso de um sistema em tempo real, o projetista deve estar familiarizado com a literatura especializada sobre o assunto.

– M´etodo de tarefa: formalizar as estruturas de controle do m´etodo na linguagem de controle prevista pela arquitetura.

– Inferˆencia: deve-se escrever uma especificac¸˜ao na inicializac¸˜ao de um m´etodo de inferˆencia. Essa inicializac¸˜ao de m´etodo deveria mostrar como os pap´eis est´aticos e dinˆamicos s˜ao mapeados em argumentos do m´etodo de inferˆencia.

– M´etodo de inferˆencia: para cada inferˆencia, o engenheiro deve especificar ou se- lecionar um m´etodo de inferˆencia. Esses m´etodos podem ser m´etodos racionais descritos na literatura de IA ou simples algoritmos padr˜ao (organizac¸˜ao, selec¸˜ao de subconjuntos, etc.).

– Papel dinˆamico: deve-se escolher um tipo de dados para cada papel, essa escolha ´e limitada pelos tipo de dados definidos pela arquitetura.

– Visualizac¸˜oes: a escolha do tipo de visualizac¸˜ao ´e guiada por princ´ıpios de desen- volvimento da interface do usu´ario, os quais j´a foram descritos adequadamente em outros trabalhos.

2.2.4 Outras Metodologias

De acordo com (Dias e Pacheco, 2009), a partir da d´ecada de 90 surgiram propostas de metodo- logias para auxiliar o desenvolvimento de sistema de conhecimento, tais como: Vital (Shadbolt et al., 1993), SPEDE (Structured Process Elicitation and Demonstration Environment) (Cottam et al., 1998), CommonKADS (Schreiber et al., 1994), MAS-CommonKADS (Iglesias et al., 1998), MIKE (Model-based and Incremental Knowledge Engineering) (Angele et al., 1998a), MOKA (Methodology for Knowledge-Based Engineering Applications) (Oldham et al., 1998), OTK (On-To-Knowledge) (Sure e R., 1999), XP.K (eXtreme Programming of Knowledge-based systems) (Knublauch, 2002). Geralmente essas metodologias definem etapas e modelos para o desenvolvimento de sistemas baseado em conhecimento. Para a representac¸˜ao dos modelos utiliza-se UML (Unified Modeling Language) e ontologia.

Referências

Documentos relacionados

Podem treinar tropas (fornecidas pelo cliente) ou levá-las para combate. Geralmente, organizam-se de forma ad-hoc, que respondem a solicitações de Estados; 2)

3 O presente artigo tem como objetivo expor as melhorias nas praticas e ferramentas de recrutamento e seleção, visando explorar o capital intelectual para

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

O score de Framingham que estima o risco absoluto de um indivíduo desenvolver em dez anos DAC primária, clinicamente manifesta, utiliza variáveis clínicas e laboratoriais

Para a liga 30%Fe65Nb70%Cu foi possível observar uma distribuição de partículas de Fe65Nb ao longo de toda a matriz de Cu e não foi possível notar o processo difusão entre

Esta pesquisa tem como finalidade analisar como a cultura popular esta sendo trabalhada na formação profissional de Educação Física no Brasil, a partir de uma pesquisa

Dando continuadad a los cambios políticos que ocurrierón en Venezuela a partir de 1999. El Plan de Desarrollo Económico y Social de la Nación 2007-2013 contiene