Você está na página 1de 78

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE SÃO PAULO

CÂMPUS SÃO JOÃO DA VISTA

PEDRO MAZARINI DE OLIVEIRA

DESENVOLVIMENTO DE UM EDITOR DE ONTOLOGIA PARA UM


CATÁLOGO BIBLIOTECÁRIO NA ÁREA DE LINGUAGEM DE
PROGRAMAÇÃO A PARTIR DO PROTÈGÈ

SÃO JOÃO DA BOA VISTA


2017
PEDRO MAZARINI DE OLIVEIRA
DESENVOLVIMENTO DE UM EDITOR DE ONTOLOGIA PARA UM
CATÁLOGO BIBLIOTECÁRIO NA ÁREA DE LINGUAGEM DE
PROGRAMAÇÃO A PARTIR DO PROTÈGÈ

Trabalho De Conclusão de Curso apresentado


ao Instituto Federal de São Paulo, como parte
dos requisitos para a obtenção do grau de
Tecnólogo em Sistemas para Internet.

Área de Concentração: Linguística


Computacional

Orientador: Profa. Dra. Rosana Ferrareto


Lourenço Rodrigues
Coorientadores: Prof. Ms. Gustavo Aurélio e
Prieto e Ms. Maria Carolina Gonçalves

SÃO JOÃO DA BOA VISTA


2017

Catalogação na Fonte preparada pela Biblioteca Comunitária “Wolgran Junqueira Ferreira”


do IFSP – Câmpus São João da Boa Vista
Oliveira, Pedro Mazarini de.
Desenvolvimento de um editor de ontologia para um
catálogo bibliotecário na área de linguagem de
programação a partir do Protègè. / Pedro Mazarini de
Oliveira ; orientador Profa. Dra. Rosana Ferrareto
Lourenço Rodrigues. São João da Boa Vista, 2017.

Trabalho de Conclusão de Curso, IFSP, 2017.

1. Modelagem Computacional I. 2. Ontologias II. 3.


Linguagem de Programação III. 4. Protégé IV.
5.Catálogo Bibliotecário. 6.Web Semântica.

I. Desenvolvimento de um editor de ontologia


para um catálogo bibliotecário na área de
linguagem de programação a partir do Protègè

PEDRO MAZARINI DE OLIVEIRA


DESENVOLVIMENTO DE UM EDITOR DE ONTOLOGIA PARA UM
CATÁLOGO BIBLIOTECÁRIO NA ÁREA DE LINGUAGEM DE
PROGRAMAÇÃO A PARTIR DO PROTÈGÈ

Trabalho De Conclusão de Curso apresentado


ao Instituto Federal de São Paulo, como parte
dos requisitos para a obtenção do grau de
Tecnólogo em Sistemas para Internet.

Área: Linguística Computacional

Aprovado em de novembro de 2017

Banca Examinadora:

__________________________________
Rosana Ferrareto Lourenço Rodrigues
Doutora
Instituto Federal de São Paulo câmpus São João da Boa Vista

______________________________________
Gustavo Aurélio Prieto
Mestre
Instituto Federal de São Paulo câmpus São João da Boa Vista

__________________________________
Maria Carolina Gonçalves
Mestre
Instituto Federal de São Paulo câmpus São João da Boa Vista

__________________________________
Breno Lisi Romano
Mestre
Instituto Federal de São Paulo câmpus São João da Boa Vista

SÃO JOÃO DA BOA VISTA


2017
AGRADECIMENTOS

Agradeço a Deus pela minha vida e por ter chegado onde estou, com grandes
oportunidades que tive.
Gostaria de agradecer também a minha família e meus amigos, por todo o suporte e apoio
durante esta jornada, que foi fundamental para que eu continuasse estudando e aperfeiçoando
cada dia mais meu conhecimento.
Agradeço a todo o IFSP de São João da Boa Vista todos os seus professores e
colaboradores que nessa jornada me tornaram uma pessoa mais experiente e com mais
conteúdo.
Em especial agradeço aos meus orientadores Professora Rosana, Professor Gustavo e
Bibliotecária Carol, por toda a ajuda com este trabalho que com certeza tiveram uma
importância enorme para que fosse concretizado. Também aos alunos William e Luis Gabriel
que iniciaram esta pesquisa e forneceram dados importantes para que fosse continuada, e ao
aluno de Iniciação Científica Cauê Silva que contribuiu com esta pesquisa.
RESUMO

OLIVEIRA, P. M. (2017). Desenvolvimento de um editor de ontologia para um catálogo


bibliotecário na área de linguagem de programação a partir do Protègè. Trabalho de
Conclusão de Curso - Instituto Federal de São Paulo, São João da Boa Vista, 2017.

A demanda na busca por informações cresce exponencialmente e garantir a qualidade nos


resultados dessas buscas é algo cada vez mais exigido. Bibliotecários nem sempre dominam a
área de interesse de seus usuários, os quais frequentemente buscam por informações específicas
de seu campo, muitas vezes contidas em capítulos de livros de que os bibliotecários não têm
conhecimento de seu conteúdo, pois não dominam tal área. Faz-se necessária uma ferramenta
que auxilia nesta busca e consiga trazer resultados relevantes para o bibliotecário para que, por
sua vez, possa indicar um livro que abranja o conteúdo buscado pelo usuário. Esta necessidade
surgiu com a problemática desenvolvida nos trabalhos “Ontologia de Sistemas para Internet”
de Silva (2013) e “Concepção de uma ferramenta de apoio à indexação para bibliotecários” de
Rodrigues (2015), que desenvolveram a ideia inicial do que este projeto poderia se tornar. Trata-
se então de um sistema que faça inferências baseada na palavra-chave que o usuário deseja
encontrar, indicando livros nos quais aquela palavra ou palavras relacionadas se encontram.
Tendo esta problemática como desafio, este trabalho traz Taxonomias, Tesauros, Mapas do
Conhecimento e Ontologias que são métodos de representação do conhecimento, analisa-os
individualmente e então descreve o porquê a ontologia foi o método escolhido como mais eficaz
para esta pesquisa. Também conceitua web semântica e metadados e tem como objetivo a
obtenção de termos específicos relacionados a cada livro da área de linguagem de programação
na biblioteca do Instituto Federal de São Paulo câmpus São João da Boa Vista, para então incluir
estes termos minerados na ferramenta Protègè para a criação de uma ontologia sobre o tema.
Tendo a ontologia definida foi desenvolvida uma ferramenta de pesquisa que possibilita os
bibliotecários ou qualquer usuário pesquisar termos específicos da área de linguagem de
programação, e encontrar resultados eficazes para que possam encontrar livros mais adequados
para o tema que estão procurando, mesmo que não dominem totalmente o conteúdo. Esta
ferramenta foi chamada de Onto Books e irá auxiliar o bibliotecário e qualquer usuário que
tenha interesse em algum tema, porém não sabe exatamente qual a melhor obra o contempla
com precisão, ou caso encontre algo relacionado se este livro realmente é o mais focado no
assunto possível de se encontrar. A Onto Books ao final da pesquisa tornou-se então um editor
de ontologia pois também fornece ferramentas de administração para o bibliotecário permitindo
que inclua novos relacionamentos e itens na ontologia base da aplicação.

Palavras-chave: Modelagem Computacional. Ontologias. Linguagem de Programação. Protégé.


Catálogo Bibliotecário. Web Semântica.
ABSTRACT

OLIVEIRA, P. M. (2017). Ontology editor development to a librarian catalog on


programming language field from Protègè. Course Conclusion Project – Instituto Federal de
São Paulo, São João da Boa Vista, 2017.

The information searching demand is exponentially growing, and ensuring the quality of these
searches results is something increasingly required. Librarians do not always dominate their
readers’ area of interest, who often look for specific information in their field, often contained
in chapters of books that librarians are not aware of their content, because it is just not their
field. That makes necessary a tool that helps in this search and can bring relevant results to the
librarians, which in turn may indicate a book covering the content sought by the reader. It should
be a system that makes inferences based on keywords the reader is looking for, indicating books
in which that word is contained or related to. Having this issue as a challenge, this research
brings up Taxonomies, Thesaurus, Knowledge Maps and Ontologies that are methods of
knowledge representation, individually analyze them and then describe the reason why
Ontology was the chosen method as the most effective for this research. It also conceptualizes
semantic web and metadata, and aims to obtain specific terms related to each book in the
programming languages field from the library of the Instituto Federal de São Paulo câmpus São
João da Boa Vista, to insert those terms in the Protègè tool for the creation of an ontology on
the subject. Having the defined ontology, it will be developed a search tool that allows librarians
or any other users to search for specific terms of the programming language field, and find
effective results that may find books more suitable for the topic they are looking for, even out
of their own domain. At the end of this research the Onto Books application became an ontology
editor as it also provides administration tools for the librarian allowing them to include new
relationships and items in the application's ontology.

Keywords: Computer modelling. Ontologies. Programming language. Protègè.


Librarian Catalog. Semantic Web.
LISTA DE ILUSTRAÇÕES

Figura 1 - Exemplo de planilha ................................................................................................... 23


Figura 2 - Wisdom ........................................................................................................................ 24
Figura 3 - Exemplo de taxonomia como diretórios ..................................................................... 26
Figura 4 - Exemplo de Tesauro e seus relacionamentos ............................................................. 27
Figura 5 - Exemplo de Mapa do Conhecimento ......................................................................... 29
Figura 6 - Árvore de Porfírio ........................................................................................................ 31
Figura 7 - Ontologia Terminológica ............................................................................................ 32
Figura 8 - Ontologia Baseada em Protótipo ................................................................................ 32
Figura 9 - Classificação de Lassila e McGuiness ........................................................................ 34
Figura 10 - Classificação de Nicola Guarino .............................................................................. 35
Figura 11 - AntConc ..................................................................................................................... 37
Figura 12 - Protègè ........................................................................................................................ 38
Figura 13 - Fotografia Sumário .................................................................................................... 45
Figura 14 - Digitalização antes da correção ................................................................................ 46
Figura 15 - Digitalização após a correção ................................................................................... 46
Figura 16 - AntConc Lista de exclusões ...................................................................................... 48
Figura 17 - AntConc Contextos.................................................................................................... 49
Figura 18 - Definição de Classes no Protègè............................................................................... 50
Figura 19 - Descrição de Classes no Protègè .............................................................................. 51
Figura 20 - OWL Properties ......................................................................................................... 52
Figura 21 - Object Propertie RelacionamentoForte .................................................................... 53
Figura 22 - Word List AntConc ................................................................................................... 55
Figura 23 - Diagrama do Banco de Dados................................................................................... 56
Figura 24 - Tela de busca.............................................................................................................. 57
Figura 25 - Lista de termos gerada pelo AntConc ...................................................................... 60
Figura 26 - Lista de termos gerada pelo AntConc ...................................................................... 61
Figura 27 - Função Recursiva....................................................................................................... 62
Figura 28 - Where Clause gerada pelo algoritmo ....................................................................... 63
Figura 29 - Relacionamento de termos e livros ........................................................................... 64
Figura 30 - Relacionamento de termos e livros ........................................................................... 64
Figura 31 - Resultado de busca ................................................................................................... 65
Figura 32 - Resultado de busca .................................................................................................... 66
Figura 33 - Opções de busca ........................................................................................................ 66
Figura 34 - Descrição de livros .................................................................................................... 67
Figura 35 - Menu entrar ................................................................................................................ 68
Figura 36 - Visão geral área gerencial ......................................................................................... 69
Figura 37 - Edição de livros ......................................................................................................... 70
Figura 38 - Edição de autores ....................................................................................................... 71
Figura 39 - Edição de locais ......................................................................................................... 72
Figura 40 - Edição de usuários ..................................................................................................... 72
Figura 41 – Edição de relacionamentos entre livros e termos .................................................... 73
Figura 42 – Script edição da ontologia ........................................................................................ 74
LISTA DE QUADROS

Quadro 1 - Características de Sistemas de Representação do Conhecimento ........................... 19


Quadro 2 – Gerações de Linguagem de Programação ................................................................ 21
LISTA DE SIGLAS

API Application Program Interface (Interface de Programa de Aplicação)


CSS Cascading Style Sheet (Folha de Estilo em Cascata)
HTML Hypertext Markup Language (Linguagem de Marcação de Hipertexto)
IA Inteligência Artificial
IFSP Instituto Federal de Educação Ciência e Tecnologia de São Paulo
OCR Optical Character Recognition (Reconhecimento Óptico de Caracter)
OWL Ontology Web Language (Linguagem Web de Ontologia)
SPARQL SPARQL Protocol and RDF Query Language (Linguagem de busca RDF e
protocolo SPARQL.
TCP/IP Transmission Control Protocol/Internet Protocol (Protocolo de Controle de
Transmissão/Protocolo de Internet)
TONES Thinking Ontologies (Pensando Ontologias)
TSI Tecnologia em Sistemas para Internet
W3C World Wide Web Consortium (Consórcio da Rede Mundial de Computadores)
SUMÁRIO
1 INTRODUÇÃO ............................................................................................................17

1.1 Motivação ........................................................................................................................ 17


1.2 Objetivos .......................................................................................................................... 18
1.3 Organização deste trabalho ................................................................................................ 18
2 PESQUISA BIBLIOGRÁFICA .................................................................................19

2.1 LINGUAGEM DE PROGRAMAÇÃO ............................................................................. 20


2.1.1 Níveis de Linguagem de Programação ............................................................................ 20
2.1.2 Gerações de Linguagem de Programação........................................................................ 20
2.2 WEB SEMÂNTICA.......................................................................................................... 22
2.2.1 Metadados...................................................................................................................... 24
2.3 MÉTODOS DE REPRESENTAÇÃO DO CONHECIMENTO .......................................... 25
2.3.1 Taxonomia ..................................................................................................................... 25
2.3.2 Tesauro .......................................................................................................................... 27
2.3.3 Mapa do conhecimento .................................................................................................. 28
2.3.4 Ontologia ....................................................................................................................... 29
2.4 METHONTOLOGY ......................................................................................................... 36
2.5 ANTCONC ....................................................................................................................... 37
2.6 PROTÈGÈ ........................................................................................................................ 38
2.7 SPARQL........................................................................................................................... 39
2.8 ARC2................................................................................................................................ 39
3 METODOLOGIA ........................................................................................................41

3.1 LEVANTAMENTO DE REQUISITOS ............................................................................ 42


3.2 ELABORAÇÃO DO PROJETO ....................................................................................... 42
3.3 DESENVOLVIMENTO DO PROJETO ............................................................................ 43
3.3.1 Criação da Ontologia ...................................................................................................... 43
3.3.2 Desenvolvimento da máquina de inferência .................................................................... 44
3.4 ENTREGA DO PROJETO ................................................................................................ 44
3.5.1 Coleta de dados .............................................................................................................. 44
3.5.2 Seleção dos termos ...................................................................................................... 47
3.5.3 Criação da ontologia ....................................................................................................... 49
3.5.4 Desenvolvimento da máquina de inferência .................................................................... 55
4 RESULTADOS.............................................................................................................59

5 CONCLUSÃO ..............................................................................................................75

REFERÊNCIAS .................................................................................................................77
17

1 INTRODUÇÃO

Representar o conhecimento a partir de critérios bem fundamentados é um processo


crucial para o acesso eficaz à informação. Um desses critérios é a criação de estruturas
conceituais para se descrever objetos de informação e recuperá-los em coleções de dados.
Na Ciência da Informação, é utilizada a ontologia, um dos métodos mais completos de
classificação do conhecimento, com o intuito de reduzir as possíveis ambiguidades encontradas
na linguagem natural por meio de um consenso entre os termos técnicos de domínio dos
profissionais da área, proporcionando semântica aos termos de maior ocorrência nas
ferramentas de busca, aprimorando assim os resultados das informações coletadas (SANTOS;
CORREA; SILVEIRA, 2013).
Em especial, esta pesquisa visa auxiliar os bibliotecários no Instituto Federal de
Educação, Ciência e Tecnologia de São Paulo, câmpus São João da Boa Vista, complementado
o catálogo de ontologias na área de linguagem de programação, para futura implementação de
um sistema que faça buscas inteligentes e concisas retornando informações úteis para
bibliotecários, que não necessariamente precisam de um domínio na área de linguagem de
programação. Através das ontologias propostas, será possível fazer inferências baseadas nas
definições de cada termo e nas definições dos relacionamentos entre estes termos.

1.1 Motivação

Nos dias de hoje, há uma quantidade enorme de informações disponíveis não só em


livros, mas principalmente na internet, e esta quantidade de informações vem crescendo
exponencialmente. Devido a este grande crescimento na quantidade de informações, percebe-
se uma grande necessidade na utilização de técnicas para melhorar o tratamento e organização
desses dados focando na sua seleção, processamento, recuperação e disseminação (MORAIS;
AMBRÓSIO, 2007).
Uma biblioteca possui uma variedade enorme de áreas de conhecimento e há termos e
informações específicas que, na maioria das vezes, são dominados apenas pelos profissionais
da área. É imprescindível que os bibliotecários tenham acesso a essas informações por meio de
um sistema inteligente que o forneça dados precisos com o que aquele profissional de uma área
específica procura em sua biblioteca.
18

Nesse contexto, observa-se uma grande necessidade de um sistema de informações que


auxilie o bibliotecário na busca por informações precisas, mesmo que não dominem a área e
possa apresentar aos usuários opções de livros para sua consulta.

1.2 Objetivos

O objetivo desta pesquisa é criar um editor de ontologia na área de linguagem de


programação para uma seção do catálogo bibliotecário do Instituto Federal câmpus São João
da Boa Vista, que será uma aplicação web que irá consumir os relacionamentos definidos na
ontologia.
• Digitalizar os sumários dos livros de linguagem de programação da bibliografia do
Curso de Tecnologia em Sistemas para Internet, para se obter a lista de termos chaves
candidatos à ontologia.
• Criar uma ontologia na área de linguagem de programação, definindo os
relacionamentos entre os termos chaves, para gerar mais conteúdo para o processo de
indexação de livros.
• Criar a aplicação web Onto Books um buscador semântico que irá permitir o usuário
inserir termos para uma busca, e então irá inferir os melhores livros a serem oferecidos ao
usuário analisando sua busca com os relacionamentos definidos na ontologia.

1.3 Organização deste trabalho

Este trabalho está organizado em cinco capítulos. O primeiro trata-se da introdução, em


que é apresentada uma breve apresentação do tema, a motivação para esta pesquisa e os
objetivos deste trabalho. No segundo capítulo, será apresentada a pesquisa bibliográfica
realizada sobre ontologias e sua modelagem computacional. A metodologia utilizada é exibida
no terceiro capítulo e, em seguida, os resultados obtidos ao final do projeto, no capítulo quatro.
E então no quinto capítulo está a conclusão da pesquisa.
19

2 PESQUISA BIBLIOGRÁFICA

Neste capítulo, será apresentado o referencial teórico relevante para esta pesquisa,
relativo à conceitualização dos sistemas de representação do conhecimento, cujo objetivo é
organizar informação e promover a gerência do conhecimento, como por exemplo Classificação
e Categorização (Taxonomia), que provê uma coleção de termos controlados para representar
os assuntos.
Também será apresentado o conceito de Listas de Relacionamentos, que expressam de
maneira mais clara a ligação entre os termos através de equivalência por sinônimos. Exemplos
de tais listas são ontologias, tesauro e mapa do conhecimento. No quadro 1, são exibidas as
principais características de cada um destes sistemas de representação do conhecimento.

Quadro 1 - Características de Sistemas de Representação do Conhecimento


Hierarquia Relacionamentos Idioma Aberto
Taxonomia SIM NÃO NÃO
Tesauro SIM SIM NÃO
Mapa do Conhecimento SIM SIM NÃO
Ontologia SIM SIM SIM
Fonte: Garshol (2004)

No quadro 1 observa-se as principais características de cada sistema de representação


do conhecimento, onde Hierarquia sinaliza os sistemas capazes de organizar termos
hierarquicamente desde o mais geral ao mais específico. Relacionamentos significa a
capacidade de tal sistema em não somente definir o termo, mas relacioná-lo a outros termos
também definidos neste mesmo sistema, como por exemplo por equivalência ou sinônimo.
A última característica do quadro trata-se do Idioma, o qual na maioria dos sistemas
deve ser construído em apenas um idioma e o trabalho deve ser refeito caso haja interesse de
executar o mesmo em outro idioma, ontologia, no entanto tem o Idioma Aberto pois uma vez
que uma ontologia foi criada pode ser utilizada em qualquer idioma para a definição de seus
termos.
A representação do conhecimento através de sistemas bem organizados torna o acesso
a informação cada vez mais eficiente, com resultados expressivos e de qualidade, isso será
descrito na próxima subseção na qual será apresentada a web semântica.
20

2.1 LINGUAGEM DE PROGRAMAÇÃO

Linguagem de programação é uma linguagem formal estruturada, na qual são descritas


instruções a ser interpretadas pela máquina para a realização de determinada tarefa ou cálculo.
É possível classificar as linguagens de programação de diferentes maneiras, como em relação
a sua abstração, também se pode classifica-las quanto a sua geração.

2.1.1 Níveis de Linguagem de Programação

Primeiramente deve-se considerar as linguagens de baixo nível (Low-Level), tais


linguagens são consideradas neste nível pois estão o mais próximo possível da linguagem de
máquina, entendendo-se linguagem de máquina como a mais baixa instrução possível,
representada por valores binários (ex: 01101110 01100001). Um exemplo de linguagem de
baixo nível são as linguagens Assembly, pois são linguagens que utiliza de abreviações, como
valores hexadecimais, para a definição de suas instruções. As instruções escritas em Assembly
também precisam ser “traduzidas” para a linguagem de máquina para isso são utilizados os
Assembler que tem essa função de transformar as instruções Assembly para binário.
Em seguida considera-se as linguagens de alto nível (High-Level), estas já são
linguagens mais bem elaboradas com a intenção de facilitar o entendimento humano das
instruções descritas. Linguagens de programação de alto nível estão mais longe da linguagem
de máquina citada anteriormente e mais próximas da linguagem natural, por isso a interpretação
das instruções por uma pessoa fica mais fácil e ágil quando se trabalha com linguagens de alto
nível. Porém para que as instruções de uma linguagem de alto nível sejam interpretadas e
executada por uma máquina, essas instruções precisam ser “traduzidas” para a linguagem de
máquina, para isso foram criados os compiladores, eles têm a tarefa de transformar as instruções
desenvolvida por um programador em linguagem de máquina, valores binários, para serem
interpretadas e executadas pelo processador. São exemplos de linguagens de alto nível Java, C,
C++, COBOL (NASSIR, 2013).

2.1.2 Gerações de Linguagem de Programação

As linguagens de programação vêm evoluindo exponencialmente desde a criação dos


computadores, tornar estas linguagens mais acessíveis, fazer com que seja possível descrever
21

problemas do mundo real de uma maneira cada vez mais simples, são os principais objetivos
dessa evolução (KWAN, 2010).
A primeira geração de linguagem de programação constituía apenas em instruções
diretas às máquinas, ou seja, na linguagem em que a máquina já podia interpretar e executar
(NASSIR, 2013).
Em seguida surgiram as linguagens de segunda geração, como no exemplo anterior as
linguagens Assembly, que podiam fazer o uso de símbolos expressivos ao invés de apenas valor
binários, para a suas instruções (KWAN, 2010).
A partir da terceira geração de linguagem de programação todas já são consideradas de
alto nível. Essa geração foi muito importante para a evolução das linguagens, pois a partir deste
momento as linguagens a serem desenvolvida se tornaram, em grande parte, independente do
hardware, ou seja, os programadores podem criar suas aplicações sem nenhum conhecimento
da configuração exata da máquina onde seu código será executado (NASSIR, 2013). Na terceira
geração as linguagens começaram as se tornar cada vez mais próxima à linguagem natural,
facilitando seu entendimento e desenvolvimento. No exemplo a seguir observa-se um cálculo
matemático simples que em uma linguagem de terceira geração torna sua leitura muito mais
fácil e um entendimento mais rápido do que aquela instrução irá realizar, e o mesmo cálculo
sendo escrito em uma linguagem de segunda geração (KWAN, 2010).

Quadro 2 – Gerações de Linguagem de Programação


Segunda Geração Terceira Geração
CLA C X=(A+B)/(C*D)
MUL D
STO Y
CLA A
ADD B
DIV Y
STO X
Fonte: Kwan (2010)

As linguagens de quarta geração foram criadas com o intuito de resolver as principais


deficiências das linguagens de terceira geração, problemas tais como o tempo de debug,
verificação do funcionamento do código, era muito alto, a modificação de sistemas complexos
se tornava muito difícil uma vez que pronto. Linguagens de quarta geração precisam de muito
menos linhas de código para descrever as mesmas tarefas em relação as gerações anteriores. A
variedade também é um destaque nesta geração, pois os objetivos de aplicações e capacidades
22

das linguagens nesta geração são altamente variados. Algumas linguagens são apenas query
languages, linguagens utilizadas para consulta em banco de dados, ou geradoras de relatórios,
gráficos, etc.
Quando então finalmente se refere a linguagens de quinta geração são aquelas o mais
próximo possível do usuário e o mais longe da linguagem de máquina. Pode-se considerar como
apenas “arrastar e clicar”, ou seja, o usuário não necessita de nenhum conhecimento específico
de programação, mas apenas conhecimentos básicos de informática e uma boa intuição de como
sua aplicação deve funcionar (KWAN, 2010).

2.2 WEB SEMÂNTICA

As páginas existentes hoje na internet em geral não apresentam informações sobre si


mesmas, sobre o seu conteúdo e assunto do que se trata, então pode-se classificar a internet
como Web Sintática, uma web que apenas apresenta a seus usuários as informações e cabe a
eles interpretar e filtrar o que lhes convém e o que consideram útil e importante. É nítido que
esta interpretação requer um grande trabalho de avaliação, classificação e seleção das
informações de interesse.
Um exemplo seria entrar em uma biblioteca onde, ao invés de organizados por assuntos
do mais geral para o mais específico, os livros estivessem todos bagunçados. E então o usuário
desejasse aprender mais sobre o protocolo TCP/IP, por exemplo, que é um protocolo básico de
comunicação de redes de computadores, e intuitivamente procuraria por livros de “rede”. Em
uma busca geral pela biblioteca, o usuário vai se deparar com livros da área de informática, mas
também livros sobre rede telefônica, redes elétricas e até mesmo redes típicas do artesanato
nordestino, então caberia ao usuário avaliar classificar e selecionar os livros de interesse nessa
situação. A intenção da web semântica é exatamente fazer com que os computadores façam este
esforço pelos usuários (BREITMAN, 2006).
A ideia principal da web semântica, que vem sendo desenvolvida por pesquisadores no
mundo todo, é fazer com que a informação seja organizada e categorizada de forma
padronizada, para que facilite o seu acesso e até mesmo seja compreendida por máquinas.
Essa ideia de fazer com que máquinas interpretem informações é muito valiosa para
qualquer negócio, pois é possível obter destas informações diversos dados e então transforma-
los em conhecimento. Por exemplo, considerando uma pessoa chegando em seu primeiro dia
23

de trabalho e prontamente lhe é apresentada uma planilha com várias siglas e números como
no exemplo da figura 1. Nos primeiros dias pode-se considerar que tal planilha representa nada
mais do que dados para o novo funcionário, ou seja, apenas um conjunto de símbolos e números
cujo contexto e propósito não são claros.
Algumas semanas após o primeiro contato com a planilha já é possível este novo
funcionário perceber que está lidando com informações, isso porque é possível perceber que os
dados agora visualizados, não só possuem um contexto e um propósito, mas também possuem
valor para atividade profissional deste funcionário. Após mais algumas semanas trabalhando
com esta planilha este funcionário já possui um amplo conhecimento sobre sua aplicação e o
que ela representa na sua atividade, pois agora este funcionário já experiente, tem a capacidade
de usar essas ricas informações combinadas com a sua experiência e atitudes cognitivas para
atingir resultados significantes, isto então chamamos de conhecimento e este conhecimento
pode ser compartilhado (CHUNGOORA,2017).

Figura 1 – Exemplo de planilha

Fonte: Chungoora (2017)

Todo este processo reflete o que esta pesquisa propõe, desde a busca por dados
transformá-los em informações e então obter um conhecimento estruturado, tais processos serão
descritos ao longo da pesquisa. Segundo Dr. Chungoora é inevitável que uma vez que obtido
tal conhecimento combinado com uma colaboração de indivíduos ao longo do tempo isso gere
a chamada sabedoria (Wisdom) como mostra na ilustração da figura 2. Este progresso agrega
valor à atividade ou negócio foco de tal estrutura de conhecimento e agregando valor
consequentemente agrega competitividade e interesse de acesso a tal ferramenta.
24

Figura 2 - Wisdom

Fonte: Chungoora (2017)

É importante notar que web semântica não é Inteligência Artificial, embora muito
estudada nessa área, não é um modelo que faz com que os computadores entendam
magicamente o que os humanos falam. O conceito irá apenas possibilitar que os computadores
possam inferir, de forma mais eficaz, as informações que um certo usuário procura, pois este
computador tem posse de uma base de informações muito mais organizada e conceituada do
que antes. Isso não o torna inteligente, mas eficaz, pois contém metadados bem definidos em
sua base de dados.

2.2.1 Metadados

Metadados são dados que descrevem outros dados ou recursos. Não existe uma
definição universal para este termo, que seja compartilhada por todas as áreas do conhecimento.
É importante destacar também que este termo não é novo e nem foi criado para a área de Web
Semântica. O termo metadados já vem sendo utilizado por bibliotecários, museólogos,
arquivistas e editores há centena de anos. É interessante observar também que, ao se aplicar
este termo no âmbito de Web Semântica, a Catalogação, antes percebida como enigmática,
25

passou a ser nos dias de hoje objeto de estudo amplamente pesquisada na área de Ciência da
Informação (BREITMAN, 2006).
Metadados são definidos por Guenther e Radebaugh (2004) como informações
estruturadas que descrevem, explicam ou simplesmente tornam mais fácil a recuperação de um
outro recurso de informação. É normalmente chamado de dado sobre dado ou informação sobre
informação.

2.3 MÉTODOS DE REPRESENTAÇÃO DO CONHECIMENTO

A classificação dos métodos de representação do conhecimento é considerada uma das


mais importantes áreas no campo do conhecimento. Sua definição se dá a partir da compreensão
e análise de filósofos como Aristóteles e Porfírio, com sua classificação em árvore que será
detalhada na subseção 2.3.4, e outros esquemas de classificação.
As classificações baseadas no conteúdo estão entre os métodos mais eficazes de
representar o conhecimento. Pode assumir diferentes formas, classificando-se os objetos por
assunto, em diferentes grupos. Normalmente, utiliza-se mais de uma técnica para que se
obtenha um resultado mais completo.

2.3.1 Taxonomia

A Taxonomia é um exemplo de classificação baseada no assunto, amplamente usada e


normalmente denominada como uma estrutura abstrata. Pela Taxonomia, é possível organizar
termos de um vocabulário em uma hierarquia para uma futura análise. Também é possível
agrupar termos e categorizá-los, tonando assim mais fácil de se encontrar o termo adequado
para uma demanda específica (BREITMAN, 2006).
A taxonomia é definida pelo dicionário Merriam Webster (2016) como “o estudo dos
princípios gerais da classificação científica, especialmente, classificação ordenada de plantas e
animais segundo seus relacionamentos naturais”
Um exemplo clássico de taxonomia é uma estrutura de diretórios, com itens
relacionados através de especialização (pai-filho, classe-subclasse), neste caso, diretório e
subdiretório. Este é um relacionamento semanticamente fraco, pois fica a critério do usuários
26

classificar o nível de formalidade e colocar sob um diretório os itens que acredita ser uma
subclassificação deste diretório.
No exemplo da figura 3, vemos o diretório ontologia que possui o subdiretório
linguagens, dentro do qual então as linguagens de ontologia. No entanto, Protege2000 e OilEd
não são linguagens de ontologias e sim ferramentas para a criação de ontologias, porém por
questão de afinidade foram colocadas sob tal diretório. Esta representação não deixa de ser uma
taxonomia, mas com uma representação semântica mais fraca (BREITMAN, 2006).

Figura 3 - Exemplo de taxonomia como diretórios

Fonte: Breitman (2006).


27

2.3.2 Tesauro

Assim como a taxonomia, o termo tesauro é usado para descrever todos os tipos
estruturas baseadas no assunto, o que transpõe o conceito de taxonomia, pois permite não
apenas organizar os assuntos de forma hierárquica, mas também criar novos tópicos a partir
desses assuntos (GARSHOL, 2004). É possível então afirmar que um tesauro é uma taxonomia
com relacionamento semântico entre os termos.
O principal objetivo de um tesauro é garantir que os termos sejam descritos de forma
coesa para que o usuário possa aprimorar sua busca e encontrar a informação de que necessita
de forma mais eficiente. Para tal resultado, o tesauro proporciona a possibilidade de adicionar
relacionamentos extras para as informações (BREITMAN, 2006).
Os tesauros estão entre os instrumentos de representação do conhecimento mais
conhecidos na área da Ciência da Informação, mais próximos do conceito de ontologias, pois
ambos possuem linguagens de estruturas combinatórias, de forma especializada, representando-
se organizadamente os termos e conceitos baseados em seus tipos de relacionamentos
(RAMALHO, 2010).
Na figura 4, observa-se um exemplo dado por Steffen Staab (2006), no qual se pode
visualizar que, após a categorização hierárquica dos termos, adicionaram-se relacionamentos.
Nesse exemplo, foi relacionado Estudante de Doutorado (Doktoral Student) e Estudante de PhD
(PhD Student) como sinônimos e também F-Logic e Ontology como termos similares. Essas
informações é que serão muito importantes no momento da busca pelo termo, pois ajudam a
refinar a busca e também a apresentar termos relevantes que possivelmente não foram descritos
na busca pelo usuário.
Figura 4 - Exemplo de Tesauro e seus relacionamentos

Fonte: Staab (2006)


28

Na Taxonomia, a descrição dos assuntos consiste em apenas um relacionamento, usado


para criar a hierarquia. Os termos sendo descritos são obviamente abertos, porém o idioma
utilizado nessa descrição é fechado, ou seja, ela é desenvolvida baseada em um único idioma,
já que contém apenas um único relacionamento.
Por outro lado, o tesauro permite uma descrição dos termos bem mais ampla, mesmo
que seja com um idioma fechado. O tesauro poderia ser considerado uma ontologia a partir da
qual se obteria um tipo uma propriedade e também relacionamentos. Na prática, o tesauro não
é considerado uma ontologia pois seu poder de descrição é muito mais inferior, por causa de
seu vocabulário limitado (GARSHOL, 2004).
Apesar de suas características em comum, o tesauro e a ontologia possuem diferentes
modelos na representação do conhecimento. Tesauros auxiliam os usuários na procura por uma
informação específica e é com esse intuito que essa ferramenta é desenvolvida, enquanto as
ontologias, para que se possa fazer uma inferência automática, proporciona recursos para uma
descrição formal dos assuntos e objetos de estudo (RAMALHO, 2010).

2.3.3 Mapa do conhecimento

Um dos mais utilizados métodos de classificação baseada no assunto é o mapa do


conhecimento (Topic Maps), que é organizado em tópicos usados para representar alguma coisa
do mundo real. No mapa do conhecimento, os assuntos são representados por três tópicos:
nomes, ocorrência e associações. São utilizados para descrever os nomes, as propriedades e os
relacionamentos de um assunto específico (GARSHOL, 2004).
O mapa do conhecimento era inicialmente um projeto dos anos 90 com a intenção de
representar uma estrutura de indexação de livros. No entanto, os pesquisadores perceberam que,
com um pouco mais de generalização, poderiam criar um modelo de metadados, uma aplicação
muito mais ampla do que se esperava do projeto original (AHMED; MOORE, 2005).
A definição principal de mapa do conhecimento é uma coleção de assuntos que
descrevem um conceito. Esses assuntos podem se relacionar com inúmeras formas de
combinações, utilizando-se de associações. Na figura 5, observam-se três conceitos no mapa
do conhecimento e também como a diferença de relacionamentos entre assuntos (Topic) e
recursos (Resource) possibilita uma divisão entre um espaço de assuntos apenas e suas
29

associações, e outro espaço de recursos e seus devidos assuntos relacionados (AHMED;


MOORE, 2005).

Figura 5 - Exemplo de Mapa do Conhecimento

Fonte: Ahmed e Moore (2005)

O nome do tópico em um mapa do conhecimento pode na verdade conter mais de uma


palavra que se refere ao mesmo assunto, ou que sejam termos sinônimos. É permitido que
tópicos diferentes possuam o mesmo nome, o que não é permitido no tesauro ou na taxonomia.
Na prática, isso ocorre várias vezes e é muito importante para eliminar a ambiguidade de alguns
termos, como por exemplo diferenciar as palavras “Rede” (Rede de computadores) e “Rede”
(Artesanato Nordestino).

2.3.4 Ontologia

A ontologia tornou-se sinônimo para a solução de inúmeros problemas relacionados ao


fato de que os computadores não entendem linguagem natural, desde que a visão sobre Web
Semântica vem sendo amplamente discutida. Caso tais ferramentas já fossem implementadas e
todo documento fosse marcado com definições ontológicas e se tivesse um agente que pudesse
interpretar, com a mesma qualidade em que um humano é capaz de interpretar a linguagem
natural, haveria um enorme avanço na qualidade de comunicação entre o homem e a máquina,
30

pesquisas teriam resultados muito mais amplos e precisos numa velocidade exponencialmente
mais rápida.
As ontologias vêm sendo cada vez mais considerada uma grande solução para tal desafio
e reconhecida por facilitar a interpretação de textos automaticamente, partindo-se de uma
palavra e atingindo seu completo conceito e descrição, mas também enfrenta barreiras como
polissemia, tentando cada vez mais se obter um resultado totalmente não ambíguo e de
qualidade (BIERMANN, 2005). Levando em conta que a ontologia é o mais completo método
de se classificar o conhecimento este então será o método no qual esta pesquisa irá se basear.
O termo ontologia tem sido aplicado de diversas formas diferentes. Originou-se da
Metafísica, uma área da Filosofia que estuda os tipos de estruturas dos objetos, propriedades e
relacionamentos com a realidade, era até algumas vezes utilizada como sinônimo da área. Foi,
de forma pioneira, proposto por Aristóteles. Porfírio, um filósofo grego, propôs, nos séculos III
DC, o que ficou conhecida como “árvore de Porfírio”, a primeira classificação arborescente
criada, que lista categorias sob supertipos mais gerais, como ilustrado na figura 6 (BREITMAN,
2006).
Na Ciência da Computação, a ontologia começou na área de Inteligência Artificial e tem
sido normalmente associada à inferência lógica e técnica similares para a recuperação de
informações relevantes.
31

Figura 6 - Árvore de Porfírio

Fonte: BREITMAN (2006)

Ontologia é definida por Gruber (1993) como uma “especificação formal e explícita de
uma conceitualização compartilhada”, ou seja, quando a definição de um termo é algo claro e
bem definido e ao mesmo tempo compartilhada por todos em uma certa área do conhecimento,
para que haja um consenso sobre o que está sendo definido pela ontologia.
É possível analisar na figura 7 e 8 que ao contrário da definição proposta por Gruber
(1993) Ontologias Baseada em Protótipos são diferenciadas não por axiomas ou definições,
mas por típicas instancias e protótipos, as categorias são formadas então pela coleta de tais
instancias ao invés de definir cada possível instancia de todo o conjunto (BIERMANN, 2005).
32

Figura 7 – Ontologia Terminológica

Fonte: BIERMANN (2017)

Figura 8 – Ontologia Baseada em Protótipo

Fonte: BIERMANN (2017)

Como ontologia é um termo utilizado amplamente em várias áreas, é comum se deparar


com diferentes definições, como por exemplo, a definição do consórcio: “a definição dos termos
utilizados na descrição e na representação de uma área do conhecimento” (W3, 2015). Assim
como sua definição pode diferir em áreas diversas, também pode quanto à sua estrutura básica.
O consórcio W3C coloca que todas as ontologias devem seguir o seguinte padrão para uma
descrição completa e eficiente dos termos: possuir classes nos mais variados domínios de sua
aplicação, relacionar tais classes entre si, gerando um significado mais forte para estas e também
fornecendo para elas propriedade (ou atributos) (BREITMAN, 2006).
33

Pode-se comparar ontologias também com várias práticas utilizadas na área de software,
como por exemplo a modelagem de Entidade Relacionamento, da Análise Estruturada, da
Análise Essencial e a Orientação a Objeto. Assim como no processo de criação de ontologias,
nesses outros modelos, aplicam-se etapas como planejamento, modelagem, validação e
verificação, o que possibilita a criação de um modelo de conceitos para o domínio sobre o qual
se deseja desenvolver um sistema (BREITMAN, 2006).
O termo ontologia tem principal significado na área da Ciência da Computação como a
descrição do mundo que consiste em tipos, propriedades e também tipos de relacionamentos
entre os objetos estudados. A ontologia torna-se então o ápice da evolução das classificações
baseadas no assunto, pois todos os outros exemplos citados possuem um vocabulário de um
idioma específico fixo para a descrição e definição dos assuntos. Já as ontologias possuem um
vocabulário aberto (GARSHOL, 2004).
Fazendo-se o uso de ontologias, o criador da descrição de assuntos pode optar pelo
idioma que quiser e que irá ser útil para seu projeto, baseado no público alvo que irá fazer uso
dessas informações (SMITH, 2003).
Para a criação de uma ontologia é importante também observar o domínio de quem irá
criar as representações na área em questão, pois é uma vantagem que este agente tenha
conhecimento aprofundado em tal assunto, para uma maior percepção das definições.
É possível se obter uma ontologia de diversas fontes textuais distintas como banco de
dados, documentos, sejam eles estruturados ou não, ou até de métodos de representação do
conhecimento já preestabelecidos, como os apresentados anteriormente, tais como dicionários,
taxonomias, etc. Esta obtenção de conhecimento segundo Clancey (1993) não é apenas um
grande repositório de conhecimento extraído da mente de um especialista de determinada área,
mas sim o resultado de uma atividade de modelagem, no qual o objeto é o comportamento
observado de um agente inteligente.
Esta pesquisa tem como foco a obtenção de termos a partir de fontes textuais não
estruturadas, ou seja, fontes textuais na qual o conteúdo está simplesmente disposto de forma
aleatória e não há organização tampouco definição dos termos disponíveis. Tal tipo de fonte
por um lado é vantajosa, pois é muito vasta e de grande disponibilidade. É possível encontrar
conteúdo ao menos organizado por assunto, mesmo que não estruturado, com muita facilidade,
porém por ser não estruturado torna mais complexa sua acessibilidade, pois para obter seus
termos específicos, defini-los de forma coerente e então montar a ontologia, é necessária uma
varredura clínica sobre o texto.
34

2.3.5 Classificações de Ontologias

Assim como sua definição e estrutura básica, também existem várias classificações para
ontologia. Aqui serão apresentadas algumas propostas por pesquisadores mais conceituados no
estudo e na criação de ontologias.
A primeira classificação é a que se baseia em como a ontologia foi criada em sua
estruturação e em seu conteúdo, como mostra a figura 9. A classificação foi proposta por Lassila
e McGuiness (2001, apud BREITMAN, 2006), que definem as ontologias em uma linha entre
“leve” (lightweight) e “pesada” (heabyweight) (BREITMAN, 2006).

Figura 9 - Classificação de Lassila e McGuiness

Fonte: Breitman (2006).

No modelo proposto por Lassila e McGuiness (2001), observa-se que o objetivo é a


criação de um vocabulário de conceitos que sejam compartilhados por todos indivíduos de um
certo grupo ou área de conhecimento, desde um simples catálogo até a mais expressiva e
complexa ontologia. O que os diferenciam realmente é a complexidade de cada um e o quão
formal eles se expressam em sua representação.
As hierarquias tipo-de-informais são relacionamentos generalizados de forma informal,
assim como no exemplo dado por Breitman (2006), no qual termos como “aluguel de carro” e
“hotel” não são “tipos-de-viagem”, porém se encaixam em tal categoria pelo seu
relacionamento informal com viagem. Por outro lado, as hierarquias tipo-de formais, em
ontologias mais “pesadas”, têm os relacionamentos respeitados integralmente como no exemplo
de taxonomia citado anteriormente. Nos modelos de Frames, já se observa a existência de
35

classes que possuem atributos, porém não globais e sim apenas para as classes onde foi definido
(LASSILA; MCGUINESS, 2001).
As ontologias com restrições de valores referem-se aos valores assumidos pelos
atributos de suas classes, ou seja, se existe uma propriedade como “número de telefone”, este
modelo irá restringir a entrada de valores para somente números inteiros e em um certo formato.
As restrições lógicas permitem que tais restrições sejam expressas em lógica de primeira ordem
(BREITMAN, 2006).
Um sistema de classificação também de relevância para a área de estudo de ontologias
é o proposto por Guarino (2009), e utiliza-se da generalização da ontologia como critério de
classificação. Segue o exemplo de seu modelo na figura 10.

Figura 10 - Classificação de Nicola Guarino

Fonte: Guarino (2009)

Neste modelo, as Ontologias de nível superior (top-level ontology) são as que definem
termos e conceitos mais genéricos como espaço, tempo e eventos, e também são independentes
de um problema em particular ou de um domínio focado numa maior escala de comunidades
de usuários.
As ontologias de domínio e tarefas (domain ontology, task ontology) descrevem,
respectivamente, o vocabulário genérico de um domínio como medicina ou automóveis, por
exemplo, ou uma atividade ou tarefa genérica como diagnósticos ou vendas, especializando os
conceitos definidos na ontologia de alto nível.
36

Ontologias de aplicação (application ontology) descrevem conceitos baseados tanto em


um domínio em particular quanto em sua tarefa.
O modelo proposto por Guarino (2009) será utilizado nesta pesquisa, uma vez que se
encaixa na classificação de domain ontology ou task ontology, pois será focada na área de
linguagem de programação. Uma vez classificada, será aplicada a metodologia para a criação
de tais ontologias, denominada Methontology, a qual será descrita na seguinte subseção.

2.4 METHONTOLOGY

Com o grande aumento no interesse em se criar ontologias para tão diversas áreas, torna-
se necessária também a criação de metodologias que norteiem este processo, pois não é um
processo simples, muito pelo contrário. A criação de ontologias requer muita dedicação e
conhecimento sobre o que se tem necessidade de conceituar. É possível encontrar vários estudos
sobre essas metodologias sendo desenvolvidas por cientistas no mundo inteiro. Provavelmente
a melhor opção seja a escolha de uma metodologia mais completa ou até mesmo a composição
de metodologias diferentes.
Nesta pesquisa, será adotada a methontology, pela sua simplicidade de organização do
processo de criação de ontologias. A methontology se encaixa perfeitamente na definição do
escopo deste projeto e irá contribuir na organização e parametrização do desenvolvimento da
ontologia para se cumprir os objetivos geral e específicos. Esta metodologia foi criada por
Gómez-Perez, Fernandéz e Juristo (1997), um framework que apoia a criação de ontologias.
Este framework baseia-se em organizar os processos de desenvolvimento da ontologia, quais
processos são necessários e de que forma devem ser aplicados.
Os autores classificam as principais atividades em três grupos, sendo o primeiro as
atividades de gerenciamento de ontologias, que se embasa em definir o escopo, controlar e
garantir a qualidade do resultado. O segundo se refere às atividades ligadas ao desenvolvimento
de ontologias que está ligado ao estudo do ambiente, da possibilidade de execução de tal tarefa,
conceitualização, formalização, implementação, manutenção e o uso da ontologia. E, por
último, estão as atividades de manutenção de ontologias. Fazem parte deste processo a obtenção
das informações, avaliação, integração, documentação e gerência de configuração (GÓMEZ-
PÉREZ; FERNANDÉZ; JURISTO, 1997).
Uma vez que definida a metodologia, será feita a escolha dos termos que serão utilizados
na criação da ontologia. Para tal tarefa, será utilizada a ferramenta AntConc com as palavras
37

extraídas dos sumários dos livros da área de linguagem de programação do curso de TSI do
IFSP câmpus São João da Boa Vista.

2.5 ANTCONC

A ferramenta AntConc é um concordanciador, um sistema que gera uma lista de


palavras chaves dado um texto, normalmente apresentada de forma a indicar um contexto no
qual a palavra é utilizada. AntConc é uma aplicação gratuita desenvolvida pelo professor
Laurence Anthony, diretor do centro de educação da língua inglesa na Waseda University no
Japão.
Este sistema foi escolhido por sua simplicidade e eficiência em identificar palavras de
possível interesse para se definir em uma ontologia, na figura 11 observa-se uma imagem
capturada da tela do programa AntConc, que pode ser baixado gratuitamente no endereço
< http://www.laurenceanthony.net/software/antconc/>.

Figura 11 - AntConc

Fonte: Athony (2017)


38

2.6 PROTÈGÈ

Protègè é um software para criação e edição de ontologias, desenvolvido pelo centro de


pesquisa biomédica da Stanford University School of Medicine. Este projeto oferece
WebProtege e o Protege Desktop, que são aplicações gratuitas e de código aberto para criação
e edição de ontologias. Com esta aplicação, é possível registrar todos os termos que se deseja
definir, e então relacioná-los com outros termos e gerar o arquivo OWL, que é a linguagem web
de ontologia (STANFORD, 2016).
Na figura 12 é também apresentada a imagem da tela do programa Protègè que será
utilizado nesta pesquisa para a criação da ontologia na área de linguagem de programação, pois
é uma das ferramentas mais bem-conceituadas para tal tarefa e em constante atualização.
Protègè é de fácil aprendizado para novos usuários e de grande eficiência na criação de
ontologias, o sistema pode ser baixado gratuitamente no site da Universidade de Stanford no
endereço < http://protege.stanford.edu/>.

Figura 12 - Protègè

Fonte: Página Web do Protègè < https://protege.stanford.edu>


39

2.7 SPARQL

SPARQL Protocol and RDF Query Language (SPARQL) é uma linguagem de


consulta, utilizada para extrair valores de arquivos Resource Description Framework (RDF),
maneira pela qual o Protègè organiza as informações geradas na criação de uma ontologia. Estes
tipos de arquivos são organizados em Triples que como o nome sugere é uma junção de três
entidades sendo elas Sujeito → Predicado → Objeto, como por exemplo: João (Sujeito) →
visitou (Predicado) → Paris (Objeto).
Com essa organização, a busca por informações com uma linguagem específica como
SPARQL torna o resultado bem mais significativo, trazendo para o usuário não só combinações
para sua busca, mas também informações semanticamente relacionadas a seu assunto.

2.8 ARC2

Toda linguagem de busca conhecida como “Query Languages” necessita de um servidor


que a interprete e a execute em determinada base de dados. Para essa tarefa, foi utilizada a
biblioteca ARC2, que é uma biblioteca na linguagem PHP, linguagem de que esta pesquisa faz
uso para o desenvolvimento do projeto, que fornece recursos para criação de consultas na
linguagem SPARQL para serem executadas na base de dados semântica, ou seja, a ontologia
criada no Protègè.
3 METODOLOGIA

Esta pesquisa foi dividida em diversas partes a fim de concluir o objetivo final. Em cada
etapa, foi empregada uma metodologia adequada para tal atividade, que foi escolhida após
análise das metodologias disponíveis na área de cada processo. Tais etapas serão descritas nas
seguintes subseções, com detalhamento dos processos nelas incluídos.
A primeira etapa desta pesquisa trata-se do levantamento de requisitos descrito na
subseção 3.1 para então, em seguida, começar o desenvolvimento do projeto com o referencial
teórico, que foi descrito no Capítulo 2.
Após o levantamento do referencial teórico, foi cumprido o primeiro objetivo que é
digitalizar os sumários dos livros de linguagem de programação da bibliografia do Curso de
Tecnologia em Sistemas para Internet. Em seguida foi utilizada a ferramenta AntConc para se
obter a lista de termos-chaves candidatos à ontologia que descreverá o livro ao qual o termo
pertence.
Tendo os sumários dos livros digitalizados, os termos-chaves foram submetidos ao
software AntConc. Essa ferramenta faz uma varredura no texto todo e traz os possíveis termos
de interesse baseado em sua ocorrência no documento todo, como por exemplo em um livro de
Java, uma linguagem de programação amplamente utilizada, o termo “método” irá
provavelmente ocorrer inúmeras vezes, o que então faz a escolha deste termo para a ontologia
imprescindível.
O passo seguinte será criar a ontologia na área de linguagem de programação, definindo
os relacionamentos entre os termos-chaves, utilizando a ferramenta Protègè na criação das
ontologias, para gerar mais conteúdo para o processo de indexação de livros. Uma vez
escolhidos os termos através do AntConc, estes serão inseridos no Protègè. Este programa
possibilita a definição de todos os termos e também os relacionamentos entre eles, criando
assim um significado para eles e como se relacionam entre si e com os livros proporcionando
um entendimento maior da área sendo descrita pela ontologia.
Na etapa seguinte, foram definidos os requisitos com a ajuda da experiência dos
bibliotecários visando suprir a necessidade de acesso a informações precisas e de qualidade
quando se procura um livro de determinado assunto, tais requisitos serão necessários para o
desenvolvimento do projeto.
O desenvolvimento da máquina de inferência começa na quarta etapa, quando, em posse
de toda a documentação necessária, é possível começar a desenvolver os objetivos específicos
42

da pesquisa. Também nesta etapa será desenvolvida a aplicação web que será o meio de
interação do usuário com a ontologia definida com os termos selecionados.
E, por fim, este projeto é disponibilizado para a biblioteca, que fará uso dele para agilizar
e tornar mais eficiente a busca por livros de assuntos em domínios que não são da área de
domínio dos bibliotecários.

3.1 LEVANTAMENTO DE REQUISITOS

Para a real utilização, pelo usuário final, da ontologia criada, será criada a aplicação web
na qual os usuários poderão inserir suas buscas e obter resultados significativos sobre conceitos
e dicas de livros disponíveis para consulta relacionada ao assunto que se procura.
A etapa de levantamento de requisitos tem o intuito de identificar as reais necessidades
do usuário e como esta aplicação pode influenciar e melhorar o processo de busca por
conhecimento.
Esta etapa foi feita em conjunto com a bibliotecária do IFSP câmpus São João da Boa
Vista, para a definição das necessidades e qual problema seria trabalhado para resolver. No
Capítulo 1, estão descritas tais necessidades bem como suas justificativas e seus objetivos.
Foi pesquisado de que maneira a pesquisa e seus objetivos poderiam ajudar no trabalho
dos bibliotecários e até na interação dos alunos e qualquer pessoa que tenham interesse em
encontrar livros de assuntos específicos disponíveis na biblioteca. Foi baseado então nestas
necessidades de fácil acesso ao um livro de maneira rápida e eficaz, mesmo que tudo o que o
usuário saiba sobre o assunto seja algumas palavras, que a aplicação teve seu foco em agilizar
o processo de busca pelo conteúdo mais eficaz para o que se procura.

3.2 ELABORAÇÃO DO PROJETO

A elaboração do projeto foi feita após o levantamento do referencial teórico e o


levantamento de requisitos, a partir da problemática da biblioteca e como esta pesquisa poderia
contribuir para ajudar. Foi então definido o projeto para a concepção da máquina de inferência,
que irá auxiliar no processo de indexação dos livros e também na busca por termos específicos.
43

3.3 DESENVOLVIMENTO DO PROJETO

O desenvolvimento deste projeto consiste de algumas etapas, conforme já explicitado


anteriormente. Recapitulando, primeiro passo foi a criação da Ontologia para a linguagem de
programação. Esse processo começou com a definição dos termos específicos da área e criação
de relacionamentos. Para tal processo, foram digitalizados os sumários dos principais livros da
área disponíveis na biblioteca do IFSP câmpus São João da Boa Vista. Em posse dos termos,
foi realizado um processo de seleção dos termos relevantes. Na seleção dos termos, foi utilizado
o sistema AntConc, para a classificação dos termos por ocorrência nos sumários e escolha deles
por relevância para a máquina de inferência. O AntConc é uma das ferramentas mais
conceituadas para esta tarefa. A partir desse software, é possível ignorar termos como
conectivos (por exemplo, que, para etc) que não teriam relevância para a definição de um
assunto e apontariam para diversos livros diferentes.
Todo esse processo está ligado ao de gerenciamento de ontologias, seguindo a
Methontology, metodologia adotada pela pesquisa na criação de ontologias.

3.3.1 Criação da Ontologia

Após a escolha dos termos, eles foram submetidos à ferramenta Protègè na qual foi
criada a ontologia. Nesta ferramenta, foram definidos todos os termos, conceituando-se um a
um e então relacionando-os entre si e aos livros onde estão registrados.
Esse processo é muito importante, pois mesmo que o usuário pesquise por um termo
específico, devido ao seu relacionamento com outros termos, poderão ser indicados mais livros
que possam ser de interesse. É nessa parte que garantimos a qualidade da ontologia definindo
e conceituando os termos de maneira clara e eficiente, para que possa ser facilmente encontrado
pela máquina de inferência.
44

3.3.2 Desenvolvimento da máquina de inferência

Com os termos conceitualizados e relacionados, o Protègè gera a ontologia em um


arquivo no formato OWL (Ontology Web Language). Assim que concebida a ontologia para
linguagem de programação, começa o desenvolvimento de um sistema web, o qual é a máquina
de inferência que irá, a partir da ontologia, inferir qual o melhor resultado para um certo termo
que foi pesquisado. Para tal sistema, são utilizadas as tecnologias no lado do cliente como
HTML 5, JavaScript e CSS e no servidor será utilizado Java, Apache e MySQL.
Este sistema web é uma máquina de inferência pois tem acesso à ontologia criada
através da biblioteca ARC2 descrita no capítulo 2.8, e então pode inferir o melhor resultado
para uma determinada busca, resultado esse semanticamente relacionado com o que se procura.

3.4 ENTREGA DO PROJETO

O sistema web desenvolvido será entregue à biblioteca do IFSP câmpus São João da
Boa Vista. Os bibliotecários poderão utilizá-lo para fazer buscas por termos específicos que não
sejam de seu domínio, mas que o usuário em busca de tal termo o conheça, e o sistema irá
fornecer um conceito sobre o termo e sugerir livros da área para que sejam indicados ao usuário.

3.5 DESENVOLVIMENTO

O desenvolvimento, como anteriormente descrito, foi dividido em diversas partes, pois,


para esta pesquisa, fez-se necessárias diversas ferramentas diferentes para a obtenção do
sucesso esperado no planejamento inicial. A seguir, descrevemos como cada etapa foi cumprida
e os desafios que foram enfrentados para se atingir o resultado final.

3.5.1 Coleta de dados

A etapa do desenvolvimento de coleta de dados teve início já em paralelo com a etapa


de pesquisa e de planejamento, a qual designou-se em obter os sumários dos livros da área de
45

linguagem de programação da biblioteca do Instituto Federal câmpus São João da Boa Vista, e
digitalizá-los seriam utilizados para relacionar um determinado livro, da área de linguagem de
programação, com um determinado assunto.
Para esta tarefa foi utilizada a tecnologia OCR (Optical Character Recognition) para
agilizar o processo de digitalizar as páginas dos sumários captadas em fotografia. Como pode-
se observar na figura 13 o sumário ainda no formato de fotografia retirado diretamente do livro
Alto Desempenho em MySQL por Vadim Tkachenko, Peter Zaitsev e Baron Schwartz, um dos
principais livros da disciplina de banco de dados.

Figura 13 – Fotografia Sumário

Fonte: Tkachenko e Zaitsev (2009)

Após concluída a etapa de fotografia de todos os sumários desejados, eles foram então
submetidos à tecnologia OCR como planejado para a efetiva digitalização de seu conteúdo.
Esta tecnologia não é perfeita, pois depende muito da qualidade da imagem fotografada e por
isso muitas das vezes pode gerar textos e caracteres que não condizem com o conteúdo da
imagem original, fez-se necessária então uma análise após a digitalização e um trabalho de
correção dos caracteres digitalizados erroneamente.
Esta digitalização errada de alguns caracteres não comprometeu o objetivo de agilidade
no processo de digitalização, pois como pode-se observar nos trechos seguintes, os erros,
praticamente quase todos em relação à acentuação gráfica da língua portuguesa, não são tão
46

significantes em relação a todo o conteúdo digitalizado. No final a tecnologia agilizou muito o


processo, que poderia ter levado muito mais tempo se fosse necessário digitar todas as palavras
dos sumários.

Figura 14 - Digitalização antes da correção

Fonte: Elaboração do autor

Figura 15 - Digitalização após a correção

Fonte: Elaboração do autor

Ainda nesse processo de digitalização, alguns sumários foram encontrados disponíveis


na página da editora do livro, o que também agilizou o processo de digitalização, pois já
disponibilizavam uma versão em PDF dos sumários.
47

3.5.2 Seleção dos termos

A etapa seguinte do desenvolvimento do projeto foi a seleção dos termos que seriam
utilizados posteriormente na criação da ontologia.
Uma vez coletados todos os sumários dos livros com tema de linguagem de
programação da biblioteca do Instituto Federal de São João da Boa Vista, como foi proposto
pela pesquisa, foi necessário um trabalho de seleção dos termos que seriam realmente úteis
para a criação da ontologia, pois os sumários obviamente continham diversas palavras como
conectivos, os quais não seriam necessários na ontologia e, se adicionados relacionaram-se com
praticamente todos os livros, o que também não é de grande ajuda para o processo de busca por
resultados específicos como objetivo final.
A etapa de seleção dos termos foi feita com a colaboração da pesquisa de Iniciação
Científica “Mapeamento Semântico de um vocabulário controlado de informática em uma
ontologia para um catálogo bibliotecário online” que vem sendo desenvolvida pelo aluno Cauê
Silva do Instituto Federal de São João da Boa Vista.
Na seleção dos termos a primeira tarefa foi configurar o concordanciador AntConc para
realizar a tarefa e exclusão de termos desnecessários ou pouco influentes para a ontologia. Na
Figura 16 – AntConc Lista de exclusões pode-se observar uma das telas do software AntConc,
na qual é possível fazer uma configuração para a leitura dos termos pela aplicação. O AntConc
permite tanto extrair todos os termos sem filtro algum, como também extrair apenas alguns
termos de uma lista controlada, ou também o contrário, em que a lista é de termos a serem
ignorados pelo concordanciador, que é o caso da imagem em questão.
48

Figura 16 – AntConc Lista de exclusões

Fonte: Elaboração do autor

Nesta etapa do processo de desenvolvimento, a ferramenta AntConc foi também


utilizada para analisar o contexto em que os termos são empregados em diferentes sumários.
Na figura 17, observa-se a tela do software na qual é possível escolher um termo específico e
então obter como resultado uma busca pelo seu uso nos sumários. Isso é muito importe, pois
vai ajudar na montagem da ontologia e na sua estruturação, apresentando talvez algum contexto
que não tenha sido levado em consideração antes para a ontologia, tornando o resultado da
aplicação semanticamente mais forte e com resultados mais expressivos.
49

Figura 17 – AntConc Contextos

Fonte: Elaboração do autor

3.5.3 Criação da ontologia

Todo o processo de coleta e mineração de dados teve como objetivo a criação da


ontologia na área de linguagem de programação. Esta ontologia foi criada com o intuito de
definir os relacionamentos dos termos encontrados em sumários específicos, com seus
respectivos livros, e também definir as principais características das linguagens de programação
mais conhecidas e utilizadas no curso de Tecnólogo em Sistemas para Internet do Instituto
Federal de São Paulo câmpus São João da Boa Vista.
Para a execução desta tarefa fez-se uso da ferramenta Protègè, apresentada no capítulo
2, amplamente utilizada para a criação e edição de ontologias de diversas áreas do
conhecimento e que se fez muito útil para a pesquisa.
A primeira etapa desta parte do desenvolvimento do projeto foi a definição das classes,
que, segundo o Chungoora (2017) é a estrutura base de projeto para a modelagem de
conhecimento. No Protègè classes são organizadas na forma de taxonomia, uma organização
50

hierárquica apresentada no capítulo 2, que permite definir desde o mais amplo das “coisas”
(“Thing”) até o mais específico considerando o escopo proposto para a criação da ontologia.
Na figura 18, é possível observar a organização básica para definição de linguagens de
programação, feita na ferramenta Protègè, na qual é definida uma classe superior a todas
chamada “Caracteristicas_de_Linguagens” e então hierarquicamente estas características são
definidas. No nível seguinte, é possível observar a separação em relação ao nível das
linguagens, alto ou baixo. Após o nível, foram consideradas as gerações de linguagens indo
desde a primeira até a quinta geração e, por fim, o paradigma último nível da hierarquia, nível
o qual a instância de cada linguagem será relacionada. Todos os conceitos observados nesta
etapa foram descritos com mais detalhes no capítulo 2 desta pesquisa.

Figura 18 – Definição de Classes no Protègè

Fonte: Elaboração do autor

Ainda nas definições de classes, o Protègè fornece uma grande quantidade de recursos
para a descrição destas classes que podem ser observados na Figura 18 – Definição de Classes
no Protègè. Tais recursos foram muito importantes para a definição de uma classe, pois é
51

baseado nessas definições que quando a ontologia for gerada, uma funcionalidade chamada
Reasoner, que por definição é “quem vê a razão por analogia”, irá analisar toda a estrutura da
ontologia criada e garantir que “tudo faz sentido”, ou seja, todas as definições de classes estão
de acordo com os relacionamentos e indivíduos atribuídos a si.
É possível descrever situações tais como que classe A é “Disjoint With” de classe B,
que significa descrever que a classe A é totalmente disjunta da classe B, ou seja, os indivíduos
que venham a fazer parte da classe A jamais poderão fazer parte do grupo de indivíduos da
classe B, e com base nessa descrição o Reasoner pode inferir também o contrário que os
indivíduos de B jamais serão parte do grupo de indivíduos da classe A por definição. Utilizando
o exemplo da Figura 19, foi descrito que uma linguagem de programação de alto nível por
definição jamais será considerada uma linguagem de baixo nível, então entende-se que jamais
fará parte do grupo de indivíduos da classe “Baixo_Nivel”.

Figura 19 – Descrição de Classes no Protègè

Fonte: Elaboração do autor

Na criação da ontologia, ainda foram criados os indivíduos ou instâncias (Instances),


como são chamados pelo Protègè, parte fundamental para a definição da ontologia, pois é o
último nível da hierarquia construída, e são as representações atômicas de cada indivíduo
52

relacionado a uma classe em específico. É possível observar na Figura 19 as instâncias que


foram atribuídas à classe “Orientada_a _Objetos”, como as linguagens C++, Java, Python e
Ruby.
Parte significativa ainda da definição dos indivíduos foi a definição da estrutura dos
indivíduos. Este foi um dos grandes desafios para a criação desta ontologia, pois seria baseada
nessas estruturas e suas relações que a aplicação iria buscar pelo conteúdo mais significativo.
São indivíduos da ontologia ainda os termos, os quais podem estar relacionados com diversos
livros, fazendo assim uma ligação entre um assunto e um livro.
O termo utilizado para relacionamento em ontologia é “Properties”, que pode ser
interpretado como característica. Na linguagem OWL, encontram-se três tipos de
características, que vão compor a posição do Predicado na Triple, que é composta, como foi
descrito no capítulo 2.7, da seguinte maneira:
(Sujeito) → (Predicado) → (Objeto)

Em OWL, as três “Properties” possíveis são Annotation Properties, Object Properties e


DataType Properties, como pode-se observar na Figura 20.

Figura 20 – OWL Properties

Fonte: Chungoora (2017)

Annotation Properties são utilizadas para fazer anotações e observação sobre a ontologia
ou suas classes e indivíduos (CHUNGOORA,2017). Object Properties são utilizadas para
relacionar indivíduos com indivíduos. Para este projeto, foi utilizada Object Properties em
53

diversas situações como, por exemplo, para relacionar um indivíduo da classe Livro com um
indivíduo da classe Termos, definindo assim um relacionamento entre o livro e este termo
específico.
Foram ainda criados níveis específicos destes relacionamentos. Foram definidos três
níveis, três diferentes Object Properties, para relacionar indivíduos de Livros e indivíduos de
Termos. As Object Properties criadas foram “RelacionamentoForte”, “RelacionamentoMedio”,
“RelacionamentoFraco”.
Na figura 21 observa-se a Object Propertie “RelacionamentoForte”, definida dentro do
Protègè. Tais relacionamentos foram criados para dar um maior nível de qualidade nos
resultados retornados futuramente quando esta ontologia for consultada, fazendo assim o
resultado desta consulta retornar uma lista de livros relacionados a um termo em específico,
mas o mais importante, separados por níveis de relacionamento, ou seja, o livro o qual o usuário
terá mais chances de encontrar o que busca, ou encontrar um resultado de maior qualidade do
que em livros com relacionamentos não tão significativos com o termo buscado.

Figura 21 – Object Propertie RelacionamentoForte

Fonte: Elaboração do autor

Foi também definido nas características da Object Propertie (Lado esquerdo da Figura)
que esta seria uma característica simétrica (Symmetric), o que significa que o inverso do
54

relacionamento também é verdade. Pode-se então a partir de um relacionamento onde o livro


“C Programming a Modern Aproach” tem um “RelacionamentoForte” com o termo
“functions”, que o termo “functions” também possui um “RelacionamentoForte” com o livro
citado.
Um exemplo do contrário, onde a simetria não se aplica ao relacionamento, mas sim a
assimetria (Asymmetric) seria dizer que o livro “C Programming a Modern Aproach” possui
um relacionamento do tipo “EscritoPor” com o indivíduo “K. N. King”, pois neste exemplo o
relacionamento “EscritoPor” teria como domínio (Domain) a classe “Livros” e a classe
“Pessoas” como abrangência (Range), porém nunca o contrário, tendo em mente que uma
pessoa não poderia ser escrita por um livro.
Para a criação dos conceitos de “RelacionamentoForte”, “RelacionamentoMedio” e
“RelacionamentoFraco” foi utilizado como base o ranqueamento dos termos gerado pela
aplicação AntConc, apresentada no capítulo 2.5. Na figura 22, observa-se uma lista de palavras
“Word List”, gerada pelo AntConc, baseada no corpus. A aplicação gera um ranking dos termos
mais significativos, levando em consideração sua pontuação interna registrada no corpus e
também a quantidade de vezes que este termo aparece em um arquivo em específico. Esta
quantidade de que o termo aparece pode ser observada na segunda coluna da figura chamada
“Freq”.
55

Figura 22 – Word List AntConc

Fonte: Elaboração do autor

3.5.4 Desenvolvimento da máquina de inferência

A máquina de inferência é o resultado final desta pesquisa, a parte mais tangível pelo
usuário final, é a aplicação web na qual será possível o bibliotecário ou qualquer outro usuário
ter acesso à ontologia criada, através de uma interface simples e que retornará resultados
significativos em relação ao que está sendo pesquisado.
A inferência feita por esta aplicação necessitará da ontologia para fazer uma busca
semântica e obter resultados significativos e então a aplicação irá buscar em um banco MySQL
informações extras sobre o livro sugerido pela ontologia. Assim com todos os dados relevantes
a aplicação finalmente apresentará ao usuário o resultado de sua busca.
Antes de começar propriamente o desenvolvimento da aplicação, foi desenvolvida uma
estrutura de banco de dados em MySQL. O banco em MySQL foi criado para dar suporte à
aplicação e armazenar informações que não seriam armazenadas na ontologia criada.
56

Na figura 23, pode-se observar o diagrama gerado mostrando as tabelas e seus


relacionamentos. Este banco foi criado para armazenar mais informações relacionadas aos
livros, tais como editora, autor, endereço para imagem da capa do livro.

Figura 23 – Diagrama do Banco de Dados

Fonte: Elaboração do autor

Para o desenvolvimento da aplicação, foram utilizados alguns frameworks que


facilitaram o processo de criação tanto da lógica de inferir resultados quanto do layout adequado
para apresentar estes resultados adquiridos. O framework escolhido para a construção do design
da aplicação foi o Semantic-UI, pois contém uma grande quantidade de recursos disponíveis
para o desenvolvimento rápido e simples de um layout de qualidade.
A primeira página da aplicação foi desenvolvida com o intuito de ser simples e direta
para sua finalidade, então ela possui apenas a identificação da aplicação assim como a
identificação do Instituto Federal de São Paulo câmpus São João da Boa Vista, instituição onde
esta pesquisa foi desenvolvida. A aplicação possui ainda, na página de início, o campo de busca,
como pode-se ver na figura 24, na qual o usuário, mesmo ainda não tendo feito seu login, pode
digitar uma pesquisa relacionada ao tema de linguagem de programação.
57

Figura 24 – Tela de busca

Fonte: Elaboração do autor

Ainda para o desenvolvimento do layout da aplicação, foi utilizada a biblioteca


Bootstrap, uma das mais populares bibliotecas para desenvolvimento em HTML, CSS e
Javascript. Com esta biblioteca, foi desenvolvida a estrutura da aplicação e toda a organização
sobre a disposição das informações. A biblioteca Bootstrap também foi muito importante para
auxiliar na responsividade da aplicação, ou seja, fazer com que ela esteja apresentável e
organizada em diversos tipos de telas e dispositivos.
59

4 RESULTADOS

A aplicação web denominada Onto Books apresentará ao usuário, após a busca pelo
assunto desejado, os resultados de livros sugeridos pela ontologia, que tenham maior relevância
em relação ao que foi pesquisado.
Quando o usuário clica no botão “Buscar” da aplicação, a ontologia na área de
linguagem de programação é consultada por uma máquina de inferência que busca os
relacionamentos relevantes entre os termos pesquisados pelo usuário. É importante reiterar que
os termos relacionados com os livros foram extraídos de seus respectivos sumários e
processados pelo concordanciador AntConc e que, nesse processo, foram então ignorados todos
os termos não relevantes ou que apontariam para todos os livros como preposições, por
exemplo. Levando isso em consideração já pode-se observar que tais termos quando digitados
pelo usuário serão totalmente ignorados pela ontologia.
Os termos digitados pelo usuário são processados por uma função recursiva, que é uma
função desenvolvida na linguagem PHP que, após atingir determinada condição, executa uma
nova instância de si mesma para continuar o processamento. Essa função recursiva tem como
objetivo montar o script ou código que fará a busca semântica no arquivo OWL, para isso será
utilizada a biblioteca ARC2 que fará a interpretação deste script e executará a busca na
ontologia criada no arquivo OWL, a biblioteca ARC2. A linguagem gerada por essa função
recursiva chama-se SPARQL.
A lógica subjacente à função, responsável por gerar o código que irá buscar os resultados
relacionados com uma busca específica, é simples: o principal objetivo desta função é trazer os
resultados mais relevantes em relação ao que foi digitado pelo usuário.
Pode-se considerar, como exemplo, que o usuário que busca um livro para aprimorar
seus conhecimentos em estrutura de dados tenha digitado uma pesquisa com as seguintes
palavras “Lista e árvores em Java”. A ontologia não contém nenhuma conjunção ou preposição
prontamente irá ignorá-los, resta então os termos “Lista árvores Java”.
Neste momento, serão utilizados os relacionamentos criados na ontologia construída a
partir dos livros e os termos, que foram denominados “RelacionamentoForte”,
“RelacionamentoMédio” e “RelacionamentoFraco. Tais relacionamentos serão então utilizados
para definir um nível maior de importância para o resultado obtido, ou seja, no exemplo acima
o cenário perfeito é o qual o script encontra um livro que possui um “RelacionamentoForte”
com todos os termos digitados pelo usuário, então pode-se dizer que nas primeiras posições dos
resultados da busca estaria o livro “Algoritmos e Estrutura de Dados” escrito por Angelo de
60

Moura Guimarães e Newton Alberto de Castilho Lages, pois observando a figura 25, que foi o
resultado gerado pelo concordanciador AntConc, analisando os termos encontrados no sumário
deste livro, percebe-se que os termos digitados pelo usuário são os termos mais relevantes, pois
aparecem no sumário e certamente estão relacionados fortemente com o livro.
Figura 25 – Lista de termos gerada pelo AntConc

Fonte: Elaboração do autor

Logo após encontrar o cenário perfeito, no qual o algoritmo identifica livros que tenham
“RelacionamentoForte” com os termos buscados, também pode ser oferecido ao usuário opções
que, mesmo que contenham um relacionamento mais fraco com a busca, tenham alguma
relevância sobre o assunto.
Seria então também apresentado, mais abaixo nas opções de livros, obras como
“Estruturas de Dados Usando C” Aaron M. Tenenbaum, pois o processamento deste livro pelo
concordanciador apontou, conforme figura 26, um relacionamento forte com dois dos termos
buscados sendo estes “árvores” que aparece 25 vezes no sumário deste livro e “lista” que
aparece 12 vezes.
61

Percebe-se que a linguagem de programação “C”, abordada por esta obra, difere da
linguagem “Java” buscada pelo usuário, porém, apresenta mesmo, que de forma menos
relevante, opções de temas que estejam relacionados à área da programação que estuda estrutura
de dados, por ter identificado este relacionamento com o tema.

Figura 26 - Lista de termos gerada pelo AntConc

Fonte: Elaboração do autor

A função recursiva, mencionada anteriormente, é então responsável não somente por


encontrar os resultados que serão apresentados ao usuário, mas também por entender quais
destes resultados são mais relevantes. Na figura 27, tem-se o código desta função. Este código
irá ranquear os resultados da seguinte maneira em relação aos termos buscados:
• 1º - Livros que tenham “RelacionamentoForte” com todos os termos buscados;
• 2º - Livros que tenham “RelacionamentoForte” com alguns termos buscados e
“RelacionamentoMedio” com outros, quanto mais “RelacionamentoMedio” menos
relevante é o resultado;
• 3º - Livros que tenham “RelacionamentoMedio” com todos os termos buscados;
62

• 4º - Livros que tenham “RelacionamentoMedio” com alguns termos buscados e


“RelacionamentoFraco” com outros, quanto mais “RelacionamentoFraco” menos
relevante é o resultado;
• 5º - Livros que tenham “RelacionamentoFraco” com todos os termos buscados;
• 6º - Livros que tenham “RelacionamentoForte” com alguns termos buscados, porém
não possui relacionamento algum com outros termos buscados;
• 7º - Livros que tenham “RelacionamentoMedio” com alguns termos buscados, porém
não possui relacionamento algum com outros termos buscados;
• 8º - Livros que tenham “RelacionamentoFraco” com alguns termos buscados, porém
não possui relacionamento algum com outros termos buscados;

Figura 27 – Função Recursiva

Fonte: Elaboração do autor

Como apresentado na figura 27, este algoritmo é responsável por criar então a chamada
“where clause”, que são os parâmetros, as restrições que o algoritmo prepara para serem
buscadas na ontologia e estes parâmetros serão levados em consideração pelo interpretador da
linguagem SPARQL.
63

Na quarta linha de baixo para cima do código apresentado, tem-se a chamada da função
que irá então concluir a montagem do script a ser executado pelo servidor que irá interpretar a
busca dentro da ontologia e então trazer os resultados mais relevantes.
Na figura 28 a seguir, é apresentado o resultado desta função com um exemplo da
linguagem SPARQL montada e pronta para ser executada pelo servidor. Neste exemplo foram
digitados dois termos como teste: “polimorfismo” e “java”. Este script é que faz a busca
semântica no arquivo OWL da ontologia. Logo no início, é definido um prefixo ao endereço da
ontologia em referência, e este prefixo pode ser utilizado ao longo do script sem a necessidade
de repetir o endereço completo toda vez que for necessário. É também nesse momento que o
algoritmo define as prioridades, baseando-se nos relacionamentos e quais são os mais
importantes e devem aparecer antes de outros resultados.

Figura 28 – Where Clause gerada pelo algoritmo

Fonte: Elaboração do autor

Na figura 28, observa-se a tela de relacionamento dos termos sendo feito pela própria
aplicação, a edição da ontologia e a criação de novos relacionamentos. No exemplo da figura
29 a seguir, observa-se que foi introduzido um “RelacionamentoForte” com o termo “android”
para o livro “jQuery Mobile Desenvolva Aplicações Web para Dispositivos Móveis”, obra de
64

Maurício Samy Silva, e também um “RelacionamentoFraco” com o termo “mobile”.


Claramente percebe-se que ambos os termos têm na realidade um relacionamento forte com o
livro, porém foram descritos desta maneira apenas para exemplificação.

Figura 29 – Relacionamento de termos e livros

Fonte: Elaboração do autor

Para a continuação do exemplo foi definido exatamente o contrário dos relacionamentos


acima para o livro “Introdução ao Desenvolvimento de Aplicativos para o Android”, obra de
Wei-Meng Lee. Então tem-se na figura 30 que o livro seguinte, que possui um
“RelacionamentoForte” com o termo “mobile” e um “RelacionamentoFraco” com o termo
“android”.
Figura 30 – Relacionamento de termos e livros

Fonte: Elaboração do autor


65

Uma vez que os termos estão relacionados com determinados livros, é possível
encontra-los pelo buscador semântico, e é exatamente isto que é apresentado na figura 31.
Observa-se que foi digitado o termo “android” então obteve-se como resultado os dois livros
que foram relacionados a este termo. Observa-se a eficácia do algoritmo de busca ao apresentar
o livro “jQuery Mobile Desenvolva Aplicações Web para Dispositivos Móveis” primeiro, pois
este tem um relacionamento mais significativo com o termo pesquisado do que o livro
“Introdução ao Desenvolvimento de Aplicativos para o Android”, relacionamento este que foi
descrito anteriormente sendo um “RelacionamentoForte”.

Figura 31 – Resultado de busca

Fonte: Elaboração do autor

Como é de se esperar, o contrário também é verdade. Na figura 32, tem-se o resultado


da busca pelo termo “mobile” que foi também relacionado a ambos os livros utilizados neste
exemplo. E como o livro “Introdução ao Desenvolvimento de Aplicativos para o Android”
possui um relacionamento mais relevante com o termo, é então apresentado primeiro, assim
numa tentativa de apresentar ao usuário o que mais lhe convém ou que poderá ajudá-lo mais,
pelo termo pesquisado.
O usuário ainda tem a opção de continuar suas pesquisas na tela de resultados mesmo,
ao lado direito inferior, sem a necessidade de voltar para a página principal para realizar uma
nova busca.
66

Figura 32 – Resultado de busca

Fonte: Elaboração do autor

A aplicação Onto Books ainda fornece também ao usuário a possibilidade de buscar


dicas de livros por autor, editora, título, e a área em que o livro é focado. A figura 33 mostra as
diferentes opções de tipos de buscas que são possíveis pela máquina de inferência.
É importante deixar claro que as demais buscas não são através de relacionamentos
definidos pela ontologia, e sim uma simples combinação de palavras digitadas pelo usuário,
com as palavras registradas no banco de dados que combinem com algum nome de autor, por
exemplo, caso esta seja a opção.

Figura 33 – Opções de busca


67

Fonte: Elaboração do autor

Após o usuário receber as dicas dos livros mais relacionados com sua busca, ele poderá
então visualizar as informações relacionadas a tais livros, como nome do autor, da editora,
número de páginas. Essa aplicação permite também ao usuário visualizar a localização física
do livro na biblioteca do Instituto Federal de São Paulo câmpus São João da Boa Vista. Na
figura 34, observa-se que o usuário pode tanto ver uma descrição da localização física do livro,
quanto, ao apontar o mouse para as especificações do livro, ver uma imagem desta localização
em específico.

Figura 34 – Descrição de livros

Fonte: Elaboração do autor

Esta pesquisa foi além do que foi proposto inicialmente, pois esta aplicação web irá
fornecer também uma área de gerência ao usuário responsável pela gestão da biblioteca. É
possível observar no canto superior direito da aplicação o menu entrar em sua página inicial o
menu “Entrar”, conforme ilustrado na figura 35. Esse menu será utilizado apenas por pessoas
responsáveis pela gerência da aplicação na biblioteca.
68

Esta gerência irá permitir que o administrador do sistema inclua novos livros, edite os
livros existentes, inclua novos relacionamentos na ontologia caso sinta a ausência de algum,
edite também os locais onde estes livros estão localizados, caso haja alguma alteração na
disposição física deles.
Essa flexibilidade da aplicação a tornou de certa forma um editor de ontologia, resultado
este que foi além do esperado no início desta pesquisa, e que também foi percebido como uma
real necessidade ao longo de seu desenvolvimento. O importante de a ontologia ser editada pela
própria aplicação, mesmo que com o mínimo de recursos possível, é fazer com que o
bibliotecário consiga editar a ontologia de forma clara e bem visual na aplicação web, sem a
necessidade de voltar ao arquivo fonte do Protègè para sua edição.

Figura 35 – Menu entrar

Fonte: Elaboração do autor

Na área de gerência, todas as informações são cadastradas e editadas separadamente,


isso facilita o trabalho de cadastro por exemplo de uma editora, pois não será necessário digitar
seu nome todas as vezes que um novo livro seu aparecer para ser cadastrado, apenas selecioná-
la na lista de editoras já cadastradas.
A parte gerencial da aplicação, por ser uma área crucial do sistema, será acessada
somente por usuários cadastrados para gerenciá-la. Algumas medidas de segurança foram
implementadas para evitar possíveis invasões ao sistema de gerência, as senhas de usuários
cadastrados, por exemplo, são encriptadas pelo algoritmo MD5, que faz com que qualquer
69

tentativa de injeção de códigos na aplicação pare no momento de conferência da encriptação do


que foi digitado.
Na figura 36, tem-se a visão geral da área gerencial da aplicação, que permite então ao
administrador cadastrar novos livros que futuramente tenham sido adquiridos pela biblioteca.
Cadastrar novos autores que são parte obrigatória para cadastro de livros também é possível,
assim como suas editoras, que podem ser alteradas no terceiro menu da gerência.
As áreas são os campos de atuação em específico de um livro, como “Banco de Dados”
ou “Inteligência Artificial” em tecnologia da informação, são também obrigatórias para o
cadastro de livros. Os termos no quinto são palavras-chaves que serão posteriormente
relacionadas aos livros, apresentados no sexto menu. O sétimo menu são os locais físicos onde
os livros podem ser encontrados. Por fim, o último menu trata-se da edição de usuários para
gerenciar a aplicação, que faz com que o bibliotecário principal possa criar mais usuários com
outras senhas e delegar a eles funções para a edição do catálogo.

Figura 36 – Visão geral área gerencial

Fonte: Elaboração do autor

A edição de livros consiste em todos os processos necessários para a gerência do acervo


do catálogo. É possível tanto editar livros existentes quanto inserir novos livros. Os campos a
serem preenchidos estão na figura 37.
70

Vale observar que os primeiros campos, como o título dos livros, o número de páginas
e o número da edição são livres, ou seja, o usuário irá digitar o seu conteúdo. Nas opções
seguintes, o usuário irá escolher uma das opções em uma lista controlada, podendo assim o
conteúdo destas listas ser editado em seu menu específico. Tem-se então a escolha do autor na
lista, em seguida é selecionada a editora responsável pelo livro, a área a qual o livro pertence e,
por fim, é escolhido o local físico do livro na lista de locais cadastrados.
É opcional ainda o usuário colocar uma imagem da capa do livro, para poder ser
visualizado e mais facilmente identificado pelo usuário que o procura. A inclusão da imagem é
opcional para o caso de a falta da imagem não impedir a pessoa de fazer o cadastro e poder
algum dia voltar e completar este cadastro, adicionando a imagem da capa.

Figura 37 – Edição de livros

Fonte: Elaboração do autor

As edições de autores, editoras, áreas e termos são muito parecidas, pois contêm apenas
a descrição do que está sendo cadastrado. Na figura 38, observa-se a tela de cadastro de autores.
Nessa tela, assim como nas outras três citadas, é necessário apenas o cadastro da descrição do
que está sendo registrado, ou seja, na tela de autores apenas o nome do autor é necessário, na
tela de editoras também o nome da editora, na tela de áreas o título da área do livro e, por fim,
na tela de termos a descrição propriamente do termo, que será futuramente relacionado na
ontologia com algum livro.
71

Em todas as telas, tem-se apenas um formulário utilizado para criação e edição de novos
dados e logo abaixo tem-se a lista de tudo o que já foi registrado no sistema.

Figura 38 - Edição de autores

Fonte: Elaboração do autor

Na tela de gerência de locais é onde o administrador da aplicação irá editar os locais


físicos onde os livros podem ser localizados. A única diferença desta tela gerencial para as
demais citadas acima é que ela permite também a inserção de uma imagem para facilitar a busca
pelo livro.
Foi pensando para esta tela, assim como para as demais, que o administrador pudesse
editar e alterar o conteúdo já existente, então quando houvesse uma alteração física no espaço,
ou na disposição dos livros na biblioteca, esta alteração pudesse ser também feita na plataforma,
para que ela apresente as informações a quem procura, da forma mais consistente possível. Ao
lado direito da figura 39, observa-se a imagem cadastrada como exemplo de “Estante 1”.
72

Figura 39 – Edição de locais

Fonte: Elaboração do autor

No último menu, chamado “Usuários”, o administrador irá gerenciar as pessoas que


terão acesso ao sistema de gerência da aplicação (figura 40). Nesta parte da aplicação, é possível
dar um nome à pessoa que terá acesso e também fornecer um usuário e uma senha para acesso.
Essa senha, uma vez cadastrada, não pode mais ser recuperada devido a encriptação feita pelo
algoritmo MD5, porém pode ser alterada pelo administrador do sistema. O administrador pode
também desativar algum usuário que não deva mais ter acesso à área gerencial da aplicação, ou
que simplesmente não seja mais utilizado por ninguém.

Figura 40 – Edição de usuários

Fonte: Elaboração do autor


73

Por fim, a última tela de gerenciamento é a “Livros & Termos”, parte da aplicação que
permite ao usuário administrador do catálogo relacionar os termos cadastrados com os livros
onde estes termos foram encontrados. Este é um dos menus mais complexos e é no qual
acontece realmente a edição da ontologia.
Esta aplicação tornou-se então um editor de ontologia devido a essa flexibilidade
fornecida ao usuário de poder alterar o conteúdo da ontologia direto pela aplicação web. Como
mostrado na figura 41, a primeira ação a ser executada nesta parte da gerência é a escolha do
livro a ser relacionado aos termos.
Ao selecionar um livro, a aplicação irá executar uma busca pela ontologia identificando
todos os termos relacionados a ele e qual o tipo de relacionamento que possuem. Após esta
busca, são apresentados então os termos em suas devidas colunas, sejam eles de
“RelacionamentoForte”, “RelacionamentoMedio” ou RelacionamentoFraco”. Logo abaixo do
título de cada coluna está o campo “Termos”, que é uma lista controlada dos termos cadastrados
em seu menu específico na gerência.
Através desta lista, o administrador tem a possibilidade de inserir novos termos no
relacionamento com os livros, ou remover termos que por ventura tenham sido registrados por
engano. Não é possível ao administrador registrar o mesmo termo com dois tipos de
relacionamento, para manter a consistência da aplicação.

Figura 41 – Edição de relacionamentos entre livros e termos

Fonte: Elaboração do autor

Um dos maiores desafios desta pesquisa foi realmente este: fazer com fosse possível a
edição da ontologia diretamente pela aplicação web desenvolvida. Foi percebida essa
necessidade a partir da percepção de que seria muito trabalhosa a volta ao arquivo OWL para o
74

editor de ontologia Protègè, uma vez que novos livros fossem adquiridos ou novos termos para
livros já registrados fossem requisitados para ser relacionados a algum livro. Essa volta ao
Protègè levaria mais tempo e demandaria mais conhecimento técnico para a execução.
Esta aplicação web fornece, de maneira simples e visual, a edição da ontologia, mesmo
que limitada aos seus tipos de relacionamentos, porém o suficiente para a definição do que será
necessário para que tal livro seja encontrado por algum usuário quando for pesquisado na página
de busca.
Foi utilizado nesta pesquisa, no período de testes da aplicação, o servidor Jena Fuseki
que é um servidor SPARQL, ou seja, um servidor que permite fazer o carregamento de arquivo
de ontologia e executar comandos na linguagem SPARQL nesta ontologia.
Uma das maiores dificuldades encontradas no desenvolvimento da edição da ontologia
foi que o servidor Jena Fuseki interpretava uma versão diferente da biblioteca ARC2 utilizada
em PHP na aplicação web desenvolvida. Um dos exemplos de incompatibilidade é que a
biblioteca ARC2 não interpreta SPARQL 1.1 quando executado um comando de edição ou
exclusão.
Essas diferenças demandaram bastante tempo de busca por documentação e relatos de
desenvolvedores de ontologia que passaram pela mesma dificuldade, e como a edição de
ontologia é um assunto não muito desenvolvido na área de tecnologia, isso faz a busca por
informações ser bem difícil. Um dos exemplos das dificuldades encontradas com a
interpretação de script de atualização, inserção ou exclusão pela biblioteca ARC2 é que, nestes
casos citados, ela não aceita a definição de prefixos que permite criar um nome menor para o
endereço da ontologia. Ao invés de ter que usá-lo completamente, então é necessária a escrita
do endereço completo, conforme ilustrado na figura 42, toda vez que for citar qualquer elemento
de uma triple no script de busca, seja ele o Sujeito, Predicado ou o Objeto da triple.

Figura 42 – Script edição da ontologia

Fonte: Elaboração do autor


75

5 CONCLUSÃO

A organização do conhecimento é algo ancestral e uma necessidade que se torna cada


vez mais importante, principalmente com o avanço da tecnologia e com a criação de novos
métodos para a execução de tal tarefa.
Esta pesquisa contribui, a partir da Linguística, para a tecnologia da informação, e
propõe uma nova maneira de transformar informações básicas em conhecimento, com simples
passos de entendimento de assuntos e relacionamentos semânticos.
O objetivo geral de criar a ontologia na área de linguagem de programação foi visto
como um ponto de partida para a descoberta de diversas outras necessidades que poderiam ser
desenvolvidas ao longo deste projeto. A principal necessidade foi a de uma vez que terminada
esta pesquisa case o bibliotecário identificasse um termo ausente na ontologia, ou caso novos
livros fossem adquiridos para o acervo da biblioteca, seria necessário que alguém que tenha
conhecimentos técnicos sobre a criação de ontologia, fizesse a edição da ontologia existente
para a inclusão de novos dados.
A aplicação Onto Books pode ser considerada um editor de ontologia, e isso irá auxiliar
bastante o bibliotecário no seu gerenciamento, trazendo cada vez mais informações mais
precisas e de qualidade para ser apresentada ao usuário final, aquele que busca por livros na
tela principal. Pelo fato de ser um editor de ontologia poderá ser cada vez mais aperfeiçoada
para aumentar o nível de precisão nos seus resultados de busca, editando ou incluindo novos
livros, autores, editoras, aumentando cada vez mais a quantidade de informações no sistema e
consequentemente aumentando o conhecimento da ontologia base.
Percebe-se, ao final, que esta aplicação pode ter seus horizontes expandidos para
diversas outras áreas que não linguagem de programação ou sequer a área de tecnologia, mas
suas perspectivas são infinitas, pelo fato de ser uma aplicação totalmente flexível a mudanças,
pois uma vez que se tem conhecimento de termos básicos relacionados a algum livro ele pode
ser registrado na plataforma e então se torna disponível para ser buscado por qualquer pessoa
que tenha acesso à aplicação e interesse de encontrá-lo.
A aplicação web já pode ser utilizada por bibliotecários, alunos ou qualquer pessoa que
tenha interesse de receber dicas ou encontrar algum livro que se encaixe bem no tema em que
tem interesse em pesquisar, mesmo que não conheça autores ou títulos famosos da área.
É muito importante para a área da linguística desenvolvimentos de ferramentas como
esta e editores de ontologia como o Protègè contribuem muito para a criação de projetos como
76

este. Aplicações para casos específicos com o uso de uma base semântica de conhecimento
contribuem muito para a solução de diversos problemas na busca por informações e
conhecimento e vem sendo cada vez mais desenvolvidas para diversos fins. Estas aplicações
devem ser cada vez mais difundidas e desenvolvidas por pesquisadores.
A aplicação Onto Books é apenas um começo de um projeto que pode ser desenvolvido
muito mais por outros pesquisadores pois as áreas de linguística e de tecnologia podem se
enriquecer infinitamente, trazendo cada vez mais novidades aos usuários. Percebe-se como
projeção futura para esta aplicação o reconhecimento automático de termos para inserção em
relacionamentos com os livros, sem a necessidade de o bibliotecário cadastra-los um a um,
talvez termos disponibilizados pela própria editora, ou um sistema que reconheça ao menos o
básico de termos a serem relacionados ao livro, como termos que serão relacionados a todos os
livros de uma área específica como o tema “Banco de Dados” na área de tecnologia. Este tipo
de reconhecimento automático poderá agilizar o processo de edição da ontologia, e facilitar o
enriquecimento das informações nela relacionadas.
77

REFERÊNCIAS

AHMED, Kal; MOORE, Graham. An Introduction to Topic Maps. 2005. Disponível em:
<https://msdn.microsoft.com/en-us/library/aa480048.aspx?f=255&MSPPError=-
2147217396>. Acesso em: 03 maio 2016.

ANTHONY, Laurence. AntConc. Disponível em:


< http://www.laurenceanthony.net/software/antconc/screenshots/AntConc_1.png>. Acesso
em: 10 outubro 2017.

ANTHONY, Laurence. (2014). AntConc (3.4.4) Tokyo, Japan: Waseda University.


Disponível em: <http://www.laurenceanthony.net/>. Acesso em: 03 maio 2016

BREITMAN, Karin. Web semântica: a internet do futuro. LTC Editora. São Paulo. 2006.

CHUNGOORA, Dr. Tish. (2017). Practical Knowledge Modelling. Disponível em:


<http://www.udemy.com/practical-knowledge-modelling/learn/v4/overview>. Acesso em: 10
de setembro 2017

CLANCEY, W. J. 1993. The Knowledge Level Reinterpreted: Modelling SocioTechnical


Systems. International Journal of Intelligent Systems, 8: 33-49

FERNÁNDEZ, Mariano; GÓMEZ-PÉREZ, Asunción; JURISTO, Natalia. Methontology:


From Ontological Art Towards Ontological Engineering. 1997.

GARSHOL, Lars Marius. metadata? thesauri? taxonomies? topic maps! Making sense of
it all. 2004.

GUARINO, Nicola. Formal Ontology and Information Systems. Disponível em:


<http://www.mif.vu.lt/~donatas/Vadovavimas/Temos/OntologiskaiTeisingasKoncepcinisMod
eliavimas/papildoma/Guarino98-
Formal%20Ontology%20and%20Information%20Systems.pdf>. Acesso em: 11 maio 2016.

GUENTHER, Rebecca; RADEBAUGH, Jaqueline. Understanding Metadata. 2004.

JENA, F. SPARQL Server. Disponível em:


<https://jena.apache.org/documentation/serving_data/> Acesso em: 12 Novembro 2017

KWAN, Mathew. Surprise 96 project – The final Report. 2010.

LASSILA, Ora; MCGUINESS, Deborah. The Role of Frame-Based Representation on the


Semantic Web. 2001.

MERRIAM WEBSTER, Taxonomy. Disponível em: < http://www.merriam-


webster.com/dictionary/taxonomy>. Acesso em: 30 maio 2016.
78

MORAIS, Edison Andrade Martins; AMBRÓSIO, Ana Paula L. .Ontologias: conceitos, usos,
tipos, metodologias, ferramentas e linguagens. 2007.

NASIR, Mohamad Johan Bin Mohd. A Journey Through Programming Language


Generations. 2013.

RAMALHO, Rogério Aparecido Sá. Desenvolvimento e utilização de ontologias em


Bibliotecas Digitais: uma proposta de aplicação. 2010.

RODRIGUES, F. N. Concepção de uma ferramenta de apoio à indexação para bibliotecários.


2015. 64 p. Trabalho de Conclusão de Curso. Graduação em Tecnologia em Sistemas para
Internet, Instituto Federal de Educação, Ciência e Tecnologia de São Paulo – Campus São
João da Boa Vista, 2015.

SANTOS, Monick Trajano dos; CORREA, Renato Fernandes; SILVEIRA, Muirilo Artur
Araújo da. Estudos brasileiros sobre ontologia na Ciência da Informação. 2013.

SILVA, W. C. Ontologia de Sistemas Para Internet: proposta de um catálogo bibliotecário


online baseado em banco de dados orientado a grafos. 2013. 109 p. Trabalho de Conclusão de
Curso. Graduação em Tecnologia em Sistemas para Internet, Instituto Federal de Educação,
Ciência e Tecnologia de São Paulo – Campus São João da Boa Vista, 2013.

SMITH, Barry. Ontology. Disponível em:


<http://ontology.buffalo.edu/smith/articles/ontology_PIC.pdf>. Acesso em: 23 setembro
2017.

STAAB, Steffen. Ontologies and the semantic web. Disponível em:


<http://www.emse.fr/~beaune/websem/ontoSemWebStaab.pdf>. Acesso em: 03 maio 2016.

STANFORD, Protègè. Disponível em:


<http://protege.stanford.edu/support.php#documentationSupport>. Acesso: 30 maio 2016.

Você também pode gostar