Éléments fondamentaux du design
RAG 3.2 Explorer les tendances et les défis de la durabilité environnementale relativement aux textiles et aux vêtements
Actualmente existe um conjunto significativo de ontologias temporais, ou on- tologias de topo que incluem a componente temporal, disponíveis no domínio público. De entre as mais importantes destacam-se: Time-DAML19, GUM20
(Generalized Upper Model), SUMO21 (Suggested Upper Merged Ontology) e
19 http://www.cs.rochester.edu/~ferguson/daml/ 20 http://www.fb10.uni-bremen.de/anglistik/langpro/webspace/jb/gum/ 21 http://www.ontologyportal.org/
OpenCYC22 (versão pública e parcial da ontologia CyC). Note-se que recen-
temente o Time-DAML foi substituído pelo Time-OWL23.
2.6.1 Time-DAML
A ontologia Time-DAML [Hobbs, 2002] propõe permitir a representação dos aspectos temporais dos conteúdos e serviços existentes na internet. Esta on- tologia é resultado de um consenso alargado entre agentes relacionados com o programa DAML24. Este facto é notório na sua estrutura, pois por um lado,
o seu núcleo inclui os aspectos mais divulgados e aceites no campo da repre- sentação e raciocínio temporal, e por outro, a ontologia mantêm-se, intencio- nalmente, neutra sobre os aspectos potencialmente controversos.
Em termos topológicos o Time-DAML define o conceito de temporal-entity a partir do qual são derivados: instant e interval. Adicionalmente, a ontologia define o conceito proper-interval que consiste num intervalo que não inclui o seu início e fim. No que diz respeito ao factos de todos os intervalos deverem ser do tipo proper-interval, a ontologia mantém-se neutra.
O Time-DAML define a relação before como sendo: auto-reflexiva, anti-simé- trica e transitiva, embora não estabeleça se o modelo temporal é linearmente ordenado ou ramificado e denso ou discreto.
As treze relações da Álgebra de Intervalos de Allen são implementadas com base na relação before e proper-interval, a saber: int-equals, int-before, int-after, int-meets, int-met-by, int-overlaps, int-equals, int-equals, int-equals,
A ligação entre entidades temporais e a ocorrência de eventualidades, incluindo
22 http://www.opencyc.com/ 23 http://www.isi.edu/~pan/OWL-Time.html 24 http://www.daml.org/
proposições, estados, processos e eventos, é realizada através das relações at- time, during, holds e time-span-of, conforme estas se tratem de instant, interval, proposições e temporal-entity, respectivamente.
Por fim, a ontologia permite a caracterização de relógios, fusos horários e calen- dários, incluindo as relações entre as diversas medidas do tempo (e.g., second, day e year).
2.6.2 SUMO
A ontologia SUMO [Niles e Pease, 2001] começou por ser uma tentativa de síntese de um extenso número de ontologias disponíveis no domínio público. Actualmente é uma das ontologias candidatas ao standard a definir pelo SUO- WG25(Standard Upper Ontology Working Group) que especificará a ontologia
de topo a considerar no desenvolvimento de aplicações informáticas, com des- taque nas áreas de inter-operabilidade, pesquisa, aquisição, inferência e língua natural. ontologia base temporal teoria de conjuntos e classes numérica grafos medidas mereotopológica processos objectos qualidades
Figura 2.7: Ontologia SUMO – Principais Categorias
25
SUMO é uma ontologia de topo que pretende ser utilizada por um conjunto alargado de sistemas de informação automática. Assim, esta ontologia inclui inúmeras (sub)ontologias/categorias de conhecimento (ver figura 2.7), desig- nadamente, tempo, espaço e matéria. Na especificação da ontologia SUMO foram considerados 20000 termos e 70000 axiomas.
Na sua essência a componente temporal da ontologia SUMO é similar ao Time- DAML. No que diz respeito à topologia, a ontologia SUMO define o conceito de TimePosition a partir do qual são derivados: TimePoint e TimeInterval. A ontologia SUMO define a relação before, também designada por earlier, como sendo irreflexiva e transitiva. A Álgebra de Intervalos de Allen é implementada com base nas relações: equal, earlier, starts, during, finishes, EndFn e BeginFn. A ligação entre as entidades temporais e a ocorrência de eventualidades é realizada através das relações: time no caso de processos; holdsDuring para proposições e estados; e WhenFn no caso de time-position.
Por fim, conforme acontece no caso do Time-DAML, a ontologia permite a caracterização de relógios e calendários. As medidas da extensão temporal são derivadas de duration, por exemplo: SecondDuration, DayDuration e YearDura- tion.
2.7 Conclusões
Neste capítulo foi focado o tema do tempo, na perspectiva da Inteligência Artificial, tendo sido dado particular relevo às componentes de representa- ção e raciocínio. Após um enquadramento histórico da evolução da discussão suscitada pelo tema, foram apresentados os aspectos mais relevantes da uma
topologia temporal, designadamente, a granularidade, a ordem, a densidade e as primitivas temporais. No que diz respeito à representação e raciocínio temporal foram apresentadas algumas das abordagens mais significativas. De seguida foi apresentada a ontologia temporal que foi desenvolvida no contexto do presente trabalho. Foram diversas as razões para desenvolver uma ontolo- gia temporal, de entre as quais se destaca, a inexistência (à data) de ontologias temporais adequadas, a sistematização de conhecimento adquirido e posterior utilização em trabalhos posteriores, como a verificação sistemas baseados em raciocínio temporal (ver capítulo 5) e a composição de ontologias (ver capítulo 7). Por fim, foram apresentadas e discutidas outras ontologias temporais, ou ontologias de topo que incluem a componente temporal, disponíveis no domínio público.
Verificação e Validação de
Sistemas Baseados em
Conhecimento
“It often does more harm than good to force definitions on things we don’t understand. Besides, only in logic and mathematics do definitions ever capture concepts perfectly. The things we deal with in practical life are usually too complicated to be represented by neat, compact expressions. Especially when it comes to understan- ding minds, we still know so little that we can’t be sure our ideas about psychology are even aimed in the right directions. In any case, one must not mistake defining things for knowing what they are.”
Marvin Minsky, “The Society Of Mind”, 1985
Resumo
Neste capítulo é introduzida a questão da verificação e validação (V&V) de software, em geral, e de sistemas baseados em conhecimento (SBC), em par- ticular. São apresentadas as definições mais relevantes na área de V&V e
algumas técnicas utilizadas no processo de V&V. As anomalias de uma base de conhecimento são definidas como sintomas de possíveis erros, cuja detecção constitui a base de muitas ferramentas de verificação. As anomalias referidas são: redundância, ambivalência, deficiência e circularidade. Finalmente, são apresentadas as ferramentas que marcaram a evolução da área de V&V de sistemas baseados em conhecimento.
3.1 Introdução
A década de oitenta é marcada pelo (re)florescimento da Inteligência Artifi- cial (IA) através da generalização das aplicações baseadas em conhecimento e muito particularmente dos sistemas periciais. Ao contrário do optimismo exagerado das décadas anteriores, que acabou por acarretar consequências bastante funestas para a IA, a introdução dos sistemas periciais nas organiza- ções caracterizou-se por uma abordagem pragmática e eficaz. As organizações seleccionaram áreas chave, também designadas por fortemente baseadas em conhecimento e desenvolveram-se sistemas periciais que foram utilizados com relativo sucesso.
Este fenómeno deveu-se, em primeiro lugar, ao sucesso de vários sistemas na década anterior (ver figura 3.1), designadamente, o Prospector [Gasching, 1982], um sistema pericial utilizado na prospecção de jazidas de minerais, um sistema baseado em regras utilizado pela Universidade de Stanford na área da engenharia química; o MYCIN [Buchanan e Shortliffe, 1984], um sistema pericial para o diagnóstico e terapia de doenças infecciosas; o X1/CON, sis- tema gerador de configurações de computador de grande porte utilizado pela DEC; e o DENDRAL [Buchanan e Feigenbaum, 1978]. Em segundo lugar, à identificação de uma estrutura comum nestes sistemas passível de ser reutili-
2000 Robots Autónomos exploram regiões inóspitas 1990 Avanços significativos em sistemas multi-agente, realidade virtual, aprendizagem,visão, tutores inteligentes... 2000 Início da Venda dos Smart Toys 1974 Criação do MYCIN 1967 Criação do DENDRAL: primeiro SP 1997 Deep Blue bate Gary Kasparov
1991 Sistema de IA bate mestre em xadrez 1972 Criação da Linguagem PROLOG 1956 Conferência Dartmouth Nascimento da IA 1958 Criação da Linguagem LISP 1941 Primeiro Computador Electrónico 1946 Primeiro Programa Comercial Armazenado num Computador 1979 Criaçao do EMYCIN: Primeira Shell
Figura 3.1: Evolução Histórica da Inteligência Artificial
zada independentemente do domínio. Neste âmbito é paradigmático o caso do EMYCIN [Buchanan e Shortliffe, 1984] , uma shell para o desenvolvimento de sistemas periciais baseada na estrutura base do MYCIN.
Tendo em vista a crescente importância dos sistemas baseados em conheci- mento (SBC), inúmeras metodologias e ferramentas foram propostas com vista a auxiliarem no desenvolvimento e certificação destes sistemas. Os sistemas baseados em conhecimento são produtos de software e, por consequência, de- vem ser sujeitos a padrões de exigência semelhantes [Hoppe e Meseguer, 1991] [Levy e Rousset, 1996]. No que diz respeito às aplicações convencionais, este processo está já bem cimentado através de metodologias que cobrem parte ou todo o seu ciclo de desenvolvimento [Adrion et al., 1982], designadamente os métodos de espiral, queda-de-água e prototipagem rápida.
Neste capítulo é introduzida a questão da verificação e validação de software, em geral, e de sistemas baseados em conhecimento, em particular. Assim, na secção 3.2 são apresentadas as definições mais relevantes nesta área. Posteri- ormente, na secção 3.3 são discutidas algumas das diferenças mais importantes
entre os sistemas baseados em conhecimento e o designado software conven- cional, com particular ênfase, nos seguintes aspectos: natureza não objectiva dos SBC, necessidade de considerar a incerteza no conhecimento, inexistência de um modelo físico, dificuldade na determinação da exactidão/correcção dos resultados obtidos e actuação dinâmica. Estas diferenças implicaram o de- senvolvimento de técnicas específicas a utilizar no processo de V&V de SBCs, como por exemplo as que são descritas na secção 3.4: a inspecção, a verificação estática, a prova formal, a verificação cruzada e os testes empíricos. A secção 3.5 é dedicada à discussão das anomalias de uma base de conhecimento, sendo estas definidas como sintomas de possíveis erros cuja detecção constitui a base de muitas ferramentas de verificação. As anomalias são agrupadas em quatro grupos: redundância, ambivalência, deficiência e circularidade. Finalmente, são apresentadas as ferramentas que marcaram a evolução da área de V&V de sistemas baseados em conhecimento (ver secção 3.6) como por exemplo: o RCP, o CHECK, o EVA, o KB-Reducer e o COVER.
3.2 Definições Fundamentais
Como resultado de inúmeros projectos de V&V surgiram naturalmente diferen- tes perspectivas no contexto da certificação de sistemas baseados em conheci- mento, dando origem a diferentes definições e conceitos. Os termos verificação e validação são os mais utilizados na literatura e aqueles que recebem maior consenso em termos de definição, muito embora, avaliar e testar surjam como seus sinónimos. De seguida são apresentadas as definições utilizadas por dife- rentes autores para alguns destes conceitos:
Adrion [Adrion et al., 1982] – as definições propostas pelo autor são ge- néricas, no entanto podem ser aplicadas ao domínio dos SBC;
Verificação – é a demonstração da consistência e inexistência de deficiências no sistema;
Validação – envolve a determinação da correcção do sistema final relativamente às necessidades do utilizador e aos requisitos iniciais. Preece [Preece, 1990] – este autor distingue os conceitos de verificação, validação e aceitação por parte do utilizador e engloba todos estes concei- tos num outro mais genérico, a avaliação;
Verificação – determina a inexistência de inconsistências e deficiên- cias no sistema;
Validação – determina se o sistema realiza todas as tarefas para as quais foi construído.
Boehm [Boehm, 1984] – segundo este autor, e tal como o anterior, a validação é parte de um conceito mais vasto, a avaliação. Esta tem como finalidade determinar a qualidade de uma aplicação (os trabalhos deste autor estão relacionados principalmente com sistemas periciais (SP)) com recurso à comparação com soluções já conhecidas e atendendo às críticas dos peritos;
Verificação – determina se o sistema foi construído correctamente, certificando que o sistema implementa correctamente as especifica- ções;
Validação – determina se foi construído o sistema correcto, certifi- cando que o sistema realiza as operações para as quais foi planeado com um grau de satisfação aceitável comparativamente ao que se po- deria obter através de peritos humanos.
Ayel e Laurent [Ayel e Laurent, 1991] – Estes autores distinguem os ter- mos verificação e validação em função dos elementos que participam no
processo que visa garantir a qualidade do produto final.
Verificação – é utilizado pela organização fornecedora do produto com o objectivo de garantir que o sistema desenvolvido está correcto, isto é, o produto obtido é exactamente aquele que o fornecedor pre- tendia obter;
Validação – é utilizada pelo consumidor com vista a garantir que o produto em questão é o sistema certo, isto é, o produto final é exactamente aquele que o consumidor pretendia obter.
As definições propostas pelos diferentes autores permitem um grau de liber- dade significativo na sua interpretação, visto que recorrem a termos que não são de interpretação unânime na comunidade científica (e.g., deficiência ou inconsistência) e outros que propiciam uma avaliação mais qualitativa do que quantitativa (e.g., satisfação ou adequação). Não obstante, as seguintes inter- pretações serão consideradas ao longo deste documento:
Verificação significa produzir o sistema da forma correcta, i.e., este processo pretende assegurar que um sistema foi correctamente implementado e não contém erros técnicos. Durante a verificação o sistema é considerado uma caixa de cristal, significando que o seu interior é examinado com vista a detectar possíveis erros.
Por sua vez, a validação significa produzir o sistema correcto, i.e., este pro- cesso pretende assegurar que um sistema produz resultados com um grau de confiança similar, ou mesmo superior, àquele providenciado por peritos do do- mínio de actuação considerado. Este processo baseia-se em testes realizados preferencialmente em ambiente real e sob condições semelhantes àquelas que seriam encontradas durante o funcionamento do sistema. Durante os testes, o sistema é considerado uma caixa preta, significando que apenas as entradas e
saídas do sistema são consideradas relevantes na análise.
Assim sendo, a verificação e validação permitem determinar se os requisitos do problema foram completa e correctamente satisfeitos de forma a assegurar a robustez, segurança, qualidade e eficiência do sistema. De forma sintética, a V&V é o processo que visa produzir o sistema correcto da forma correcta [Preece, 1998].