Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

ENGENHARIA DE 
CONHECIMENTO 
OBJETIVOS DE APRENDIZAGEM
 > Descrever ontologias para sistemas de informação.
 > Identificar a relevância da aplicação de ontologias no desenvolvimento de 
sistemas.
 > Discutir a aplicabilidade de Ontology Web Language (OWL).
Introdução
O uso de uma ontologia durante o estágio de desenvolvimento de um software 
permite que os membros da equipe pratiquem um nível mais alto de reutilização 
de conhecimento do que geralmente acontece na engenharia de software. O uso 
de um vocabulário comum permite o reaproveitamento e o compartilhamento do 
conhecimento do domínio da aplicação. Além disso, uma ontologia também pode 
ser usada para apoiar a integração de informações e a comunicação entre agentes. 
Neste capítulo, você estudará as ontologias no contexto de sistemas de in-
formação e como elas são compostas. Também verá a importância do uso de 
ontologias no desenvolvimento de sistemas de conhecimento. Por fim, conhecerá 
a linguagem de ontologias OWL e como ela funciona. 
Conceitos básicos
A representação do conhecimento e os sistemas de organização são consi-
derados processos extremamente importantes em meio ao aumento da pro-
dução de informação (FOGL, 1979). Taxonomias e ontologias são ferramentas 
que têm sido bastante utilizadas como base para desenvolver esses tipos 
de sistemas. Enquanto uma taxonomia permite organizar informações e/ou 
Ontologias
Nicolli Souza Rios Alves
conhecimentos em relacionamentos hierárquicos entre termos (ADAMS, 2000), 
uma ontologia consiste numa representação de vocabulário frequentemente 
especializada em algum domínio ou assunto (CHANDRASEKARAN; JOSEPHSON; 
BENJAMINS, 1999). Dessa forma, apoia atividades de captura, representação, 
busca, armazenamento e padronização do conhecimento, descrevendo um 
vocabulário consistente, completo e não ambíguo (GUARINO, 1998).
Uma ontologia consiste numa especificação formal e explícita de uma 
conceitualização compartilhada. Além disso, pode assumir uma variedade de 
formas, mas inclui essencialmente um vocabulário de termos e algumas espe-
cificações de seu significado, tudo isso contendo definições e uma indicação 
de como os conceitos estão relacionados entre si. Isso impõe de forma coletiva 
uma estrutura no domínio e restringe as possíveis interpretações dos termos.
Gruber (1995) define uma ontologia como a especificação de concei-
tualizações, usada para ajudar programas e pessoas a compartilhar 
conhecimento. Essa conceitualização é o ajustamento do conhecimento sobre 
o mundo em termos de entidades (as coisas, as relações que elas mantêm e as 
restrições entre si). Já o termo especificação refere-se à representação dessa 
conceitualização de forma concreta, em que podemos ter a codificação da 
conceitualização em uma linguagem de representação do conhecimento como 
um passo nessa especificação. 
Atualmente, há diferentes formalismos de representação de conhecimento 
e suas linguagens para a formação/implementação de ontologias. Cada um 
desses formalismos fornece diferentes componentes, mas compartilham o 
seguinte conjunto mínimo de componentes (CORCHO; FERNANDEZ-LOPEZ; 
GOMEZ-PEREZ, 2007):
 � Classes — representam conceitos que possuem sentido mais amplo. No 
domínio de viagens, por exemplo, os conceitos podem ser: localizações 
(cidades e povoados), alojamentos (hotéis, hostel e camping) e meios 
de transporte (aviões, automóveis, motos e navios). 
 � Atributos — geralmente se distinguem dos relacionamentos porque seu 
alcance é um tipo de dados, como string, número e assim por diante, 
enquanto o relacionamento se trata de um conceito. 
 � Relacionamentos — representam um tipo de associação entre conceitos 
do domínio. Normalmente, um relacionamento é de um tipo específico 
(ou classe) que especifica em que sentido o objeto está relacionado a 
outro objeto na ontologia. 
Ontologias2
 � Axiomas formais — têm como função modelar sentenças que são 
sempre verdadeiras. Normalmente são usados para representar co-
nhecimentos que não podem ser definidos formalmente por outros 
componentes. São muito úteis para inferir novos conhecimentos.
 � Instâncias — usadas para representar elementos ou indivíduos em 
uma ontologia.
A pesquisa na área de ontologias está se tornando cada vez mais difundida 
no campo da ciência da computação. Embora esse termo advenha original-
mente da filosofia, ganhou um papel específico e importante em áreas em 
crescimento como inteligência artificial, engenharia de software, redes de 
computadores, linguística computacional e teoria de bancos de dados. A im-
portância e o reconhecimento da ontologia têm aumentado consideravelmente 
em um vasto leque de áreas de pesquisa, como engenharia do conhecimento, 
representação do conhecimento, modelagem qualitativa, engenharia da 
linguagem, design de banco de dados, modelagem de informação, integração 
de informação, análise orientada a objetos, organização e gerenciamento do 
conhecimento, entre outros tantos. Sem falar em áreas não relacionadas à 
computação, como tradução de linguagem natural, engenharias e sistemas 
de informações geográficas, jurídicas e biológicas. 
As ontologias são divididas de acordo com seu nível de generalidade, 
podendo ser classificadas em quatro tipos, como mostra a Figura 1.
Figura 1. Tipos de ontologias.
Fonte: Adaptada de Guarino (1998).
Ontologias 3
 � Ontologia de nível superior ou de fundamentação — descreve elementos 
genéricos, como espaço, tempo, matéria, objeto, evento e ação, que 
não dependem de um determinado problema ou domínio. 
 � Ontologia de domínio e ontologia de tarefa — descrevem, respecti-
vamente, o vocabulário relacionado a um domínio genérico (como 
medicina ou automóveis) e uma tarefa ou atividade genérica (como 
diagnosticar ou vender), ao especializar os termos introduzidos na 
ontologia de nível superior.
 � Ontologia de aplicação — descrevem conceitos que pertencem simul-
taneamente a um domínio e a uma tarefa, por meio da especialização 
dos conceitos de uma ontologia de domínio e uma ontologia de tarefa. 
Por sua vez, Calero e colaboradores (2006) propõem uma dicotomia 
de ontologias, levando em consideração o nível de detalhamento 
de sua estrutura interna: ontologias lightweight e ontologias heavyweight. 
O primeiro tipo envolve basicamente os conceitos, suas propriedades e as 
relações entre si. Já o segundo tipo define o conhecimento de forma mais 
profunda, além de adicionar axiomas e restrições com o intuito de esclarecer 
o significado dos termos. 
Ontologias no desenvolvimento de sistemas
A área de desenvolvimento de sistemas se concentra ou na criação de sistemas 
completamente novos ou na modificação daqueles que já existem. O desen-
volvimento de sistemas dentro do orçamento e do cronograma estipulados 
é uma dificuldade antiga e árdua, cujos problemas relacionados não foram 
totalmente resolvidos até o momento.
Desenvolver sistemas é uma atividade complexa, uma vez que envolve 
diversas tarefas, como entender o contexto de uso e as mudanças necessárias, 
elicitar e determinar requisitos funcionais e não funcionais, escolher o design 
mais adequado, assegurar a cobertura de interação humana e aspectos de 
seguranças de TI, estabelecer a integração dos sistemas no contexto de uso, 
entre outras. Dessa forma, o processo de desenvolvimento envolve várias 
competências de diferentes domínios do conhecimento e requer que os 
representantes desses domínios contribuam, incluindo os representantes 
dos usuários.
Ontologias4
Nesse contexto, temos um desafio para que essa contribuição seja efi-
ciente: há problemas no entendimento e respeito em outras disciplinas, já 
que um mesmo conceito pode ser usado com significados diferentes para os 
mesmos fenômenos. Tudo isso pode causar mal-entendidos, interpretações 
errôneas e desgastes ao longo do processo de desenvolvimento de sistemas.
Dessa forma, é necessário definir uma ontologia como uma especificação 
explícita de uma conceitualização, usada para definir conceitose suas relações, 
organizando assim os conceitos de interesse de uma determinada área. Desse 
modo, com uma ontologia é possível estabelecer e comunicar o significado 
dos termos comuns da área para que fiquem claros e não haja problemas no 
entendimento entre os envolvidos. Vale lembrar que uma ontologia deve ser 
coerente, ou seja, o conjunto definido de conceitos deve ser consistente. Além 
disso, deve ser extensível, já que as partes interessadas precisam ser capazes 
de definir e incluir novos termos e conceitos. Esse item é extremamente im-
portante no desenvolvimento de sistemas, uma vez que a terminologia tende 
a crescer de forma muito rápida e às vezes se tornar imensa.
Dado um certo domínio, a ontologia será a base de qualquer sistema de 
representação do conhecimento para ele. Sem ontologias ou conceitualizações 
que baseiam o conhecimento, não pode haver um vocabulário para representar 
o conhecimento (DWIVEDI et al., 2013). Assim, o primeiro passo para criar um 
sistema eficaz de representação do conhecimento é realizar uma análise 
ontológica eficaz da área ou domínio. Vale ressaltar que análises fracas 
tendem a levar a incoerências nas bases de conhecimento, enquanto boas 
análises permitem que a ontologia funcione num raciocínio coerente e coeso.
Por todos os sistemas de informação fluem conhecimentos, e para que sejam 
úteis devem se basear em um modelo do mundo relevante — entidades, pro-
priedades e relações nesse mundo (CHANDRASEKARAN; JOSEPHSON; BENJAMINS, 
1999). Além disso, sistemas de recuperação de informação, bibliotecas digitais, 
integração de diferentes fontes de informação e até mesmo os motores de busca 
da internet precisam de ontologias de domínio para organizar as informações 
e direcionar os processos de busca. Dessa forma, à medida que os sistemas 
de informação modelam grandes domínios de conhecimento, as ontologias de 
domínio se tornam ainda mais importantes em sistemas de software. 
O desenvolvimento de ontologias de domínio não é uma tarefa simples, pois, 
como qualquer outra atividade de modelagem conceitual, deve ser apoiada por 
práticas de engenharia de software (ALVES et al., 2014). Hoje em dia, há diversas 
abordagens para construir ontologias, como o Systematic Approach for Building 
Ontologies (SABiO). Essa abordagem sistemática tem sido bastante utilizado 
para apoiar a definição de diferentes ontologias, considerando basicamente 
as seguintes atividades (FALBO; MENEZES; ROCHA, 1998; ALVES et al., 2014):
Ontologias 5
 � Identificação da finalidade e especificação de requisitos — definição 
clara da finalidade e do uso pretendido da ontologia, ou seja, sua 
competência.
 � Captura de ontologia — a etapa mais importante no desenvolvimento 
da ontologia. Seu objetivo é capturar o conceito de domínio com base 
na competência da ontologia. Além disso, deve utilizar um modelo em 
linguagem gráfica com dicionário de termos para facilitar a comunicação 
com especialistas do domínio.
 � Formalização da ontologia — adoção de um formalismo para repre-
sentar a ontologia.
 � Integração de ontologias existentes — durante os processos de captura 
e/ou formalização, pode ser necessário integrar a ontologia atual com as 
existentes para aproveitar os conceitos já estabelecidos anteriormente.
 � Avaliação da ontologia — a ontologia deve ser avaliada para determinar 
se a especificação satisfaz seus requisitos. Além disso, também pode 
ser avaliada em relação a alguns critérios de qualidade de projeto.
 � Documentação da ontologia — todo o desenvolvimento da ontologia 
deve ser documentado, incluindo objetivos, requisitos e cenários mo-
tivadores, descrições textuais da conceitualização, ontologia formal e 
critérios de design adotados.
Cabe ressaltar que todo esse processo deve ser visto como iterativo, e 
não em etapas sequenciais. A etapa de captura da ontologia, por exemplo, 
pode apontar a novos requisitos, ou durante a avaliação pode-se perceber que os 
termos identificados não são suficientes para concluir a ontologia (ALVES et al., 2014).
Outro ponto interessante é que as ontologias permitem o compartilhamento 
do conhecimento. Ontologias compartilhadas possibilitam a criação de bases de 
conhecimento específicas que descrevem situações específicas. Dessa forma, 
é possível utilizar vocabulário e sintaxe comuns de uma determinada área para 
a construção de catálogos que descrevam seus produtos, por exemplo. Em 
seguida, quando pesquisadores e/ou profissionais da área compartilharem os 
catálogos e os usarem em seus projetos, isso aumentará em muito o potencial 
de reutilização do conhecimento (HALLBERG; JUNGERT; PILEMALM, 2014).
Por outro lado, mesmo que a ontologia seja um mecanismo poderoso para 
representar o conhecimento, é difícil para não especialistas em mecanismos 
de representação do conhecimento entendê-la e manipulá-la. Isso ainda se 
Ontologias6
torna mais crítico quando esse conhecimento precisa ser compartilhado com 
um público de médio a grande, como vemos nas equipes de desenvolvimento 
de sistemas de informação. Dessa forma, o compartilhamento e a evolução 
desse conhecimento precisam ser estimulados de forma que pesquisadores e 
profissionais tenham acesso a ele e possam utilizá-lo em suas atividades diárias. 
Nesse sentido, é preciso pensar numa forma de apoiar o compartilhamento 
e a evolução colaborativa do conhecimento mediante o uso de técnicas de 
visualização (ALVES; ARAUJO; SPINOLA, 2015). Além de promover a dissemi-
nação efetiva do conhecimento de uma determinada área, com o intuito de 
estimular seu uso efetivo pelos profissionais, pode-se também permitir a 
evolução colaborativa do conhecimento organizado. 
São diversas as motivações para utilizar ontologias no desenvolvimento 
de sistemas de conhecimento/especialistas. Dentre elas, a seguir listamos 
algumas das mais destacadas (NOY; MCGUINNESS, 2001). 
 � Compartilhar um entendimento comum da estrutura da informação 
entre pessoas ou agentes de software é um dos objetivos mais comuns 
no desenvolvimento de ontologias. Suponhamos que diversos sites 
contenham informações médicas ou forneçam serviços médicos. Caso 
esses sites compartilhem e publiquem uma mesma ontologia de termos, 
os agentes de computador podem fazer a extração e agregação de 
informações desses diferentes sites. 
 � Permitir a reutilização do conhecimento de domínio, que inclusive foi um 
dos pontos-chave por trás do grande aumento na pesquisas de ontolo-
gias. Imagine que temos uma ontologia para determinada área; em vez 
de desenvolver uma nova ontologia, outros pesquisadores podem sim-
plesmente reutilizá-la em seus domínios. Além disso, podemos integrar 
várias ontologias existentes que descrevem partes do grande domínio. 
 � Tornar explícitas as suposições de domínio permite alterar essas su-
posições facilmente, se nosso conhecimento sobre o domínio mudar. 
Suposições sobre o mundo embutidas em código de linguagem de 
programação tornam essas suposições não apenas difíceis de encontrar 
e entender, mas também de mudar, em particular para alguém sem 
experiência em programação. Outro aspecto é que especificações 
explícitas de conhecimento de domínio são úteis para novos usuários 
que precisam aprender o que significam os termos do domínio. 
Ontologias 7
 � Separar o conhecimento de domínio do conhecimento operacional é 
outro uso comum das ontologias. Podemos descrever a tarefa de con-
figurar um produto a partir de seus componentes de acordo com uma 
especificação necessária e implementar um programa que faça essa 
configuração independentemente dos próprios produtos e componentes.
 � Analisar o conhecimento do domínio é possível uma vez que uma 
especificação declarativa dos termos esteja disponível. A análise for-
mal de termos é extremamente valiosa ao tentar reutilizar ontologias 
existentes e estendê-las. 
Ontology Web Language 
A web semântica é um movimento inovador da web, em que as informações 
recebem um significado explícito, tornando mais fácil para as máquinasprocessar e integrar automaticamente as informações disponíveis na web. A 
web semântica se baseia na capacidade do Extensible Markup Language (XML) 
definir esquemas de marcação personalizados e na abordagem flexível do 
Resource Description Framework (RDF) para representar dados. O RDF é um 
modelo de dados para objetos (“recursos”) e relações entre eles, fornecendo 
uma semântica simples e sendo representado em uma sintaxe XML. Já o RDF 
Schema (RDF-S) é um vocabulário para descrever propriedades e classes de 
recursos RDF, com uma semântica para hierarquias de generalização de tais 
propriedades e classes. O primeiro nível acima do RDF necessário para a web 
semântica é uma linguagem de ontologia que pode descrever formalmente 
o significado da terminologia usada em documentos da web. 
A Ontology Web Language (OWL) é uma linguagem da web semântica 
que foi projetada para representação de um conhecimento rico e 
complexo sobre coisas, seus grupos e os relacionamentos entre si (MCGUINNESS; 
HARMELEN, 2004). É utilizada por aplicações que precisam processar o conteúdo 
das informações, em vez de apenas apresentar as informações a humanos. Essa 
linguagem é baseada em lógica computacional, de forma que o conhecimento 
expresso em OWL pode ser explorado por programas de computador para, por 
exemplo, verificar a consistência desse conhecimento ou para transformar 
conhecimento implícito em explícito. 
A OWL adiciona mais vocabulário para descrever propriedades e classes: 
relações entre classes (como disjunção), cardinalidade (como "exatamente um"), 
igualdade, tipificação mais rica de propriedades, características de proprieda-
Ontologias8
des (como simetria), classes enumeradas, entre outros. Os documentos OWL 
podem fazer referência ou ser referenciados a partir de outras ontologias OWL. 
Além disso, a linguagem OWL faz parte do conjunto do World Wide Web 
Consortium (W3C), que inclui RDF, RDF-S, SPARQL, entre outros. Ela também 
possui três sublinguagens cada vez mais expressivas, sendo que cada uma 
delas é voltada para o cumprimento de diferentes aspectos (ANTONIOU; 
HARMELEN, 2004):
 � OWL Full — esta sublinguagem utiliza todas as primitivas de linguagens 
OWL. Também permite combinar essas primitivas com RDF e RDF-S 
de forma eventual. Inclui a possibilidade de alterar o significado das 
primitivas pré-definidas (RDF ou OWL), aplicando as primitivas de 
linguagem entre si. 
 ■ Vantagem: possui total compatibilidade com o RDF, tanto sintática 
quanto semanticamente. 
 ■ Desvantagem: essa sublinguagem ficou tão poderosa que se tor-
nou indecidível, acabando com qualquer esperança de suporte de 
raciocínio completo (quanto mais eficiente).
 � OWL Description Logic (DL) — com o intuito de recuperar a eficiência 
computacional, a OWL DL é uma sublinguagem de OWL Full que restringe 
a forma como os construtores de OWL e RDF podem ser usados. De 
modo geral, isso corresponde à proibição de aplicar o construtor OWL 
entre si e, dessa forma, assegurar que a linguagem corresponda a uma 
lógica de descrição bem estudada. 
 ■ Vantagem: permite um suporte de raciocínio eficiente.
 ■ Desvantagem: perde-se a compatibilidade total com RDF.
 � OWL Lite — uma restrição cada vez maior restringe a OWL DL a um 
subconjunto de construtores de linguagem. Ela fornece apenas cons-
trutores simples para descrever domínios (restrições de cardinalidade, 
propriedades opcionais ou obrigatórias, etc.).
 ■ Vantagem: é a linguagem mais fácil de entender (para usuários) e 
mais fácil de implementar (para criadores de ferramentas). 
 ■ Desvantagem: é uma expressividade restrita.
Os desenvolvedores de ontologias que adotam as OWLs precisam levar 
em consideração quais delas atendem às suas necessidades, ponderando as 
particularidades de cada sublinguagem. 
Ontologias 9
Sintaxe da linguagem OWL
A Figura 2 oferece uma visão geral da linguagem OWL 2, mostrando seus 
principais blocos de construção e como eles se relacionam entre si. A forma 
no centro da fi gura representa a noção abstrata de uma ontologia, que pode 
ser pensada como um gráfi co RDF. No topo da fi gura, estão várias sintaxes 
concretas que podem ser usadas para serializar e trocar ontologias. Já na sua 
parte inferior, podemos observar em verde as duas especifi cações semânticas 
que defi nem o signifi cado das ontologias OWL 2. 
Figura 2. Estrutura da linguagem OWL 2.
Fonte: Adaptada de Isotani e Bittencourt (2015).
Na prática, uma sintaxe concreta é necessária para fazer o armazenamento 
de ontologias OWL e trocá-las entre ferramentas e aplicações. Embora o RDF/
XML forneça interoperabilidade entre ferramentas OWL 2, outras sintaxes 
concretas também podem ser usadas, incluindo serializações RDF alternativas, 
como Turtle, uma serialização XML, e uma sintaxe mais “legível”, chamada 
Manchester Syntax, que é usada em várias ferramentas de edição de ontolo-
gias. Por fim, a sintaxe funcional também pode ser usada para serialização, 
embora tenha como foco principal a especificação da estrutura da linguagem. 
O Quadro 1 mostra os formatos de serialização OWL.
Ontologias10
Quadro 1. Formatos de serialização OWL e seus propósitos
Serialização Status Propósito
RDF/XML Obrigatório Formato obrigatório, podendo ser reconhecido 
por qualquer software OWL
OWL/XML Opcional Processamento simples com ferramentas XML
Sintaxe Funcional Opcional Visualização simples da estrutura formal da OWL
Sintaxe 
Manchester
Opcional Leitura/escrita simples em lógica de descrição
Turtle Opcional Leitura/escrita simples de triplas RDF
Fonte: Adaptado de Isotani e Bittencourt (2015).
Embora tenhamos cinco formatos, apenas um deles é obrigatório. Dessa 
forma, os demais devem ser utilizados somente com base na necessidade 
de quem vai consumir a ontologia. Vale lembrar que, independentemente do 
formato, a OWL 2 possui uma estrutura conceitual muito bem definida que é 
convertida para os diferentes formatos. 
A modelagem de conhecimento em OWL considera basicamente três as-
pectos (HITZLER et al., 2012):
 � axiomas — as declarações básicas que uma ontologia OWL expressa;
 � entidades — elementos usados para se referir a objetos do mundo real;
 � expressões — combinações de entidades para formar descrições com-
plexas a partir das descrições básicas. 
Vamos conhecer agora um pouco sobre a modelagem da OWL. Basica-
mente, em uma ontologia OWL temos classes (owl:Class), propriedades 
(owl:ObjectProperty e owl:DataProperty) e indivíduos ou instâncias 
(owl:Individual), como mostra o exemplo a seguir: 
Class ( :Pessoa ) 
NamedIndividual ( :Nick ) 
NamedIndividual ( :Iago ) 
ClassAssertion ( :Pessoa :Nick) 
Ontologias 11
ClassAssertion ( :Pessoa :Iago) 
ObjectProperty ( :temEsposa ) 
ObjectPropertyAssertion ( :temEsposa :Iago :Nick )
Analisando esse exemplo, temos os seguintes elementos:
 � , como descrição de uma classe;
 � e como duas instâncias de ;
 � como uma propriedade;
 � como um relacionamento.
Ainda nesse exemplos, poderíamos adicionar hierarquias definidas com 
base na especificação dos axiomas subclasses (owl:SubClassOf) e também 
subpropriedades (owl:SubObjectPropertyOf e owl:SubDataPropertyOf) 
como: 
SubClassOf ( :Mulher :Pessoa ) 
SubPropertyOf ( :temEsposa :temEsposo ) 
Também podemos descrever conceitos equivalentes, como dizer que a classe 
 equivale a classe , como mostra o exemplo a seguir, lem-
brando que podemos usar a equivalência para prioridades de objetos (Equi-
valentObjectProperties) e de dados (EquivalentDataProperties). 
EquivalentClasses ( ontA:Pessoa ontB:Humano ) 
Nesse exemplo, podemos observar que foi utilizado os namespaces ontA 
e ontB, pois é muito comum usar a equivalência na hora de integrar e reusar 
ontologias existentes. Além disso, também podemos ter duas instâncias 
diferentes, mas que representam o mesmo indivíduo, como:
SameIndividual ( :Xuxa :MariadaGracaXuxaMeneghel ) 
Dessa forma, na nossa ontologiatudo que estiver relacionado com Maria 
da Graça, também estará relacionado com Xuxa. Vale lembrar que esses tipos 
de axiomas não existem no RDF-S. Além de estabelecer que um mesmo indi-
víduo pode ser instanciado em diferentes classes, como foi o caso, também 
é possível estabelecer que os indivíduos não podem pertencer a uma mesma 
classe. Assim, temos as chamadas classes disjuntas (owl:DisjointClasses):
DisjointClasses ( :Homem :Mulher ) 
O Quadro 2 apresenta outros elementos básicos de modelagem que não 
estão presentes no RDF-S. 
Ontologias12
Quadro 2. Exemplos de outros elementos presentes na OWL 2
Elemento Propósito Utilização
DifferentIn-
dividuals
Especifica diferentes instâncias DifferentIndividuals
( :John :Mary )
ObjectInter-
sectionOf
Especifica nova classe a partir 
da interseção de outras
EquivalentClasses (
 :Mother
 ObjectIntersectio-
nOf (
:Woman :Parent )
)
ObjectComple-
mentOf
Especifica nova classe a partir 
da diferença entre duas classes
EquivalentClasses (
 :ChildlessPerson
 ObjectIntersectio-
nOf (
 :Person
 :ObjectComplemen-
tOf (
:Parent )
 )
)
ObjectSomeVa-
luesFrom
Quantificador existencial — 
descreve que, para todos os 
indivíduos de uma classe, há 
pelo menos um indivíduo de 
outra classe relacionada por 
determinadas propriedade
EquivalentClasses (
 :Parent
 
ObjectSomeValuesFrom
 ( :hasChild :Person 
)
)
ReflexiveOb-
jectProperty
Descreve que determinada 
classe se relaciona por meio de 
determinada propriedade com 
ela mesma
ReflexiveObjectPro-
perty
 ( :hasRelative )
FunctionalOb-
jectProperty
Descreve que determinado 
indivíduo contém apenas uma 
instância de determinada 
classe em uma relação 
FunctionalObjectPro-
perty
 ( :hasHusband )
HasKey Restrição que especifica 
uma chave para determinada 
instância de uma classe
HasKey
 ( :Person () ( 
:hasSSN) )
(Continua)
Ontologias 13
Elemento Propósito Utilização
ObjectAllVa-
luesFrom
Quantificador universal — des-
creve uma classe de indivíduos 
na qual todos os indivíduos 
relacionados devem ser de uma 
determinada classe
EquivalentClasses (
 :HappyPerson
 ObjectAllValuesFrom
 ( :hasChild :Ha-
ppyPerson )
)
ObjectHasVa-
lue
Restrição que especifica que 
uma classe de indivíduos se 
relaciona com um indivíduo 
particular
EquivalentClasses
 :JohnsChildren
 ObjectHasValues
 ( :hasParent 
:John )
)
ObjectHasSelf Restrição que especifica que 
um indivíduo se relaciona com 
ele mesmo
EquivalentClasses
 :NarcisisticPerson
 ObjectHasSelf ( 
:loves )
)
ObjectMax-
Cardinality
Restrição que descreve o 
número máximo de indivíduos 
de determinada relação 
ClassAssertion (
 
ObjectMaxCardinality
 ( 32 : hasTeams 
:Team )
 :FIFAWorldCup
)
ObjectMinCar-
dinality
Restrição que descreve o 
número mínimo de indivíduos 
de determinada relação
ClassAssertion (
 
ObjectMinCardinality
 ( 1 : 
hasHostCountry
:Country )
 :FIFAWorldCup
)
ObjectExact-
Cardinality
Restrição que descreve o 
número exato de indivíduos de 
determinada relação 
ClassAssertion (
 ObjectExactCardi-
nality
 ( 2 : hasTeams 
:Team )
 :FIFAWorldCupGame
)
(Continua)
(Continuação)
Ontologias14
Elemento Propósito Utilização
ObjectOneOf Descreve uma classe com todas 
as suas instâncias
EquivalentClasses (
 :WorldCupGroupA
 ObjectOneOf ( 
:Brazil
:Croatia :Mexico :Ca-
maroon )
)
InverseObjec-
tProperties
Descreve que, se a classe A 
está relacionada com B por 
propriedade X, implica que a 
classe B está relacionada com A 
por propriedade Y
InverseObjectProper-
ties
 ( :hasParent :has-
Child )
SymmetricOb-
jectProperty
Descreve que, se a classe A 
está relacionada com B por 
propriedade X, implica que a 
classe B está relacionada com A 
da mesma forma
SymmetricObjectPro-
perty
 ( :hasSpouse )
Fonte: Adaptado de Isatani e Bittencourt (2015).
Sendo assim, fica claro que uma ontologia pode muito bem ser usada 
para facilitar os processos de desenvolvimento de software e principal-
mente desempenhar um papel importante em suas fases iniciais, bem como 
na definição, uso e reutilização de componentes de software e como base 
para sua integração. Além disso, usando uma ontologia que pré-define os 
conceitos utilizados, é possível reduzir o número de interpretações erradas 
dentro dos projetos.
Referências
ADAMS, K. C. Immersed in structure: the meaning a function of taxonomies. Interne-
tworking, n. 3, 2000. 
ALVES, N. S. R. et al. Towards an Ontology of Terms on Technical Debt. 2014 Sixth In-
ternational Workshop on Managing Technical Debt. In: INTERNATIONAL WORKSHOP ON 
MANAGING TECHNICAL DEBT, 6., 2014. Victoria, BC, 2014, p. 1-7. Disponível em: https://
ieeexplore.ieee.org/document/6974882. Acesso em: 2 dez. 2020.
ALVES, N; ARAUJO, R.; SPINOLA, R. A Collaborative Computational Infrastructure for 
Supporting Technical Debt Knowledge Sharing and Evolution. In: AMERICAS CONFERENCE 
ON INFORMATION SYSTEMS, 21., Puerto Rico, 2015. p. 1-14. Disponível em: https://aisel.
aisnet.org/cgi/viewcontent.cgi?referer=https://www.google.com/&httpsredir=1&arti
cle=1375&context=amcis2015. Acesso em: 2 dez. 2020.
(Continuação)
Ontologias 15
ANTONIOU, G.; HARMELEN, F. Web Ontology Language: OWL. In: STAAB, S; STUDER, R. 
(org.). Handbook on Ontologies. Berlin: Springer, 2004. p. 91-110.
CALERO, C; RUIZ, F.; PIATTINI, M. (ed.). Ontologies for software engineering and software 
technology. Berlin: Springer Science & Business Media, 2006.
CORCHO, O; FERNANDEZ-LOPEZ, M; GOMEZ-PEREZ, A. Ontological engineering: what are 
ontologies and how can we build them? In: CARDOSO, J. Semantic web services: Theory, 
tools and applications. Pensilvânia, EUA: IGI Global, 2007. p. 44-70.
CHANDRASEKARAN, B.; JOSEPHSON, J. R.; BENJAMINS, V. Richard. What are ontologies, 
and why do we need them? IEEE Intelligent Systems and their applications, v. 14, n. 1, 
p. 20-26, 1999.
DWIVEDI, Y. K. et al. IS/IT project failures: a review of the extant literature for deriving 
a taxonomy of failure factors. In: INTERNATIONAL WORKING CONFERENCE ON TRANSFER 
AND DIFFUSION OF IT. Berlin: Springer, 2013, p. 73-88. 
FALBO, R; MENEZES, C. S; ROCHA, A. C. A systematic approach for building ontologies. 
In: IBERO-AMERICAN CONFERENCE ON ARTIFICIAL INTELLIGENCE. Berlin: Springer, 1998. 
p. 349-360. 
FOGL, J. Relations of the concept’s 'information' and 'knowledge'. The Hague, v. 4, n. 
1, p. 21-24, 1979.
GOMEZ-PEREZ, A; FERNÁNDEZ-LÓPEZ, M.; CORCHO, O. Ontological Engineering: with 
examples from the areas of Knowledge Management, e-Commerce and the Semantic 
Web. Berlin: Springer Science & Business Media, 2006.
GRUBER, T. R. Toward principles for the design of ontologies used for knowledge sha-
ring?. International journal of human-computer studies, v. 43, n. 5-6, p. 907-928, 1995.
GUARINO, N. (ed.). Formal ontology in information systems. In: International conference 
(FOIS'98), 1., 1998, Trento, IT. Proceedings […]. Trento, IT: IOS press, 1998. 
HALLBERG, N.; JUNGERT, E.; PILEMALM, S. Ontology for Systems Development. Inter-
national Journal of Software Engineering and Knowledge Engineering, v. 24, n. 3, p. 
329–345, 2014. 
HITZLER, P. et al. OWL 2 web ontology language primer. W3C recommendation, 11 dec. 
2012. Disponível em: https://www.w3.org/2012/pdf/REC-owl2-primer-20121211.pdf. 
Acesso em: 2 dez. 2020.
ISOTANI, S.; BITTENCOURT, I. I. Dados Abertos Conectados: Em busca da Web do Conhe-
cimento. São Paulo: Novatec, 2012. Disponível em: http://www.pgcl.uenf.br/arquivos/
dadosabertosconectados_011120181613.pdf. Acesso em: 2 dez. 2020.
MCGUINNESS, D. L.; HARMELEN, F. OWL web ontology language overview. W3C recom-
mendation, 10 feb. 2004. Disponível em: https://www.w3.org/TR/owl-features/. Acesso 
em: 2 dez. 2020.
NOY, N. F.; MCGUINNESS, D. L. Ontology development 101: A guide to creating your first 
ontology. [S. l.: s. n, 2001]. Disponível em: https://protege.stanford.edu/publications/
ontology_development/ontology101.pdf. Acesso em: 2 dez. 2020.
Ontologias16
Leituras recomendadasARP, R.; SMITH, B.; SPEAR, A. D. Building ontologies with basic formal ontology. Cam-
bridge, MA: Mit Press, 2015.
DIETZ, J. L. G. What is Enterprise Ontology? Berlin: Springer, 2006.
EUZENAT, J. et al. Ontology matching. Berlin: Springer, 2007.
OWL WORKING GROUP. OWL 2 Web Ontology Language Document Overview: W3C Re-
commendation 27 oct. 2009. Disponível em: https://www.w3.org/2012/pdf/REC-owl2-
-overview-20121211.pdf. Acesso em: 2 dez. 2020.
POLI, R.; HEALY, M.; KAMEAS, A. (eds.). Theory and Applications of Ontology: Computer 
Applications. Dordrecht: Springer, 2010. 
TANIAR, D. (ed.). Web Semantics & Ontology. Pensilvânia, EUA: Igi Global, 2006.
WELTY, C. et al. OWL web ontology language guide. W3C recommendation, 10 feb. 2014. 
Disponível em: http://www.w3.org/TR/2004/REC-owl-guide-20040210. Acesso em: 2 
dez. 2020.
Os links para sites da web fornecidos neste capítulo foram todos 
testados, e seu funcionamento foi comprovado no momento da 
publicação do material. No entanto, a rede é extremamente dinâmica; suas 
páginas estão constantemente mudando de local e conteúdo. Assim, os editores 
declaram não ter qualquer responsabilidade sobre qualidade, precisão ou 
integralidade das informações referidas em tais links.
Ontologias 17

Mais conteúdos dessa disciplina