• No results found

Neste capítulo foi apresentada uma visão geral sobre experimentos controlados e suas replica- ções, identificando alguns problemas na transferência de conhecimento entre grupos de pesquisa de Engenharia de Software. Um dos fatores desses problemas é a falta de padronização dos pacotes de laboratório. Não há um padrão amplamente adotado para reportar experimentos, apesar de diretrizes terem sido propostas nesse sentido.

Essas questões sugerem o estabelecimento de uma estrutura para pacotes de laboratório. Nesse sentido, uma ontologia pode ser usada para descrever o modelo das informações que compõem um pacote de laboratório, visando a prover um padrão e favorecer um melhor entendimento.

Segundo Uschold e Gruninger (1996), pesquisadores de campos de pesquisa diferentes, mas re- lacionados, não conseguem usar facilmente os resultados uns dos outros. Isso acontece porque os pesquisadores têm uma perspectiva diferente ou usam termos diferentes para descrever as mesmas

2.5 Considerações finais

ideias subjacentes. Para resolver este problema, deve-se reduzir confusão conceitual e terminoló- gica e obter um entendimento compartilhado das informações trocadas (Uschold e Gruninger(1996);

Uschold e Gruninger(2004)).

Nesse contexto, ontologias podem ser proveitosas para lidar com o problema na transferência de conhecimento. Ontologias definem vocabulários comuns para pesquisadores que precisam compar- tilhar informação acerca de um domínio (Noy e McGuinness, 2001). Assim, no capítulo seguinte é fornecida a fundamentação teórica necessária para investigar a aplicação de uma ontologia como padrão do conjunto de informações contido em um pacote de laboratório.

CAPÍTULO

3

Ontologia

Ontologias podem ser utilizadas para permitir que pesquisadores tenham acesso a fontes de in- formação heterogêneas que são expressas usando vocabulários diversos ou formatos inacessíveis (Bi- olchini et al., 2007). Considerando o papel de ontologias em representação e compartilhamento de conhecimento (Gruber(1995);Noy e McGuinness(2001)), o objetivo principal deste capítulo é inves- tigar a aplicação de uma ontologia para lidar com os problemas relativos a integração e transferência de conhecimento em Engenharia de Software Experimental.

Na Seção 3.1 é dada uma introdução sobre ontologias. Na Seção 3.2 são apontados trabalhos que propõem a aplicação de ontologias em Engenharia de Software Experimental. Dentre eles, a

EXP EROntology, uma ontologia para experimentos controlados, é apresentada em detalhes na Seção

3.3. Por fim, são apresentados os processos de evolução de ontologias (Seção3.4) e de matching de ontologias/esquemas (Seção 3.5). Esses processos podem ser necessários para compor uma solução que aplique ontologias para resolver problemas de entendimento compartilhado.

3.1

Visão geral sobre ontologia

Em Ciência da Computação, uma ontologia é um artefato que contém um modelo da estrutura de um domínio, ou seja, entidades e relações que emergem de sua observação (Pretorius (2004);

Guarino et al. (2009)). Uma definição mais completa seria: “uma ontologia é uma especificação formal e explícita de uma conceituação compartilhada” (Gruber(1995),Studer et al.(1998)).

Uma conceituação é uma visão abstrata e simplificada do mundo que se deseja representar para algum propósito (Guarino et al., 2009). Tal visão é constituída de conceitos desse mundo e suas relações (ver exemplo na Figura 3.1). Ao elaborar a conceituação (ver Figura 3.2), obtém-se uma captura dos conceitos do domínio que devem compor a ontologia. A ideia do que vem a ser o domínio de interesse fica expressa de maneira explícita sob a forma de conceitos e relações entre eles.

Adicionalmente, deve haver uma especificação formal dos conceitos, em um formato que seja legível por máquinas. Para isso, uma ontologia é formalizada por meio de alguma linguagem, que proveja a restrição da interpretação de seus conceitos por meio de axiomas lógicos. Uma ontologia

3.1 Visão geral sobre ontologia

pode ser considerada como um conjunto de tais axiomas.

Programador (Pedro) Programador (Julia)

Gerente (João)

Figura 3.1: Domínio de recursos humanos, adaptado deGuarino et al.(2009)

Programador reportaA Gerente Pessoa 1 1..* 1..* 1..* trabalhaCom

Figura 3.2: Conceituação do domínio de recursos humanos

Um axioma do domínio de exemplo, em Lógica de Primeira Ordem, que define o vínculo entre dois programadores que trabalham juntos é dado por:

(∀p1, p2)trabalhaCom(p1, p2) → reportaA(p1, g) ∧ reportaA(p2, g)

em que p1 e p2 representam programadores e g o gerente ao qual p1 e p2 estão subordinados. Por se

tratar de uma representação formal, uma ontologia permite a inferência de informações adicionais às que estão declaradas.

Uma especificação formal de uma conceituação não é, necessariamente, uma especificação de uma conceituação compartilhada (Guarino et al.,2009). A fim de que o conhecimento seja compartilhado entre as partes que utilizam a ontologia, deve haver concordância sobre o que está sendo comunicado. O conhecimento deve ser consensual entre as partes.

Portanto, pode-se afirmar que uma ontologia é uma especificação de conhecimento consensual sobre um modelo abstrato de domínio, definida explicitamente em termos de conceitos e seus relaci- onamentos por meio de axiomas, possibilitando, assim, que seja legível por máquinas.

Desenvolver uma ontologia envolve uma sequência de fases, conforme pode ser visto na Figura

3.3. Em termos gerais, é preciso adquirir conhecimento sobre o domínio e elaborar a sua conceitua- ção, ou seja, descrever um modelo conceitual. Em seguida, é feita a formalização do significado dos

3.1 Visão geral sobre ontologia

conceitos estabelecidos por meio de axiomas lógicos. Implementar uma ontologia requer a escolha de uma linguagem para representá-la. Depois de implementada, durante a manutenção, a ontologia pode ser corrigida ou atualizada conforme houver mudanças no domínio.

Aquisição de conhecimento Conceituação Formalização Implementação Manutenção

Figura 3.3: Processo de desenvolvimento de uma ontologia (Goméz-Pérez,1999)

Cada linguagem de representação de conhecimento provê diferentes habilidades para expressar ontologias. O mais recente desenvolvimento em linguagem padrão é OWL1 (Web Ontology Lan-

guage), uma recomendação W3C (World Wide Web Consortium). Ontologias OWL podem ser vistas como um conjunto de sentenças lógicas (em Lógica Descritiva), que declaram e relacionam os com- ponentes básicos da linguagem: classes, propriedades e instâncias.

As classes são organizadas em uma hierarquia e cada classe é definida por meio de restrições de propriedade. Horridge (2009) apresenta um tutorial detalhado sobre a implementação de uma ontologia em OWL, definindo de maneira mais detalhada os componentes e recursos da linguagem ao longo do processo. Em termos práticos, uma ontologia OWL consiste em um documento com sintaxe XML.