• Nenhum resultado encontrado

Teoria, conceitos, relacionamentos e atributos de uma ontologia

No documento alexandramoreira (páginas 90-95)

4 FUNDAMENTOS COMPUTACIONAIS ADOTADOS

4.3 Ontologias

4.3.3 Teoria, conceitos, relacionamentos e atributos de uma ontologia

A ontologia na Ciência da Computação, de acordo com Guarino (1998), tem o papel de limitar as interpretações de uma sentença. Por exemplo, quando alguém diz "o servidor caiu", existem várias interpretações possíveis, sendo que duas são bastante frequentes:

1) o servidor é um trabalhador, geralmente ligado ao setor público, e ele caiu no chão; ou

2) o servidor é um computador usado para disponibilizar serviços e ele parou de funcionar.

No primeiro caso, “servidor” é um papel social exercido por uma pessoa, e no segundo caso, “servidor” é uma função tecnológica exercida por uma máquina. A natureza do evento “caiu” também é distinta nos dois casos. Ao definir a natureza dos conceitos envolvidos no enunciado estaremos também limitando as interpretações possíveis. A FIG. 12 ilustra o papel da ontologia. Note que a limitação não impõe uma interpretação exata, uma vez que isso não é possível no caso geral.

FIGURA 12 - Relação entre conceptualização, linguagem e ontologia. FONTE – GUARINO, 1998.

O entendimento sobre conceitos na ontologia é equivalente à ideia clássica de categoria, ou seja, um conceito é uma categoria cuja pertinência de um elemento é definida por condições mínimas e necessárias. Uma ontologia é uma rede de conceitos ligados por relações.

Uma ontologia não está ligada a nenhuma linguagem de representação específica, mas algumas linguagens e notações lógicas foram desenvolvidas com o intuito de representar ontologias. A notação mais utilizada é a lógica de descrições, derivada da linguagem KL-ONE (BRACHMAN; SCHMOLZE, 1985). KL-ONE foi desenvolvida para formalizar as linguagens de representação estruturadas como os frames de Minsky. A lógica das descrições é um subconjunto computável da lógica. Ou seja, é sempre possível verificar se uma sentença pode ser inferida de outro conjunto de sentenças. Os elementos que são expressos na lógica de descrições são os seguintes:

Indivíduos – representados por constantes. Exemplo: Alexandra

Conceitos - representados por predicados unários. Exemplo: Estudante(Alexandra)

Papéis - representados por predicados binários. Exemplo: Orienta(Margarida, Alexandra)

Existem também os construtores, que são usados para formar novos conceitos e papéis, a partir de conceitos e papéis prévios. Eles devem obedecer à restrição de serem decidíveis (passíveis de serem verificados computacionalmente) em relação à veracidade e à subjugação (taxonomia). Assim, podemos usar os conceitos de “estudante” e “pesquisador” para definir o conceito de “estudante_doutorado”, usando o operador de interseção de conceitos (∩): estudante_doutorado ⊆ estudante ∩ pesquisador.

A lógica de descrições é, na verdade, uma família de lógicas. Cada lógica particular recebe um nome, de acordo com os operadores que possui. Por exemplo, a lógica de descrições mais simples é a ALC, que possui os operadores para conceitos de união, interseção e de negação restrito a alguns casos. A lógica de descrições que é a base da Web semântica e da OWL é a SHOIN, que possui operadores para papéis transitivos (S), para papéis hierárquicos (H), para nominais (O), para papéis inversos (I, exemplo: temPai X temFilho), e para restrições de número (N, exemplo: tem uma mãe). Uma base de conhecimento expressa em lógica de descrições é separada em duas seções: a TBOX e a ABOX. A seção TBOX (Terminological BOX) define a terminologia que será usada, ou seja, os conceitos e papéis do domínio em questão. Já

ABOX (Assertion BOX) registra as declarações sobre os indivíduos do domínio, usando o vocabulário estabelecido pela TBOX. A FIG. 13 mostra um exemplo de base de conhecimento em lógica de descrições.

TBOX ABOX

Estudante ⊆ Pessoa Empregado ⊆ Pessoa Docente ⊆ Empregado Pesquisador ⊆ Pessoa

Estudante_doutorado ⊆ Estudante ∩ Pesquisador ORIENTA ⊆ Docente X Estudante_doutorado

Estudante_doutorado ⊆ Estudante ∩ ∃ORIENTA.Docente

Estudante(Alexandra) Pesquisador(Alexandra) Docente(Margarida)

ORIENTA(Alexandra, Margarida)

FIGURA 13 - Exemplo de base de conhecimento em lógica de descrições.

Note-se que não basta afirmar que um estudante de doutorado é um estudante e pesquisador. É preciso adicionar a restrição de que deve existir um orientador que o orienta. A interpretação das sentenças (semântica) é estabelecida ao modo da teoria dos modelos da lógica clássica. Deste modo, “Estudante(Alexandra)” é uma sentença verdadeira se e somente se a interpretação de “Alexandra”, denotada por AlexandraI, pertencer ao conjunto resultante da interpretação de “Estudante” denotada por

EstudanteI.

A notação OWL é basicamente a expressão da lógica de descrições (tipicamente a SHOIN) na notação XML. Por exemplo, a base de conhecimento da FIG. 13, traduzida para OWL, ficaria como mostrado na FIG. 14.

<Ontology xmlns="http://www.w3.org/2002/07/owl#" ...

<Declaration> <Class IRI="#Docente"/> </Declaration> <Declaration> <Class IRI="#Empregado"/> </Declaration> <Declaration> <Class IRI="#Estudante"/> </Declaration> <Declaration> <Class IRI="#Estudante_doutorado"/> </Declaration> <Declaration> <Class IRI="#Pesquisador"/> </Declaration> <Declaration> <Class IRI="#Pessoa"/> </Declaration> <Declaration> <ObjectProperty IRI="#ORIENTA"/> </Declaration> <Declaration> <ObjectProperty IRI="#ORIENTADA_POR"/> </Declaration> <Declaration> <NamedIndividual IRI="#Alexandra"/> </Declaration> <Declaration> <NamedIndividual IRI="#Margarida"/> </Declaration> <EquivalentClasses> <Class IRI="#Estudante_doutorado"/> <ObjectIntersectionOf> <Class IRI="#Estudante"/> <Class IRI="#Pesquisador"/> </ObjectIntersectionOf> </EquivalentClasses> <EquivalentClasses> <Class IRI="#Estudante_doutorado"/> <ObjectSomeValuesFrom> <ObjectProperty IRI="#ORIENTADA_POR"/>

<Class IRI="#Docente"/> </ObjectSomeValuesFrom> </EquivalentClasses> <SubClassOf> <Class IRI="#Docente"/> <Class IRI="#Empregado"/> </SubClassOf> <SubClassOf> <Class IRI="#Empregado"/> <Class IRI="#Pessoa"/> </SubClassOf> <SubClassOf> <Class IRI="#Estudante"/> <Class IRI="#Pessoa"/> </SubClassOf> <SubClassOf> <Class IRI="#Estudante_doutorado"/> <Class IRI="#Pessoa"/> </SubClassOf> <SubClassOf> <Class IRI="#Pesquisador"/> <Class IRI="#Pessoa"/> </SubClassOf> <ClassAssertion> <Class IRI="#Estudante_doutorado"/> <NamedIndividual IRI="#Alexandra"/> </ClassAssertion> <ClassAssertion> <Class IRI="#Docente"/> <NamedIndividual IRI="#Margarida"/> </ClassAssertion> <ObjectPropertyAssertion> <ObjectProperty IRI="#ORIENTADA_POR"/> <NamedIndividual IRI="#Alexandra"/> <NamedIndividual IRI="#Margarida"/> </ObjectPropertyAssertion> <InverseObjectProperties> <ObjectProperty IRI="#ORIENTADA_POR"/> <ObjectProperty IRI="#ORIENTA"/> </InverseObjectProperties> <InverseFunctionalObjectProperty> <ObjectProperty IRI="#ORIENTADA_POR"/> </InverseFunctionalObjectProperty> <ObjectPropertyDomain> <ObjectProperty IRI="#ORIENTA"/> <Class IRI="#Docente"/> </ObjectPropertyDomain> <ObjectPropertyDomain> <ObjectProperty IRI="#ORIENTADA_POR"/> <Class IRI="#Estudante_doutorado"/> </ObjectPropertyDomain> <ObjectPropertyRange> <ObjectProperty IRI="#ORIENTA"/> <Class IRI="#Estudante_doutorado"/> </ObjectPropertyRange> <ObjectPropertyRange> <ObjectProperty IRI="#ORIENTADA_POR"/> <Class IRI="#Docente"/> </ObjectPropertyRange> </Ontology>

No documento alexandramoreira (páginas 90-95)