1. Arranque Aula de Laboratório: Iniciação ao Protégé/Frames Iniciar a aplicação Protégé em Windows ou Linux. Criar um novo projeto opção New Project, escolhendo a opção Protégé Files (.pont and.pins) : Ao longo deste guião vamos ilustrar as opções da ferramenta representando a frase A Sara consertou a cadeira com cola. 2. Criação de Classes, Slots e Instâncias A janela do projeto tem inicialmente 5 separadores (Classes, Slots, Forms, Instances e Queries). 1/6
Para cada novo projeto começar por criar a classe CoisasXXX, onde XXX deverá ser algo que identifique o projeto. Por exemplo, para resolver o exercício 1. e) ( A Sara consertou a cadeira com cola ), podemos criar a classe CoisasSara. 2.1 Classes A criação de classes é feita no separador Classes, selecionando a superclasse da classe que se pretende criar e clicando no ícone. Para criar a classe CoisasSara, a classe de topo do projeto, selecionar a classe :THING. O nome da classe deverá ser escrito no campo Name. No campo Role deverá ser escolhido o tipo da classe: Concrete A classe pode ter instâncias diretas. Abstract Não podem ser criadas instâncias desta classe. 2.2 Slots A criação de slots é feita no separador Slots, clicando no ícone. Vamos ilustrar, criando um slot que nos vai permitir guardar o nome a utilizar para visualizar as instâncias que forem criadas neste projeto. É necessário definir três coisas principais para cada slot: nome, domínio e tipo do valor: nome colocado no campo Name ( nome_instancia, no exemplo acima). 2/6
domínio definido em Domain, representa a classe para a qual se está a definir o atributo em causa e deverá ser escolhida clicando no ícone. (no exemplo acima, a classe CoisasSara ) tipo de valor escolhido em Value Type, define o tipo de valor do slot. Pode ser um tipo primitivo (como String, no exemplo acima) ou uma referência a um nome de uma classe (ver na secção 3.). Para além destas três componentes, obrigatórias, podem ainda ser especificados outros atributos do slot, nomeadamente: cardinalidade, valores mínimo e/ou máximo, valores padrão ou por omissão. 2.3 Instâncias A criação de instâncias é feita no separador Instances, clicando no ícone. Em cima, um exemplo da criação de uma instância da classe Pessoa, com o nome Sara (notar que a classe Pessoa tem que ser criada previamente). Como se pode verificar na figura acima, na janela INSTANCE BROWSER, o nome da instância é um nome interno (quando o ideal seria que aparecesse Sara ). De modo a obter este comportamento por parte do Protégé, ainda no separador Instances, selecionar a classe CoisasSara, clicar no ícone que aparece na janela INSTANCE BROWSER e escolher como display slot o slot nome_instancia. Deste modo, todas as instâncias deste projeto serão apresentadas com o nome que for escolhido e não com o nome interno: 3/6
3. Mais sobre os tipos de valores dos slots Para além dos tipos primitivos, podemos criar slots cujos valores sejam referências a classes. Por exemplo, vamos considerar a definição dos slots associados à classe Consertar, que representa uma ação genérica de consertar alguma coisa. Recordando, consertar alguma coisa necessita da definição três atributos: o agente que conserta (uma pessoa), o objecto que é consertado (um objecto) e um utensílio usado para realizar o conserto (também um objecto). Em vez de utilizarmos o separador Slots, também podemos criar slots diretamente no separador Classes. Assim, assumindo também já criadas as classes Objecto, Cadeira, Cola e Consertar, vamos selecionar esta última e clicar no ícone que aparece na janela CLASS EDITOR. O slot que representa o agente que realiza o conserto deverá ter como valor uma pessoa concreta. Assim, deveremos escolher como Value Type a opção Instance e, em Allowed Classes escolher de que classe têm que ser as instâncias que podem assumir o valor do slot: Notar que Domain já aparece preenchido, pois corresponde à classe que estava inicialmente selecionada. 4/6
Quando não nos queremos referir a instâncias concretas, devemos indicar em Value Type a opção Class. Por exemplo, podemos querer dizer que o utensílio usado foi cola sem referir que tipo ou instância de cola foi utilizado. A instância de consertar que representa a frase em causa fica então: 4. Visualização gráfica De modo a visualizarmos a rede correspondente ao que se definiu, temos que começar por adicionar um novo separador ao projeto. Para isso: Menu Project - > Configure... - > e, no separador Tab Widgets, selecionar OntovizTab. É adicionado o separador Ontoviz à lista de separadores: Antes de continuar é necessário gravar o projeto (Menu File - > Save Project. Na janela que aparece, carregar no ícone local e nome para o projeto. Para visualizar, selecionar o separador Ontoviz. do campo Project e escolher um Selecionar a classe de topo do projeto, no caso CoisasSara e carregar no ícone para a adicionar como classe a ser visualizada. Seguidamente, selecionar os itens a visualizar nas box s correspondentes: Finalmente, carregar no ícone para visualizar. 5/6
Caso se pretenda gravar a representação gráfica da rede num ficheiro.gif, pode- se escolher essa opção clicando no ícone. A rede final deverá ficar análoga à representada na figura mostrada na página seguinte. Importante Se o gráfico não aparecer, os problemas mais comuns são: - esquecimento de gravar previamente o projeto; - utilização de caracteres acentuados nos nomes (de instâncias, slots ou classes). 6/6