You are on page 1of 63

Sumrio

Entendendo ontologias... o O que uma ontologia? o Porque criar uma ontologia? o Como criar uma ontologia? o Como saber se est se fazendo certo? o Por onde comear? Desenvolvimento de um exemplo Para criar e salvar um projeto o Criao de um exemplo de projeto o Nomear e salvar o exemplo de projeto Criao de classes o Criao da classe Colunista (Columnist) o Criao da classe Autor (Author) o Criao das subclasses de Autor (Author) o Modificao da hierarquia o Criao de uma classe abstrata o Criao da classe Empregado (Employee) o Adio de outra superclasse a uma classe existente o Adio de uma superclasse com arrastar-e-soltar Criao de slots o Criao de um slot a partir da "etiqueta slot" (Slots tab) o Atribuio de um slot a uma classe o Criao de um slot na "etiqueta classes" (Classes tab) o Slots e herana Criao de facetas (facets) para slots o Definio de facetas de slots para salrio (salary) o Criao de um relacionamento com o uso de slots Insero de instncias Configurao do slot de apresentao Criao de um relacionamento entre instncias Personalizao de um formulrio o Redimensionamento de formas grficas (widgets) o Movimentao de formas grficas (widgets) o Personalizao dos botes das formas grficas (widgets) o Ocultamento de uma forma grfica (widget) o Apresentao de uma forma grfica (widget) oculta o Uso do layout padro Criao e armazenamento de uma consulta o Criao de uma consulta (query) o Execuo de uma consulta (query) o Armazenamento de uma consulta (query) o Recuperao de uma consulta (query)

Entendendo ontologias...

Esse tutorial apresenta uma introduo ao Protege, um ambiente para criao e edio de ontologias e bases de conhecimento, que permite ao usurio iniciar o projeto de uma ontologia rpida e intuitivamente. O usurio aprende a criar, modificar e salvar um projeto no Protege. Ser criado um projeto chamado "tutorial", o qual contm umas poucas classes e exemplos de um exemplo, denominado newspaper, que acompanha a instalao do Protege. Uma vez lido o tutorial, se est pronto para explorar o Protege por conta prpria. Nem todos os usurios do Protege esto familiarizados com o projeto e o desenvolvimento de ontologias. Dessa forma, alm de introduzir a interface do Protege, esse tutorial apresenta uma breve viso geral de alguns conceitos bsicos do projeto de ontologias e se baseia nos conceitos descritos no artigo Ontology Development 101 . Caso se esteja familiarizado com o projeto de ontologias, pode-se pular diretamente para o item "Criar e salvar um projeto". Para documentao mais completa, tutoriais, artigos e apresentaes, veja a pgina de documentao (documentation page ) no site do Protege.

O que uma ontologia? Porque criar uma ontologia? Como criar uma ontologia? Como saber se est se fazendo certo? Por onde comear?

O que uma ontologia?

Uma ontologia descreve os conceitos bsicos em um domnio de conhecimento e define relaes entre eles. Os fundamentos bsicos do projeto de ontologias incluem:

Classes ou conceitos; Propriedades de cada conceito, que descrevem caractersticas e atributos de um conceitos (slots, algumas vezes denominados "papis" ou "propriedades"); Facetas (facets), algumas vezes denominadas "restries sobre slots".

Uma ontologia mais um conjunto de instncias individuais de classes constitui uma base de conhecimento.

Porque criar uma ontologia?


Uma ontologia fornece um vocabulrio comum para pesquisadores que necessitam compartilhar informaes em um domnio. Algumas razes para se criar uma ontologia so:

Compartilhar um entendimento comum da estrutura da informao entre pessoas ou agentes de software;

Possibilitar o reuso do domnio de conhecimento; Tornar explcitas hipteses sobre o domnio; Separar o conhecimento do domnio e o conhecimento do conhecimento operacional; Analisar o domnio de conhecimento.

Como criar uma ontologia?


No existe uma nica metodologia correta para o desenvolvimento de ontologias, nem um nico resultado correto. Desenvolver uma ontologia , em geral, um processo interativo. Comea-se com um primeiro rascunho da ontologia. Ento, essa primeira verso refinada e detalhes so inseridos. Em termos prticos, desenvolver uma ontologia inclui: 1. 2. 3. 4. Definir classes da ontologia; Arranjar as classes em uma hierarquia de subclasses e superclasses; Definir slots e descrever os valores permitidos para eles; Preencher os valores para os slots com instncias.

Como saber se est se fazendo certo?


Existem muitas possibilidades de ontologias para um determinado domnio; qualquer ontologia especfica apenas uma maneira de estruturas conceitos e relaes. Existem alguns poucos princpio que podem ajudar a tomar decises de projeto em muitos casos:

No existe uma nica maneira correta de modelar um domnio sempre existem alternativas viveis. A melhor soluo quase sempre depende da aplicao que se est concebendo e nas previso para seu uso; O desenvolvimento de ontologias , necessariamente, um processo interativo; Conceitos em uma ontologia devem representar objetos (fsicos ou lgicos) e relaes do domnio de interesse. So muito provavelmente substantivos (objetos) ou verbos (relaes) em sentenas que descrevem o domnio.

Por onde comear?


Pode-se comear determinando para que se pretende usar a ontologia, e o quanto detalhada ou geral a ontologia deve ser. Entre vrias alternativas viveis, deve-se determinar qual delas funcionar melhor para a tarefa imaginada, a mais intuitiva, mas extensvel e a mais fcil de se manter. Uma ontologia um modelo de um domnio real no mundo e os conceitos da ontologia devem refletir esse realidade. Aps definir uma verso inicial da ontologias, pode-se avali-la e corrigi-la utilizando-a em aplicaes ou em mtodos de soluo de problemas

(problem-solving methods ), ou discutindo com especialistas da rea. Como resultado, quase sempre ser preciso revisar a ontologia inicial. Esse processo de projeto interativo continua atravs de todo o ciclo de vida da ontologia.

Desenvolvimento de um exemplo
Suponho que preciso desenvolver um sistema que auxilia a gerencia custo e a organizao de um jornal. A subpasta "examples/newspaper" do diretrio de instalao do Protege contm um projeto completo, denominado newspaper, o qual fornece uma ontologia possvel para esse domnio. Algumas questes que pode-se desejar responder so:

Quem responsvel para cada seo do jornal? Qual o contedo de cada artigo em uma seo, e quem o autor? A quem cada autor se reporta? Qual o layout e o custo de cada seo?

Uma vez que se tem uma idia do que preciso cobrir, pode-se listas alguns termos importantes que so necessrios. Esses termos podem incluir conceitos bsicos, propriedade que os conceitos devem ter e relaes entre eles. Para comear, pode-se apenas coletar termos sem preocupao sobre o papel que eles vo desempenhar na ontologia. No exemplo do jornal, tem-se sees. Cada seo contem contedo, tal como artigos e anncios, e cada uma tem tambm um editor, que responsvel por cada seo. Cada artigo tem um autor, e aquele autor pode ter ou no um empregado. Para cada empregado, preciso determinar o nome e o salrio, e tambm a quem ele se reporta. Ao continuar a gerar termos, se est implicitamente definindo o escopo da ontologia, ao definir o que se deve incluir ou excluir. Por exemplo, ao examinar preliminarmente o termo empregado, pode-se desejar adicionar zelador ou motorista. Entretanto, refletindo, pode-se perceber que a ontologia enfatize custos diretamente associados com a gerao de contedo e a apresentao do jornal. Dessa forma, poder-se-ia decidir no incluir zelador como um termo de interesse. Quando se tem uma lista suficientemente completa, pode-se iniciar o processo de categorizar diferentes termos, de acordo com sua funo na ontologia. Conceitos que so objetos, tais como artigo ou autor, so provavelmente representados por classes. Propriedades das classes, tais como contedo ou salrio, podem ser representados por slots; e restries sobre as propriedades ou sobre relaes entre classes ou slots, so representados por restries sobre slots. Em seguida, descreve-se como usar a interface do Protege para criar a estrutura desses componentes da ontologia.

Para criar e salvar um projeto

Em primeiro lugar, deve-se criar um novo projeto no Protege. Uma explicao mais detalhada do modelo de conhecimento do Protege est disponvel na seo Overview do site do Protege.

Criao de um exemplo de projeto Nomear e salvar o exemplo de projeto

Criao de um exemplo de projeto


Para criar um exemplo de projeto, siga as instrues: 1. Inicie o Protege. Se j existe um projeto do Protege aberto, feche-o e reinicie o programa. Ao iniciar o Protege, a caixa de dilogo de boas vindas apresentada, para que se possa criar um novo projeto, abrir um projeto recente ou obter ajuda.

Nota: Para explorar os exemplos includos no Protege, clique em Abrir um projeto existente... (Open Existing Project...) e selecione o projeto desejado. Para criar um novo projeto, selecione Arquivo | Novo projeto (File | New Project...)

2. Clique em Criar novo projeto... (Create New Project...). Uma caixa de dilogo ser aberta, permitindo a escolha do tipo de projeto. A menos que seja necessrio um tipo especial de formato para os arquivos, apenas clique em Terminar (Finish) para aceitar a definio padro: "Protege Files (.pont and pins)".

3. A janela do Protege aberta e as etiquetas (tabs) se tornam visveis. Um novo projeto sempre aberto na viso de Classes. As classes internas de sistema do Protege (:THING e :SYSTEM-CLASS) so apresentadas. No sero criadas instncias.

Sumrio | Acima: Para criar e salvar um projeto | Anterior: Criao de um exemplo de projeto

Nomear e salvar o exemplo de projeto


Embora o tutorial no seja longo, pode-se desejar sair do projeto antes de termin-lo. Salvar o projeto permite encerrar a atividade sempre que se ache conveniente. Para salvar o projeto: 1. Clique no boto "Salvar Projeto" (Save Project) (o terceiro da esquerda no menu superior do Protege). Pode-se escolher tambm "Salvar Projeto" no menu "Arquivo" (File). A caixa de dilogo de arquivos do Protege (Protege Files) ser aberta.

2. Escolha a localizao para salvar o projeto, clique no boto a direita da linha "Projeto" (Project). A caixa de dilogo de arquivos do Protege (Protege Files), navegue para selecionar ou criar um diretrio.

3. Entre com um nome de arquivo (por exemplo, "tutorial").

4. Clique em "Selecionar" (select). 5. A caixa de dilogo de arquivos do Protege (Protege Files) aparecer novamente. Clique em OK para salvar os arquivos e deixar a caixa de dilogo.

Nota: Pode-se tambm escolher uma localizao digitando o caminho completo na linha Projeto (Project). Os nomes dos outros arquivos sero preenchidos automaticamente.

Criao de Classes
A janela principal do Protege consiste de etiquetas (tabs) que apresentam vrios aspectos do modelo de conhecimento. A etiqueta mais importante que aparece ao se iniciar um projeto a etiqueta "Classes". Em geral, classes vo corresponder a objetos, ou tipos de objetos, no domnio. No exemplo do jornal, classes podem ser pessoas, tais como editores, reprteres e vendedores; componentes do layout do jornal, tais como sees; e contedo do jornal, tais como anncios e artigos.

Classes no Protege so mostradas em uma hierarquia com heranas, apresentadas em um "Navegador de Classes" (Class Browser), do lado esquerdo da etiqueta "Classes". As propriedades da classe selecionadas na rvore, no momento, so apresentadas no "Editor de Classes" (Class Editor) direita. Nessa seo, o objetivo ensinar como criar classes e subclasses, modificar a hierarquia de classes, criar classes abstratas, e adicionar superclasses adicionais a classes existentes.

Criao da classe Colunista (Columnist) Criao da classe Autor (Author) Criao das subclasses de Autor (Author) Modificao da hierarquia Criao de uma classe abstrata Criao da classe Empregado (Employee) Adio de outra superclasse a uma classe existente Adio de uma superclasse com arrastar-e-soltar

Criao da classe Colunista (columnist)


Deseja-se acompanhar fonte de cada artigo, e assim, sero criados diferentes tipos de pessoas e servios que originam artigos. Primeiro, vai-se criar uma nova classe denominada colunista (columnist): 1. Selecione a etiqueta de classes (Classes Tab). 2. Localize a rea "Hierarquia de Classes" (Class Hierarchy) no painel "Navegador de Classes" (Class Browser) do lado esquerdo da janela do Protege. Essa rea mostra a hierarquia de classes e destaca a classe selecionada no momento.

3. Assegure-se de que a classe :THING est destacada. Quase todas as classes que sero criadas estaro subordinadas a :THING. A classe :SYSTEM_CLASS usada para definir a estrutura de vrios formulrios do Protege. 4. Clique no boto Criar classe (Create Class) , do na parte superior direita do "Navegador de Classes". Uma classe criada com um nome genrico, baseado no nome do projeto, tal como "tutorial_Class_0". Pode-se ver o nome no "Navegador de Classes" e, alm disso, ele

aparece destacado para mostrar que est selecionado.

5. Digite Colunista (Columnist). Uma conveno recomendvel no Protege criar o primeiro carter de cada palavra em um nome de classe, em maisculo, e o resto do nome em minsculo, alm de separar as palavras por um trao baixo (underscore). 6. Tecle Enter ou clique de novo na classe destacada para completar a operao e mostrar a alterao.

Caso ocorram problemas em renomear a classe, verifique o painel Editor de Classes (Class Editor), do lado direito da janela do Protege. O nome genrico da classe criada deve ser apresentado e destacado no campo "Nome" (Name). Se o nome genrico correto mostrado, mas no destacado, apenas d um clique duplo no campo "Nome" para editar o nome. Se um nome incorreto mostrado, ento a classe errada est selecionada na rea de "Hierarquia de Classes" (Class Hierarchy). Clique na classe que se deseja renomear.

Criao da classe Autor (Author)


Um Autor (Author) qualquer possvel fontes de um artigo, tal como um servios de notcias ou um colunista. Para criar a classe Autor (Author): 1. Marque com o mouse a classe :THING. Se isso no for feito, ser criada uma classe que subclasse de Colunista (Columnist). 2. Clique no boto Criar Classe (Create Class) (Author). e digite Autor

3. Tecle Enter para completar a operao e apresentar a alterao.

Note: Se acidentalmente for criada uma subclasse de Colunista (Columnist), significa que no foi selecionada a classe :THING antes de se criar a nova classe. Pode-se apagar e recriar a classe Autor (Author), clicando no boto Apagar Classe (Delete Class, o quarto boto a partir da esquerda, na parte superior da rea Class Hierarchy) para apagar a classe e, ento, clicar em :THING e recriar outra classe. Pode-se tambm rearranjar a hierarquia de classes arrastando a classe criada para a :THING e, ento, soltando o boto do mouse.

Criao das subclasses de Autor (Author)


Deseja-se agora adicionar duas novas fontes de artigos, denominadas Servio_de_Noticias (News_Service) e Editor (Editor), as quais sero criadas como subclasses de Autor (Author). 1. Selecione Autor (Author) no painel de "Hierarquia de Classes" (Class Hierarchy). 2. Clique no boto Criar Classe (Create Class) e renomeie a nova classe como o nome Servio_de_Noticias (News_Service). Toda vez que uma nova classe for criada, ela criada como subclasse da classe destacada no momento. Note que quando se cria a primeira subclasse de uma classe, um cone ou aparece a sua esquerda. Pode-se usar esse cone para mostrar ou ocultar as subclasses de uma classe. Para que se possa desenvolver a ontologia em sees posteriores, ser criada outra subclasse de Autor (Author).

3. Selecione Autor (Author) no "Navegador de Classes" (Class Browser). 4. Clique no boto Criar Classe (Create Class) classe Editor. e renomeie a nova

Modificao da hierarquia
Nesse ponto, observa-se que Autor (Author) e Colunista (Columnist) esto no mesmo nvel (irmos) na hierarquia. Entretanto, conceitualmente, Servio_de_Noticias (News_Service), Editor (Editor) e Colunista (Columnist) esto todos no mesmo nvel de generalidade, enquanto Autor (Author) um conceito mais genrico. Essa disposio no atende aos bons princpios de projeto de ontologias: todos os irmos na hierarquia (exceto aqueles que esto na raiz) devem estar no mesmo nvel de generalidade. Dessa forma, preciso modificar a hierarquia para fazer com que a classe Colunista (Columnist) seja uma subclasse de Autor (Author), o que reflete com mais preciso a estrutura subjacente. Para modificar a hierarquia e tornar Colunista (Columnist) uma subclasse de Autor (Author): 1. Clique em Colunista (Columnist) e arraste-o para sobre a classe Autor (Author) e ento, solte o mouse. Repare que ao arrastar a primeira classe sobre autor, esta ltima destacada.

2. Colunista (Columnist) movida e agora aparece como uma subclasse de Autor (Author).

Nesse caso, o problema pode parecer bvio. Entretanto, quando se desenvolvem ontologias, o prprio processo de desenvolvimento pode revelar diferenas ou paralelos que no eram to claros no incio do processo. Dessa forma, provvel que a medida que tal processo caminha ser preciso rearranjar a hierarquia, criar e apagar classes, de forma a modelar melhor os conceitos que se pretende utilizar.

Criao de uma classe abstrata


Uma classe do Protege pode ser Concreta (Concrete), o que significa que ela pode ter instncias diretas, ou pode ser Abstrata (Abstract), o que significa que ela aparece na hierarquia, mas no tem instncias diretas. Quando se cria a primeira classe, ela , por conveno, concreta. Agora que se sabe mais sobre a classe Autor (Author), percebe-se que qualquer instncia de Autor vai realmente ser uma instncia de um tipo particular de autor, tal como, por exemplo, um colunista ou um servio de noticias. Dessa forma, vai-se alterar a classe Autor (Author) para uma classe abstrata. Para realizar essa tarefa: 1. Selecione Autor (Author) na hierarquia de classes. No "Editor de Classes" (Class Editor), do lado direito do "Navegador de Classes", localize o menu Papel (Role), logo abaixo do nome da classe.

2. Clique no menu Papel (Role) e selecione Abstrata (Abstract). 3. Note que quando se muda o papel da classe, o cone em frente ao nome da classe, no caso o nome "Autor", alterado. O novo cone indica uma classe abstrata na hierarquia. Um cone slido indica uma classe concreta.

Criao da classe Empregado (Employee)


Agora vai se criar outra classe, Empregado (Employee). Um Empregado (Employee) qualquer empregado do jornal, que pode ser ou no um autor. Observe entretanto, que se est apenas interessado em empregado que esto envolvidos na criao e gesto do contedo do jornal. Uma das escolhas a tomar no projeto de uma ontologia o que no considerar. Ao mesmo tempo que necessrio assegurar-se de que foram includos todos os conceitos relevantes, no se deve complicar a hierarquia adicionando classes que so dispensveis. Dessa forma, mesmo que um zelador possa ser, tecnicamente, um empregado do jornal, no h interesse em criar uma subclasse chamada "zelador". 1. Selecione :THING no "Navegador de Classes" (Class Browser). Embora alguns autores sejam empregados, no se deseja que Empregado (Employee) seja uma subclasse de Autor (Author). Na maioria dos casos, deve-se selecionar :THING para criar um classe de nvel mais alto na hierarquia. 2. Clique no boto Criar Classe (Create Class) Empregado (Employee). e renomeie a classe

Adio de outra superclasse a uma classe existente


Conforme mencionado anteriormente, deseja-se que um Colunista (Columnist) seja um Empregado (Employee). Como a classe Colunista (Columnist) j est criada, no se deseja cri-la novamente. Ao invs disso, possvel fazer com que a classe Colunista (Columnist) existente seja uma subclasse de Empregado (Employee), da forma explicada a seguir: 1. Selecione Colunista (Columnist) no "Navegador de Classes".

2. V at o painel de superclasses na parte inferior esquerda da janela do Protege, abaixo do "Navegador de Classes " (Class Browser). Note que, quando Colunista (Columnist) est selecionado, a superclasse atual de Colunista (Columnist), que Autor (Author), apresentada no painel de superclasses.

3. Clique no boto Adicionar Superclasse (Add Superclass) na parte superior direita no painel de superclasses. Uma caixa de dilogo de "Selecionar Classes" (Select Classes) ser apresentada, mostrando todas as classes que foram criadas at agora, organizadas em uma hierarquia.

4. Marque Empregado (Employee) e clique em OK. O Colunista (Columnist) agora tem duas superclasses: Autor (Author) e Empregado (Employee). Ambas as superclasses so apresentadas no painel de superclasses.

5. Note que um cone aparece do lado esquerdo de Empregado (Employee). Clique nesse cone para expandir o "filho" (na hierarquia) de Empregado (Employee). Colunista (Columnist) agora aparece em dois lugares no "Navegador de Classes" (Class Browser): uma vez, abaixo de Autor (Author) e, novamente, abaixo de Empregado (Employee).

Adio de uma superclasse com arrastar-e-soltar


Pode-se tambm adicionar uma superclasse como recurso arrastar-e-soltar: 1. Selecione Editor (Editor) no "Navegador de Classes" (Class Browser). 2. Clique no boto do mouse, segure e arraste a classe "Editor" para cima da classe Empregado (Employee). Empregado (Employee) destacado. 3. Antes de soltar o boto do mouse, pressione a tecla Ctrl, e ento solte o boto do mouse para transferir a subclasse.

Para remover uma superclasse de uma classe, marque a superclasse que se deseja remover no painel Superclasses e clique no boto Remover Superclasse (Remove Superclass) . Agora pode-se designar alguns atributos para as classes j inseridas, criando-se slots. Esse assunto ser tratado na prxima seo.

Criao de slots

No Protege, as classes podem ser consideradas como conceitos concretos do domnio, tal como Editor (Editor) e Colunista (Columnist). Classes so mais do que simples objetos organizados na hierarquia. Elas pode tambm ter atributos, tais como nome, nmero de telefone ou salrio, e relaes entre elas, tais como o Autor (Author) de um Artigo (Article). Atributos de classes so descritos utilizando-se slots. Nas sees seguintes apresenta-se o processo de criar slots e atribu-los a classes, a descrio de relacionamentos entre classes usando slots, e o funcionamento da herana de slots.

Criao de um slot a partir da "etiqueta slots" (slot tab) Atribuio de um slot a uma classe Criao de um slot na "etiqueta classes" (Classes tab) Slots e herana

Criao de um slot a partir da "etiqueta slot" (slot tab)


Existem vrias formas de se criar um slot. Uma maneira criar slots usando a "etiqueta slots" e, ento, atribu-lo a uma ou mais classes. Para criar uma slot denominado nome (name) dessa forma, faa: 1. Clique na "etiqueta slots". Observe que essa etiqueta tem uma layout similar ao da "etiqueta classes", com os slots listados a esquerda, e o "editor de slots" mostrando as propriedades dos slots, a direita.

2. Clique no boto Criar slot (Create Slot) no lado direito superior do painel de "hierarquia de slots" (Slot Hierarchy). Um novo slot criado. Assim que o slot criado, recebe um nome genrico, tal como "tutorial_Slot_0". Esse nome automaticamente destacado no "Editor de Slots" (Slot Editor).

3. Para nomear o slot, assegure-se de que o nome genrico est destacado no campo nome (name) do "Editor de Slots" (Slot Editor). Digite o nome do slot, que nesse caso, se chama nome (name). Uma conveno recomendada usar letras minsculas nomes de slots, com as palavras separadas por traos baixos (underscores). Criar slots com nomes em letra minscula, e classes com nomes que se iniciam com letras maisculas, facilita a distino entre eles na ontologia.

4. Observe que esse slot tem string como "tipo de valor padro" (default Value Type). O tipo de valor (Value Type) impem restries relativas aos tipos de valores que um slot pode ter. Um slot do tipo string recebe valores que so qualquer caractere alfanumrico, inclusive espaos. Para esse slot simples, no vai-se alterar quaisquer outras facetas (restries sobre os slots) no "Editor de Slots" (Slot Editor).

Atribuio de um slot a uma classe

Tudo o que foi feito at aqui foi criar um slot que define o atributo geral nome (name). Para incorpor-lo a ontologia, preciso atribu-lo a uma classe, por exemplo: se deseja que cada instncia da classe Autor (Author) tenha um nome. Para fazer isso, retorna-se a "etiqueta Classes" (Classes Tab) e edita-se a classe Autor (Author). Quaisquer atributos criados ou atribudos a uma classe so apresentados no "Editor de Classes" (Class Editor), a direita do "Navegador de Classes" (Class Browser). J se utilizou o "Editor de Classes (Class Editor) para alterar o nome de classes criadas, e tambm para alterar o papel da classe Autor (Author) para abstrata. Agora, vai se utiliz-lo para ver e nomear slots. Para atribuir o slot nome (name) a uma classe: 1. Clique na "etiqueta Classes" (Classes Tab). 2. Destaque a classe Autor (Author) no painel de hierarquia de classes (Class Hierarchy).

Durante um momento, observe o "Editor de Classes" (Class Editor), direita. Essa rea tem um Nome (Name), o qual foi alterado anteriormente para Autor (Author), o papel (Abstract), alm da

documentao e restries. Abaixo desse campo est o painel de "Modelos de Slots" (Template Slots), o qual ocupa toda a metade inferior do painel "Editor de Classes" (Class Editor). Nessa rea so listados todos os slots atribudos a uma classe. No momento, ela est vazia. 3. Para adicionar um slot a uma classe, clique no boto Adicionar Slot (Add Slot) . Os botes de slots aparecem a direita da janela do Protege, logo acima do painel de "Modelos de Slots" (Template Slots).

4. Quando se clica no boto Adicionar Slot (Add Slot), a caixa de dilogo "selecionar modelos de slots" (Select Template Slots) apresenta todos os slots do projeto atual, em ordem alfabtica (com exceo das classes de sistema do Protege, as quais so listadas abaixo da hierarquia de slots).

5. Selecione nome (name) e clique OK.

Observando o painel "Modelos de Slots" (Template Slots) para Autor (Author), verifica-se que nome (name) foi adicionado a lista de slots, junto com suas propriedades, nesse caso, sua cardinalidade (um autor pode ter apenas um nome) e o tipo do slot (slot type), String.

Criao de um slot na "etiqueta classes" (Classes Tab)


Alternar entre a "etiqueta classes" (Classes Tab) e a "etiqueta slots" (Slots Tab) pode ser cansativo. Alm disso, uma vez que slots representam propriedades de classes, seria mais simples criar slots diretamente da "etiqueta classes" (Classes Tab), o que fcil fazer no Protege. Para criar um slot para a classe Empregado (Employee): 1. Selecione Empregado (Employee) no painel "hierarquia de classes" (Class Hierarchy).

2. Clique no boto Criar Slot (Create Slot) no lado direito do painel "modelos de slots" (Template Slots), o qual apresenta o formulrio para preenchimento de dados sobre o slot:

3. Digite salrio (salary) no campo nome (name) e tecle Enter.

4. Retorne a janela principal (pode-se deixar caixa de dilogo do editor de slots para salary aberta, caso se deseje; vai-se retornar posteriormente a ela para editar mais propriedades do slot salary). Observe que o slot agora aparece no painel "modelos de slots" (Template Slots) quando Empregado (Employee) destacado.

Slots e herana
No preciso atribuir o slot nome (name) a cada classe em que se deseja que ele aparea. Qualquer subclasse de uma classe automaticamente herda todos os slots da superclasse. Por exemplo, ao clicar na classe Servio_de_Notcias (News_Service), pode-se ver que: a) o slot nome (name) j foi atribudo a essa classe atravs de herana; b) o cone do slot est diferente de quando ele foi atribudo a Autor (Author), ou seja, o cone de "slot herdado" (inherited slot) mostra que esse slot foi atribudo por herana.

Nota: Na barra de menus, clique em Help | Icons para ver a lista de todos os cones da interface do Protege, alm de descries textuais sobre o significado do cone.

Classes com mais de uma superclasse herdam slots de todas as classes superiores. Por exemplo, ao clicar na classe Editor (Editor), pode-se ver que ela herda o slot nome (name) de Autor (Author), e o slot salrio (salary) de Empregado (Employee). A herana mltipla uma funcionalidade importante do Protege.

Criao de facetas (facets) para slots


Os slots criados at aqui so bem simples. Entretanto, slots podem ter propriedades. Por exemplo, um "salrio" (salary) sempre um nmero. Pode-se tambm utilizar slots para criar relacionamentos entre as classes. As propriedades de um slot, chamadas facetas (facets), podem ser criadas e editadas a partir "etiqueta classes" (Classes Tab) usando o dilogo de especificao de slots, ou a partir da "etiqueta slots" (Slots Tab) no painel "editor de slots" (Slot Editor).

Definio de facetas de slots para salrio (salary) Criao de um relacionamento com o uso de slots

Definio de facetas de slots para salrio (salary)


Pode-se definir algumas facetas para o slot salrio (salary) criado anteriormente. 1. Selecione a classe Empregado (Employee) no painel "hierarquia de classes" (Class Hierarchy).

2. D um clique duplo no slot salrio (salary) no painel "modelos de slots" (Template Slots) para a abrir o formulrio de slots. apresentada uma caixa de dilogo solicitando que seja selecionada a "viso do slot" (Slot View). Ao editar um slot, pode-se escolher se as mudanas sero aplicadas ao slot e a todas as classes relacionados a esse slot -- "slot de nvel superior" (top level slot) -- ou apenas a classe corrente e todas as suas classes filhas, ou seja, de nvel inferior na hierarquia.

3. Nesse caso, deseja-se ver e editar o "slot de nvel superior" (top-level slot). Assegure-se que a opo "viso do slot de nvel superior" (View top-level slot) est selecionada e clique em OK. Essa ao vai alterar a definio do slot em qualquer lugar que ele aparea na ontologia.

4. No formulrio de slots resultante, selecione Flutuante (Float) no menu Tipo de valor (Value Type), a esquerda. Ao criar instncias, ser possvel fornecer apenas nmeros decimais para esse slot.

5. Entre com 0 (zero) no campo "mnimo" (Minimum) na parte inferior esquerda. Essa ao especifica que, para casa instncia de Empregado (Employee), o valor que ser atribudo ao salrio (salary) deve ser positivo.

6. Feche a caixa de dilogo de edio de slots. Pode-se ver que a descrio do slot foi alterada no painel "modelos de slots" (Template Slots). O tipo agora est configurado como "Flutuante" (Float), e o valor mnimo de 0.0 aparece na coluna "outras facetas" (Other Facets).

Note: Fazer alteraes no "slot de nvel superior" (top-level slot) significa modificar a definio fundamental do slot. Corresponde a fazer alteraes na "etiqueta de slots" (Slots Tab). Caso se selecione a opo Ver o slot na classe (View slot at class), todas as mudanas realizadas sero aplicadas apenas quela classe e a seus filhos. Por exemplo, caso se inicie um programa que permita uma pessoa pagar para fazer um estgio no jornal, pode-se criar uma nova subclasse para Empregado (Employee), denominada Pagamento_estagirio (Paying_intern), abrir o slot salrio (salary), selecionar Ver slot na classe (View slot at class) e apagar o valor mnimo. Essa ao criaria um "slot sobreposto" (slot override), o qual afetaria apenas a classe Pagamento_estagirio (Paying_intern), enquanto que para os outros empregados seria preciso criar um salrio no negativo.

Criao de um relacionamento com o uso de slots


O Protege tambm permite criar slots que podem ser utilizados para descrever relacionamentos entre classes, os quais no foram definidos na hierarquia de classes. Isso pode ser feito usando slots do tipo "instncia" (instance) ou do tipo "classe" (class). Por exemplo, um editor pode ser "responsvel por" (responsible for) um ou mais empregados. Pode-se criar um slot que representa esse relacionamento entre Editor (Editor) e Empregado (Employee), da seguinte maneira: 1. Selecione a classe Editor (Editor) no painel "hierarquia de classes" (Class Hierarchy).

2. Clique no boto "Criar Slot" (Create Slot) para Editor (Editor).

para criar um novo slot a

3. No formulrio de slots resultante, digite responsvel_por (responsible_for) no campo "nome" (Name).

4. Selecione "instncia" (Instance) no menu "tipo de valor" (Value Type).

Um novo campo, "classes permitidas" (Allowed Classes), apresentado abaixo do menu do menu "tipo de valor" (Value Type).

5. Clique no boto "adicionar classe" (Add Class) que aparece na parte superior direita da rea de "classes permitidas" (Allowed Classes). Surge uma caixa de dilogo para "selecionar classes" (Select Classes), apresentando todas as classes do projeto. Selecione Empregado (Employee) e clique em OK.

6. Para permitir que um editor seja responsvel por mais de um empregado, clique na opo "mltiplo" (multiple) na rea de "cardinalidade" (Cardinality), do lado direito da rea de "tipo de valor" (Value Type).

Aps completar os passos de 1 a 6, o slot responsvel por (responsible_for) deve estar com a seguinte configurao:

O que realmente foi feito? Foi criado um slot que abrangeu uma ou mais instncias da classe Empregado (Employee) com seus valores. Mais tarde, ao se criar uma instncia da classe Editor (Editor), ser preciso especificar por quem o editor responsvel, e poder se escolher uma ou mais instncias da classe Empregado (Employee) para preencher o valor do slot Responsvel por (responsible_for).

Insero de instncias
Instncias so os dados reais da base de conhecimento. Uma boa idia assegurar-se de que o projeto foi bem estruturado, antes de inserir um grande nmero de instncias. Caso sejam necessrias alteraes na estrutura das classes ou slots aps a insero das instncias, pode ocorrer perda de informao. Alm disso, caso se adicionem outros slots, ser necessrio voltar e preencher os valores de slots para todas as instncias criadas anteriormente. Nessa seo, vai-se criar duas instncias para a classe Editor (Editor): 1. Clique na "etiqueta instncias" (Instances Tab). Essa etiqueta tem trs painis. O primeiro, do lado esquerdo, apresenta a hierarquia de classes (class hierarchy). O painel do meio, o qual aparece em branco, apresentar a lista de instncias a serem criadas para uma classe especfica. O terceiro painel corresponde ao "editor de instncias" (Instance Editor), o qual apresenta o formulrio para a instncia marcada no momento, na qual sero inseridos valores de slots.

2. Clique em

para expandir as subclasses de Empregado (Employee).

3. Clique em Editor (Editor). O boto Criar instncia (Create Instance) no "navegador de instncias" (Instance Browser) se torna ativo, indicando que pode-se agora criar uma instncia.

4. Clique no boto Criar instncia (Create Instance) . Uma instncia criada, e o formulrio do "editor de instncias" (Instance Editor) aparece. Pode-se observar que existem campos, um para cada slot criado anteriormente. Esses campos devem ser usados para inserir valores para os slots. Note que no painel "hierarquia de classes" (Class

Hierarchy), a apresentao da classe Editor (Editor) foi alterada quando se criou a instncia. O nmero "um" entre parnteses (1), aps a classe Editor (Editor), indica que aquela classe agora possui uma instncia.

5. Entre como o nome Chief Honcho no campo Nome (Name).

6. Entre com o valor 150000 no campo Salrio (Salary). Observe que os caracteres nesse campo vo aparecer em vermelho, se outro valor que no seja um valor flutuante (float) vlido for inserido (no Protege, a tentativa de inserir valores que no satisfaam as restries determinadas para o slot, far com que esse valor seja apresentado em vermelho).

A "etiqueta instncias" (Instances Tab) agora, deve parece com a figura abaixo. Observe que a instncia ainda tem um nome genrico no Navegador de Instncias (Instance Browser), tal como "tutorial_instance_0". Na prxima

seo, ser explicado como alterar essa situao.

Para criar uma outra instncia: 1. Clique no boto Criar instncia (Create Instance) de instncias" (Instance Browser). no "navegador

2. Digite Mr. Science no campo Nome (Name).

3. Digite 60000 no campo Salrio (Salary).

Agora que se criaram algumas instncias, pode-se definir um relacionamento entre elas, por exemplo, pode-se dizer que Chief Honcho "responsvel por" (responsible for) Mr. Science. Antes de fazer isso, de forma a tornar o trabalho com as instncias mais simples, vai-se configurar um "slot de apresentao" (display slot) para a classe Editor (Editor). O Protege apresenta o valor do "slot de apresentao" cada vez que forem apresentadas as instncias da classe. A configurao desse slot explicada na prxima seo.

Configurao do slot de apresentao

Para cada classe da ontologia, pode-se especificar um de seus slots para ser um "slot de apresentao" (display slot). O Protege vai apresentar o valor desse slot cada vez que apresentar instncias da classe. Caso no se configure um "slot de apresentao", o Protege apresenta um nome gerado pelo sistema para o slot, tal como "tutorial_Instance_0". Assim, til configurar um "slot de apresentao" para todas as classes que tero instncias. De fato, pode-se escolher configurar esses slots para as classes antes mesmo de comear a criar instncias. Para configurar um "slot de apresentao" (display slot) para a classe Editor (Editor): 1. Selecione a "etiqueta de instncias" (Instances Tab). 2. Selecione Editor no painel "hierarquia de classes" (Class Hierarchy). 3. Clique no cone do menu "Instncia" (Instance), em uma seta que aponta para baixo, do lado direito do "navegador de instncias" (Instance Browser).

4. Selecione no menu Configurar Slot de Apresentao (Set Display Slot).

5. Selecione nome (name) no menu Slot de Apresentao (Display Slot). 6. A apresentao da lista de instncias no "navegador de instncias" (Instance Browser) se altera para refletir o "slot de apresentao" (display slot) escolhido. As instncias do "editor de classes" (Class Editor) so agora listadas por valor do nome (name) do slot (instncias so sempre apresentadas em ordem alfabtica ou numrica). A partir de agora, ser possvel navegar nas instncias da classe Editor (Editor) por nome (name) na "etiqueta de instncias" (Instances Tab), e em qualquer outro lugar na interface do Protege onde listas de instncias so apresentadas.

Criao de um relacionamento entre instncias


Nessa seo, a instncia Chief Honcho ser modificada para torn-lo responsvel pelo Mr. Science: 1. Clique na "etiqueta de instncias" (Instances Tab), clique no cone para expandir a classe Empregado (Employee) no painel "hierarquia de classes" (Class Hierarchy), e selecione a classe Editor (Editor).

Instncias de Editor so agora listadas no "navegador de instncias" (Instance Browser).

2. Selecione Chief Honcho no "navegador de instncias" (Instance Browser). Sero apresentados os slots para Chief Honcho no formulrio do "editor de instncias" (Instance Editor), inclusive o slot Responsvel Por (Responsible For). Note que o Protege usa o slot "nomes" (names) no formulrio de instncias, mas automaticamente converte os traos baixos (underscores) para espaos e torna maiscula a primeira letra de cada palavra. 3. Clique no boto Adicionar Instncia (Add Instance) do lado direito superior do campo Responsvel por (Responsible For).

4. Uma caixa de dilogo com dois painis aberta. Do lado esquerdo, pode-se ver a hierarquia de "classes permitidas" (allowed classes) para o slot responsvel_por (responsible_for).

5. D um clique simples em Editor. Do lado direito do dilogo, todas as instncias da classe Editor (Editor) so apresentadas. Selecione Mr. Science e clique OK.

6. Agora, foi criado um relacionamento na ontologia, especificando que Chief Honcho "responsvel por" (responsible for) Mr. Science.

Personalizao de um formulrio
Para cada classe na ontologia, o Protege gera um formulrio padro que pode ser utilizado para inserir dados, ou seja, instncias. Os formulrios (forms) contm um campo de entrada de dados, denominado "forma grfica" (widget), para cada slot relacionado a uma classe. Existem diferentes tipos de "formas grficas" (widgets), para manipular os vrios tipos de valores de slots. Por exemplo, o Protege atribui um widget denominado "InstanceListWidget" a slots com tipos de valores "instncia" (instance) e cardinalidade mltipla. Caso no se queira utilizar o formulrio padro que o Protege gera para uma classe, pode-se personaliz-lo atravs da "etiqueta formulrios" (Forms Tab). Dentre outras possibilidades, pode-se redimensionar widgets, arrast-los para outros locais do formulrio, ocult-los, e mesmo selecionar diferentes tipos de widgets.

Para ver como as mudanas que sero realizadas na "etiqueta formulrios" (Forms Tab) nas prximas sees refletem no "editor de instncias" (Instance Editor), v at o "editor de instncias" (Instances Tab), e d um clique duplo sobre Chief Honcho no "navegador de instncias" (Instance Browser) para apresentar uma janela separada do "editor de instncias" (Instance Editor). Observe que se foram criados slots para a classe Editor de forma diferente daquela explicada nesse tutorial, o formulrio pode no ser apresentado exatamente igual as figuras das sees seguintes.

Redimensionamento de formas grficas (widgets) Movimentao de formas grficas (widgets) Personalizao dos botes das formas grficas (widgets) Ocultamento de uma forma grfica (widget) Apresentao de uma forma grfica (widget) oculta Uso do layout padro

Redimensionamento de formas grficas (widgets)


Pode-se redimensionar um widget arrastando suas linhas de contorno ou cantos. Para redimensionar um widget dessa forma: 1. Clique na "etiqueta de formulrios" (Forms Tab). 2. Assegure-se de que Editor est selecionado no "navegador de formulrios" (Form Browser), a esquerda. Em seguida, selecione o tipo de widget denominado "FloatFieldWidget" para o slot salrio (salary), clicando sobre ele no "editor de formulrios" (Form Editor), do lado direito da tela. Esse widget ento destacado com uma linha de contorno verde, que confirma que ele foi selecionado. Observe que a caixa tipo combo box denominada "tipo de forma grfica selecionada" (Selected Widget Type), do lado superior direito, informa que se trata de uma "forma grfica para campo flutuante" (FloatFieldWidget), a qual um widget usado para entrada de nmeros com ponto flutuante.

3. Clique sobre o lado direito do widget e arraste para aumentar seu tamanho. Tente alinhar o lado direito desse widget com o lado direito do widget do slot nome (name).

4. Observe que o cone em frente a Editor no "navegador de formulrios" (Form Browser) foi alterado. O novo cone indica que o formulrio para essa classe foi personalizado.

Movimentao de formas grficas (widgets)


Pode-se tambm mover qualquer widget arrastando-o: 1. Selecione a opo "InstanceListWidget" para o slot responsvel_por (responsible_for).

2. Arraste-o para a parte superior direita do formulrio, de forma que a linha superior do widget se alinhe como a linha superior do widget para o slot nome (name).

Personalizao dos botes de formas grficas (widgets)


Pode-se personalizar formas grficas (widgets) de forma que apresentem um ttulo diferente, ou mesmo um conjunto de botes diferente do padro. Por exemplo, pode-se desejar ter a possibilidade de apagar uma instncia do projeto clicando em um boto na "InstanceListWidget", que foi atribuda ao slot responsvel_por (responsible_for). Para apresentar o boto de apagar: 1. D um clique duplo no "InstanceListWidget" denominado Responsvel Por (Responsible For) no "editor de formulrios" (Form Editor).

2. Clique na "etiqueta botes" (Buttons tab).

3. Clique na caixa de seleo em frente de "Mostrar boto de apagar instncia" (Show Delete Instance Button) para selecionar essa opo.

4. Clique em OK. A "forma grfica para lista de instncias"


(InstanceListWidget) para o slot responsvel_por (responsible_for) tem agora cinco botes.

5. Ocultamento de uma forma grfica (widget)


Pode-se ocultar uma "forma grfica" (widget) para que ela no possa ser vista no "editor de formulrios" (Form Editor) e no "editor de instncias" (Instance Editor). Essa ao no remove qualquer informao da ontologia. Por exemplo, pode-se ocultar o widget para o slot salrio (salary). Para fazer isso: 1. Selecione a "forma grfica para campo flutuante" (FloatFieldWidget) denominado Salrio (Salary) no "editor de formulrios" (Form Editor).

2. Selecione "<none>" para a caixa combo box "tipo de forma grfica selecionada" (Selected Widget Type).

3. A "forma grfica" (widget) para o slot salrio (salary) no est mais visvel no "editor de formulrios" (Form Editor).

Apresentao de uma forma grfica (widget) oculta


Para restaurar e voltar a visualizar uma "forma grfica" (widget) oculta: 1. No "navegador de formulrio" (Form Browser), clique no boto Ver personalizaes de formulrios (View Form Customizations) do lado direito superior.

2. Na caixa de dilogo "configurar formulrio" (Configure form), pode-se ver uma lista de todos os slots e suas formas grficas correspondentes.

3. Clique em "<none>" na coluna do lado direito, ao lado de salrio (salary), para apresentar diferentes opes de widgets para esse slot, e selecione "forma grfica de ponto flutuante" (FloatFieldWidget).

4. Clique OK.

5. A "forma grfica de ponto flutuante" (FloatFieldWidget) para o slot salrio (salary) est agora visvel novamente no "editor de formulrio" (Form Editor).

Uso do layout padro

Caso as personalizaes realizadas no atendam as expectativas, o Protege permite rearranjar rapidamente todos as "formas grficas" (widgets) visveis de acordo com o layout padro, acomodando o tamanho atual de cada widget. Para que o Protege organize automaticamente todas as "formas grficas" (widgets) de acordo com o layout padro: 1. Assegure-se que Editor est selecionado no "navegador de formulrios" (Form Browser). 2. Clique no boto Remover personalizaes de formulrios (Remove Form Customizations) , do lado superior direito do "navegador de formulrios". 3. O formulrio se ajusta para apresentar o layout padro. Caso se tenham ocultado "formas grficas" (widgets), elas sero apresentadas novamente. Observe tambm que o cone em frente de Editor volta a ser o cone de formulrio padro .

Criao e armazenamento de uma consulta


A "etiqueta de consultas" (Queries Tab) permite que sejam realizadas consultas no projeto e que se recuperem todas as instncias que atendam a critrios especficos. Para criar uma consulta (query), deve-se selecionar uma ou mais classes, e um ou mais slots dessas classes. Pode-se tambm salvar as consultas na "biblioteca de consultas" (Query Library) para utilizao futura.

Criao de uma consulta (query) Execuo de uma consulta (query) Armazenamento de uma consulta (query) Recuperao de uma consulta (query)

Criao de uma consulta (query)


Considere-se que se deseja localizar todos os empregados que tem um salrio superior a $75,000 por ano. Para criar uma consulta:

1. Clique na "etiqueta de consultas" (Queries tab).

2. Clique no boto Selecionar Classes (Select Cls) acima da caixa de texto para classes (class), no painel de consultas (Query pane).

3. Selecione Empregado (Employee) na caixa de dilogo "selecionar classes" (Select Classes), e ento clique em OK.

Empregado (Employee) agora apresentado na caixa de texto para classes.

4. Clique no boto "selecionar slot" (Select Slot) texto para Slots.

acima da caixa de

5. Selecione salrio (salary) na caixa de dilogo "selecionar slot" (Select Slot) e clique OK.

O menu do lado direito da caixa de texto de slots est agora ativo, e a caixa de texto mais a direita da janela relembra que o tipo de valor do slot selecionado "ponto flutuante" (float).

6. Selecione " maior que" (is greater than) no menu suspenso (drop down menu). Em seguida, entre com o valor "75000" na caixa de texto Float.

Execuo de uma consulta (query)


Agora que a consulta est configurada, pode-se execut-la e ver os resultados. 1. Para executar a consulta, clique no boto "encontrar" (Find), na parte inferior direita do "painel de consultas" (Query pane).

2. Os resultados so mostrados no painel de "resultados de busca" (Search Results), do lado direito da tela. Caso no seja possvel ver os resultados, ser preciso aumentar a janela ou mover a barra que separa o painel.

Note: Para ver o "editor de instncias" (Instance Editor) basta dar um clique duplo em qualquer instncia dos "resultados da busca" (Search Results).

Armazenamento de uma consulta (query)


Pode-se salvar qualquer consulta antes ou depois que ela for executada. Para salvar uma consulta na "biblioteca de consultas" (Query Library): 1. Clique no boto Adicionar a Biblioteca de consultas (Add to Query Library) , do lado direito da caixa de texto "nome da consulta" (Query Name).

2. Digite "sample_query" na caixa de dilogo "entrar com o nome da consulta" (Input Query Name).

Note: Pode-se digitar um nome de consulta diretamente na caixa de texto "nome da consulta" (Query Name) na janela principal e clicar no boto Adicionar a biblioteca de consultas (Add to Query Library).

3. Clique OK. O nome apresentado na caixa de texto "nome da consulta" (Query Name) e a consulta listada no painel "biblioteca de consultas" (Query Library) na parte de inferior da tela.

Recuperao de uma consulta (query)


Para recuperar um consulta salva, ela deve ser selecionada na "biblioteca de consultas" (Query Library): 1. Em primeiro lugar, porque se est executando uma mesma consulta novamente, clique no boto "limpar" (Clear) para limpar os resultado de consulta. Caso contrrio, no ser possvel visualizar a alterao.

2. Selecione "sample_query" na "biblioteca de consultas" (Query Library) na parte inferior da tela. Caso no seja possvel ver a "biblioteca de consultas" ( Query Library), ser preciso aumentar a janela ou mover a barra de separao.

3. Clique no boto Recuperar consulta (Retrieve Query) recuperar a consulta escolhida.

para

4. A consulta salva agora apresentada na parte superior da janela. Caso desejado, pode-se nesse momento, alterar a consulta. Pode-se tambm combinar consultas clicando no boto Mais (More).

5. Para executar a consulta, clique no boto "encontrar" (Find).

Voc est no site www.eci.ufmg.br/mba - Tutorial: Noes bsicas para uso do Protege. Traduo: Prof. Mauricio B.Almeida - mba@eci.ufmg.br - Escola de Cincia da Informao - UFMG Original: Sachs, E. Getting Started with Protege-Frames. (2006). Available from Internet: <http://protege.stanford.edu/doc/tutorial/get_started/get-started.html>. Acess 9 July 2006

You might also like