Ontologia (ciência da computação)
Origem: Wikipédia, a enciclopédia livre.
- Nota: Esta página é sobre o termo utilizado na ciência da computação. Se procura outros significados da mesma expressão, consulte Ontologia (desambiguação).
Em Ciência da Computação e Ciência da Informação, uma ontologia é um modelo de dados que representa um conjunto de conceitos dentro de um domínio e os relacionamentos entre estes. Uma ontologia é utilizada para realizar inferência sobre os objetos do domínio.
Ontologias são utilizadas em inteligência artificial, web semântica, engenharia de software e arquitetura da informação, como uma forma de representação de conhecimento sobre o mundo ou alguma parte deste. Ontologias geralmente descrevem:
- Indivíduos: os objetos básicos;
- Classes: conjuntos, coleções ou tipos de objetos[1];
- Atributos: propriedades, características ou parâmetros que os objetos podem ter e compartilhar;
- Relacionamentos: as formas como os objetos podem se relacionar com outros objetos.
Índice |
[editar] Diferença de ontologia na Filosofia
O termo ontologia tem origem na Filosofia, onde é o nome de um ramo da metafísica ocupado da existência. De acordo com Tom Gruber da Stanford University, no entanto, o significado de ontologia para a ciência da computação é "uma descrição de conceitos e relacionamentos que podem existir para um agente ou uma comunidade de agentes." Ele especifica ainda que uma ontologia é geralmente escrita "como um conjunto de definições de um vocabulário formal."
[editar] Elementos de uma ontologia
Atualmente, as ontologias compartilham muitas semelhanças estruturais, independente da linguagem em que são expressas. Como mencionado acima, a maioria das ontologias descrevem indivíduos (instâncias), classes (conceitos), atributos e relacionamentos. Esta seção descreve cada uma destes componentes.
[editar] Indivíduos (instâncias)
Indivíduos (instâncias) são os componentes básicos de uma ontologia. Os indivíduos em uma ontologia podem incluir objetos concretos como pessoas, animais, mesas, automóveis, moléculas, planetas, assim como indivíduos abstratos como números e palavras. Para ser exato, uma ontologia não precisa necessariamente incluir indivíduos, porém um dos propósitos gerais de uma ontologia é apresentar um meio de classificação de indivíduos, mesmo que estes não sejam explicitamente parte da ontologia.
[editar] Classes (conceitos)
Classes (conceitos) são grupos abstratos, conjuntos ou coleções de objetos. Eles podem conter indivíduos, outras classes, ou uma combinação de ambos. Alguns exemplos de classes[2]:
- Pessoa, a classe de todas as pessoas;
- Molécula, a classe de todas as moléculas;
- Número, a classe de todos os números;
- Veículo, a classe de todos os veículos;
- Carro, a classe de todos os carros;
- Indivíduo, representando a classe de todos os indivíduos;
- Classe, representando a classe de todas as classes;
- Coisa, representando a classe de todas as coisas.
Ontologias se diferenciam nos seguintes aspectos: se classes podem conter outras classes, se uma classe pode pertencer a si mesma, se existe uma classe universal (isto é, uma classe contendo tudo), etc. Algumas vezes estas restrições são feitas para evitar alguns paradoxos conhecidos.
Uma classe pode incluir ou estar incluída em outras classes. Por exemplo, Veículo inclui Carro, já que (necessariamente) qualquer coisa que é membro de Carro é também membro de Veículo. A relação de inclusão é utilizada para criar uma hierarquia de classes, geralmente com uma classe geral como Coisa no topo, e classes específicas como Ford Fiesta 2002 na base.
[editar] Atributos
Objetos em uma ontologia podem ser descritos através de atributos. Cada atributo tem pelo menos um nome e um valor, e é utilizado para armazenar informação que é específica para o objeto ligado a ele. Por exemplo, o objeto "Ford Fiesta" tem atributos como:
- Nome: Ford Fiesta
- Número_de_portas: 4
- Motor: {1.0, 1.3}
- Câmbio: 5-marchas
O valor de um atributo pode ser um tipo de dados completo; neste exemplo, o valor do atributo chamado Motor é uma lista de valores, não um valor simples.
[editar] Relacionamentos
Um uso importante dos atributos é a descrição de relacionamentos (também conhecidos como relações) entre objetos na ontologia. Geralmente, uma relação é um atributo cujo valor é outro objeto na ontologia. Muito do poder das ontologias vem da habilidade de descrever estas relações. O conjunto de todas as relações descreve a semântica do domínio.
O tipo mais importante de relação é a relação de inclusão (é-superclasse-de, é-um, é-subtipo-de ou é-subclasse-de), que define quais objetos são membros de quais classes de objetos. Por exemplo, podemos notar que o "Ford Fiesta" é-um "Carro de 4 portas", que, por sua vez, é-um "Carro".
A adição de relacionamentos é-um cria uma taxonomia hierárquica, uma estrutura de árvore que descreve que objetos se relacionam com quais outros. Neste estrutura, cada objeto é um "filho" de uma "classe pai".
Outro tipo comum de relação é a do tipo parte-de que representa como objetos se combinam para formas objetos compostos. Por exemplo, se nós extendermos nosso exemplo de ontologia para incluir objetos como Rodas, diriamos que "Roda é-parte-de Ford Fiesta" já que uma roda é um dos componentes de um Ford Fiesta.
Além das relações comuns como é-um e parte-de, as ontologias geralmente incluem outros tipos de relações que refinam ainda mais a semântica do modelo. Estas relações geralmente são específicas do domínio e são utilizadas para responder tipos particulares de questões.
[editar] Ontologias de domínio e Ontologias superiores
Uma ontologia de domínio (domain ontology ou domain-specific ontology) modela um domínio específico, ou parte do mundo. Ela representa os significados dos termos aplicados ao domínio em questão.
Uma ontologia superior (upper ontology ou foundation ontology) é um modelo dos objetos comuns que são geralmente aplicáveis a uma grande variedade de ontologias de domínio. Ela contém um glossário central que permite descrever termos em vários domínios. Existem várias ontologias superiores padronizadas para uso, como: Dublin Core, GFO, OpenCyc/ResearchCyc, SUMO e DOLCE.
Já que as ontologias de domínio representam conceitos muito específicos, geralmente são incompatíveis entre si. A medida em que os sistemas dependem de ontologias de domínio, eles precisam mesclar ontologias em representações mais gerais. Isto representa um desafio para o engenheiro de ontologias. Atualmente, mesclar ontologias é um processo manual e que consome muito tempo e recursos. O uso de uma ontologia superior que forneça uma definição comum para termos chave pode tornar este processo menos custoso. Existem estudos a respeito de técnicas para mesclar ontologias, porém esta área de pesquisa ainda é muito teórica.
[editar] Bibliotecas de ontologias
O desenvolvimento de ontologias para a Internet levou ao surgimentos de serviços que disponibilizam listas ou diretórios de ontologias com mecanismos de buscas. Estes mecanismos foram chamados de bibliotecas de ontologias.
Os serviços abaixo são bibliotecas estáticas ou gerenciadas por pessoas:
- A DAML Ontology Library mantém um legado de ontologias em DAML.
- O SchemaWeb é um diretório de esquemas RDF expressados em RDFS, OWL e DAML+OIL.
Os serviços abaixo são diretórios e mecanismos de busca. Eles incluem crawlers que vasculham a Web procurando por ontologias bem formadas.
- O Swoogle é um diretório e mecanismo de busca para todos os recursos RDF disponíveis na Web, incluindo ontologias.
- A biblioteca OntoSelect oferece um serviço similar para ontologias em RDF/S, DAML e OWL.
- O Ontaria é um "diretório pesquisável e navegável de dados da web semântica", que foca em vocabulários RDF com ontologias OWL.
[editar] Notas
- ↑ Veja Classe (biologia) e Classe (programação), conceitos relevantes, mas não idênticos a noção de "classe" em ontologias.
- ↑ Note que os nomes dados as classes são apenas convenções.
[editar] Ver também
[editar] Ligações externas
- What is an ontology? (em inglês)
- The Protégé Ontology Editor and Acquisition System (em inglês)