• Nenhum resultado encontrado

DAOLOT: Um navegador semântico simples direccionado a entidades nomeadas

N/A
N/A
Protected

Academic year: 2021

Share "DAOLOT: Um navegador semântico simples direccionado a entidades nomeadas"

Copied!
53
0
0

Texto

(1)

DAOLOT: Um

navegador

semântico simples

direccionado a

entidades nomeadas

João Silva

Mestrado Integrado em Engenharia de Redes e Sistemas Informáticos

Departamento de Ciências de Computadores

2020

Orientador

Prof. José Paulo Leal, Faculdade de Ciências

Supervisor

(2)

O Presidente do Júri,

(3)

M

ASTERS

T

HESIS

DAOLOT: Um navegador semˆantico simples

direccionado a entidades nomeadas

Author: Jo˜ao SILVA Orientador: Jos´e LEAL Supervisor: Andr´e SANTOS

Uma tese apresentada em cumprimento dos requisitos para o curso de MI. Network and Computer Engineering

at the

Faculdade de Ciˆencias da Universidade do Porto Departamento de Ciˆencias de Computadores

(4)

Abstract

Faculdade de Ciˆencias da Universidade do Porto Departamento de Ciˆencias de Computadores

MI. Network and Computer Engineering

DAOLOT: Um navegador semˆantico simples direccionado a entidades nomeadas

byJo˜ao SILVA

O objectivo da web semˆantica ´e tornar a Internet como n ´os a conhecemos acess´ıvel a m´aquinas.

A web semˆantica tem como func¸˜ao descrever o conte ´udo da Internet num formato que seja leg´ıvel por computadores, convertendo entidades nomeadas (conceitos escritos em linguagem natural), estruturando toda a informac¸˜ao dispon´ıvel em v´arios grafos conec-tados, onde ´e especificado n˜ao s ´o as propriedades de cada recurso online, mas tamb´em as relac¸ ˜oes entre os recursos, mesmo que estes venham de fontes diferentes.

Esta rede semˆantica permite a aplicac¸ ˜oes inteligentes conseguirem entender o conte ´udo da Internet.

Existem aplicac¸ ˜oes web chamadas navegadores semˆanticos, navegadores que tˆem o ob-jectivo de ajudar o utilizador humano a navegar esta rede de dados. Por´em, os poucos que existem s˜ao apenas ferramentas experimentais, de muito pouco uso pr´atico para o p ´ublico geral.

Esta dissertac¸˜ao pretende criar um navegador semˆantico funcional, simples e intuitivo de usar, de que o p ´ublico geral possa tomar partido.

(5)

Resumo

Faculdade de Ciˆencias da Universidade do Porto Departamento de Ciˆencias de Computadores

Mestrado Integrado em Engenharia de redes e Sistemas Inform´aticos

DAOLOT: Um navegador semˆantico simples direcionado a entidades nomeadas

porJo˜ao SILVA

The goal of the Semantic Web is to allow the software agents around us and AIs to extract information from the Internet as easily as humans do. This semantic web is a network of connected graphs, where relations between concepts and entities make up a layout that is very easy for machines to navigate.

At the moment, there are only a few tools that enable humans to navigate this new layer of the Internet, and those that exist are for the most part very specialized tools that require from the user a lot of pre-existing knowledge about the technologies behind this structure. In this article we report on the development of DAOLOT, a search engine that allows users with no previous knowledge of the semantic web to take full advantage of its information network. This thesis presents its design, the algorithm behind it and the results of the validation testing conducted with users.

(6)

Abstract i

Resumo ii

Conte ´udo iii

Lista de Figuras v 1 Introdu¸c˜ao 1 1.1 A Web Semˆantica . . . 1 1.2 Motivac¸˜ao . . . 6 1.3 Objetivo . . . 8 1.4 Sub-objetivos . . . 8

1.4.1 Realizac¸˜ao de pesquisas atrav´es de apenas um simples argumento . 8 1.4.2 Pesquisas em cadeia . . . 9

1.4.3 Interpretac¸˜ao de uma sintaxe simples em pesquisas SPARQL: . . . . 9

1.4.4 Agregac¸˜ao de resultados semelhantes . . . 10

1.4.5 Pesquisa atrav´es de m ´ultiplos endpoints . . . 10

1.4.6 Conciliac¸˜ao de dados de endpoints diferentes . . . 11

1.5 Abordagem de implementac¸˜ao . . . 11

1.5.1 Ligac¸˜ao aos pontos de acesso . . . 11

1.5.2 Interface com o utilizador . . . 12

1.5.3 Mecanismo de comunicac¸˜ao com os pontos de acesso . . . 12

1.5.4 Processamento da query a ser efetuada . . . 13

1.6 Relat ´orio de Trabalho . . . 14

2 Estado-da-arte 15 2.1 Web semˆantica. . . 15

2.2 Browsers semˆanticos . . . 20

2.3 Browsers semˆanticos existentes . . . 21

2.4 Comparac¸˜ao . . . 23

3 Tecnologias e conceitos da Web Semˆantica 25 3.1 W3C . . . 25

3.2 URI . . . 26

3.3 SPARQL . . . 27

(7)

3.4 Ontologias . . . 30 4 Abordagem de desenvolvimento 31 4.1 Tecnologias usadas . . . 31 4.2 Interface do sistema. . . 31 4.3 Arquitetura do sistema . . . 33 4.3.1 1aFase de pesquisa . . . 33 4.3.2 2aFase de pesquisa . . . 35 4.3.3 Curadoria de resultados . . . 36 5 Valida¸c˜ao 39 5.1 Validac¸˜ao com utilizadores. . . 39

5.1.1 Feedback dos utilizadores . . . 41

6 Conclus˜ao 42

(8)

1.1 Uma representac¸˜ao visual da estrutura criada pelo uso de Links em

hiper-texto, criando uma rede interligada de dados.. . . 2

1.2 Uma representac¸˜ao visual de como Linked Data relaciona conceitos, classes e relac¸ ˜oes entre eles [11] . . . 6

1.3 Uma representac¸˜ao visual da estrutura interna de um Triplo. . . 9

1.4 A tabela Gantt ilustrando o relat ´orio de trabalho. . . 14

2.1 Para lidar com problemas de contexto, podemos usar a natureza hier´arquica das classes na web semˆantica de forma a obter o contexto [10] . . . 18

2.2 Como podemos ver neste gr´afico, desde 2013 que mais de 60 por cento do tr´afego da Internet ´e originado exclusivamente por Bots [8] . . . 20

2.3 Comparac¸˜ao de navegadores semˆanticos . . . 22

2.4 Interface gr´afica do Mspace . . . 23

2.5 Comparac¸˜ao de navegadores semˆanticos . . . 24

3.1 Uma query SPARQL que procura todos os nomes de sujeitos que tenham enderec¸os de email associados, e o email respetivo. . . 28

3.2 A hierarquia de conceitos numa ontologia. . . 30

4.1 A interface do DAOLOT. . . 32

4.2 Uma ilustrac¸˜ao de como o DAOLOT converte os termos de pesquisa numa query em SPARQL. . . 33

4.3 Uma ilustrac¸˜ao de como o DAOLOT merge informac¸˜ao de fontes diferentes. 34 4.4 Um exemplo de um conjunto de resultados de uma pesquisa de 1afase do DAOLOT. ´E relevante reparar que embora a pesquisa tenha sido ”Bob”, o sujeito Andrew Bobola foi selecionado como um dos resultados por ter ”Bob”dentro do seu nome. . . 35

4.5 Um exemplo de um resultado de uma pesquisa de 2a fase do DAOLOT, com a data de nascimento marcada como contradit ´oria por ter v´arios valo-res diferentes, contra a norma estat´ıstica.. . . 37

4.6 Diagrama do algoritmo de processamento de dados do DAOLOT. . . 38

5.1 Feedback dos utilizadores . . . 40

5.2 Tempo m´edio da relac¸˜ao de cada tarefa. . . 41

(9)

Introdu¸c˜ao

Esta dissertac¸˜ao consiste numa introduc¸˜ao `a web semˆantica, seguida de uma explicac¸˜ao das tecnologias e conceitos usados no desenvolvimento do DAOLOT.

A secc¸˜ao “Abordagem” explica a arquitectura e algoritmo de suporte do DAOLOT, e a secc¸˜ao “Validac¸˜ao” relata os testes feitos com utilizadores para melhorar o DAOLOT.

1.1

A Web Semˆantica

Todos os dias usamos motores de busca. O primeiro motor de busca documentado ´e o Knowbot Information Service, que servia para pesquisar a existˆencia de um dado utilizador em m ´ultiplas redes.

Os motores de busca sempre foram uma parte vital da Internet, que na sua origem, foi desenhada como um espac¸o de informac¸˜ao interligada. Esta informac¸˜ao, armazenada em Hipertexto, ´e o texto em formato electr ´onico que constitui a maioria do conte ´udo que podemos encontrar online.

Em adic¸˜ao ao texto convencional, o hipertexto introduz uma nova funcionalidade que o texto normal n˜ao disp ˜oe: a presenc¸a de referˆencias a outras p´aginas, com a possibilidade de as aceder imediatamente, ilustradas na p´agina sobre a forma de hiperliga¸c˜oes.

Estas referˆencias, muitas vezes colocadas intercaladas com o resto do conte ´udo do hipertexto, deram ao utilizador da Internet a habilidade de poder aceder a informac¸˜ao relacionada com o que estava a ler ou a conte ´udo semelhante apenas com um clique do rato, sendo redirecionado instantaneamente para a p´agina que a ligac¸˜ao representa.

Estas ligac¸ ˜oes consistem no enderec¸o da p´agina a ser referenciada, um identificador estruturado contendo toda a informac¸˜ao que o computador ir´a necessitar para navegar

(10)

FIGURA1.1: Uma representac¸˜ao visual da estrutura criada pelo uso de Links em hiper-texto, criando uma rede interligada de dados.

para a tal p´agina, desde o protocolo a ser usado, o dom´ınio a que pertence o site que est´a a ser acedido, qual o site em si, e finalmente a localizac¸˜ao da p´agina dentro da estrutura de ficheiros do site.

Mas como ´e poss´ıvel manter esta rede funcional e distribu´ıda, mesmo sendo forc¸ada a ter que transmitir informac¸˜ao por m ´ultiplos sistemas, muitos deles com caracter´ısticas e sistemas operativos diferentes?

A resposta foi criar um protocolo standard de transferˆencia de Hipertexto, um proto-colo que fosse aceite e utilizado por todos os computadores que estejam ligados `a Internet, e o primeiro protocolo do g´enero foi o Hypertext Transfer Protocol (mais conhecido por sim-plesmente HTTP).

Este protocolo foi implementado ao mesmo tempo que a World Wide Web (WWW) que surgiu no ano de 1990, e a sua primeira vers˜ao, o HTTP/0.9, tinha como func¸˜ao estipular as regras b´asicas sobre como a comunicac¸˜ao entre computadores nesta rede se rege:

Os servic¸os disponibilizados pela Internet funcionam sobre um modelo cliente-servidor, onde o cliente, o computador do utilizador, efectua um pedido de uma p´agina, sendo esse pedido mandado para um “servidor”, encarregue de responder aos pedidos de um certo dom´ınio ou conjunto de dom´ınios.

(11)

Ao receber este pedido, processa e responde devidamente, mandando uma resposta contendo a p´agina que o utilizador requisitou ou uma mensagem de erro em caso de al-gum imprevisto, como por exemplo a p´agina n˜ao existir ou o utilizador n˜ao ter permiss˜ao para aceder a essa p´agina em particular.

Este conjunto de instruc¸ ˜oes e respostas simples ´e standard para todas as ligac¸ ˜oes na Internet, e foi a adopc¸˜ao universal deste protocolo que tornou a Internet t˜ao vers´atil, sendo poss´ıvel a comunicac¸˜ao entre qualquer tipo de sistema, deste que estes seguissem estas simples instruc¸ ˜oes.

´

A medida que a Internet evoluiu e novos usos para esta rede foram surgindo, os tocolos tiveram que evoluir para facilitar estas novas funcionalidades, bem como os pro-gramas que os utilizadores usam para a navegar tiveram que se adaptar para lidar com o crescimento exponencial do volume de informac¸˜ao dispon´ıvel na Internet.

Os primeiros Browsers originalmente serviam apenas como uma interface para os uti-lizadores interagirem com o hipertexto de um recurso web.

Por´em, em 1992, o protocolo HTTP recebeu uma actualizac¸˜ao, tornando-o capaz de transmitir imagens, e os navegadores existentes tiveram que desenvolver uma interface gr´afica, capaz de lidar com recursos online com esta funcionalidade.

`

A medida que foram surgindo outras funcionalidades, os navegadores foram se tor-nando cada vez mais avanc¸ados para responder `a evoluc¸˜ao constante da Internet.

No in´ıcio dos anos 90, assistiu-se a uma explos˜ao do mercado de navegadores web, com v´arias empresas a lanc¸arem diversos navegadores para tentar dominar este mercado em expans˜ao.

Por´em, identificou-se um problema que os navegadores n˜ao conseguiam resolver so-zinhos: A quantidade de informac¸˜ao gigantesca que a Internet agora disponibiliza exige a existˆencia de ferramentas auxiliares de pesquisa.

N˜ao ´e razo´avel esperar que o utilizador saiba de mem ´oria o enderec¸o de todos os sites que lhe interessam.

´E preciso um programa que consiga aceitar como input parˆametros de pesquisa do utilizador e retornar links para recursos web que possam ser relevantes.

Foi desta necessidade que surgiram os motores de busca. Para um motor de busca saber os sites existentes, ´e fundamental este ter uma lista indexada de sites ao seu dispor.

(12)

Nesse ano, surgiu um motor de busca chamado WebCrawler que introduziu o standard para funcionamento de um motor de busca que ainda ´e usado hoje em dia.

Neste motor, um programa aut ´onomo com acesso `a Internet, designado de “Web Ro-bot”, percorria diariamente a Internet `a procura de novos enderec¸os.

Sempre que detetava um novo, adicionava-o ´a lista do motor de busca, mantendo esta sempre actualizada.

Quando usado para pesquisa, este motor conseguia basear a sua busca numa palavra-chave e encontrar todas as p´aginas que contˆem essa palavra palavra-chave, que ´e a funcionalidade standard de todos os motores de busca modernos: Um motor de busca convencional con-segue responder `a nossa pesquisa com uma lista de links relevantes.

As p´aginas de resultados contˆem muitas vezes outros links semelhantes, deixando ao utilizador o trabalho de correlacionar essa informac¸˜ao.

Esta funcionalidade est´atica, cliente-servidor da Internet manteve-se durante muito tempo.

Com o crescimento exponencial de novas tecnologias e de casos de uso, a topologia da Internet comec¸ou a mudar para um modelo diferente, o que n ´os hoje em dia chamamos de Web 2.0.

Com o aparecimento das primeiras redes sociais por volta de 2004, o n ´umero de utili-zadores online atingiu n´ıveis nunca pensados.

Com milh ˜oes de utilizadores a criarem conte ´udo todos os dias, a Internet comec¸ou a evoluir de uma fonte est´atica para algo mais interativo, onde os utilizadores s˜ao tamb´em os principais criadores de conte ´udo.

Foi nesta altura que os gigantes da inform´atica que conhecemos hoje se comec¸aram a estabelecer (Youtube, Facebook, Google, etc...), como tamb´em foi o in´ıcio de projetos colaborativos em larga escala, sendo a Wikipedia o exemplo mais not´avel.

A transformac¸˜ao da Web na Web 2.0 foi muito incentivada pela ascens˜ao do smartphone: A disponibilidade de um dispositivo com acesso `a Internet constantemente ao nosso dispor, independentemente da localizac¸˜ao, em conjunto com novas funcionalidades e aplicac¸ ˜oes (como o Snapchat) que facilitam a partilha instantˆanea de conte ´udo, foi um dos maiores factores amplificadores.

Este novo modelo de Internet n˜ao ´e uma especificac¸˜ao t´ecnica, continua a ser a mesma Internet que existia.

(13)

O termo “Web 2.0” apenas foi criado para designar esta nova etapa da sua evoluc¸˜ao, embora tivessem surgido de facto novas especificac¸ ˜oes para possibilitar estas novas fun-cionalidades, como geo-localizac¸˜ao e conex ˜oes ass´ıncronas.

Agora, com o aumento de automatizac¸˜ao na Internet, estamos perto de uma nova mudanc¸a de paradigma:

O fim da ´ultima d´ecada, em termos tecnol ´ogicos, foi marcado por uma expans˜ao da Internet para al´em dos utilizadores humanos, e para uma presenc¸a cada vez maior de Agentes Inteligentes, inteligˆencias artificiais e aplicac¸ ˜oes distribu´ıdas.

Cada vez mais notamos na presenc¸a de aparelhos IOT (Internet of Things) nas nos-sas canos-sas, gadgets com a habilidade de acederem `a Internet e a percorrerem de forma aut ´onoma para encontrar algo que n ´os desejamos (como por exemplo, aparelhos como a “Alexa” da Amazon).

Olhando para estas tendˆencias, podemos dizer que estamos a entrar na ´epoca de uma Internet partilhada com as m´aquinas, onde os programas s˜ao capazes de navegar a In-ternet independentemente dos humanos, quer seja para assistir a nossa busca ou para realizarem as suas pr ´oprias tarefas.

Persiste um problema: A Internet n˜ao foi concebida para ser usada por m´aquinas. A Internet como a conhecemos, embora seja interligada, a estrutura da informac¸˜ao n˜ao ´e expl´ıcita, o que ´e o maior obst´aculo corrente para as m´aquinas que a tentam navegar.

Ao entrarmos numa p´agina web, a relac¸˜ao entre os dados que l´a se encontram e outros links que possam estar presentes pode ser ´obvia para n ´os, mas uma m´aquina n˜ao conse-gue entender a relac¸˜ao entre v´arias p´aginas diferentes: apenas vˆe uma lista de Links.

A resposta a este problema, ´e a web semˆantica: Uma extens˜ao `a Internet normal que permite a aplicac¸ ˜oes web navegarem uma rede de dados interligados, num formato de informac¸˜ao chamado Linked Data, da mesma maneira que algu´em navegaria links na In-ternet normal.

Neste formato, em vez de uma lista de links, a Internet ´e apresentada como um enorme grafo interligado de informac¸˜ao, onde os n ´os representam recursos ou propriedades, e as setas representam as relac¸ ˜oes entre eles.

´E esta estrutura de dados que permite o funcionamento das funcionalidades de apare-lhos IOT, como por exemplo, para responder a um comando verbal para tocar uma m ´usica de um certo artista, o aparelho tem que ser capaz de navegar a Internet para encontrar a m ´usica.

(14)

FIGURA1.2: Uma representac¸˜ao visual de como Linked Data relaciona conceitos, classes e relac¸ ˜oes entre eles [11]

Este formato ´e vers´atil, n˜ao s ´o permitindo especificar a categoria e propriedades de uma entidade, como tamb´em ilustrar as relac¸ ˜oes entre elas, mesmo que tenham origem em sistemas com estruturas diferentes.

1.2

Motiva¸c˜ao

A web semˆantica surgiu originalmente como uma ferramenta cujo principal objectivo ´e tornar a Internet uma rede facilmente naveg´avel e leg´ıvel por utilizador n˜ao humanos, como no caso de agentes inteligentes, AIs e outras aplicac¸ ˜oes web.

Embora esta estrutura tenha sido feita para ser leg´ıvel por m´aquinas, tem tamb´em a vantagem de permitir que estas possam prover assistˆencia ao utilizador humano, ajudando-o a filtrar infajudando-ormac¸˜aajudando-o e encajudando-ontrar ajudando-o que prajudando-ocura mais facilmente.

Para este meio foi inventado um tipo especial de browsers, equipados com motores de busca que tiram partido da web semˆantica.

(15)

Este tipo particular de aplicac¸ ˜oes especializadas s˜ao designados de browsers semˆanticos, aplicac¸ ˜oes que ajudam a tirar partido da web semˆantica para procurar informac¸˜ao.

Devido a tratar-se uma ´area de pesquisa activa, tamb´em como um conceito na evoluc¸˜ao da Internet, a web semˆantica ainda disp ˜oe de algumas limitac¸ ˜oes bastante evidentes:

Os pontos de acesso para dados semˆanticos (chamados endpoints), que servem como base da rede semˆantica, tˆem aumentado em quantidade, mas os browsers semˆanticos que de momento existem s˜ao na maioria ferramentas acad´emicas de investigac¸˜ao, ou cons-tru´ıdos para prop ´ositos muito espec´ıficos.

A maior parte estes browsers s˜ao imposs´ıveis de usar sem conhecimento t´ecnico na ´area ou das tecnologias que constituem a sua base funcional.

O objectivo do projeto desta dissertac¸˜ao ´e criar um browser semˆantico que esteja dis-pon´ıvel e acess´ıvel para o p ´ublico geral.

Ao cumprir este objetivo, n ´os pretendemos que esta dissertac¸˜ao ajude a contribuir para um maior uso e desenvolvimento da web semˆantica.

(16)

1.3

Objetivo

O foco principal deste navegador semˆantico ´e ser intuitivo, de forma que o p ´ublico ge-ral possa facilmente usa-lo, pelo que embora v´a oferecer ao utilizador final a possibili-dade de usar definic¸ ˜oes mais avanc¸adas de pesquisa manualmente (como por exemplo, escolher fontes espec´ıficas, limite de resultados, etc.), a maior parte do processo ser´a au-tom´atico por predefinic¸˜ao, de forma a tirar o m´aximo de trabalho ao utilizador, para uma experiˆencia de utilizac¸˜ao o mais conveniente e intuitiva poss´ıvel.

A secc¸˜ao seguinte lista os objetivos a cumprir com esta tese, tal como os requisitos t´ecnicos a atingir para cumprir o nosso objetivo principal:

Criar um browser semˆantico que permita ao p ´ublico geral tirar partido da Web Semˆantica intuitivamente e com facilidade.

1.4

Sub-objetivos

Esta sub-secc¸˜ao serve para listar os objetivos deste projeto de dissertac¸˜ao, cuja lista ser´a usada para identificar com mais facilidade e objetividade as metas de desenvolvimento do navegador semˆantico.

Isto servir´a tamb´em para averiguar na conclus˜ao deste projeto at´e que ponto estes objetivos foram alcanc¸ados.

As caracter´ısticas t´ecnicas est˜ao especificadas na secc¸˜ao seguinte, e foram escolhidas em func¸˜ao de quais delas melhor se adequam para cumprir os objectivos especificados nesta lista.

1.4.1 Realiza¸c˜ao de pesquisas atrav´es de apenas um simples argumento

Se o utilizador efetuar uma pesquisa simples de apenas um palavra (por exemplo, “Mic-key”) que pode ser amb´ıgua, o browser ter´a que ser capaz de apresentar v´arios recursos com nomes semelhantes e deixar o utilizador decidir sobre qual ir´a elaborar o resto da pesquisa.

Exemplo: Se o utilizador pesquisar a palavra “Mickey”, o navegador poder´a apresen-tar ao utilizador duas entidades diferentes: A personagem de cartoon da Disney “Mickey

(17)

Mouse” ou o actor “Mickey Rourke”, e se o utilizador selecionar o primeiro, o navega-dor ent˜ao efectua uma segunda busca apenas para todos os resultados relacionados com “Mickey Mouse”.

1.4.2 Pesquisas em cadeia

Pesquisas em cadeia s˜ao uma funcionalidade comum de v´arios navegadores convenci-onais j´a existentes, e como o nosso objectivo ´e um navegador semˆantico intuitivo, esta funcionalidade ´e essencial se queremos melhorar a experiˆencia de uso deste navegador.

Quando n ´os efetuamos uma pesquisa num motor de busca convencional, aparecerem numa lista v´arias entidades semelhantes `aquela sobre a qual queremos saber mais.

Por isso, se o utilizador tiver uma pesquisa cuja entidade que procura ´e bastante se-melhante com outras, em vez de forc¸ar o utilizador a repetir a sua busca, a alternativa ´e selecionar o resultado dessa pesquisa inicial que mais se aproxima do que o utilizador procura.

Posteriormente o navegador semˆantico efetua uma pesquisa para a entidade referida na pesquisa anterior, oferecendo mais detalhes sobre esse recurso em particular.

1.4.3 Interpreta¸c˜ao de uma sintaxe simples em pesquisas SPARQL:

A web semˆantica armazena a sua informac¸˜ao num formato chamado RDF, um standard definido pela W3C, uma organizac¸˜ao internacional respons´avel por desenvolver e estipu-lar os protocolos que s˜ao standard na Internet.

Este standard tem a particularidade de ser baseado numa estrutura de triplos “sujeito-predicado-objecto”, sendo esta a unidade at ´omica de informac¸˜ao da web semˆantica, como ilustrado na imagem abaixo.

FIGURA1.3: Uma representac¸˜ao visual da estrutura interna de um Triplo.

Devido a este formato ´unico, torna-se imposs´ıvel poder tratar e consultar esta informac¸˜ao a partir de linguagens t´ıpicas usadas para lidar com bases de dados, como o SQL.

(18)

usar uma linguagem chamada SPARQL, concebida especificamente para fazer pesquisar e tratar dados armazenados no formato RDF.

Embora em v´arios aspectos o SPARQL seja semelhante ao SQL, n˜ao ´e razo´avel n ´os esperarmos que os utilizadores saibam usar esta linguagem.

Por isso, para tornar o navegador numa aplicac¸˜ao verdadeiramente intuitiva, este deve conseguir transformar uma frase simples numa pesquisa SPARQL equivalente. Exemplo:

Se o utilizador efectuar uma pesquisa do g´enero “Ator Will”, o navegador ir´a efectuar uma pesquisa sobre todas as entidades que sejam da categoria ator e que tenham “Will” no nome.

1.4.4 Agrega¸c˜ao de resultados semelhantes

Devido `a natureza da quantidade enorme de informac¸˜ao que est´a dispon´ıvel na Inter-net, h´a uma grande probabilidade de certas pesquisas terem uma grande quantidade de resultados, muitos deles semelhantes.

Por isso, o navegador semˆantico deve estar pronto para lidar com pesquisas de grande dimens˜ao, e tamb´em para poder tratar pesquisas deste volume para as tornar mais f´aceis de entender para o utilizador.

Uma dessas maneiras ´e agregar resultados semelhantes em listas categorizadas, tor-nando listas grandes de resultados mais intuitivas.

Exemplo: Se o utilizador pesquisar “Bob” e houver muitos m ´usicos nos resultados cujo nome cont´em “Bob”, em vez de apresentar cada um deles como um resultado individual, o navegador dever´a mostrar uma lista em conjunto com o resto dos resultados que conte-nha todos os M ´usicos chamados “Bob”.

1.4.5 Pesquisa atrav´es de m ´ultiplos endpoints

Como foi mencionado anteriormente, a web semˆantica ´e armazenada em v´arios pontos de acesso diferentes por instituic¸ ˜oes diferentes, n˜ao tendo um ponto de acesso central.

Embora esta informac¸˜ao esteja em pontos diferentes, que muitas vezes tˆem estruturas diferentes, os dados na web semˆantica s˜ao armazenados todos no mesmo formato stan-dard, o que tem a vantagem de tornar poss´ıvel a extens˜ao de uma busca sobre v´arios

(19)

pontos de acesso simultaneamente, na maior parte dos casos sem mudar sequer a sintaxe da pesquisa em SPARQL.

O navegador dever´a poder retirar informac¸˜ao de v´arios reposit ´orios de dados semˆanticos simultaneamente, dando ao utilizador a possibilidade de configurar quais fontes quer consultar na pesquisa e at´e de adicionar outras n˜ao pr´e-definidas.

1.4.6 Concilia¸c˜ao de dados de endpoints diferentes

Como a web semˆantica nos permite unificar pesquisas em v´arios pontos de acesso simul-taneamente, ir˜ao existir recursos que surgem nos resultados como entidades diferentes, mas que uma an´alise mais detalhada revela que s˜ao o mesmo sujeito, definido como enti-dades diferentes em cada um dos pontos de acesso.

Para eliminar ambiguidades, o navegador semˆantico deve ter a habilidade de com-parar entidades deste g´enero. Como uma extens˜ao do requerimento anterior, o nave-gador deve ser capaz de comparar dados vindos de fontes diferentes e de encontrar semelhanc¸as.

1.5

Abordagem de implementa¸c˜ao

Para realizar a implementac¸˜ao do navegador semˆantico, vai ser preciso implementar v´arias tecnologias, e assegurar que estas ir˜ao funcionar em conjunto.

Nesta secc¸˜ao, iremos estipular quais as especificac¸ ˜oes t´ecnicas que ir˜ao ser implemen-tadas no projeto de navegador semˆantico final de forma a implementar o mais eficiente-mente poss´ıvel cada um dos sub-objetivos estipulados na secc¸˜ao anterior.

Em alguns casos, iremos estipular as diferentes opc¸ ˜oes poss´ıveis mas igualmente v´alidas para atingir um determinado objetivo, e de seguida iremos explicar as principais diferenc¸as entre cada uma das opc¸ ˜oes individuais, e tamb´em as raz ˜oes de escolha de cada uma delas como a soluc¸˜ao que ser´a implementada.

1.5.1 Liga¸c˜ao aos pontos de acesso

Na fase inicial do planeamento, tivemos que definir qual seria o protocolo a usar de forma a permitir o navegador poder comunicar com os v´arios pontos de acesso, efectuar pesqui-sas e receber as respostas.

(20)

De forma a cumprir com os objectivos, o nosso navegador tem que responder rapida-mente `as pesquisas do utilizador e tamb´em manter-se funcional enquanto se encontra em fase de processamento, de forma a que se possa navegar os dados ´a medida que estes v˜ao chegando.

Para o efeito, decidimos efetuar a comunicac¸˜ao com os pontos de acesso atrav´es de uma conex˜ao ass´ıncrona, implementada no formato ajax:

Ajax (Asynchronous Javascript and XML), ´e uma combinac¸˜ao da funcionalidade pr´e-definida em todos os navegador modernos XMLHttpRequest (que serve para efectuar um pedido a um servidor web), Javascript e de HTML DOM.

A maior vantagem que o Ajax aporta ´e poder efectuar pedidos ass´ıncronos, enviando pedidos ao servidor e tamb´em processando a resposta, tudo num processo de background. Esta funcionalidade permite ao DAOLOT efectuar mudanc¸as na p´agina web, como adicionar os resultados de uma pesquisa, sem a necessidade de recarregar a p´agina in-teira. Outra vantagem de usar pedidos AJAX ´e que esta aplicac¸˜ao n˜ao necessita de c ´odigo no lado do servidor, sendo uma aplicac¸˜ao somente com c ´odigo no lado do cliente. Foi este motivo de nos levou a escolher o Ajax em vez de Node.js na implementac¸˜ao.

1.5.2 Interface com o utilizador

Na quest˜ao da interface do utilizador, o nosso objectivo ´e poder disponibilizar este nave-gador no formato mais acess´ıvel poss´ıvel, minimizando a quantidade de “trabalho” que o utilizador ir´a ter que fazer.

Depois da considerac¸˜ao de v´arias opc¸ ˜oes, n ´os decidimos que o formato ideal para o uso deste projecto seria sobre a forma de uma Aplicac¸˜ao web:

O navegador semˆantico ter´a como base uma p´agina web com uma interface gr´afica, com HTML para a estrutura, CSS para dar um aspecto mais user-friendly, e uma compo-nente em Jquery, onde a grande maioria do c ´odigo ir´a estar situado.

1.5.3 Mecanismo de comunica¸c˜ao com os pontos de acesso

Para o nosso navegador semˆantico poder efetuar a funcionalidade de conseguir comuni-car com os pontos de acesso `a web semˆantica existentes, enviando e recebendo pedidos e conjuntos de resultados, tivemos de decidir qual ser´a o formato de comunicac¸˜ao a usar para tornar esta funcionalidade poss´ıvel.

(21)

Para atingir este objetivo, a soluc¸˜ao que determinamos ser a mais eficiente ´e uma func¸˜ao Jquery que tira partido do Ajax:

Quando o utilizador clicar no bot˜ao de pesquisa, o navegador ir´a ativar uma func¸˜ao jquery com v´arias etapas.

Numa fase inicial da func¸˜ao, o programa ir´a efetuar um tratamento para construir a pesquisa SPARQL equivalente `a frase que o utilizador escreveu como input, tendo tamb´em em conta outros parˆametros definidos, como o limite do n ´umero de resultados.

Depois de obter a query final, a func¸˜ao comec¸a ent˜ao a definir a estrutura do pedido que ser´a enviado ao ponto de acesso:

O enderec¸o de destino ´e constru´ıdo, consistindo de um URL com a localizac¸˜ao do endpoint, com a string de pesquisa definida como um argumento contido no enderec¸o.

Depois de completo o pedido, este vai ser enviado de forma ass´ıncrona a todos os pontos de acesso definidos, acumulando num processo de segundo-plano os resultados para serem organizados e ilustrados quando o processo terminar.

1.5.4 Processamento da query a ser efetuada

De forma a cumprir os objetivos definidos, ´e necess´ario o nosso navegador perceber e ler a estrutura dos resultados que ir´a receber directamente do servidor, contendo todos os resultados da pesquisa enviada.

Para este efeito, os pontos de acesso devolvem o conjunto de resultados no formato JSON-LD.

O formato JSON ´e um formato de transferˆencia de dados, que embora n˜ao seja uma linguagem de programac¸˜ao independente, ´e baseado num sub-set da linguagem javas-cript, feito para ser f´acil de transferir e tamb´em de ler, tanto por seres humanos como tamb´em por computadores e aplicac¸ ˜oes.

Como o JSON ´e uma estrutura de dados universal, suportada por todas as linguagens de programac¸˜ao, logo permite ao conjunto de resultados manter a natureza estruturada dos dados semˆanticos.

Devido `as funcionalidades pr´e-definidas para processar este tipo de dados, n ´os deci-dimos usar uma func¸˜ao javascript que ir´a ser ativada cada vez que um conjunto de resul-tados de uma pesquisa ´e devolvida ao navegador, percorrendo a estrutura de dados no formato JSON de forma a tratar e gerar a apresentac¸˜ao destes resultados ao utilizador.

(22)

1.6

Relat ´orio de Trabalho

Nesta secc¸˜ao est´a especificado o plano de trabalho para desenvolver este navegador.

No gr´afico de Gantt em baixo foi definido o plano geral de desenvolvimento e implementac¸˜ao desta dissertac¸˜ao, completo com objetivos principais, sub-objetivos e metas, incluindo tamb´em a durac¸˜ao estimada de cada uma das etapas.

(23)

Estado-da-arte

Este cap´ıtulo descreve o estado corrente da Web Semˆantica, tal como os existentes nave-gadores semˆanticos e as suas limitac¸ ˜oes.

2.1

Web semˆantica

A web semˆantica, desde a sua concepc¸˜ao, tem-se demonstrado um ´area de pesquisa com bastante potencial: Ao catalogar e armazenar a informac¸˜ao dispon´ıvel na Internet no for-mato RDF, esta rede de meta-dados consegue muito facilmente ilustrar classes e sub-classes de recursos e conceitos, ilustrar propriedades desses recursos, e at´e especificar as relac¸ ˜oes entre diversos recursos.

Tudo isto, e mesmo assim mantendo uma estrutura que ´e ao mesmo tempo bastante flex´ıvel, permitindo a cooperac¸˜ao entre v´arios sistemas, mesmo que a sua estrutura de informac¸˜ao interna seja diferente, e simultaneamente adapt´avel, mantendo-se funcional mesmo que a estrutura do sistema v´a mudando ao longo do tempo.

Se devidamente desenvolvida, explorada e implementada, a web semˆantica pode muito bem vir a mudar o paradigma da Internet como a conhecemos, ajudando a criar uma In-ternet onde os agentes inteligentes e aparelhos IOT (inIn-ternet of things) podem navegar a Internet e tirar partido da sua informac¸˜ao com a mesma facilidade do que um utilizador humano.

Por´em, de momento, embora tenha havido v´arios avanc¸os significativos na ´ultima d´ecada nesta ´area de investigac¸˜ao, este ramo da Internet ainda se encontra num fase muito prematura, e ainda existem v´arios obst´aculos que tˆem que ser ultrapassados antes que a web semˆantica se torne uma ferramenta de dia-a-dia:

(24)

Um desses obst´aculos, provavelmente o mais significante de momento, ´e a escassez de pontos de acesso, tal a quantidade muito limitada de informac¸˜ao:

Existem de momento pouco mais do que algumas dezenas de bases de dados semˆanticos, pontos de acesso que contˆem dados semˆanticos armazenados no formato RDF dispon´ıvel para uso e consulta (no momento de escrita desta dissertac¸˜ao aproximadamente 32 funci-onais, com informac¸˜ao generalista, tamanho razo´avel e de livre ac¸esso).

N˜ao s ´o o n ´umero de pontos de acesso ´e muito limitado, como tamb´em a quantidade de informac¸˜ao:

O maior ponto de acesso a dados da web semˆantica ´e a WikiData. A WikiData ´e uma extens˜ao do projecto da Wikip´edia, e consiste num reposit ´orio central de dados, onde os utilizadores podem alterar, usar e adicionar dados livremente.

Em adic¸˜ao, a WikiData tira partido de agentes inteligentes, entidades semelhantes aos web bots usados pelos motores de busca, para percorrer a Internet e atualizar ou adicionar nova informac¸˜ao `a base de dados central [13].

No momento de escrita, a WikiData ´e, por uma margem enorme, a maior fonte de dados da web semˆantica, contando com aproximadamente 100 milh ˜oes de triplos.

Este n ´umero pode parecer bastante, mas temos que ter em conta a escala da Internet: Em 2012, existiam ”apenas”644 milh ˜oes de websites activos na Internet. Em Janeiro de 2019, este n ´umero j´a tinha subido para 1.94 milhares de milh ˜oes. Para al´em desta quanti-dade astron ´omica de sites, temos tamb´em mais de 4.4 bili ˜oes de utilizadores globalmente criando novo conte ´udo todos os dias[12].

Em comparac¸˜ao com estes n ´umeros, 100 milh ˜oes de triplos ´e um n ´umero insignifi-cante.

O volume de informac¸˜ao necess´ario para tornar o uso regular da web semˆantica uma realidade introduz outro problema adicional: O tratamento destes dados.

Para gerar a informac¸˜ao estruturada para ser armazenada nestes pontos de acesso, ´e preciso o trabalho auxiliar dos tais Agentes Inteligentes mencionados acima, encarregues da tarefa de gerar esta informac¸˜ao a partir de p´aginas web, visto que este volume de informac¸˜ao seria imposs´ıvel de estruturar e catalogar manualmente.

Embora seja a ´unica maneira vi´avel de gerar estes dados, a introduc¸˜ao de inteligˆencias artificiais trazem novos desafios, nomeadamente no campo da l ´ogica a ser programada para tratar esta informac¸˜ao.

(25)

Devido `a natureza de conte ´udo gerado por humanos, existe nesta informac¸˜ao uma grande quantidade de ru´ıdo que precisa de ser devidamente eliminado antes que a informac¸˜ao esteja pronta para catalogac¸˜ao e armazenamento.

Existe muita informac¸˜ao repetida e redundante. Cabe aos Agentes Inteligentes a enorme tarefa de identificar e eliminar informac¸˜ao redundante, o que implica conseguir perceber se duas referˆencias ligeiramente diferentes sejam identificadores da mesma entidade, ou simplesmente referˆencias pertencentes a entidades muito semelhantes mas diferentes.

Uma extens˜ao deste problema ´e a inevitabilidade do surgimento de informac¸˜ao at´e contradit ´oria sobre o mesmo recurso.

Este ´e um problema especialmente dif´ıcil para agentes inteligentes, pois l ´ogica dedu-tiva, usada para gerar dados semˆanticos, ´e extremamente sens´ıvel a contradic¸ ˜oes.

Existem m´etodos para lidar com contradic¸ ˜oes l ´ogicas, uma delas sendo L´ogica Para-consistente[7], que s˜ao implementados neste tipo de sistemas.

De momento, um dos maiores problemas que continua sem soluc¸˜ao clara ´e como tor-nar os AIs capazes de lidar com conceitos ”vagos”ou amb´ıguos:

Na linguagem humana, existem imensos adjetivos ou descritores que n˜ao tˆem definic¸˜ao clara, e que s˜ao muitas vezes aplicados em capacidades diferentes consoante a preferˆencia pessoal do utilizador.

Conceitos como ”Jovem”ou ”Cauda”s˜ao arbitr´arios e dif´ıceis de definir objectivamente, especialmente se tomarmos em conta o facto de que muitos destes conceitos subjetivos podem ter significados completamente diferentes dependendo do contexto em que ´e uti-lizado.

Como por exemplo: ”Cauda”tanto se pode usar para referir um membro de um ani-mal, como tamb´em em determinados ambientes pode ser uma referˆencia `a ”Cauda”de um avi˜ao, um componente situado na parte traseira de uma aeronave, que tipicamente serve para controlar o movimento horizontal e oferecer estabilidade.

Esta incerteza torna muito dif´ıcil o trabalho de programas inteligentes que tenham que tirar conclus ˜oes a partir destes dados.

Existem t´ecnicas que permitem lidar com esta incerteza, mas ser´a preciso uma ex-tens˜ao `a web semˆantica (esta ´e uma ´area ainda experimental).

E finalmente, mesmo que os nossos Agentes Inteligentes consigam rapidamente e eficientemente efetuar os protocolos necess´arios de forma a conseguir tratar os dados

(26)

FIGURA2.1: Para lidar com problemas de contexto, podemos usar a natureza hier´arquica das classes na web semˆantica de forma a obter o contexto [10]

(27)

a armazenar e eliminar definitivamente o ru´ıdo, como ´e que podemos prevenir contra informac¸˜ao deliberadamente falsa?

Impedir de forma eficiente a entrada de informac¸˜ao deliberadamente falsa na rede semˆantica ´e um dos problemas mais dif´ıceis de resolver de momento, pois a soluc¸˜ao corrente implica o uso de uma assinatura criptogr´afica para verificar a identidade da entidade que publicou essa informac¸˜ao, e associando essa entidade a um sistema de reputac¸˜ao, cuja pontuac¸˜ao teria que ser atribu´ıda manualmente por humanos.

Embora alguns destes problemas j´a tenham algo perto de uma soluc¸˜ao permanente, a enorme quantidade de dados a processar amplifica por v´arios graus de magnitude as dificuldades mencionadas acima:

Mesmo que de alguma maneira fosse poss´ıvel encontrar soluc¸ ˜oes permanentes para todos os problemas, os Agentes Inteligentes encarregues de gerar esta rede ter˜ao que ser capazes de lidar com volumes gigantescos de informac¸˜ao como input constante, apenas existindo uma ou duas instituic¸ ˜oes no planeta inteiro que est˜ao remotamente preparadas para aguentar um esforc¸o computacional desta escala.

Devido a estas limitac¸ ˜oes, o uso da web semˆantica continua a ser muito limitado, sendo maioritariamente usado para pesquisa na ´area ou para tarefas muito espec´ıficas.

Existe, por´em, uma forte possibilidade que em breve iremos testemunhar uma aposta cada vez maior neste ramo:

J´a existem v´arias empresas que usam a web semˆantica para soluc¸ ˜oes industriais, um dos maiores exemplos sendo a Biogen, um dos maiores gigantes da ind ´ustria farmacˆeutica mundial, que usa tecnologia baseada na Web Semˆantica para gerir a sua rede de distribuic¸˜ao.

O maior fator para a lentid˜ao da adoc¸˜ao de tecnologia nova costuma ser a falta de necessidade.

Muitas empresas podem sentir que n˜ao vale a pena investir na web semˆantica, visto que os sistemas correntes funcionam perfeitamente.

Visto que j´a estamos numa altura em que a maior parte do tr´afego na Internet ´e origi-nado por utilizadores n˜ao humanos, tornar a Internet mais leg´ıvel para estes utilizadores torna-se cada vez mais urgente.

(28)

FIGURA2.2: Como podemos ver neste gr´afico, desde 2013 que mais de 60 por cento do tr´afego da Internet ´e originado exclusivamente por Bots [8]

2.2

Browsers semˆanticos

Os browsers semˆanticos, que surgiram como resposta `a criac¸˜ao da web semˆantica (desig-nada tamb´em por Web 3.0), s˜ao programas criados com o prop ´osito de ajudar utilizadores humanos a explorarem a Internet, de forma a tirarem partido da informac¸˜ao e servic¸os dispon´ıveis online rapidamente e com facilidade.

Por´em, neste tipo particular de navegador, ao contr´ario dos convencionais que permi-tem ao utilizador explorar uma rede de recursos e p´aginas HTML, estes especializam-se em navegar a rede de dados semˆanticos, dados estruturados no seu pr ´oprio formato es-pecializado, o Resource Description Format, mais conhecido como RDF.

(29)

do RDF para extrair informac¸˜ao e tirar conclus ˜oes, conseguindo explicar relac¸ ˜oes entre di-ferentes recursos online, como as suas diversas caracter´ısticas e at´e comparar com outros recursos.

Embora existam j´a v´arios browsers semˆanticos, nenhum deles ´e realmente ´util para o p ´ublico geral, pois s˜ao ferramentas muito especializadas e constru´ıdas para utilizadores que j´a tˆem conhecimento avanc¸ado de SPARQL e da web semˆantica.

2.3

Browsers semˆanticos existentes

Embora a web semˆantica ainda se encontre num estado bastante embrion´ario, j´a foram desenvolvidos e publicados v´arios navegador semˆanticos.

Muitos deles constru´ıdos para aplicac¸ ˜oes diferentes, desde investigac¸˜ao acad´emica at´e ferramentas para empresas, por isso estes podem ser encontrados com graus bastantes diferentes de caracter´ısticas, devido a serem na sua maioria ferramentas especializadas para tarefas espec´ıficas.

Para ter um ideia mais precisa do estado corrente dos browsers semˆanticos, ´e necess´ario efetuar uma an´alise mais detalhada aos browsers existentes.

Esta pesquisa ´e essencial para este projeto de dissertac¸˜ao, por permitir observar com mais detalhe o estado presente da web semˆantica, as caracter´ısticas que j´a est˜ao bem es-tabelecidas e as que precisam de mais desenvolvimento, o que ´e necess´ario para o nosso navegador semˆantico ser capaz de responder `as necessidades correntes.

Neste segmento iremos explorar alguns BS j´a existentes e as suas semelhanc¸as, tamb´em como as suas limitac¸ ˜oes.

FacetO /facet[1] ´e um navegador semˆantico feito para navegar reposit ´orios RDF si-tuados em servidores web, inteiramente baseado em SWI Prolog, que ´e um ambiente de desenvolvimento na linguagem de programac¸˜ao Prolog desenhado para lidar com o for-mato RDF naturalmente.

Desenvolvido em 2006, o /facet ´e um dos primeiros navegadores semˆanticos a ter sido publicado, tendo desde essa altura se tornado parte de um navegador maior chamado Cli-oPatria, que tamb´em j´a n˜ao se encontra funcional.

O /facet permite navegar graficamente um grafo como se fosse uma ´arvore de ficheiros, e at´e permite pesquisa por keyword, com a adic¸˜ao de ilustrac¸˜ao gr´afica para dados tempo-rais.

(30)

A maior limitac¸˜ao deste navegador ´e o facto de apenas permitir a simples busca por um argumento, e por apenas funcionar com datasets locais, limitando muito a sua utili-dade para o p ´ublico geral.

FIGURA2.3: Comparac¸˜ao de navegadores semˆanticos

Outra falha deste sistema ´e a apresentac¸˜ao dos resultados de pesquisa por keyword, que s˜ao apresentados no fim da ´arvore semˆantica de que fazem parte, tendo o utilizador que percorrer o grafo at´e `a folha para cada resultado individual da query (2.3).

Mspace

O Mspace[2] ´e um navegador semˆantico desenvolvido na universidade de Southamp-ton, nos Estados Unidos da Am´erica, e consiste numa interface e framework concebida para explorar e manipular informac¸˜ao em datasets semˆanticos. O seu sistema de interface ´e baseado em colunas, que apresenta cada propriedade e valores poss´ıveis em colunas (2.4).

Embora o Mspace tenha algumas funcionalidades de pesquisa mais completas do que outros BS existentes, como representac¸˜ao gr´afica de dados temporais, continua a ser sim-plesmente baseado em pesquisa rudimentar de keywords, a interface ´e desnecessariamente complexa, e tamb´em n˜ao tem ferramentas de visualizac¸˜ao de agregac¸˜ao de dados.

OpenLink Data Explorer

O OpenLink Data Explorer ´e um navegador que funciona como add-on para web na-vegadores convencionais como o Chrome ou o Firefox.

A sua principal funcionalidade ´e conseguir extrair meta-dados de qualquer recurso na Internet ao comando do utilizador.

(31)

FIGURA2.4: Interface gr´afica do Mspace

Embora funcional, este motor apenas nos d´a os meta-dados RDF que descrevem o recurso, dependendo sempre da pesquisa manual humana, e tamb´em n˜ao oferecendo nenhuma funcionalidade que facilite a navegac¸˜ao destes dados.

2.4

Compara¸c˜ao

No final da pesquisa efetuada, reparamos que existe uma disparidade muito grande entre os navegadores semˆanticos analisados, o factor principal para esta grande variedade em quantidade de funcionalidades ´e o facto que a maior parte destes navegadores s˜ao muito especializados.

De forma a comparar melhor estes navegadores semˆanticos e as suas caracter´ısticas, a tabela na Figura5.2sumariza as funcionalidades principais de cada um deles e compara-as lado-a-lado. A conclus˜ao que podemos tirar desta tabela ´e que estes navegadores semˆanticos s˜ao muito especializados para tarefas espec´ıficas, o que implica terem um con-junto de caracter´ısticas pequeno e espec´ıfico.

(32)
(33)

Tecnologias e conceitos da Web

Semˆantica

Ao longo desta dissertac¸˜ao, s˜ao mencionados v´arias tecnologias e conceitos relevantes ao desenvolvimento e implementac¸˜ao deste navegador semˆantico, como tamb´em para contextualizar o estado corrente de certas ´areas.

Para uma melhor compreens˜ao das secc¸ ˜oes seguintes, que ir˜ao mencionar bastan-tes detalhes t´ecnicos sobre as diferenbastan-tes etapas de desenvolvimento e resultados desta dissertac¸˜ao, esta secc¸˜ao que se segue consiste de uma descric¸˜ao detalhada das tecnolo-gias, conceitos e termos utilizados ao longo deste documento.

3.1

W3C

O World Wide Web Consortium ´e uma colectiva internacional, composta por v´arias organizac¸ ˜oes e instituic¸ ˜oes, fundada por Tim Berners-Lee, o inventor da World Wide Web. A W3C foi fundada em 1994, no instituto de tecnologia de Massachusetts (MIT), contando com o su-porte da DARPA (instituic¸˜ao americana que foi respons´avel pela invenc¸˜ao da Internet) e da comiss˜ao Europeia, com o objectivo de atuar como a entidade respons´avel pela regu-ladora de standards da Internet numa escala global.

O objetivo da W3C ´e desenvolver especificac¸ ˜oes e protocolos para serem implementa-dos na Internet, como tamb´em assegurar que estes protocolos s˜ao aceites e seguiimplementa-dos por todas as empresas e instituic¸ ˜oes no mundo, promovendo compatibilidade universal entre todos os servic¸os da World Wide Web.

(34)

O W3C ´e respons´avel por quase todos os standards em vigor hoje em dia na Internet, incluindo a web semˆantica e tem como miss˜ao contribuir para o crescimento e evoluc¸˜ao da Internet.

3.2

URI

Um URI (Universal Resource Identifier) ´e um conjunto de caracteres que serve para iden-tificar um recurso web, seguindo uma sintaxe espec´ıfica. ´E o standard universal para poder identificar e localizar recursos na Internet.

Uma das suas vantagens ´e expansividade: o protocolo universal que define a sintaxe dos URIs, o Http, possui um esquema de nomenclatura hier´arquico e estruturado, o que permite organizar recursos numa estrutura l ´ogica, tornando mais f´acil a sua localizac¸˜ao e identificac¸˜ao.

Vamos usar um URI t´ıpico como exemplo:

http://www.exemplo.pt/livro/autor/bob.html

Cada segmento deste URI permite identificar v´arios aspetos deste recurso:

http: - Esta parte ´e designada do segmento Esquema do URI. Esta indica-nos qual ´e o protocolo que este recurso usa, ou seja, qual o tipo de ligac¸˜ao que vai ser estabelecida ao aceder a este recurso.

Neste caso, o URI indica-nos que o protocolo a ser usado ´e o Hypertext Transfer Protocol (http), que ´e o protocolo standard para transferˆencia de p´aginas web.

www.exemplo.pt- Esta parte indica o dom´ınio do recurso: o site ou espac¸o web que armazena o recurso, como tamb´em o dom´ınio de topo a que o site pertence (como o enderec¸o acaba em .pt, sabemos que o site pertence ao dom´ınio correspondente a Por-tugal).

livro/autor/bob.html- Este segmento final representa o caminho para a p´agina bob.html dentro da estrutura do site.

Os recursos web de um dom´ınio est˜ao normalmente armazenados numa ´arvore com-posta por pastas e ficheiros, que permite categorizar e organizar os recursos.

O URI usado neste exemplo n˜ao s ´o permite identificar o recurso, como tamb´em indicar a sua localizac¸˜ao, pelo que pode ser designado um URL (Universal Resource Locator), o tipo mais comum de URI.

Embora estes sejam os componentes b´asicos de qualquer URL, existem certos compo-nentes opcionais que disponibilizam funcionalidades adicionais ao nosso URI:

(35)

User Info:- Em certos casos particulares, este campo opcional pode ser utilizado para indicar a identidade de um utilizador a aceder a um determinado dom´ınio, incluindo tamb´em uma palavra-passe (opcionalmente). Este campo pode ser ´util para rapidamente iniciar sess˜ao num site ou para ter acesso a conte ´udo exclusivo a certos utilizadores.

Por exemplo: http://bob:garlicbread@www.example.com aqui temos o utilizador Bob a aceder ao site example.com, usando a sua palavra-passe para se autenticar.

Porta: - Se o dom´ınio a que estamos a aceder tiver certas portas configuradas para servic¸os espec´ıficos, podemos usar o componente opcional port para especificar qual porta queremos estabelecer ligac¸˜ao com este servic¸o. Exemplo: http://www.example.com:88 Neste enderec¸o estamos a estabelecer ligac¸˜ao com a porta 88 do site example.com.

Query:- Este componente ´e normalmente usado para efetuar um pedido ao site a que estamos a aceder, como especificar o valor de certas vari´aveis ou parˆametros.

Exemplo: Se um determinado site tiver uma vari´avel que usa para mudar o idioma da p´agina chamada lang, podemos especificar que pretendemos a vers˜ao em inglˆes de uma p´agina desse site usando o enderec¸o

http://www.example.com/pagina?lang=english

Fragmento: - Se tivermos, por exemplo, uma p´agina web bastante grande, mas que apenas nos interessa uma parte, podemos especificar o fragmento da p´agina que real-mente nos interessa com o componente fragment. Este componente n˜ao elimina o resto do conte ´udo da p´agina, apenas desloca o nosso viewport imediatamente para essa secc¸˜ao mal a p´agina carrega.

3.3

SPARQL

As aplicac¸ ˜oes e programas conseguem tirar partido da web semˆantica atrav´es do SPARQL, uma linguagem constru´ıda para consultar dados RDF.

A raz˜ao principal porque o RDF precisa de uma linguagem n˜ao-convencional para a sua consulta ´e principalmente por causa da sua flexibilidade: Um sujeito ”Bob”pode ter v´arias ”Pessoas”que ”Conhece”, como tamb´em o facto que o tipo de dados presente no objeto muitas vezes ´e apenas implicado pelo predicado.

Exemplo: se o que nos interessa est´a dentro de um elemento com o id “Bob” pode ter v´arias “Pessoas” que “Conhece”, como tamb´em o facto que o tipo de dados presente no objeto muitas vezes ´e apenas implicado pelo predicado.

(36)

FIGURA3.1: Uma query SPARQL que procura todos os nomes de sujeitos que tenham enderec¸os de email associados, e o email respetivo.

Uma query SPARQL[3] ´e composta por trˆes campos principais:

PREFIX

Neste campo, n ´os definimos abreviac¸ ˜oes para as bases de dados RDF que iremos con-sultar na consulta, tamb´em para tornar os URIs da pesquisa mais curtos e leg´ıveis.

Como no exemplo, ao definir o prefixo http://xmlns.com/foaf/0.1/ como “foaf”, para referenciar o objeto Person deste grafo basta escrever foaf:Person.

SELECT

Aqui, n ´os definimos a informac¸˜ao que queremos extrair do resultado da pesquisa. Neste caso, n ´os queremos apenas os valores das vari´aveis “name” e do seu “email” cor-respondente.

A designac¸˜ao “Select” indica que queremos extrair valores de um ponto de acesso e recebe-los na forma de uma tabela. Esta ´e apenas uma de v´arios tipos de buscas que ´e poss´ıvel fazer em SPARQL, e podemos substituir este campo para efectuar outros tipos de queries:

Construct

Se n ´os usarmos este campo em vez de “Select”, podemos receber os resultados em formato RDF puro, em vez de em tabelas.

(37)

Ask

Este tipo de busca, designada por uma “ASK query”, permite-nos pedir apenas para validar a nossa pesquisa com uma resposta booleana (verdadeiro/falso), sendo ´util para pesquisas mais simples, onde queremos apenas saber se um sujeito com certas propriedades existe ou provar se certas afirmac¸ ˜oes sobre um conjunto de dados s˜ao v´alidas.

Describe

Como o nome indica, este tipo de query tem como funcionalidade descrever um determinado recurso, pedindo ao ponto de acesso para retornar um grafo com toda a informac¸˜ao relevante sobre o sujeito indicado. Como o utilizador pode simples-mente requerer toda a informac¸˜ao dispon´ıvel sobre um utilizador, a secc¸˜ao seguinte pode n˜ao ser necess´aria dependente da pesquisa, por isso este tipo de busca ´e o

´unico em que o segmento “Where” ´e opcional.

WHERE

Esta secc¸˜ao chama-se “query pattern”, e ´e onde vamos definir os parˆametros da nossa pesquisa. Aqui ´e poss´ıvel estabelecer relac¸ ˜oes entre as vari´aveis, procurar por um valor espec´ıfico numa delas, entre muitas outras funcionalidades (como tornar certos parˆametros opcionais).

No exemplo, o primeiro parˆametro especifica que a vari´avel “person” tem que ser um sujeito do tipo foaf:Person, a segunda e terceira regra estabelecem que tanto o objecto “name” como o “email” devem estar relacionados com o mesmo sujeito “person”.

ORDER BY

Uma secc¸˜ao opcional, esta funcionalidade permite ordenar os resultados da pesquisa atrav´es de v´arios crit´erios (ordem ascendente, descendente, por uma certa vari´avel, etc...). Esta funcionalidade apenas funciona em pesquisas que devolvem os resultados em forma de tabela.

Operador anal´ıticos

De forma a poder efectuar pesquisas mais complexas, o SPARQL tem operadores in-corporados que permitem juntar os resultados de m ´ultiplas pesquisas de v´arias formas.

Por exemplo, considerando dois conjuntos de resultados de pesquisas, designados por Res1 e Res2 respectivamente, temos v´arias maneiras de combinar os dois:

(38)

Res1 OPTIONAL Res2- Juntar os resultados, mantendo mesmo os resultados de Res1 que n˜ao se encaixem em nenhum de Res2;

Res1 UNION Res2- Incluir os resultados de ambos;

Res1 MINUS Res2- Retirar de Res1 resultados compat´ıveis com Res2.

3.4

Ontologias

Ontologias agem como ”Dicion´arios”da web semˆantica, ditando a hierarquia entre classes e conceitos, e tamb´em especificando os tipos de ligac¸ ˜oes que podem existir num dado grafo, como ilustrado na figura seguinte.

FIGURA3.2: A hierarquia de conceitos numa ontologia.

Uma classe ´e uma abstrac¸˜ao para identificar um conjunto de entidades, como ”ani-mais”ou ”montanhas”, sendo os sujeitos instˆancias de uma dada classe, como por exem-plo, o sujeito ”Papagaio”seria uma instˆancia da classe ”p´assaros”.

´E esta caracter´ıstica que permite a compatibilidade entre grafos com estruturas inter-nas diferentes, pois se reconhecerem as mesmas ontologias, os tipos de ligac¸ ˜oes tamb´em ser˜ao iguais.

(39)

Abordagem de desenvolvimento

Para responder aos objetivos desta Tese, desenvolvemos o browser semˆantico DAOLOT, nome que faz referˆencia a ”Daoloth, the render of veils“ , uma divindade armazenadora de informac¸˜ao referida no livro The Render of the Veils (1964), de Ramsey Campbell.

Este cap´ıtulo descreve as tecnologias e m´etodos usados para desenvolver o DAOLOT, tamb´em como a sua estrutura interna e algoritmos.

4.1

Tecnologias usadas

A base do DAOLOT ´e uma aplicac¸˜ao web, sendo a totalidade da sua funcionalidade pro-gramada em Javascript e JQuery.

Para recolher informac¸˜ao da Web Semˆantica, a func¸˜ao Javascript constr ´oi uma pes-quisa escrita em SPARQL, que depois ´e enviada na forma de um pedido ass´ıncrono, o que permite que as respostas sejam tratadas `a medida que v˜ao chegando sem interrom-per o resto do sistema.

4.2

Interface do sistema

O mecanismo de busca DAOLOT tem como base uma p´agina web∗, dispon´ıvel para com-putadores e dispositivos m ´oveis. A interface do DAOLOT inclui os seguintes elementos:

Barra de pesquisa

Permite que o usu´ario insira sua consulta;

https://daolot.dcc.fc.up.pt/

(40)

FIGURA4.1: A interface do DAOLOT.

Menu de Op¸c ˜oes

Um menu pop-up ao lado permite que o usu´ario controle ainda mais os parˆametros de pesquisa, como limite de resultados, idioma, fontes a serem inclu´ıdas na pesquisa e at´e um modo manual para usu´arios avanc¸ados, que permite escrever diretamente a consulta SPARQL para enviar;

Menu de Endpoints personalizados

Este menu permite ao usu´ario adicionar endpoints n˜ao inclu´ıdos na selecc¸˜ao padr˜ao do DAOLOT. Antes de adicionar o terminal, o DAOLOT executar´a uma “verificac¸˜ao de integridade” no terminal, verificando se ele responde `a solicitac¸˜ao e se reconhece as ontologias RDF padr˜ao essenciais para o DAOLOT utilizar-lo. Se for bem suce-dido, o Terminal ser´a adicionado `a lista. Embora ainda oferec¸a opc¸ ˜oes detalhadas para usu´arios mais avanc¸ados, todas essas opc¸ ˜oes ser˜ao tratadas automaticamente se o usu´ario n˜ao as modificar.

Cada vez que o utilizador realiza uma nova etapa na pesquisa, o URL da p´agina ´e atua-lizado, permitindo que guarde o URL para voltar posteriormente a esse sujeito espec´ıfico ou partilhe os resultados copiando o URL. `A medida que o utilizador salta de um assunto relacionado para outro, o DAOLOT forma uma “sequˆencia de pesquisa” que cont´em a sequˆencia de entidades que o utilizador consultou at´e agora, permitindo que use as teclas

(41)

para navegar rapidamente por todas as informac¸ ˜oes recolhidas at´e ao momento ou para voltar a um ponto anterior na pesquisa e seguir um caminho diferente.

O DAOLOT tamb´em disp ˜oe de um sistema de feedback visual para indicar o estado da pesquisa ao utilizador, avisando o utilizador se ainda vem mais alguma informac¸˜ao, ou se passado algum tempo nenhum dos endpoints responder, avisar o utilizador para tentar uma pesquisa diferente.

4.3

Arquitetura do sistema

4.3.1 1aFase de pesquisa

A pesquisa no DAOLOT funciona num sistema com duas fases:

Na primeira etapa, o usu´ario insere uma consulta sobre o t ´opico ou assunto de inte-resse. Essa consulta pode ser apenas uma palavra ou v´arias palavras-chave.

Quando o utilizador submete os termos de pesquisa, o algoritmo vai pegar no limite de resultados, linguagem, e keywords, e prepara uma consulta SPARQL equivalente, que pesquisar´a todas as entidades que contenham qualquer uma dessas palavras-chave, seja no nome ou numa descric¸˜ao associada ao nome, como ilustrado na figura a seguir.

FIGURA4.2: Uma ilustrac¸˜ao de como o DAOLOT converte os termos de pesquisa numa query em SPARQL.

(42)

De seguida, essa consulta ´e enviada para todos os endpoints selecionados nas configurac¸ ˜oes. `

A medida que as respostas chegarem, o DAOLOT gerar´a uma lista, com cada entrada contendo o nome da entidade, os seus nomes alternativos e uma descric¸˜ao compilada de todas as descric¸ ˜oes vinculadas a esta entidade.

Nesta fase, o DAOLOT tira partido de um predicado de uma das ontologias base cha-mada OWL:SameAs , que permite identificar nomes diferentes que se referem ´a mesma entidade.

Isto permite agregar mais precisamente a informac¸˜ao que se refere a cada sujeito. Um desafio principal nesta fase foi como organizar os resultados por ordem de re-levˆancia de uma maneira r´apida e ao mesmo tempo precisa.

Descobriu-se que pedir ao endpoint para ordenar os resultados aumentava exponenci-almente a complexidade da query, levando a tempos de resposta muito elevados.

A ordenac¸˜ao dos resultados tem que ser feita no lado do cliente.

A soluc¸˜ao simples que encontramos foi ordenar os resultados por tamanho crescente: Por exemplo, se a pesquisa do utilizador for ”Portugal”, se todos os resultados apre-sentados tˆem a palavra ”Portugal”algures no nome, a entidade com o nome mais curto ser´a ”Portugal”, a entidade exata que o utilizador procura.

Desta maneira os resultados ficam organizados por relevˆancia dinamicamente, com o melhor resultado no topo da lista.

Como as descric¸ ˜oes destas entidades geralmente tˆem um alto n´ıvel de sobreposic¸˜ao, o DAOLOT elimina frases redundantes nessas secc¸ ˜oes.

FIGURA4.3: Uma ilustrac¸˜ao de como o DAOLOT merge informac¸˜ao de fontes diferentes.

Esta primeira etapa permite ao utilizador ver uma lista de assuntos que podem estar relacionados com a sua pesquisa e ajud´a-lo a escolher qual deles deseja saber mais.

(43)

FIGURA4.4: Um exemplo de um conjunto de resultados de uma pesquisa de 1afase do DAOLOT.

´E relevante reparar que embora a pesquisa tenha sido ”Bob”, o sujeito Andrew Bobola foi selecionado como um dos resultados por ter ”Bob”dentro do seu nome.

4.3.2 2aFase de pesquisa

Quando o utilizador seleciona um sujeito, isso envolve a segunda fase do mecanismo de pesquisa:

Nesta fase, o algoritmo tenta encontrar todas as informac¸ ˜oes poss´ıveis sobre esse as-sunto. Como algumas vezes o assunto pode ser referido por nomes diferentes em end-points diferentes, o algoritmo far´a uma consulta sobre todos os triplos que envolvem qual-quer um dos nomes alternativos dessa entidade e envia a todos os endpoints selecionados. No entanto, nessa fase, o conjunto de informac¸ ˜oes ´e consideravelmente mais completo, pois a simplicidade dessa consulta permite o uso do framework COMUNICA[4], que con-siste em endpoints TPF (Triple Pattern Fragments)[5], servidores que respondem a um tipo de queries mais b´asico do que SPARQL e que coloca a complexidade do lado do cliente, aliviando a carga nos servidores. Como essas consultas s˜ao muito mais leves de processar, a quantidade de servidores TPF ´e muito maior que os terminais SPARQL. Ap ´os o envio da consulta para todos os destinos, como na fase anterior, o DAOLOT comec¸ar´a a gerar a lista de informac¸ ˜oes sobre esse assunto assim que chegarem os resultados.

(44)

4.3.3 Curadoria de resultados

Esse perfil gerado do sujeito agregar´a todas as informac¸ ˜oes, cada propriedade agrupada com todos os valores associados a essa propriedade (se v´arios valores diferentes aparece-rem). Neste ponto, o DAOLOT ´e capaz de curadoria da qualidade das informac¸ ˜oes: Por exemplo, digamos que o endpoint X retorne as informac¸ ˜oes de que a data de nascimento desse sujeito ´e 1932, e o ponto final Y retorna as mesmas informac¸ ˜oes. Quando o mesmo valor da mesma propriedade ´e retornado por v´arias fontes, o DAOLOT assume que essas informac¸ ˜oes s˜ao mais confi´aveis, e essa propriedade ´e marcada visualmente como con-tendo informac¸ ˜oes confi´aveis, com os valores confi´aveis destacados.

Por outro lado, o DAOLOT tamb´em ´e capaz de detetar contradic¸ ˜oes:

Quando uma nova propriedade ´e introduzida no conjunto de resultados, o algoritmo faz uma “verificac¸˜ao de pluralidade”, enviando uma solicitac¸˜ao fict´ıcia para todos os tri-plos que contˆem essa propriedade e calculando a quantidade m´edia de valores diferentes por assunto nessa propriedade.

Se determinar que a propriedade geralmente possui apenas um valor por sujeito, ela ser´a adicionada a uma lista de observac¸˜ao de propriedades que deveriam ter apenas um valor. Vamos usar o exemplo anterior: estatisticamente, a maioria das pessoas tem apenas uma data de nascimento e, como tal, se um terceiro endpoint Z disser que a data de nasci-mento era 1978, a propriedade Data de nascinasci-mento apareceria na lista com um indicador visual de que ´e contradit ´oria, com a fonte de cada valor exibida directamente sobre ele.

Se um valor de uma propriedade tamb´em for o r ´otulo de outro assunto, o utilizador poder´a agora clicar nesse valor para ver todas as informac¸ ˜oes sobre esse assunto relacio-nado.

Se um valor de uma propriedade for o enderec¸o de uma imagem, o DAOLOT ir´a buscar essa imagem e incluir-la nos resultados, como demonstrado na imagem seguinte.

(45)

FIGURA 4.5: Um exemplo de um resultado de uma pesquisa de 2a fase do DAOLOT, com a data de nascimento marcada como contradit ´oria por ter v´arios valores diferentes,

contra a norma estat´ıstica.

O seguinte diagrama representa o funcionamento do algoritmo de processamento de dados do DAOLOT, como descrito na secc¸˜ao anterior:

(46)
(47)

Valida¸c˜ao

Este cap´ıtulo descreve os testes de validac¸˜ao efetuados para avaliar a usabilidade do DA-OLOT, e como o feedback recebido foi usado.

5.1

Valida¸c˜ao com utilizadores

A validac¸˜ao da usabilidade do DAOLOT seguiu o Modelo de Usabilidade de Nielsen[14] [1]. Foi realizado um teste com 7 participantes, estudantes com idades entre os 20 e 25, com nenhum conhecimento pr´evio de web semˆantica. O teste consiste de uma lista de tarefas simples para gui´a-los atrav´es de diferentes funcionalidades do DAOLOT, como “encontrar a cidade natal do autor X ”, “ desmarcar este endpoint e ver se os resultados mudam ” e “ encontre a densidade populacional da cidade natal”, entre outros. Ap ´os tentarem essas tarefas, os participantes foram convidados a preencher um question´ario perguntando o quanto eles concordavam ou discordavam de algumas declarac¸ ˜oes sobre a utilidade e facilidade de uso do DAOLOT.∗ O ecr˜a dos participantes foi gravado para an´alise, com a interac¸˜ao acompanhada remotamente, e o objetivo era entender se eles conseguiram usar todos os recursos do DAOLOT corretamente, sem ajuda.

https://docs.google.com/forms/d/1ozdlWMABCPQkcq9VAPuqgOu82suB6oS8KDS7SUhKbKQ/edit?usp=sharing

(48)

FIGURA5.1: Feedback dos utilizadores

Em geral, todos os participantes conseguiram executar a maioria das tarefas sem orientac¸˜ao, com excepc¸˜ao da funcionalidade de endpoint personalizado, em maior parte devido ao desconhecimento dos conceitos da web semˆantica.

Depois de entender os fundamentos sobre a interface do utilizadores DAOLOT com a primeira tarefa, os participantes conseguiram concluir a maioria das tarefas b´asicas em menos de 25 segundos por tarefa. A tarefa que levou mais tempo, que consistiu em encon-trar artistas com um nome espec´ıfico, ocorreu principalmente devido a um problema com a vers˜ao anterior do DAOLOT, que teve dificuldade em encontrar correspondˆencias exa-tas para a pesquisa dos participantes, o que levou a resultados imprevis´ıveis. Em resposta a esse problema, o algoritmo de pesquisa foi actualizado para ter uma func¸˜ao secund´aria de busca de correspondˆencias exatas e coloc´a-las no topo da lista, antes de tentar pesqui-sar resultados aproximados. A discrepˆancia que ocorreu na tarefa “encontrar sua cidade natal” com um participante teve como causa ele ter tentado navegar entre v´arios assun-tos. Como os resultados ainda estavam a ser carregados, acabou por perder informac¸ ˜oes adicionais. A soluc¸˜ao foi implementar uma fila gr´afica em cima r ´otulo do sujeito, para indicar a chegada de mais resultados, o que melhorou a experiˆencia dos participantes. A imagem seguinte cont´em o tempo m´edio de pesquisa para cada tarefa.

(49)

FIGURA5.2: Tempo m´edio da relac¸˜ao de cada tarefa.

Ao utilizar o DAOLOT para pesquisas n˜ao relacionadas com as tarefas, os utilizadores conseguiram encontrar informac¸˜ao relevante sobre os t ´opicos que pesquisaram, usando as funcionalidades sem necessidade de intervenc¸˜ao.

5.1.1 Feedback dos utilizadores

O feedback dos participantes fornecido na pesquisa tamb´em foi usado para melhorar o DAOLOT em v´arios pontos. Alguns deles relataram a interface como “muito cinzenta” e, como tal, a interface foi redesenhada para ter um aspecto mais colorido.

No teste inicial, alguns participantes levaram mais tempo para encontrar as opc¸ ˜oes, porque a interface do usu´ario original tinha apenas os ´ıcones das opc¸ ˜oes vis´ıveis, sem legenda sobre o que esses ´ıcones faziam.

Em resposta a esse feedback, a interface do usu´ario foi redesenhada para ter r ´otulos permanentes em todas as opc¸ ˜oes, al´em de um ´ıcone de carregamento para indicar ao usu´ario que mais resultados ainda est˜ao a ser processados.

Referências

Documentos relacionados

By interpreting equations of Table 1, it is possible to see that the EM radiation process involves a periodic chain reaction where originally a time variant conduction

O desenvolvimento desta pesquisa está alicerçado ao método Dialético Crítico fundamentado no Materialismo Histórico, que segundo Triviños (1987)permite que se aproxime de

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

Preliminarmente, alega inépcia da inicial, vez que o requerente deixou de apresentar os requisitos essenciais da ação popular (ilegalidade e dano ao patrimônio público). No

A prova do ENADE/2011, aplicada aos estudantes da Área de Tecnologia em Redes de Computadores, com duração total de 4 horas, apresentou questões discursivas e de múltipla

O enfermeiro, como integrante da equipe multidisciplinar em saúde, possui respaldo ético legal e técnico cientifico para atuar junto ao paciente portador de feridas, da avaliação

Apothéloz (2003) também aponta concepção semelhante ao afirmar que a anáfora associativa é constituída, em geral, por sintagmas nominais definidos dotados de certa

Como já destacado anteriormente, o campus Viamão (campus da última fase de expansão da instituição), possui o mesmo número de grupos de pesquisa que alguns dos campi