Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
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.
5 CONCLUSÃO ..............................................................................................................75
REFERÊNCIAS .................................................................................................................77
17
1 INTRODUÇÃO
1.1 Motivação
1.2 Objetivos
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.
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).
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).
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).
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
É 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.1 Taxonomia
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).
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
2.3.4 Ontologia
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
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
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
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).
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.
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
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
Figura 11 - AntConc
2.6 PROTÈGÈ
Figura 12 - Protègè
2.7 SPARQL
2.8 ARC2
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.
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.
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
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
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.
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
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
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.
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”.
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.
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
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
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
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.
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.
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
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”.
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.
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.
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.
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.
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.
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.
5 CONCLUSÃO
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.
BREITMAN, Karin. Web semântica: a internet do futuro. LTC Editora. São Paulo. 2006.
GARSHOL, Lars Marius. metadata? thesauri? taxonomies? topic maps! Making sense of
it all. 2004.
MORAIS, Edison Andrade Martins; AMBRÓSIO, Ana Paula L. .Ontologias: conceitos, usos,
tipos, metodologias, ferramentas e linguagens. 2007.
SANTOS, Monick Trajano dos; CORREA, Renato Fernandes; SILVEIRA, Muirilo Artur
Araújo da. Estudos brasileiros sobre ontologia na Ciência da Informação. 2013.