Instituto Superior de Engenharia do Portopaf/proj/Julho2002/SemanticWeb.pdf · Aceitei de imediato...

104
Instituto Superior de Engenharia do Porto Departamento de Engenharia Informática Ramo de Computadores e Sistemas Projecto de 5º ano i970697 – Rui Alexandre da Rocha Gonçalves Pereira Orientador António Constantino Martins Porto, Julho de 2002

Transcript of Instituto Superior de Engenharia do Portopaf/proj/Julho2002/SemanticWeb.pdf · Aceitei de imediato...

Instituto Superior de Engenharia do Porto Departamento de Engenharia Informática

Ramo de Computadores e Sistemas

Projecto de 5º ano

i970697 – Rui Alexandre da Rocha Gonçalves Pereira

Orientador António Constantino Martins

Porto, Julho de 2002

Semantic Web ISEP - 2002

2

Agradecimentos

Aos meus professores:

? António Constantino Martins, meu orientador, pela sua capacidade inexcedível, de apoio, entusiasmo e esclarecimentos prestados;

? Carlos Vaz de Carvalho, pelas óptimas condições disponibilizadas para a

realização deste trabalho;

? A todos os professores em geral que me apoiaram neste trabalho. Aos meus pais:

? Maria do Carmo da Rocha Gonçalves Pereira, e ? Mário Gonçalves Pereira, agradeço também o apoio que sempre me prestaram.

Semantic Web ISEP - 2002

3

Prefácio

Este projecto foi-me proposto pelo professor António Constantino Martins, decorria ainda o ano de 2001. Aceitei de imediato o desafio, pois o tema do trabalho e as suas envolventes era muito aliciante. Além de ser um tema muito actual é, também, de extrema importância, não apenas para os engenheiros informáticos, mas, também, para toda a sociedade em geral. A “Semantic Web”, que é o tema deste trabalho, irá influenciar/modificar, seguramente, a nossa própria maneira de viver e de ver o mundo. Fiquei muito satisfeito, por saber que podia contribuir com este trabalho não só para a minha própria compreensão da actual e futura Internet, mas também por possibilitar o conhecimento a muitos outros utentes da mesma Internet, tema que me é muito querido. No inicio de Março de 2002, iniciei a primeira fase da realização deste projecto, a qual terminou na forma deste documento. Ao longo deste tempo reuni-me, por diversas vezes, com o meu orientador para definir metodologias, seleccionar percursos e esclarecer algumas dúvidas. Além destas reuniões, criei e mantive um site na Web (http://www.dei.isep.ipp.pt/~i970697) que me acompanhou durante as minhas pesquisas. A segunda fase da realização deste projecto prende-se com a sessão pública de apresentação deste trabalho a ser realizada nas instalações do ISEP. A apresentação vai, também, ser suportada pelo mesmo site. Este tema é em si muito mais extenso do que o inicialmente previsto, mas nem por isso deixa de ter menos importância. A Semantic Web é composta por um vasto conjunto de tecnologias, cada uma delas, por si só, candidata a um projecto deste tipo. Algumas das tecnologias foram realçadas apenas superficialmente, mas não de maneira a porem em causa o conceito geral e objectivo da Semantic Web. Sinto-me satisfeito com o resultado final atingido neste projecto, o qual superou os objectivos por mim inicialmente previstos. Espero ter contribuído positivamente, para quantos dele possam retirar algum proveito na sua aprendizagem.

Semantic Web ISEP - 2002

4

Glossário

A ARPA - Agência de Projectos de Investigação Avançada (Advanced Research Project

Agency). Esta agência do Departamento de Defesa dos EUA foi responsável pelo Projecto ARPANET, o início da Internet. A partir de 1972, formalmente a ARPA foi renomeada por DARPA.

ARPANET - Projecto de Redes da DARPA (Advanced Research Project Agency

Network). Foi a partir deste projecto que a Internet nasceu. Este tinha como principal objectivo criar uma infra-estrutura de comunicação que permite-se em ambiente de guerra funcionar em situações críticas como por exemplo a danificação de algum canal de comunicação.

Axioma - Proposição evidente; proposição que não carece de demonstração;

máxima; sentença.

B Browser - Uma aplicação que permite explorar as páginas existentes na Web.

Os mais utilizados e conhecidos são o Netscape Navigator (http://www.netscape.com) e o Internet Explorer (http:// www.microsoft.com).

C

Compilador - Um compilador é um programa que tem a finalidade de traduzir ou

converter um programa escrito em uma linguagem (linguagem-fonte) para um programa escrito em outra linguagem (linguagem-objecto). Na prática, compilar um programa consiste numa análise, que determina o efeito pretendido desse programa, seguida de uma síntese, a qual produz o programa equivalente em código-máquina ou em linguagem intermédia.

CERN - Conselho Europeu de Investigação Nuclear (Conseil European pour la

Recherche Nucléaire). Em 1991, formou-se um grupo de cientistas em Geneva, Suiça, com o objectivo de criarem uma plataforma de comunicação com a Internet, que permite-se procurar, recuperar e visualizar informação. Foi deste modo, que surgiu a Web ou a WWW.

D

Domínio - Partes dos nomes dos endereços da Internet, separados por pontos.

Os domínios genéricos são categorizados em .edu (organizações de ensino), .com (organizações comerciais), .net (redes), . mil (organizações militares), . int (organizações internacionais) e .org (outras organizações com outras categorias). Os domínios

Semantic Web ISEP - 2002

5

geográficos determinam os países, como por exemplo: .pt (Portugal) e .es (Espanha). Outros domínios permitem descrever entre outras coisas, o nome do computador servidor.

E

E-mail - Correio electrónico (Electronic mail). Permite a troca de mensagens

através da rede de computadores. O protocolo de suporte a esta aplicação é o SMTP (Simple Mail Transfer Protocol), especificado em RFC 822.

Esquema XML – (XML Schema) É uma nova ferramenta de validação para o

desenvolvimento de modelos de documentos XML. O Esquema XML , ao contrário do DTD, permite tipos de dados e modelos de conteúdos complexos em XML. Permite, também, que os investigadores tirar partido dos namespaces.

F

FTP - File transfer protocol. Serviço da Internet que permite a gestão de

ficheiros, usando a arquitectura cliente/servidor (C/S). O utilizador (cliente) pode obter ficheiros para a sua máquina (download) ou colocar ficheiros (upload) no servidor. RFC 959.

H

Homonímia – Qualidade do que é homónimo. Homónimo – Diz-se das palavras que se pronunciam e se escrevem da mesma

maneira, mas de sentido diferente; que tem o mesmo nome. Hipertexto - Textos dinâmicos que ligam a outros textos, documentos ou

serviços da Web. HTML - Hypertext markup language. É uma linguagem utilizada na criação de

páginas Web. Permite a possibilidade de ligações a outros documentos ou serviços, incluir qualquer tipo de objecto como imagens, e a indicação de marcas especiais, não visualizadas aquando da consulta da página na Web.

I

IE - Internet Explorer. Browser da Web criado pela Microsoft. Inferência - Acto ou efeito de inferir; ilação; dedução; consequência; Inferir - Deduzir por meio do raciocínio; tirar por conclusão. Internet - Internetwork. Este termo surgiu da ligação de LANs e WANs

integrado no projecto ARPANET.

Semantic Web ISEP - 2002

6

J Java - Linguagem de programação orientada a objectos, desenvolvida por

James Gosling. Os programadores podem criar aplicações com animações e associar às páginas Web.

L LAN - Local Area Network. Este tipo de rede é implementada num edifício

ou conjunto de edifícios próximos.

Linguagem - Uma linguagem L sobre um alfabeto, também designado, frequentemente, por vocabulário, V, é um conjunto de frases, em que cada frase é uma sequência de símbolos pertencentes a V. Linguagens Naturais: Línguas faladas no dia-a-dia pelos povos. Nas linguagens naturais as frases pertencem à linguagem por razões de facto, isto é, porque as pessoas as usam assim mesmo na sua comunicação quotidiana. As regras surgem, então, posteriormente com o intuito de sistematizar e ensinar futuramente a linguagem e organizar (estruturar) essas frases – daí que seja frequente ter de se recorrer à enumeração de excepções para cobrir toda a linguagem natural. Linguagens Artificiais: Aquelas que são criadas com o propósito de suportar a comunicação Homem/Máquina. As linguagens artificiais só começam a ser usadas depois de o vocabulário ter sido escolhido e de as regras sintácticas e semânticas terem sido estabelecidas. Quando essas regras são apresentadas rigorosamente, através do recurso a formalismos apropriados, dizemos que se trata duma linguagem artificial formal, ou simplesmente de uma linguagem formal.

M

Meta-dados - Também conhecidos como "dados sobre dados", são utilizados para

descrever as características de recursos e seus relacionamentos. Tradicionalmente, o uso de meta-dados é associado a sistemas de gestão de Base de Dados, onde catálogos disponibilizam informações sobre os dados armazenados e processos do negócio. Na última década, meta-dados ganharam uma nova dimensão, onde a sua importância é essencial na gestão e manutenção de Data Warehouses, mecanismos de busca, catalogação de recursos na Web, ferramentas de software, etc.

Metonímia - Mudança de nome; figura retórica de translação em que se

aproveitam as conexões de sentido entre as palavras, por exemplo, tomando a causa pelo efeito, a matéria pelo objecto, o sinal pela coisa significativa.

Mosaic - O primeiro browser da Web, criado pelo NCSA da Universidade de

Illinois.

Semantic Web ISEP - 2002

7

N Namespaces – Define o vocabulário utilizado num esquema: Nomes de atributos

com o prefixo ‘xmlns’ seguido de um atributo; O valor do atributo é uma URL.

Exemplo:

<livro xmlns:isbn= www.isbn-org.org/def> <titulo> Fundamentals of... </titulo> <numero> 10 </numero> <isbn:numero> 12345456 </isbn:numero>

</livro> NCSA - National Center for Supercomputing Applications. Localizado na

Universidade de Illinois. Criador do Mosaico.

O Open-source - Software Livre – A licença Copyleft ou GPL determina que o software

por ela regido é gratuito, isto é, não pode haver cobrança sobre o direito de uso, é totalmente redistribuível, o utilizador deve ter acesso ao código fonte e mantém o direito de modificação do código fonte, com a limitação que qualquer modificação também tem que ser regido pela licença GPL. Isto é, qualquer software GPL será sempre livre, não existindo a possibilidade de criamos software proprietário baseado em software GPL. Esta licença foi concebida em 1984 por Richard Stallman para reger todo o software criado pelo projecto GNU. O kernel do Linux é regido por esta licença. (http://www.opensource.org/docs/osd-portuguese.html)

S

Semântica - Estudo da linguagem humana do ponto de vista do significado das

palavras e dos enunciados; semasiologia; sematologia; na linguística moderna é a disciplina que estuda as palavras e os enunciados como sendo objectos abstractos com um conjunto de propriedades e entre os quais se estabelecem relações que se definem nos termos predicação, tempo, aspecto, modalidade, valores de verdade, etc.

SMTP - Simple mail transfer protocol. Protocolo que permite o envio do correio

electrónico entre computadores ligados à Internet. Sinonímia - Emprego de sinónimos; qualidade do que é sinónimo. Sinónimo - Que tem o mesmo nome; que tem a mesma ou quase a mesma

significação do que outra palavra; palavra sinónima. Sintáctico - Relativo à sintaxe; conforme às regras de sintaxe. Sintaxe - Parte da estrutura gramatical de uma língua que contém as regras

relativas à combinação das palavras em unidades maiores (como as

Semantic Web ISEP - 2002

8

orações), e as relações existentes entre as palavras dentro dessas unidades; parte da gramática que estuda estas relações

T

Taxinomia - Classificação científica; nomenclatura das classificações. Token - Representa um conjunto de sequências de caracteres com

significado comum (número, identificador, etc… )

U URL - Uniform resource locator. Apontador para localizar informação na

Internet. Este pode localizar vários tipos como as páginas da Web (http), ficheiros FTP (ftp) e outros. Os documentos XML podem existir na Internet da mesma forma que os documentos HTML. Quando assim acontece estes podem ser referenciados através de URLs, por exemplo: http://www.casa.pt/texto.xml. Embora os URLs sejam perfeitamente compreendidos e suportados, a XML utiliza mais frequentemente os URIs (Uniform Resource Identifiers). Os URIs são uma arquitectura mais genérica par localizar recursos na Internet. Na prática esta tecnologia ainda está em fase de desenvolvimento.

Unicode - A Web é puramente internacional, mas no entanto, a maior parte da

informação que podemos encontrar está em inglês. O formato Unicode, oferece o suporte de praticamente quase todas as especificações de caracteres internacionais.

Semantic Web ISEP - 2002

9

Índice Agradecimentos....................................................................................................................................................... 2 Prefácio..................................................................................................................................................................... 3 Glossário................................................................................................................................................................... 4 Índice......................................................................................................................................................................... 9 Introdução..............................................................................................................................................................10

0.1. Estruturação do relatório ................................................................................................................... 11 WWW - Uma nova forma de ver o mundo......................................................................................................12

1.1. - Internet ............................................................................................................................................... 12 1.2. – Os primórdios da Web..................................................................................................................... 14 1.3. – As limitações actuais da Web .......................................................................................................... 16 1.4. – O futuro “imediato” da Web .......................................................................................................... 17 1.5. - Resumo............................................................................................................................................... 18

Semantic Web............................................................................................................................................................19 2.1 O que é a Semantic Web?....................................................................................................................... 19 2.2. Vantagens da Semantic Web................................................................................................................. 21 2.3. Princípios da Semantic Web.................................................................................................................. 22 2.4. Constituição da Semantic Web ............................................................................................................. 28 2.5. Resumo ................................................................................................................................................. 32

A Linguagem XML...............................................................................................................................................35 3.1. - A Linguagem XML........................................................................................................................... 36 3.2. - História da linguagem XML............................................................................................................ 38 3.3. - Vantagens da linguagem XML........................................................................................................ 40 3.4. - Especificação da linguagem XML.................................................................................................. 41 3.5. - Resumo............................................................................................................................................... 51

A Arquitectura RDF.............................................................................................................................................52 4.1. – A arquitectura RDF......................................................................................................................... 53 4.2. – Constituição da arquitectura RDF................................................................................................. 54

4.2.1. O Modelo RDF............................................................................................................................ 54 4.2.2. Sintaxe RDF.................................................................................................................................. 56 4.2.3. Esquema RDF (RDF Schema) .................................................................................................. 60 4.2.4. Mecanismos de Consulta em RDF............................................................................................ 65

4.3. Áreas de aplicação da arquitectura RDF.......................................................................................... 66 4.4. – Resumo.............................................................................................................................................. 67

Ontologias..............................................................................................................................................................69 5.2. Propriedades de uma ontologia......................................................................................................... 71 5.3. Domínio de concepção ...................................................................................................................... 73 5.4. Definir uma linguagem ontológica (ex: OIL).................................................................................. 75 5.5. Linguagens para a Criação de Ontologias na Web.......................................................................... 77

5.5.1. SHOE (Simple HTML Ontology Extensions)........................................................................ 77 5.5.2 XOL (XML-based Ontology Exchange Language)................................................................. 77 5.5.3. OIL (Ontology Inference Layer) ............................................................................................... 78 5.5.4 DAML (DARP Agent Markup Language)................................................................................ 79

5.5. Resumo ................................................................................................................................................. 82 Agentes de Software................................................................................................................................................83

6.1. O que é um agente?............................................................................................................................. 83 6.2. Agentes Sematic Web .......................................................................................................................... 85 6.3. Resumo ................................................................................................................................................. 86

Semantic Web ISEP.................................................................................................................................................87 Conclusão...............................................................................................................................................................88 Anexo A - WWW em datas.................................................................................................................................90 Anexo B - Pesquisa e recuperação de informação na Web .............................................................................93 Anexo C - Document Type Definition (DTD)................................................................................................95 Referências .............................................................................................................................................................98

Semantic Web ISEP - 2002

10

0. Introdução

A Semantic Web surge como uma evolução da rede global que lhe adiciona uma estrutura que capta o significado dos conteúdos das páginas, e cria um ambiente no qual computadores podem processar e relacionar conteúdos provenientes de diferentes fontes. O desafio a que os investigadores da Semantic Web se propõem é o de definir uma linguagem para a expressão da informação/conteúdos e um conjunto de regras de inferência que os agentes de software possam utilizar para processar os dados. Enfim, a Semantic Web pretende responder à tão famosa pergunta: como fazer para que a Web seja um instrumento funcional, um "local" de trabalho de aprendizagem e de vivências, enfim que funcione. A proposta deste projecto, consiste num estudo sobre o estado da arte da Semantic Web.

Semantic Web ISEP - 2002

11

0.1. Estruturação do relatório Este relatório é composto por cinco secções, que englobam oito capítulos e de três anexos. A primeira secção faz o ponto da situação sobre a Internet/Web actual (o que é?, como nasceu e cresceu?, as suas limitações? e o que se espera para o seu futuro?). Esta primeira secção é constituída pelo primeiro capítulo que se intitula “WWW - Uma nova forma de ver o mundo”. A segunda secção descreve a Semantic Web, incluindo as principais tecnologias que a suportam. Esta segunda secção é constituída por cinco capítulos: “Semantic Web”, “A Linguagem XML”, “A Arquitectura RDF”, “Ontologias” e “Agentes de software”. O segundo capítulo, de nome “Semantic Web”, descreve o conceito de Semantic Web, as suas vantagens, os seus princípios e a sua constituição. O terceiro capítulo, de nome “A linguagem XML”, descreve a linguagem XML, a sua história, as suas vantagens e a sua especificação. O quarto capítulo, de nome “A Arquitectura RDF”, descreve a arquitectura RDF, a sua constituição, o Esquema RDF bem como algumas áreas da sua aplicação. O quinto capítulo, de nome “Ontologias”, descreve o que é uma ontologia, as suas propriedades, a sua definição e apresenta exemplos de ontologias actualmente em desenvolvimento. O sexto capítulo, de nome “Agentes de Software”, descreve o que é um agente em particular um agente de Semantic Web. A terceira secção corresponde a um pequeno estudo sobre a possibilidade da integração deste tema na matéria curricular de uma cadeira do DEI. Esta secção é constituída pelo sétimo capítulo que se intitula “Semantic Web ISEP”. A quarta secção corresponde à uma breve e objectiva conclusão sobre o tema. Esta secção é constituída pelo oitavo capítulo que se intitula “Conclusão”. A quinta secção é constituída por três anexos. Os três anexos referem-se a temas que se encontram ligados a este projecto, mas de uma forma mais superficial. São eles: “WWW em datas”, “Pesquisa e recuperação de informação na Web” e “Document Type Definition (DTD)”. As referências a termos em língua inglesa estão assinalados no formato itálico. Por exemplo: Semantic.

A apresentação de código utiliza o tipo de letra Courier New.

O texto escrito a Negrito é utilizado apenas para dar mais relevo ao que nele se encontra escrito.

Semantic Web ISEP - 2002

12

1. WWW - Uma nova forma de ver o mundo.

Internet - substantivo feminino - neologismo - palavra inglesa que designa a rede mundial de comunicação por computadores, de origem norte-americana, que permite aos seus utilizadores a troca de mensagens e o acesso a grande quantidade de informação; Dicionário da Língua Portuguesa da Porto Editora. 2001.

1.1. - Internet Em poucos anos, a Internet atingiu uma divulgação de tal forma incomensurável que é cada vez mais difícil encontrar alguém que demonstre qualquer receio só pelo facto de ouvir proferir a palavra Internet [HIT]. Mas, inversamente ao que a maioria das pessoas possam julgar, a actual situação da Internet nunca fora previamente planeada. A Internet, tal e qual nós hoje a conhecemos, não resulta de facto de um projecto previamente planeado mas tão somente de uma evolução sem rumo. A Web, por exemplo, que é um dos componentes da Internet, - como veremos mais tarde - começou por ser um pequeno e bem direccionado projecto [Berners90] que inesperadamente cedo transbordou do seu leito original. Esta evolução indeterminada é permanentemente alimentada em múltiplas direcções através do trabalho de investigadores e do apoio de grandes empresas. [W3C_a] [CERN] [MIT] [INRIA] [Keio] A Internet, em termos muito genéricos, representa uma rede de máquinas e pessoas interligadas à escala mundial. Essa rede permite a interacção bidireccional de documentos entre todos os seus utilizadores [QS01]. As potencialidades da Internet são ilimitadas, sendo as duas aplicações mais comuns o correio electrónico e as páginas Web (pessoais e de serviços prestados como por exemplo: comércio, turismo, notícias, bibliotecas, etc.). [ABA] Em seguida, apresenta-se um gráfico, figura 1.1.-1, com a frequência de utilização das aplicações de Internet.

Semantic Web ISEP - 2002

13

Fig. 1.1.-1 Frequência de utilização das aplicações de Internet

Devido, sobretudo, à sua notável facilidade de transferência de documentos, o número de utilizadores e de serviços prestados (alguns já enunciados anteriormente a titulo de exemplo) que suportam a rede, a nível mundial, crescem rapidamente [CO01]. A Internet tem actualmente uma dimensão de tal maneira prodigiosa que não existe outro tipo de entidade conhecida que lhe possa servir de comparação. Desta forma a Internet é considerada a maior fonte de informação e o maior meio de exposição de informação existente [QS01]. Apesar de ser um sistema completamente descentralizado e desorganizado [BHL01] consegue, graças à enorme quantidade de informação que abarca por um lado e ao recurso de software de pesquisa de informação por outro, ser o meio mais valioso de exposição de informação relativamente a todas as principais áreas do conhecimento humano. Além disso graças à sua universalidade [BHL01], influenciou e continua a influenciar mudanças profundas nos comportamentos de todas as sociedades existentes [Voiskounsky98] [Suler01]. A Internet suporta diferentes formas de disponibilizar a informação. As duas formas, actualmente, mais utilizadas e de maior potencial futuro são, como já vimos, o correio electrónico e a WWW (World Wide Web) também conhecida apenas por Web. A Web é uma representação de um espaço virtual, onde é simulado um meio de interacção mundial que existe como faculdade, mas sem exercício ou estado físico [Elmer98]. A Web, actual, é o resultado do trabalho de vários investigadores ao longo de vários anos, sendo porém atribuído, merecidamente, o maior contributo ao investigador Tim Berners-Lee o qual é apelidado de Pai da Web [W3C_b] [Kennelly00] [Rodriguez99].

Semantic Web ISEP - 2002

14

1.2. – Os primórdios da Web

Desde há algum tempo que a ideia de uma rede mundial era acarinhada pela comunidade científica mundial. A ideia começou, verdadeiramente, a ganhar corpo no início da década de 80, quando Berners-Lee iniciou um projecto que tinha como objectivo gerir toda a informação existente no CERN (European Center of Nuclear Research / Laboratório Europeu de Física de Partículas). O objectivo principal do projecto era o de ligar entre si os vários documentos existentes no CERN, muitos deles de sistemas heterogéneos, e implementar a possibilidade de navegabilidade entre eles [W3C_b]. Através da navegabilidade entre documentos é possível, sempre que for necessário, obter mais informação sobre um dado termo ou tópico presente num documento, acedendo facilmente a outros documentos com ele relacionados. Actualmente designa-se um sistema com estas capacidades de sistema de hipertexto. No final da década de 80 e início da década de 90 Berners-Lee apresentou propostas e realizou experiências tentando implementar o seu conceito de sistema de hipertexto. E é durante o mês de Agosto de 1991 que é, oficialmente, apresentada ao mundo a Web idealizada anos antes por Berners-Lee [W3C_b]. Estava criado o meio que anos mais tarde revolucionou o mundo – a maneira como as pessoas se divertem, fazem negócios, trocam ideias e socializam, de forma rápida e fácil. No início, apenas as grandes instituições como as Universidades e os Centros de Investigação é que aderiram à Web. Por volta de 1992 surgem os primeiros browsers (programas de navegação) os quais através de um interface mais “amigável” facilitaram o desenvolvimento quer de sites quer da adesão do público, em geral, à Web. Esta facilidade de utilização disponibilizada pelos browsers foi de tal maneira revolucionária que aqueles se tornaram num dos aliados mais importantes para o desenvolvimento e sucesso da própria Web [W3C_b]. Em meados de 1993 já se encontravam recenseadas mais de 50 páginas Web. Outro grande impulso, e também de importância extrema para a sobrevivência e rápido crescimento da Web, foi o facto do CERN, neste mesmo ano, adoptar a ideologia – ainda hoje em vigor – de que a Web deveria ser um espaço virtual, aberto, universal e gratuito. Ainda nesse ano, Berners-Lee em conjunto com outros investigadores fundam o World Wide Web Consortium (W3C), que passa a funcionar como uma espécie de centro regulador da Web [W3C_b] [W3C_a] [CERN]. Novos e mais potentes browser começaram a ser desenvolvidos. O mais importante, na altura, foi o Mosaic que foi desenvolvido por Marc Andreesen – futuro fundador da Netscape - ao serviço da NCSA (National Center for Supercomputing Applications). A importância da Web crescia de dia para dia. Depois do mundo científico foi a vez das grandes empresas se renderem às potencialidades disponibilizadas pela Web, sobretudo no que diz respeito à divulgação de produtos e serviços a um nível mundial [W3C_b]. Pouco a pouco, a Web começou a impor-se. Uma vaga de divulgação e de criação de novos sites crescia rapidamente de ano para ano [W3C_b] [HIT]. Em meados de 1995, somos confrontados com uma gigantesca Microsoft que acorda, sobressaltada, para uma nova realidade, imposta pela Web, para a qual não estava preparada. A Microsoft começa por se manifestar incrédula devido ao seu desajustamento e atraso relativamente à nova ordem mundial. Depois, desorientada e coberta de um súbito pavor tenta por todos os meus, por vezes menos lícitos, apanhar o comboio que já tinha partido da estação, i.e. “roubar” a posição à actual detentora do mercado, a recentemente criada Netscape [Naughton98].

Semantic Web ISEP - 2002

15

Apesar de actualmente vivermos numa sociedade de informação/globalização [ISW] [Gago] a Web está considerada parceira indispensável, e que ao excluir e tornar obsoleto tudo e todos que com ela não interagem, e de ser o palco de novas tecnologias, ideias de negócio e até ter criado uma Nova Economia Mundial, a Web ainda é uma criança (11 anos). E como qualquer criança ainda tem muitas limitações e muitas experiências a empreender.

Semantic Web ISEP - 2002

16

1.3. – As limitações actuais da Web Actualmente, a Web já ultrapassou a primeira barreira, a qual é caracterizada pela disponibilização de grande quantidade de informação a todas as pessoas independentemente do local onde que se encontrem [W3C_c]. Pode-se quase afirmar que a informação existente na Web é de carácter ilimitado. Neste momento ganha evidência outro tipo de preocupações: Como encontrar na Web, no meio de tanta informação, o que verdadeiramente se deseja?; Que técnicas de triagem se devem implementar para uma melhor selecção da informação com qualidade? i.e. informação útil. [BHL01] [Lesk95]

O crescimento rápido e desorganizado da Web tem dificultado muito a localização, o acesso, a apresentação e a manutenção da informação para o uso de um número tão grande de utilizadores. A maneira mais fácil e prática de realizar pesquisas de informação na Web é recorrendo à ajuda de aplicações apelidadas de Motores de Pesquisa e de Directórios [SES]. Os Motores de Pesquisa, com excepção de pequenas novidades que rapidamente vêm sendo introduzidas [VG00], baseiam, de uma maneira geral, as suas pesquisas em palavras desprovidas de conteúdo, retornando uma panóplia de sites onde aparece a palavra pesquisada. Mas este tipo de resultados não é muito útil, pois as palavras podem ter muitos significados (como profissão, nome, localidade, etc.) como podem também possuir conceitos associados – por exemplo um nome de um autor de um livro (pesquisando pelo nome do autor tanto recebemos os sites que se referem aos livros ou documentos por ele publicado, como por documentos de outrem que se referem ao autor em questão, etc.). A demora na obtenção de resultados das pesquisas e a necessidade de realizar manualmente, por parte do utilizador, muito trabalho de filtragem e de selecção para se atingir a informação útil é o principal factor da insatisfação sentida pelos actuais utilizadores da Web. [BHL01]

A Web actual pode, também, ser caracterizada como um meio de comunicação exclusivamente humano. Apenas a comunicação humana é permitida, i.e. a informação é concebida tendo como consumidor a espécie humana e não agentes de software ou máquinas. Nestas circunstâncias apenas os humanos conseguem perceber ou manipular o significado da informação presente na Web. [BHL01]

Os principais problemas da, actual, Web podem, a título genérico, ser agrupados nos seguintes grupos:

? Aumento exponencial do número de documentos electrónicos publicados na Web; ? Necessidade de uma identificação, descrição e classificação eficiente dos

documentos a armazenar para posteriormente permitir uma boa selecção de informação por parte das actuais ferramentas de pesquisa, i.e. eliminar ao mínimo a obtenção de documentos não relevantes;

? Desenvolver ferramentas mais eficientes para uma navegação mais “amigável”; ? Desenvolver formas eficientes de integrar os recursos na Web; ? Permitir a interpretação e manipulação da informação tanto por pessoas como por

agentes de software ou máquinas. [Moura01] [BHL01]

Diagnosticadas estas deficiências, a Web torna-se, mais uma vez, um desafio para a comunidade científica mundial.

Semantic Web ISEP - 2002

17

1.4. – O futuro “imediato” da Web Apenas me vou referir ao futuro “imediato” da Web, isto é à tentativa de ultrapassar as limitações actuais. Especulações de longo prazo sobre o futuro da Web são do ponto de vista prático inúteis devido à constante indeterminação sobre a evolução da Web. Neste momento, encontramo-nos no início de uma nova Web. Ela é a 3ª geração da Web, cognominada por Berners-Lee de Semantic Web. A 1ª geração da Web correspondeu à criação manual de páginas HTML e a 2ª geração correspondeu à geração automática de páginas HTML. Ambas estas duas primeiras gerações se caracterizaram pelo facto de a informação disponibilizada na Web ser, apenas, para consumo humano. Esta característica é o factor de ruptura entre as duas primeiras e a 3ª geração da Web. A Semantic Web, 3ª geração, caracteriza-se por a informação disponibilizada na Web ser facilmente interpretada e manipulada por pessoas mas também, e principalmente, por agentes de software – i.e. pelas máquinas em geral [Moura01]. Berners-Lee – director do W3C – encabeça um grande número de pessoas e entidades que desejam revolucionar a Web, tentando para isso desenvolver um meio que permita injectar-lhe “inteligência”. A Web banalizou o intercâmbio e a interligação de documentos entre computadores anteriormente incompatíveis, mas a Semantic Web pretende ir mais além, permitindo que os computadores e outros dispositivos conectados compartilhem partes de informação que estão dentro dos próprios documentos. Esta extensão da Web permitiria a troca, manipulação e interpretação automática e eficiente, por parte de agentes de software, da informação existente na Internet. Motores de pesquisa semânticos serão capazes de reunir informação de documentos dispersos, processá-la e deduzir novos conteúdos. Em síntese, a ideia da Semantic Web é a de aproveitar ao máximo os amplos recursos da Internet e transformar os milhões de documentos independentes que existem hoje num único grande depósito de informação e simplificar (automatizando) as interacções através da Web [BHL01]. Berners-Lee e a sua equipa de visionários estão convencidos de que a Semantic Web terá um impacto positivo a todos os níveis, desde os utilizadores individuais com um computador pessoal e um modem, até às grandes empresas, passando pelas instituições científicas e educacionais [BHL01].

Semantic Web ISEP - 2002

18

1.5. - Resumo Não há, na história da humanidade nenhum fenómeno comparável à Internet [QS01]. Num curtíssimo espaço de tempo, a Internet, não só inquietou como influenciou a vida de quase todas as sociedades [Voiskounsky98] [Suler01]. A importância da Internet a nível mundial tornou-se imensurável, alcançando rapidamente uma posição chave e indispensável no sucesso de qualquer tipo de actividade humana. A Internet pode ser, muito genericamente, resumida como um enorme e completamente desorganizado arquivo que pode ser acedido e actualizado à escala mundial. A Internet suporta diversas formas para permitir o acesso ou actualização da sua informação, sendo as mais utilizadas o correio electrónico e a tecnologia WWW (também conhecida por Web) [ABA]. A Web representa um espaço virtual de troca e disponibilização de informação que é proporcionado ao utilizador através de um “amigável” ambiente gráfico [Elmer98]. O investigador que mais contribuiu, e continua a contribuir, para o desenvolvimento da tecnologia WWW chama-se Tim Berners-Lee e é, muitas vezes, referido como o Pai da Web [W3C_b] [Kennelly00] [Rodriguez99]. A história da Internet é curta em idade mas longa em persuasão. Só graças ao constante entusiasmo, principalmente de Berners-Lee, é que a Web é hoje uma realidade [W3C_b]. A incredibilidade na Web era de tal maneira abrangente pela comunidade geral, que até a maior empresa de software a nível mundial, a Microsoft, por pouco não sofreu um rombo irremediável simplesmente por a ter menosprezado [Naughton98]. Apesar disso, o crescimento rápido e desorganizado da Web tem dificultado muito a localização, acesso, apresentação e manutenção da informação. Mesmo utilizando Motores de Pesquisa nem sempre se consegue aceder, facilmente, à informação que pesquisamos. E quando isso acontece é resultante de um esforço individual suportado pelo utilizador na triagem e selecção dos resultados devolvidos pelo Motor de Pesquisa. A demora na obtenção de resultados das pesquisas é também um importante factor de insatisfação sentida pelos utilizadores da Web. [SES] [BHL01] A desorganização actual da Web e a frustração crescente dos utilizadores, resultante das respostas “inúteis” retornadas pelos Motores de Pesquisa, estão na base de uma crescente necessidade em promover uma revolução na actual Web. Berners-Lee, mais uma vez, aparece como o fundador da próxima geração da Web, à qual dá o nome de Semantic Web (também conhecida como a 3ª geração). A Semantic Web caracteriza-se por disponibilizar informação que pode ser facilmente interpretada e manipulada quer por pessoas quer por agentes de software (i.e. pelas máquinas em geral). A ênfase da Semantic Web é dirigida principalmente para a interpretação e manipulação das páginas Web por parte dos agentes de software, com o objectivo de se construir uma Web mais automatizada [BHL01]. A Semantic Web é uma extensão, muito mais poderosa, da actual Web. Segundo Berners-Lee e a sua equipa, a Semantic Web terá um impacto positivo a todos os níveis, desde os utilizadores individuais até às grandes empresas [BHL01].

Semantic Web ISEP - 2002

19

2. Semantic Web

«Uma nova forma de conteúdos Web com grande importância para os computadores fará surgir uma revolução de novas possibilidades» [BHL01a]

2.1 O que é a Semantic Web? A Web, tal e qual a conhecemos, possui muitas limitações. Uma das suas maiores limitações prende-se com o seu inadequado suporte a transferências automáticas de conteúdos através, e entre, computadores (agentes de software). A informação existente na Web encontra-se apenas preparada para ser compreendida pelos humanos. Esta inadequação reside nos próprios documentos, que se encontram disponíveis na Web, mais especificamente na falta de estrutura dos documentos e na inexistente definição do tipo de informação neles contidos. [BHL01a] É a partir da consciencialização desta limitação – inadaptação da Web - e também das limitações anteriormente apresentadas no capítulo 1.3 deste relatório (1.3. – As limitações actuais da Web), que surgiu uma nova visão da Web. Essa visão descreve a Web como sendo suportada por uma semântica que atribui um significado bem definido à informação disponibilizada. Esta semântica permitiria uma compreensão, manipulação e troca de informação por parte das pessoas e principalmente por parte dos computadores (agentes de software). Esta potencialidade permitiria, também, firmar uma sublime colaboração quer entre computadores quer entre as pessoas quer, ainda, entre computadores e as pessoas. Esta colaboração seria de carácter universal, i.e. independente de raças, culturas, línguas e comunidades existentes. A esta nova visão, revolução, ou também conhecida por uma extensão da actual Web, Tim Berners-Lee e outros (consórcio W3C), apelidaram de Semantic Web. [BHL01a] O consórcio W3C promove e encoraja a interactividade e o aprofundamento das opiniões sobre questões relacionadas com a Web. O W3C tornou-se o líder da evolução tecnológica da Internet. Em apenas cinco anos, W3C desenvolveu mais do que trinta e cinco especificações técnicas para a infra-estrutura da Internet. A Semantic Web é fortemente encorajada pelo W3C através do projecto ‘W3C Semantic Web Activity’. Eric Miller, foi o pesquisador escolhido por Berners-Lee para chefiar este projecto. [W3C_a] [W3C_d] A Semantic Web tem como objectivo tornar a Web um local de partilha de informação que possa ser compreendida e processada por ferramentas automáticas. A informação é definida e “ligada” de maneira a poder ser utilizada por agentes de software (computadores), não somente para visualização, mas para integração e reutilização automática da informação entre várias aplicações independentes. Se os agentes de software “perceberem” o conteúdo de um documento podem não só serem preparados para nos darem notícias sobre alguma

Semantic Web ISEP - 2002

20

novidade nas nossas áreas de interesse como filtrar documentos de origem e conteúdo duvidosos; podendo também procurar automaticamente a informação de que necessitam. Neste processo é ainda necessário uma prévia avaliação humana, mas o processo tornar-se-á cada vez mais automatizado. O ‘W3C Semantic Web Activity’ sucede ao ‘W3C Metadata Activity’, que definiu diversos suportes (frameworks - armações) para, por exemplo, fazer o ‘rating’ de conteúdos de páginas Web (que permite a protecção de acesso a diversos sites (parent guiding)), ‘web crawling’, e uso de diferentes dispositivos, usando para isso a linguagem XML (Extensible Markup Language) [XML]. [KM01] [W3C_d] Os mentores da Semantic Web destacam a “universalidade” da Web actual como uma das suas propriedades vitais e almejam que a Semantic Web seja, também, o mais descentralizada possível. Embora seja muito promissora, a implementação da Semantic Web é de enorme complexidade. O primeiro desafio consiste em estabelecer padrões que definam de uma forma inteligente e universal o conteúdo das páginas Web, facilitando assim uma posterior pesquisa e interpretação. A segunda etapa consiste em desenvolver programas que consigam partilhar informação de diversas origens. Superadas estas duas etapas, tornar-se-á necessário desenvolver software que consiga gerar informação adicional além da recebida. A consequência ideal destas duas condições - cada uma é um desafio - é a de que as pesquisas na Web serão mais precisas e profundas, e, por isso, a veracidade e a validade da informação encontrada poderá ser mais facilmente conseguida. É importante clarificar que processar e relacionar conteúdos não significa um processamento “inteligente” no sentido que lhe é atribuído pelos investigadores da área da Inteligência Artificial. O desafio a que os investigadores da Semantic Web se propõem é o de definir uma linguagem para a expressão da informação/conteúdos e um conjunto de regras de inferência que os agentes computacionais possam utilizar para processar a informação. [Berners98a]

Semantic Web ISEP - 2002

21

2.2. Vantagens da Semantic Web As principais vantagens, algumas já referidas ao longo deste relatório, podem-se agrupar nos seguintes pontos: [BHL01a]

? Os agentes de software poderão, de uma forma automática, realizar tarefas sofisticadas a pedido dos utilizadores. As páginas Web elaboradas utilizando aplicações de Semantic Web permitirão aos agentes de software retirar maior conhecimento sinergético – processar e compreender.

? Disponibilizar informação através de conceitos universais. Utilizando para isso XML, RDF (“Resource Description Framework”) [RDF] e Ontologias, como iremos ver mais à frente.

? Possibilidade de especificação e aperfeiçoamento, por parte do utilizador e ao longo do tempo, das suas preferências pessoais e dos seus níveis de confiança relativamente à Web. A Web tornar-se-á assim menos impessoal e mais útil.

? Pesquisa de informação na Web mais eficiente. Possibilidade de utilizar agentes de software para compreender e interpretar a informação não apenas de uma forma isolada mas também de uma forma conjugada através de várias páginas Web. (conceitos precisos: ao invés de termos ambíguos; Compatibilidade no relacionar a informação de uma página ao conhecimento associado a estruturas e regras)

Semantic Web ISEP - 2002

22

2.3. Princípios da Semantic Web

? Tudo pode ser identificado por um URI (URI – Universal Resource Identifier)

Pessoas, locais e objectos do mundo físico podem ser referenciados(as) na Semantic Web através de uma variedade de identificadores. Há pessoas que defendem que este tipo de abordagem possui muitas restrições, i.e. que apenas uma pequena parte dos URIs é passível de ser utilizada para referenciar objectos do mundo físico. A Semantic Web consegue dar a volta a estas restrições referindo-se indirectamente às entidades físicas. Por exemplo, para se referir a uma pessoa cujo nome é “Mariana da Selva” utiliza-se o URI do seu correio electrónico numa frase deste tipo: “A pessoa cujo correio electrónico é mailto:[email protected] e o seu nome é Mariana da Selva”. É possível especificar muitas outras coisas acerca desta pessoa sem ter necessidade de lhe atribuir um novo URI. O vocabulário que foi utilizado - Dublin Core’s [DCMI] – para definir os recursos também se encontra definido por uma URI. [KM01] Dublin Core é um conjunto de 15 elementos de meta-informação proposto para facilitar a recuperação de informação na Internet de forma rápida e correcta. Esses elementos são: título, autor, assunto, descrição, entidade que publica o documento, colaboradores, data, tipo de recurso, formato, identificador do recurso, fonte, língua, relação, domínio e direitos. Este tipo de meta-informação é geralmente classificado como meta-informação descritiva, pois é externa ao significado do documento e está mais relacionada com a forma como o documento foi criado. O grupo de trabalho da normalização Dublin Core também desenvolveu métodos para a incorporação desta meta-informação nas páginas Web. [Azevedo01]

? Recursos e ligações podem ser tipificados A rede actual é constituída por recursos e ligações (figura 2.3.-1). Os recursos são documentos Web preparados para o consumo humano e não costumam conter meta-dados que expliquem a finalidade do documento nem a existência de relações entre outros documentos. Enquanto que para os humanos é relativamente simples exaurir o significado dos documentos e a existência de relações entre outros documentos, para os computadores na Web de hoje, em termo de conteúdos, isso torna-se incompreensível. Enquanto que para um utilizador é fácil adivinhar o tipo de relação que um recurso possui lendo o texto que acompanha a ligação (link), o mesmo não se passa com os computadores. O tipo de relação entre documentos pode ser, por exemplo: ‘depende de’, ‘é uma versão de’, ‘Autor’, etc. [KM01]

Semantic Web ISEP - 2002

23

fig. 2.3.-1 Recursos e ligações podem ser tipificados na Semantic Web

Como se pode ver na figura 2.3.-1, a Semantic Web também é constituída por recursos e ligações. No entanto, agora os recursos e ligações podem ser tipificados de maneira a definir conceitos que possibilitam uma maior compreensão dos tipo de relação entre os documentos por parte dos computadores. Ao observar a imagem da figura 2.3.-1 podemos constatar que algumas ligações informam que um recurso é uma versão de um outro recurso ou que foi escrito por um recurso que descreve uma pessoa ou que um recurso contem software que depende de outro software. [KM01]

Semantic Web ISEP - 2002

24

fig. 2.3.-2 A Web como foi visionada por Tim Berners-Lee em 1989

É interessante verificar que diferente tipos de recursos e ligações já se encontravam especificados na proposta original para a Web apresentada por Tim Berners-Lee (figura 2.3.-2) em 1989. [Berners90]

Semantic Web ISEP - 2002

25

? Informação parcial é tolerável Na Web actual não existe maneira de informar as ligações de que o recurso já não se encontra disponível, e nestas situações é aceitável recebermos uma mensagem de aviso (‘404 File Not Found’) – figura 2.3.-3 – a informar que o recurso já não se encontra disponível. As ferramentas de Semantic Web devem tolerar este problema e serem capazes de o compreenderem. [KM01]

fig. 2.3.-3 Tanto a Web actual como a Semantic Web suportam informação parcial

? Não existe a necessidade de uma confiança absoluta Nem tudo o que se encontra na Web é de confiança e o mesmo vai acontecer com a Semantic Web. A fidelidade da informação é avaliada por cada aplicação. A aplicações decidem naquilo que acreditam através do contexto de uma declaração – quem diz o quê?, quando? e que credenciais possui para dizer isso? [KM01]

fig. 2.3.-4 A corrente de confiança pode definir direitos de acesso

Na figura 2.3.-4, Tiina é funcionária da Elisa e deseja ter acesso à página Web: W3C Members. Para isso ela necessita de dar uma prova de que tem o direito de aceder a essa página. Para isso ela faz referencia a quatro declarações feitas por Kari e Alan, que por sua vez têm o direito de fornecer essas declarações, por causa do seu estatuto como conselheiro da Elisa e presidente associado da W3C respectivamente. A aplicação do W3C aceita a prova sabendo que pode confiar na declaração de Alan

Semantic Web ISEP - 2002

26

e também na declaração de Kari pois Alan delegou-lhe a responsabilidade a Kari para definir a lista de funcionários com direitos de acesso às páginas Web da Elisa. [KM01]

? Suporta evolução É comum que conceitos similares sejam muitas vezes definidos por diferentes grupos de pessoas em diferentes locais e por vezes pelo mesmo grupo em alturas diferentes. Muitas vezes é benéfico combinar a informação que existe na Web que utiliza esse conceito. A Semantic Web utiliza convenções descritivas que se podem expandir da mesma maneira que o conhecimento humano se expande. Além disso, as convenções permitem uma mais eficiente combinação de trabalho independente de diferentes comunidades mesmo entre comunidades que utilizam um vocabulário diferente. A Semantic Web disponibilizará ferramentas para resolver ambiguidades e clarificar inconsistências entre comunidades diferentes. Além disso, informação nova pode ser adicionada sem haver a necessidade absoluta de a informação antiga ter que ser modificada. [KM01]

fig. 2.3.-5 Combinação de nova informação com antiga, quando a antiga informação não

pode/deve ser alterada.

Na figura 2.3.-5 é apresentada a informação actual de uma pessoa chamada Miller utilizando apenas um vocabulário. Ao mesmo tempo alguma informação passada sobre esta pessoa pode ser encontrada na Web. Esta informação pode ser combinada com a informação actual de várias maneiras. Podemos adicionar uma nova propriedade “previousIdentify” (Identificação anterior) que ligue os dois tipos de informação entre si. Podemos também definir uma transformação a partir do vocabulário actual para o vocabulário usado para a informação passada – por exemplo: Definir que “WorksAt” (Trabalha no) e “employedBy” (contratado por) como sendo a mesma relação. É também possível adicionar uma nova propriedade que defina o intervalo de tempo em que a informação é válida. [KM01]

Semantic Web ISEP - 2002

27

? Implementação minimalista A Semantic Web trata as coisas simples de maneira simples e as coisas complexas da maneira a que sejam viáveis. O objectivo da actividade do W3C é o de normalizar não mais do que necessário. Esta aproximação permita a implementação de aplicações simples que são baseadas em tecnologias estandardizadas já existentes (Dublin Core [DCMI], RSS [RSS00], MusicBrainz [MB01]). Ao mesmo tempo existe uma investigação para o planeamento de complexidades futuras. Na utilização da tecnologia Semantic Web o resultado deverá oferecer muito mais possibilidades que a soma das partes. [KM01]

Semantic Web ISEP - 2002

28

2.4. Constituição da Semantic Web A característica essencial da Web é a sua universalidade. Para se conseguir que este sistema possibilite interacção por parte de agentes de software e, por outro lado, que essa interacção seja de carácter universal, é necessário definir uma arquitectura que tenha por base esse conceito. A Semantic Web não é uma nova Web mas sim uma extensão a qual deverá ser o mais descentralizada possível. Devido à grande heterogeneidade de assuntos e de abordagens é muito difícil desenvolver uma estrutura para especificar todo o conteúdo das páginas Web, em termos globais, por isso é necessário juntar esforços e estabelecer acordos e compromissos para se estabelecer uma estrutura ao mesmo tempo global e acessível, a Semantic Web. [BHL01a] Segundo Berners-Lee, a função principal da Semantic Web é o de permitir que os computadores tenham acesso a estruturas do conhecimento e a regras de inferência e que consigam depois utiliza-las para realizar raciocínios automáticos. Estas regras são especificadas através de ontologias, que permitem representar explicitamente a semântica da informação. O estudo da Representação do Conhecimento já vem sendo estudado há vários anos, principalmente pelos investigadores de Inteligência Artificial, mas apenas é possível encontra-la em pequenas e isoladas situações. Apesar de esses estudos serem as sementes de aplicações importantes, é cada vez mais necessário implementar uma representação do conhecimento a nível mundial para daí se extrair todo o seu potencial. A forma tradicional da representação do conhecimento é demasiado centralizada, o que implica que todos tenham que usar a mesma definição para conceitos comuns como “Pai” ou “veículo”. Mas o controlo central é muito rígido e o rápido aumento de espaço, que necessita de estar permanentemente disponível, torna-o ingerível! Uma outra limitação, da centralização, prende-se com o facto de este tipo de sistemas tenderem a limitar o tipo de perguntas que podem ser feitas de modo a que o computador possa responder correctamente. Cada sistema de representação do conhecimento ajusta as suas próprias regras e idiossincrasias para fazer a inferência dos seus dados. Nestas situações mesmo quando é possível transferir dados para outro sistema, geralmente as regras, porque se encontram definidas em formatos específicos para a aplicação, raramente podem ser aproveitadas. Pelo contrário, os investigadores da Semantic Web tentam desenvolver regras o mais expressivas possíveis que permitam que a Web venha a ter um raciocínio o mais abrangente possível, aceitando, assim, a possibilidade de paradoxos e a existência de perguntas sem resposta, como um preço a pagar para se atingir a maior versatilidade possível. Para isso adoptam uma filosofia similar àquela que foi adoptada pela Internet: Disponibilização dispersa da informação e a utilização de ferramentas que permitam em tempo real uma pesquisa da informação disponibilizada. [BHL01a] Adicionar lógica à Internet – usar regras para fazer inferências, escolher caminhos de acção e responder a questões – é a tarefa actual da comunidade Semantic Web. Uma mistura de decisões matemáticas e de engenharia complica esta tarefa. A lógica deve ser bastante poderosa para descrever as propriedades complexas dos objectos, mas não tão poderosa que possa enganar os agentes de software (computadores), pedido-lhes para considerarem um paradoxo. [BHL01a] A utilização de meta-dados possibilita uma descrição abrangente de recursos na Web, contribuindo para que mecanismos de pesquisa actuem com mais qualidade e precisão na recuperação dos mesmos. Mediante tal benefício, surgiram vários padrões de meta-dados

Semantic Web ISEP - 2002

29

direccionados a domínios específicos do conhecimento, tais como: Dublin Core [WKLW98][DCMI], RFC 1807 [LC95], MARC (Machine-Readable Catalogue) [Marbi96], etc. A aplicação de padrões de meta-dados tem sido muito útil no contexto de bibliotecas digitais que, em comparação com as técnicas empregues pelas ferramentas de pesquisa, têm-se mostrado mais eficientes na elaboração e obtenção de resultados de uma consulta. [Moura01] No contexto da Web, há três aspectos que devem ser considerados no desenvolvimento de meta-dados [IW97]: descrição de recursos, produção de meta-dados e uso de meta-dados. O primeiro aspecto diz respeito à informação expressa através de meta-dados, determinado pelo objectivo e tipo do recurso. O segundo aspecto representa o sumário da descrição dos dados, que pode tornar-se um processo extremamente caro e cansativo quando realizado manualmente. A tendência é automatizar esse processo, incentivados pelo uso de tecnologias XML e RDF. O terceiro aspecto, envolvendo o uso e acesso de meta-dados, é especialmente relevante para a localização de recursos na Web. Nesse contexto, meta-dados devem incluir informações sobre o recurso, tais como: identificação, descrição, estrutura, etc. [Moura01] Segundo Hendler [Hen01], a Semantic Web pode ser considerada como a composição de um grande número de pequenos componentes ontológicos que apontam entre si. Dessa forma, companhias, universidades, agências governamentais e grupos de interesse específico procurarão ter seus recursos Web ligados a um conteúdo ontológico, já que ferramentas poderosas serão disponibilizadas para combinar e processar essas informações entre aplicações Web. Porém, vale a pena ressaltar que a semântica não está somente relacionada ao conteúdo de um recurso, mas, também, à forma de como este se relaciona com os demais recursos na Web. É essencial portanto, que os recursos disponibilizados sejam expressivos, o bastante para que os agentes de software (computadores) sejam capazes de processar e entender o verdadeiro significado da informação, conjugando as necessidades de cada utilizador e as fontes de informação disponíveis. Assim, a Semantic Web não espelha apenas a gestão e o domínio da informação. Ela contribui também para a evolução do conhecimento, onde ferramentas são desenvolvidas para atender às especificações de interactividade. [Moura01] Existe um grande consenso de que esta representação só é possível a partir do uso de meta-dados que facilitem a integração e troca de informação entre fontes heterogéneas e distribuídas. Contudo, para que o conhecimento possa ser representado a partir de diferentes padrões de meta-dados e ainda assim ser interoperável, são necessárias arquitecturas de alto nível, capazes de acomodar essa diversidade de padrões. A principal meta de uma arquitectura de meta-dados é prover suporte à codificação, ao transporte e ao intercâmbio de uma variedade de meta-dados desenvolvidos de forma independente. Porém, o intercâmbio desses meta-dados deve ser efectuado levando-se em consideração três aspectos distintos de interactividade: semântico, sintáctico e estrutural. A interactividade semântica possibilita compreender o significado de cada elemento descritor do recurso, juntamente com as associações nele embutidas. O uso de vocabulários específicos, ontologias e/ou padrões de meta-dados são essenciais para assegurar esse tipo de interactividade. A interactividade sintáctica determina como os meta-dados devem ser codificados para a transferência de informações. Tal aspecto pode ser provido pela linguagem XML (Extensible Markup Language), actualmente considerada pela W3C como a linguagem mais importante para a representação e troca de informação na Web. A interactividade estrutural especifica como os recursos estão organizados, juntamente com os tipos envolvidos e os possíveis valores para cada tipo. Com esta característica pode

Semantic Web ISEP - 2002

30

beneficiar-se dos recursos providos pelo modelo RDF (Resource Description Framework), onde um esquema pode dividir vocabulários distintos através da utilização de namespaces XML, proporcionando a troca de informações na Web. A iniciativa do Consórcio W3C ao juntar padrões de meta-dados e a linguagem XML às especificações da arquitectura RDF garante que informações estruturadas possam ser trocadas, fornecendo facilidades capazes de automatizar o processamento de recursos na Web. [BCS99] [BKSSW00] [Moura01] [BHL01a] [KM01] [Berners98b] Na proposta de desenvolvimento da Semantic Web é sugerida uma arquitectura por camadas, englobando tecnologias e modelos, como se pode ver na figura 2.4.-1:

fig. 2.4.-1 As camadas da Semantic Web

O primeiro patamar de Unicode e URI preserva a utilização de conjuntos de caracteres internacionais e possibilita um meio para identificar os objectos na Semantic Web. O patamar de XML + namespaces + Esquema XML (xmlschema) assegura a integração da definição de Semantic Web com outros standards XML - (estrutura os dados). No patamar RDF [RDF] + Esquema RDF (rdfschema) [RDFS] é possível realizar declarações acerca dos URIs dos objectos e definir vocabulários que podem ser referenciados, também, por URIs – (definir significados). É neste nível onde se definem tipos de recursos e de ligações. O patamar de Ontologia suporta a evolução do vocabulário definindo as relações entre os diferentes conceitos – (define as relações entre os dados). O espaço de Assinatura digital é utilizado para detectar alterações nos documentos. São estas as áreas que estão neste momento a serem normalizadas/modeladas pelos grupos de trabalho no W3C. Os níveis de cima: Lógica, Prova e Confiança, encontram-se ainda em fase de investigação. Algumas aplicações de demonstração encontram-se, também, ainda em desenvolvimento. O nível Lógica possibilita a escrita de regras enquanto o nível Prova executa essas regras e avalia em conjunto com o nível Confiança quando se deve ou não, dar crédito à prova fornecida (atestam a validade da prova). Sobre estes níveis/patamares surgem os agentes de software. Os agentes de software serão capazes de “compreender” o significado e a relação entre a informação disponível e de raciocinar sobre eles. Deverão também ser capazes de trocar entre si informação, resultados do processamento de informação e o tipo de raciocínio realizado. A

Semantic Web ISEP - 2002

31

autenticidade e confiança das fontes adquire, assim, um novo significado quando consideramos que os agentes de software, raciocinando sobre os dados podem, chegar a conclusões que afectem a acção humana.

Semantic Web ISEP - 2002

32

2.5. Resumo A WWW contém uma quantidade incomensurável de informação criada por diferentes razões e por diferentes organizações, comunidades e indivíduos. Os utilizadores da Web conseguem aceder facilmente à informação especificando para isso endereços URIs, fazendo pesquisas, ou seguindo as ligações para encontrar recursos relacionáveis. A simplicidade de uso é o factor que torna a Web tão popular; ao ponto que já se torna difícil imaginar a nossa vida sem ela. Mas a simplicidade da actual Web também tem um preço. É muito fácil perdermo-nos ou encontrar informação irrelevante. [KM01] A Web foi, e continua a ser, desenvolvida com um espaço de informação, tendo como objectivo ser útil não apenas para a comunicação entre humanos, mas também permitir que os computadores possam participar e ajudar os humanos. Um dos maiores obstáculos, à obtenção dessa possibilidade, prende-se com o facto de que a maioria da informação na Web é desenvolvida apenas para consumo humano. O objectivo da Semantic Web é o de desenvolver modelos e tecnologias que ajudem os computadores (agentes de software) a compreenderem a informação existente na Web, permitindo assim um enriquecimento do processo de descoberta, integração de informação, navegação e suporte a tarefas automáticas. Com a Semantic Web não apenas obteremos resultados mais exactos quando procuramos informação, mas também saberemos quando podemos integrar informação de diferentes fontes, que informação queremos comparar e poderemos desencadear qualquer tipo de serviço automático em diferentes domínios. [Berners98b] [BHL01a] Com a Semantic Web podemos associar semântica e informação descritiva a qualquer recurso. Não apenas podemos providenciar um URI para documentos, como se faz na Web actual, mas também para pessoas, conceitos e relações. A partir do uso intensivo de meta-dados, a Semantic Web visará prover o acesso automatizado à informação por parte dos computadores (agentes de software) baseando-se no processamento semântico da informação e em heurísticas. [Moura01] A Semantic Web possibilitará:

? Que agentes de software (computadores) possam, de uma forma automática ou a pedido dos utilizadores, retirar conhecimento sinergético – processar e compreender – das páginas Web;

? Disponibilizar informação através de conceitos universais. Utilizando para isso XML, RDF e Ontologias;

? Uma Web mais pessoal, útil e de confiança; ? Pesquisas de informação mais eficiente.

A Semantic Web é uma iniciativa do W3C (World Wide Web Consortium) cujo objectivo é expandir a Web actual permitindo automatismo, conceitos de acesso universal e confiança na informação. A W3C baseia-se em seis princípios para sustentar o desenvolvimento não centralizado da Semantic Web e permitir manter a sua consistência, i.e. permitir que no global todas as peças se encaixem:

? Tudo pode ser identificado por um URI ? Recursos e ligações podem ser tipificados ? Informação parcial é tolerável ? Não existe a necessidade de uma confiança absoluta ? Suporta evolução ? Implementação minimalista

Semantic Web ISEP - 2002

33

Devido à grande heterogeneidade de assuntos e de abordagens é muito difícil especificar uma estrutura para o significado do conteúdo das páginas Web que englobe tudo, por isso é necessário juntar esforços e estabelecer acordos e compromissos para desenvolver uma estrutura global. [BHL01a] Os investigadores da Semantic Web definiram-na como uma arquitectura por camadas em degrau. Cada camada é constituída por tecnologias, as quais se encontram também em investigação/evolução. Na base da arquitectura temos a camada de Unicode e URI, a qual preserva a utilização de conjuntos de caracteres internacionais e possibilita um meio para identificar os objectos na Semantic Web. Um degrau acima encontra-se a camada de XML + namespaces + esquema XML (xmlschema), a qual assegura a integração da definição de Semantic Web com outras normalizações XML - (estrutura os dados). Continuando a subir na estrutura, encontramos a camada RDF [RDF] + esquema RDF [RDFS], na qual é possível realizar declarações acerca dos URIs dos objectos e definir vocabulários que podem ser referenciados, também, por URIs – (definir significados). É também, nesta camada onde se definem tipos de recursos e de ligações. Por cima desta camada encontra-se a camada de ontologia, que suporta a evolução do vocabulário definindo para isso relações entre os diferentes conceitos – (define as relações entre os dados). Em paralelo com a camada de RDF, camada Ontologia, camada Lógica e camada Prova encontra-se a camada de Assinatura digital que é utilizada para detectar alterações nos documentos. São estas as camadas que estão neste momento a serem estandardizadas pelos grupos de trabalho no W3C. As camadas superiores: Lógica, Prova e Confiança, encontram-se ainda em fase de investigação. A camada lógica possibilita a escrita de regras enquanto a camada de prova executa essas regras e avalia em conjunto com a camada de confiança quando se deve confiar ou não na prova fornecida (atestam a validade da prova). Como se pode verificar na figura 2.5.-1 – também chamada a grande figura da Semantic Web, a Semantic Web é representada como um conjunto muito alargado de diferentes componentes incluindo as relações existentes entre eles.

Semantic Web ISEP - 2002

34

fig. 2.5.-1 A interligação dos vários elementos da Semantic Web

Os agentes de software Semantic Web serão capazes de “compreender” o significado e a relação entre a informação e de raciocinar sobre eles. Deverão também ser capazes de trocar entre si informação, resultados do processamento de informação e o tipo de raciocínio realizado. A autenticidade e confiança das fontes adquire um novo significado quando consideramos que os agentes de software raciocinando sobre os dados podem chegar a conclusões que afectem a acção humana.

Semantic Web ISEP - 2002

35

3. A Linguagem XML

O crescimento da Internet e das comunicações, a sua influência quotidiana, a sua própria banalização, trouxe-nos a possibilidade de comunicar com qualquer entidade, individual ou colectiva, a partir de qualquer ponto do mundo. Desde a nossa casa, passando pela escola até a local de trabalho, a Internet é, actualmente, um meio de comunicação por excelência. [Barbosa01] Um dos aspectos fundamentais deste meio, está relacionado com a apresentação de informação. Os sistemas-modelos aceites internacionalmente, como a HTML (HiperText Markup Language), o JavaScript ou a utilização de GIFs contribuíram ao longo dos últimos anos para a evolução da Internet, tal e qual a conhecemos hoje. No entanto, não disponibilizam capacidades suficientes para dar resposta a um outro aspecto, talvez ainda mais importante. A manipulação dessa informação. [Barbosa01] A linguagem XML (eXtensible Markup Language) surge neste contexto, com o objectivo de se afirmar como um modelo na representação e manipulação de informação, sendo o principal veículo de comunicação de dados entre as entidades mais diversas. A sua versatilidade e o seu potencial contrastam com a sua simplicidade de utilização. [Barbosa01] As novas necessidades de representação do conhecimento (expressão universal, reutilização, interactividade sintáctica e interactividade semântica) estão na base da linguagem XML. Como não é possível antecipar todos os potenciais utilizadores, os formatos de troca básicos da Web devem ser capazes de expressar qualquer tipo de dados (regras de expressão universal). As aplicações devem ser capazes de ler os dados e também de adquirirem uma representação que poderá ser explorada (interactividade sintáctica). Componentes de software como ‘parsers’ ou APIs de interrogação, por exemplo, devem possuir a capacidade de ser reutilizáveis, o mais possível, por várias e diferentes aplicações. Outro importante requerimento de um formato de troca de informação é o da informação vir a ser compreendida (interactividade semântica). Enquanto a interactividade sintáctica refere-se apenas à análise dos dados, a interactividade semântica refere-se à definição de mapas entre termos e a informação, requerendo para isso da análise de conteúdos. [DM+00]

Semantic Web ISEP - 2002

36

3.1. - A Linguagem XML A linguagem XML é uma tecnologia recente que tem sido empregada com o intuito de fornecer interactividade sintáctica aos recursos na Web. A XML possibilita separar o conteúdo da apresentação (layout), o que não ocorre com a HTML, proporcionando a aplicação de um conjunto extenso de marcações (tags) que podem ser utilizadas para capturar a estrutura de um documento. [Moura01] A linguagem XML em conjunto com a arquitectura RDF são duas tecnologias muito importantes na constituição da Semantic Web. A linguagem XML tem a potencialidade de permitir que os utilizadores especifiquem uma estrutura arbitrária na criação das suas páginas de Internet, mas em contrapartida, ainda não diz nada sobre o que as estruturas significam – o significado é expresso pela arquitectura RDF. Os próprios significados expressos pela arquitectura RDF são escritos utilizando uma notação XML. [BHL01] A linguagem XML foi formalizada em 1997 pelo grupo W3C XML (GT) [XML_a] com o objectivo de fornecer os benefícios da SGML (Standard Generalized Markup Language) [SGML], gerir o conteúdo e a estrutura de um documento independente do seu tamanho, e prover suporte a um número ilimitado de aplicações. Por ser baseada nas especificações da SGML, um sistema de marcação generalizado, proporciona uma visão hierárquica da estrutura de um documento através de elementos denominados marcações iniciais e finais. Actualmente, a maioria dos recursos na Web engloba as marcações providas pela linguagem HTML que foi desenvolvida para proporcionar a codificação dos documentos disponibilizados na Web, e a sua interpretação por aplicações como o Internet Explorer e o Netscape Navigator. Contudo, oferece um conjunto limitado de marcações, impossibilitando que os utilizadores definam as suas próprias estruturas de informação. Tais marcações enfocam basicamente a forma de apresentação dos documentos. A linguagem XML supre as deficiências da HTML, permitindo a criação de marcações definidas pelo próprio utilizador e, desta forma, proporcionando uma maior descrição dos recursos em termos de meta-dados. Também fornece uma linguagem sofisticada de folha de estilo – a XSL (eXtensible Stylesheet Language) [AA+00], baseada no padrão DSSL (Document Style and Semantics Specification Language) que adiciona estilos visuais (cores, tipos de fontes, etc.) aos documentos Web. Desta forma, a formatação do documento é tratada separadamente de sua estrutura, resolvendo assim um dos principais problemas do HTML, sem incorrer em um sistema de marcações complexas como a SGML. A linguagem XML apresenta um modelo de dados simples, servindo de base para a construção de documentos mais complexos. Desta forma, um documento XML pode ser visto como uma linearização de uma estrutura em árvore, onde cada nó representa um elemento ou um componente lógico do documento. [Moura01] A linguagem XML é vulgarmente referida como uma linguagem para armazenamento de dados, a qual permite guardar informação de um modo fácil e estruturado numa página Web. Mas a linguagem XML é algo mais que um armazém de dados - é um complemento perfeito ao HTML para armazenamento de informação. [XML_c] É utilizada para definir marcas em documentos de estruturas arbitrárias, em oposição ao HTML que é utilizado para documentos de hipertexto com estruturas fixas. [DM+00] É, basicamente, uma linguagem de descrição de conteúdos que constitui um conjunto de regras utilizadas para definir uma linguagem de marcações, que dividem um documento em

Semantic Web ISEP - 2002

37

partes. Através da XML, os programadores podem definir as suas próprias marcas e usá-las para anotar os conteúdos disponibilizados nas suas páginas. A linguagem define a estruturação dos elementos e não a formatação da sua apresentação na página de um ‘browser’. [Barbosa01] A linguagem XML apresenta vários objectivos: [XML_b] [Moura01]

? Permitir a publicação electrónica de documentos em todo o mundo, independentemente dos dispositivos de visualização;

? Permitir a definição de protocolos independentes da plataforma para a troca de dados, especialmente dados de comércio electrónico;

? Fornecer informação aos utilizadores de forma a ser possível um processamento automático após a recepção da informação;

? Tornar fácil o desenvolvimento de software para tratar informação especializada distribuída através da Web;

? Tornar fácil para as pessoas o processamento de dados, utilizando software que não seja dispendioso;

? Permitir às pessoas disponibilizarem de uma maneira livre a informação, por meio de folhas de estilo;

? Tornar fácil a disponibilização de meta-informação de forma que pessoas e sistemas consigam encontrar a informação pretendida de forma mais fácil, com aumento da interacção entre consumidores e produtores de informação;

? Representar de uma forma estruturada os dados (dados e meta-dados); ? Tornar-se o padrão para a representação e troca de dados estruturados a partir da

Internet; ? Permitir a modelação de dados heterogéneos, gerados a partir de bases de dados ou

processadores de texto, de forma a que possam ser localizados e processados por motores de busca;

? Permitir a consulta do conteúdo dos documentos presentes na Web.

Actualmente, a linguagem XML é largamente conhecido pelas comunidades Web, e é, também, a base de um grande número de software que se encontra a em desenvolvimento [BPM98].

Semantic Web ISEP - 2002

38

3.2. - História da linguagem XML O SGML, surgiu como uma meta-linguagem de marcação, a partir da qual poderiam ser criadas outras linguagens de marcação. O problema com a SGML é que é extensa e complexa. Usar a SGML de forma efectiva requer ferramentas caras e complexas. Assim, foram criadas outras linguagens de marcação menos abrangentes e mais fáceis de utilizar. O próprio HTML foi definido inicialmente utilizando um subconjunto de SGML, eliminando as suas características mais complexas. O DTD (Document Type Definition) (Anexo C) do HTML 4.01 utilizou esse subconjunto de SGML para definir o HTML 4.01 normalizado. [Azevedo01] Depois de se ter reconhecido que o SGML era demasiado complexo para descrever o HTML de uma forma útil, e que o HTML apresentava graves limitações, principalmente em relação às ligações a Bases de Dados (Geralmente soluções proprietárias; não possuía um protocolo para a publicação de dados (SQL não é adequada para a Web); não possuía um formato de intercâmbio (HTML é apenas um formato de apresentação – mistura apresentação e conteúdo; não possui estrutura, semântica e restrições de integridade)), levou o consórcio W3C a definir o XML. [Azevedo01] [Moura01]

Fig. 3.2.-1 XML como uma evolução do HTML

XML é uma meta-linguagem de marcação que utiliza algumas características seleccionadas de SGML para definir linguagens de marcações como o HTML e simplificar vários outros elementos, de forma a tornar a XML mais fácil do que a SGML. A linguagem XML foi formalmente lançada em 1997 e ainda está na sua versão inicial 1.0, o que demonstra a robustez da linguagem. [Azevedo01] Eis algumas linguagens XML que já existem ou estão em desenvolvimento: [Azevedo01]

? AIML (Astronomical Instrument Markup Language); ? AML (Astronomical markup Language); ? CML (Chemical Markup Language); ? DCML (Dental Charting Markup Language);

Semantic Web ISEP - 2002

39

? DSML (Directory Services Markup Language); ? GEML (Gene Expression Markup Language); ? IRML (Investment Research Markup Language); ? MathML (Mathematical Markup Language); ? NewsML (News Markup Language); ? OMF (Weather Observation Definition Format); ? PetroXML (Petroleum XML); ? ThML (Theological Markup Language); ? UDDI (Universal Description Discovery Integration); ? VIML (Virtual Instruments Markup language); ? WSDL (Web Services Description Language); ? XAML (Transaction Authority Markup Language); ? XBEL (Bookmark Exchange Language).

Algumas destas linguagens são ‘open-source’ e estão em competição com outros modelos da indústria. Por exemplo, MathML é uma criação do consórcio W3C e o DTD do MathML 2.0 está disponível no site do consórcio W3C, bem como toda a documentação sobre os seus elementos e atributos. [Azevedo01] Cada vez existem mais grupos, quer com o apoio do W3C, quer independentemente, a desenvolver novos formatos de troca de informação baseados na XML: [XML_c]

? XML Coordination Group – Coordenar o trabalho entre os grupos de actividade de XML, entre os grupos de actividade de XML e outras partes do W3C e, também, entre os grupos de actividade de XML e outras organizações;

? XML Core Working Group – Elaborar a recomendação XML 1.0; ? XML Linking Working Group – Desenvolvimento e especificação das marcações de

hipertexto para a XML; ? XML Query Working Group – Providenciar questões flexíveis que facilitem a

extracção de dados de documentos reais e virtuais; ? XML Schema Working Group – Definir a estrutura, o conteúdo e a semântica dos

documentos XML.

Semantic Web ISEP - 2002

40

3.3. - Vantagens da linguagem XML A linguagem XML possui benefícios, vários, que a tornam uma tecnologia natural para a visualização de dados industriais. Podemos, facilmente, descrever elementos e incluí-los dentro de outros elementos. Este tipo de estruturação de dados torna-se a solução para armazenamento de informação e definição de vocabulários sobre domínios específicos - áreas de química, medicina, matemática, e outras. [XML_b]

? A informação está auto-descrita; ? Os dados podem ser manipulados recorrendo a diversas ferramentas; ? Os dados podem ser visualizados recorrendo a diversas ferramentas; ? É possível criar várias formas de utilização recorrendo ao uso de folhas de estilo. ? A facilidade de edição de texto em qualquer editor normal é sem duvida uma mais

valia na construção de documentos XML. A linguagem XML é ainda auto-descritiva e permite a utilização de meta-dados para descrever páginas Web, transacções, fluxos, etc. Aplicações com registos estruturados (ex. ordens de compra), transacções de negócios e motores de pesquisa eficientes capazes de entender o conteúdo das páginas Web, são um bom exemplo do que pode ser conseguido pela utilização da XML. [XML_b] A linguagem XML define uma sintaxe de baixo nível para representar a estrutura dos dados. Pode-se utilizar esta sintaxe simples para suportar uma enorme variedade de aplicações. Esta ideia está expressa de uma maneira “agradável” no seguinte diagrama, onde se pode ver como a XML pode sustentar uma quantidade de linguagens de marcação para a Web, bem como aplicações. [XML_c]

Fig. 3.3.-1 XML suporta linguagens de marcações e aplicações variadas.

Semantic Web ISEP - 2002

41

3.4. - Especificação da linguagem XML A linguagem XML é uma representação textual de um dado. O componente básico em XML é o elemento (element), isto é, o texto delimitado entre marcações < > ...</>. No exemplo seguinte em código XML, pessoa, nome, idade e correio electrónico (e-mail) são elementos XML.

<pessoa> <nome> Rui </nome> <idade> 25 </idade> <e-mail>[email protected]</email>

</pessoa> Para descrever relações entre um elemento e os seus componentes, utiliza-se o sub-elemento. Assim, idade, nome e e-mail são sub-elementos de <pessoa> ... </pessoa>. Uma característica importante desta linguagem, é que, ao contrário do HTML, o utilizador pode definir seus próprios marcadores, onde letras maiúsculas e minúsculas são diferenciadas. É possível associar atributos a elementos, muito embora este termo tenha a conotação de propriedade em modelos de dados. Um atributo é definido como um par (nome,valor), como por exemplo idioma, moeda e país no exemplo seguinte:

<livro> <titulo idioma= "Português"> O Castelo </titulo> <preço moeda= "Euro"> 40.25 </preço> <editora país="Portugal"> Porto Editora </editora>

</livro> A linguagem XML deve respeitar duas restrições: As marcações devem ser correctamente alinhadas e os atributos devem ser únicos. Quando um documento atende a essas duas restrições diz-se que um documento é bem formado, sendo possível organizá-lo segundo uma estrutura de árvore.

Semantic Web ISEP - 2002

42

3.4.1. Documentos Bem-Formados A sintaxe XML é composta por: elementos, atributos, entidades e documentos válidos. Todos os documentos XML válidos começam com uma informação de cabeçalho responsável por:

? Descrever as regras estruturais que a marcação no documento almeja seguir; ? Listar os recursos externos (entidades externas) que constituem o documento; ? Declarar os recursos internos (entidades internas) que podem ser requeridos no

documento; ? Listar os tipos de recursos que não são XML (anotações ou dados binários), mas

que podem ser encontrados no documento (e para os quais aplicações de ajuda podem ser requeridas).

Esta informação de cabeçalho é mais conhecida como Definição do Tipo de Documento (ou DTD). De facto, o DTD [GP00] é utilizado como uma gramática para documentos XML. Assim, qualquer documento XML que faça referência a um DTD deve ser analisado, a fim de se verificar se o mesmo segue as regras especificadas naquele DTD, determinando se o mesmo é ou não um documento válido. Além disso, um documento será considerado bem formado se todos os elementos são constituídos pelos pares de marcadores em torno de cada dado, e se os atributos estão sintacticamente correctos. Por exemplo, em XML não é permitido a sobreposição de elementos. Assim, a seguinte expressão não é válida:

<A>DadoA<B>DadoB</A></B> A seguir é apresentado um exemplo de um documento DTD para um documento XML. Neste exemplo, um documento livro é constituído por um conjunto de elementos, os quais por sua vez, são constituídos por outros sub-elementos.

<? xml version= “1.0”?> <!DOCTYPE biblioteca [ <!ELEMENT livro (autor+, título, editora)> <!ELEMENT autor (nome?, sobrenome)> <!ELEMENT editora (nome_edit, endereço)> <!ELEMENT nome (#PCDATA)> <!ELEMENT sobrenome (#PCDATA)> <!ELEMENT nome_edit (#PCDATA)> <!ELEMENT endereço (#PCDATA)> <!ELEMENT título (#PCDATA)>

Um DTD pode ser considerado como um esquema de base de dados (todo livro tem um ou mais autores, título, etc.), apesar de apresentar uma série de limitações quanto a esse tipo de utilização. Por exemplo, ele só suporta um tipo de dado primitivo (PCDATA). O exemplo seguinte ilustra um documento XML contendo as informações de uma biblioteca, de acordo com o DTD anterior. < biblioteca >

<livro>

Semantic Web ISEP - 2002

43

<autor> <nome>Ramez</nome> <sobrenome>Elmasri</sobrenome>

</autor> <autor>

<nome>Shamkant</nome> <sobrenome>Navathe</sobrenome>

</autor> <título>Fundamentals of Database Systems</título> <editora>

<nome_edit> The Benjamin Publishing Company </nome_edit> <endereço>390 Bridge Parkway Redwood City, CA</endereço>

</editora> </livro> <livro>

<autor> <nome>Michael</nome> <sobrenome>Dahr</sobrenome>

</autor> <título>Deductive Databases</título> <editora>

<nome_edit>International Thomsom Computer Press</nome_edit> <endereço>168 High Holborn London</endereço>

</editora> </livro>

</ biblioteca> Actualmente, começa-se a utilizar, em vez do DTD, o Esquema XML (XML schema), o qual, ao contrário do DTD, permite definir tipos de dados e modelos de conteúdos complexos em XML. A XML tornou-se de facto a linguagem adequada para descrever dados semi-estruturados e ideal para realizar o transporte de meta-dados entre aplicações na Web. Em função dessa grande popularidade um grande número de linguagens de consulta para XML foi desenvolvido, a exemplo de: XQL, XML-QL, Lorel, Yatl, Quilt, Lorel, XSL, etc. [Moura01] [BC00] [FSW00]. A linguagem XML define a estrutura e conteúdo de um documento, mas não define a sua apresentação. É a linguagem de estilo – XSL, como já referi anteriormente, que define as regras para a exibição de um documento XML. Podemos observar na figura 3.4.1.-1 uma exemplificação da cooperação entre estas duas tecnologias.

Semantic Web ISEP - 2002

44

Fig. 3.4.1.-1 Exibição de um documento XML utilizando regras de apresentação XSL

Pode-se também converter a linguagem XML para outros formatos, a partir de um Processador XSL, como está exemplificado na figura 3.4.1.-2.

Fig. 3.4.1.-2 Transformação/Formatação de XML para outros formatos

Semantic Web ISEP - 2002

45

3.4.2 - Gramática XML Um documento XML bem desenvolvido cria uma árvore balanceada de grupos de marcações abertas ou fechadas, cada qual podendo possuir vários pares de atributos-valores. Não existe um vocabulário fixo ou grupo de combinações possíveis, logo pode-se definir um vocabulário e/ou combinações para cada aplicação. Na linguagem XML, como já vimos, é utilizada uma Definição de Tipo de Documento (DTD) para forçar constrangimentos em determinadas marcações a utilizar e como elas devem ser utilizados no documento. A DTD define uma gramática que especifica as combinações possíveis e agrupamentos de nomes de marcações, nomes de atributos, etc. Aos poucos, os investigadores do W3C estão a trocar a definição dos DTDs pela definição do Esquema XML. Apesar do Esquema XML oferecer mais vantagens do que as DTDs, a sua função é essencialmente a mesma: definir uma gramática para os documentos XML. [DM+00]

Fig. 3.4.2.-1 Exemplo de uma ontologia que define a vida selvagem Africana.

A figura 3.4.2.-2 mostra um exemplo de serialização de parte da ontologia da figura 3.4.2.-1. O modelo de dados XML básico é uma árvore etiquetada, onde cada marcação corresponde a um nó etiquetado no modelo. É claro, que este exemplo apenas mostra uma sintaxe XML base possível a partir da ontologia. A XML é primeiramente um meio de definir gramáticas, e porque diferentes gramáticas podem ser utilizadas para descrever o mesmo contexto, a XML permite múltiplas serializações.

Semantic Web ISEP - 2002

46

Fig. 3.4.2.-2 Serialização XML parcial do exemplo da ontologia da fig. 3.4.2.-1. Este

documento XML contém uma possível serialização. Introduz uma marcação para cada parte da gramática.

A informação na classe final definida na figura 3.4.2.-2, por exemplo, pode ser expressada de uma forma inteiramente diferente, como:

<class-def> <name>branch</name> <slot-constraint> <name>is-part-of</name> <has-value>tree</has-value> </slot-constraint> </class-def>

A XML é, ainda, utilizada para uma série de objectivos mais específicos: [DM+00]

? Servir de sintaxe de serialização para outra linguagem de Marcação (Markup). Por exemplo, a “Synchronized Multimedia Integration Language” (SMIL) é sintacticamente apenas um tipo particular de XML DTD; Isto define a estrutura de um documento SMIL. O DTD é útil porque facilita uma compreensão comum sobre o significado dos elementos DTD e da estrutura do DTD;

? Servir de marcação semântica de páginas Web. Uma serialização XML (como o exemplo visto em cima) pode ser usado numa página Web com uma folha de estilo XSL para exprimir apropriadamente os diferentes elementos;

? Servir de formato uniforme de troca de dados. Uma serialização XML pode ser transferida como um objecto de dados entre duas aplicações.

É importante notar que a DTD e o Esquema XML apenas especificam convenções sintácticas, qualquer tentativa de planeamento semântico está fora do domínio da especificação XML. [DM+00]

Semantic Web ISEP - 2002

47

Fig. 3.4.2.-3 O DTD (ou Esquema XML) e a comunicação ponto-a-ponto com o XML.

A figura 3.4.2.-3 mostra a tentativa de comunicação entre duas aplicações. Ambas estão de acordo na utilização da estrutura do documento fornecido pelo DTD A, mas um modelo do domínio de interesses deve ser construído para clarificar o tipo de dados a enviar antes de iniciar a troca. (Este modelo é habitualmente descrito em termos de objectos e relações de acordo com a ‘Unified Modeling Language’ UML [JC99] ou de acordo com a o modelo de entidade-relação [Barker90].) O DTD ou o Esquema XML é então construído a partir do modelo do domínio – habitualmente de uma maneira “ad-hoc”. [DM+00]

Semantic Web ISEP - 2002

48

Fig. 3.4.2.-4 Relacionamento binário (a); várias possibilidades de codificação XML (b).

A figura 3.4.2.-1(a) mostra uma simples relação binária (de nome Principal) entre dois conceitos: ordem de compra (purchase order) e empresa (company). A figura 3.4.2.-1(b) mostra várias possibilidades para codificar a relação em XML. O DTD apenas descreve a gramática, e há muitas maneiras de codificar o modelo do domínio em DTD, sem haver a necessidade de existir ligação entre elas. É impossível determinar a partir dos DTDs os conceitos e as relações entre eles. É por isso que é difícil reestruturar um modelo de domínio a partir dos DTDs. [DM+00] A vantagem de utilizar XML nesta situação é limitada devido à reutilização do componente de software de análise gramatical. Este cenário especifica uma comunicação de um para um entre duas partes que estão de acordo, o que não se passa na Web. Na Web é necessário implementar comunicações entre vários parceiros que mudam frequentemente. [DM+00]

Semantic Web ISEP - 2002

49

Fig. 3.4.2.-5 Alinhamento de modelos conceptuais.

A linguagem XML é útil para troca de dados entre aplicações que se conheçam e saibam que tipo de dados podem fornecer, mas não para comunicações onde novos parceiros são frequentemente adicionados. Na Web, estão constantemente a aparecer novas fontes de informação e novos parceiros de negócio. É por isso que é importante reduzir o mais possível o custo de adicionar novos parceiros à comunicação. Como se pode observar na figura 3.4.2.-5, a utilização de XML e de DTDs para esta operação requer muito mais esforço do que seria necessário. Um modelo de um domínio não pode ser mapeado para outro porque ambos se encontram mapeados em DTDs. Um mapeamento directo baseado em diferentes DTDs não é possível, porque a tarefa não consiste em mapear uma gramática para outra mas mapear objectos e relações entre domínios de interesse. Por isso, temos de readaptar o modelo do domínio original e definir mapas entre os conceitos e as relações. (Técnicas desenvolvidas em conhecimentos de engenharia e investigação em bases de dados são muito vezes úteis para esta tarefa) [Jann99] [Mc00]). Depois, é necessário definir o mapeamento entre os DTDs. [DM+00] Neste momento é mais utilizado o Esquema XML, em detrimento do DTD, como uma ferramenta de validação e de desenvolvimento dos documentos XML. Como já foi referido anteriormente, o Esquema XML, ao contrário do DTD, permite tipos de dados e modelos de conteúdos complexos em XML (‘string’, ‘integer’, ‘real’, ‘time’, ‘date’, etc). Permite que os investigadores tirem também partido dos namespaces.

Semantic Web ISEP - 2002

50

3.4.3 - Namespaces A linguagem XML não é uma ilha isolada. Se por um lado é útil construir documentos que obedeçam a um modelo de marcação, por outro, também é necessária alguma flexibilidade na inclusão de vocabulários provenientes de outras linguagens. [Barbosa01] O problema que decorre desta abordagem, advém do facto de por vezes ser impossível evitar que a notação utilizada em dois vocabulários distintos, possua marcações coincidentes. A função dos namespaces é precisamente eliminar esta ambiguidade. [Barbosa01] A linguagem XML oferece aos autores dos documentos a possibilidade de criarem as suas próprias linguagens de definição. Posteriormente, poderão efectuar a sua distribuição a projectos similares, espalhados pelo globo. Um exemplo deste tipo de especificações é a XSL. Ela é tipicamente XML, com a utilização de um conjunto de marcações próprio. A necessidade de criar uma distinção entre diferentes especificações de XML levou à criação dos denominados namespaces. [Barbosa01] Podemos dizer que um namespace, é uma área de definição de uma e só uma linguagem. Por exemplo, a definição da XSL na sua vertente de transformação pertence à área http://www.w3.org/xsl/Transform/1.0. [Barbosa01]

Semantic Web ISEP - 2002

51

3.5. - Resumo A Semantic Web apenas será uma realidade quando se definirem modelos/normas não apenas para a sintaxe dos documentos, mas, também, para o seu próprio conteúdo. O XML/Esquema XML e o RDF/Esquema RDF (RDF schema), os quais facilitam a interactividade semântica, são o resultado de um esforço de normalização praticado pelo W3C. [DM+00] A linguagem XML é um passo importante na descoberta de recursos eficientes na Web. É importante porque facilita o acesso à descrição dos conteúdos dos documentos. É uma tecnologia que separa o conteúdo intelectual que está no texto da estrutura subjacente, o que significa que a informação pode ser convertida para uma estrutura uniforme. [Azevedo01] A linguagem XML é muito flexível, permitindo ao utilizador a definição de marcações de acordo com as suas necessidades. Esta definição, embora tenha que obedecer a um conjunto de normas, não possui um carácter restritivo, antes pelo contrário. Imaginemos áreas tão distintas como a investigação espacial e a culinária, onde as terminologias e necessidades em termos de identificação de informação levariam a pensar que as deveríamos codificar de forma completamente isolada. Com a XML tal não acontece uma vez que o utilizador detém total liberdade de codificação. [Barbosa01] Com efeito, a informação, ao ser delimitada por marcações fica automaticamente descrita pelo nome das próprias marcações, sendo o seu significado inerente. [Barbosa01] Existem muitas e interessantes aplicações da linguagem XML. Se perdermos um pouco de tempo a pensar, quase que arriscaria a dizer que a sua aplicação se poderá estender a praticamente todas as áreas profissionais e não só, que fazem parte do nosso quotidiano. Só é necessário apelar a nossa imaginação e sentido criativo. [Barbosa01] É por isso, que o número de aplicações XML cresce rapidamente. Há muitas áreas, como por exemplo, a industria da saúde, o governo e as finanças, onde as aplicações de XML são utilizadas para armazenar e processar dados. A linguagem XML fornece um método simples de representação e organização de dados eliminando o problema de incompatibilidade dos dados. [XML_c] Pode-se afirmar que a linguagem XML preenche a necessidade universal de expressão, porque qualquer coisa que possa ser definida por uma gramática pode ser codificada em XML. Também preenche a necessidade de interactividade sintáctica porque um ‘parser’ XML consegue analisar gramaticalmente qualquer dado em formato XML o qual é habitualmente um componente reutilizável. No entanto, quando desejamos uma interactividade semântica o XML é desfavorável. A maior limitação do XML é a de apenas descrever a gramática. Não existe maneira de reconhecer uma unidade semântica a partir de um domínio particular porque o XML refere-se apenas à estrutura do documento e não estabelece uma interpretação comum dos dados contidos no documento. Embora esta limitação ainda não seja largamente reconhecida, como se pode observar nos foruns ‘Biztalk.com’ e ‘RosettaNet.org’ relacionados com o Esquema XML. [DM+00]

Semantic Web ISEP - 2002

52

4. A Arquitectura RDF

O principal objectivo de uma arquitectura de meta-dados é o de representar e dar suporte ao transporte de uma grande variedade de esquemas de meta-dados num ambiente distribuído, provendo interactividade a três diferentes níveis (sintáctico, estrutural e semântico), conforme já mencionado anteriormente. Uma variedade de arquitecturas de meta-dados foi desenvolvida nos últimos cinco anos, todas com um único objectivo: possibilitar a interactividade entre diversas entidades de modo a prover maior eficiência na descoberta de recursos de informação na Web. Nesse contexto, quatro arquitecturas podem ser citadas como contribuições importantes: Kahn e Wilensky [KW95], Warwick [LLD96], MetaContent Framework - MCF [Guha97] e Resource Description Framework - RDF [RDF]. A de maior destaque é a arquitectura RDF que actualmente se tornou a plataforma de desenvolvimento de aplicações na Web. A arquitectura RDF (Resource Description Framework) é uma recomendação do W3C para o desenho e normalização da definição e uso de meta-dados – descrição de recursos baseados na Web [LS99]. Contudo, a arquitectura RDF é também apropriada para a representação de dados. Tanto a linguagem XML como a arquitectura RDF têm o mérito de serem fundadores da Semantic Web. A arquitectura RDF providencia mecanismos apropriados para a aplicação de linguagens de representação de ontologias. [DM+00]

Semantic Web ISEP - 2002

53

4.1. – A arquitectura RDF A arquitectura RDF representa um padrão que permite descrever recursos Web com informação semântica, usando um modelo básico e alguns tipos primitivos. O maior objectivo da arquitectura RDF é o de definir um mecanismo para descrever recursos não vinculados a um domínio específico de aplicação. Como resultado do trabalho em conjunto com várias comunidades, a arquitectura RDF recebeu a influência de várias fontes diferentes. As principais influências vieram das comunidades de padronização da Web na forma de meta-dados HTML e PICS [PIC96]; de biblioteconomia; de estruturação de documentos na forma do SGML e XML; de representação do conhecimento e ainda de outras áreas de tecnologia que também contribuíram no projecto RDF: programação orientada a objectos, linguagem de modelação e Bases de Dados. [Moura01] Na área de descoberta de recursos, por exemplo, a arquitectura RDF possibilita a implementação de mecanismos de pesquisa mais eficientes. Na área de catalogação a arquitectura RDF pode ser usada para descrever os recursos de informação em um sítio da Web, em uma biblioteca digital, etc. Na área de agentes inteligentes a arquitectura RDF pode facilitar o intercâmbio de informações e o compartilhamento de conhecimento. [Moura01]

Semantic Web ISEP - 2002

54

4.2. – Constituição da arquitectura RDF 4.2.1. O Modelo RDF O modelo de dados da arquitectura RDF fornece uma arquitectura abstracta e conceptual para o processamento e o intercâmbio de meta-dados, definindo uma sintaxe neutra como forma de representação de expressão RDF. O modelo de dados da arquitectura RDF pode especificar o relacionamento entre entidades e prover interactividade estrutural, porém não fornece mecanismos para a declaração de propriedades e nem para a definição de relacionamentos entre tais propriedades e outros recursos. Para que estas habilidades sejam realizadas, é necessário aplicar o Esquema RDF [RDFS], descrito mais adiante. [Moura01] O modelo de dados primitivo é representado através de um DLG (Directed Labeled Graphs) e consiste de três tipos de objectos que descrevem inter-relacionamentos entre recursos em termos de propriedades e valores:

? Resource (Recurso): tudo que é descrito através de expressões RDF é chamado de recurso. Um recurso pode ser tanto um documento electrónico, uma colecção, uma página ou um sítio na Web, como também um objecto não acessível directamente na Web (ex.: livro impresso). Recursos são sempre nomeados através de URIs (Uniform Resource Identifier) que permitem a introdução de identificadores para qualquer entidade;

? Property (Propriedade): é um atributo ou característica que descreve o recurso, ou seja, o seu meta-dado. Uma propriedade representa também o relacionamento entre recursos.

? Statement (Declaração): corresponde à associação de um recurso específico, uma propriedade e o valor dessa propriedade para esse recurso. Uma declaração é dividida em: ‘sujeito’, ‘predicado’ e ‘objecto’, onde o objecto dessa declaração pode ser um outro recurso ou um literal. Desta forma, um objecto pode ser especificado por uma URI, uma cadeia de caracteres ou outro tipo de dado primitivo definido pela linguagem XML.

Os elementos do DLG são representados por nós e arcos, onde:

? Nó (representado por uma elipse): identifica o recurso; ? Nó (representado por um rectângulo): contém o valor; ? Arco (representado por uma seta): identifica a propriedade. A direcção da seta é

importante, pois o arco parte sempre do tema e aponta para o objecto da declaração;

? Nó (representado por uma elipse vazia): identifica um recurso anónimo. A Figura 4.2.1.-1 possui a representação da declaração:

“Rui Pereira é o autor do recurso http://wwwdei.isep.ipp.pt/~i970697/semantic.htm” .

Fig. 4.2.1.–1 Declaração RDF

Semantic Web ISEP - 2002

55

A propriedade autor descreve o recurso na declaração que é formada por: ? Resource: http://www.dei.isep.ipp.pt/~i970697/semantic.htm -> Sujeito ? Property: autor -> Predicado ? Value: Rui Pereira -> Objecto

A estrutura básica em RDF não é mais do que uma tripla do tipo recurso-propriedade-declaração, habitualmente representado por P(R,D). P(R,D) representa que um recurso R possui a propriedade P que por sua vez tem a declaração D. Outra maneira de pensar nesta relação é o de etiquetar um vector entre dois nós: [R] –P-> [D]. Esta última notação é útil porque o RDF permite o intercâmbio entre recursos e declarações. Assim cada recurso pode desempenhar o papel de uma declaração. [DM+00]

Fig. 4.2.1.-2 Gráfico RDF

O gráfico da figura 4.2.1.-2, por exemplo, expressa as seguintes três relações no formato P(R,D):

HasName(‘http://www.w3.org/employee/id1321’,”Jim lerners”) AuthorOf(‘http://www.w3.org/employee/id1321’,’http://www.books.o

rg/ISBN0012515866 ’ ) HasPrice(‘http://www.books.org/ ISBN0012515866’,”$62”).

A arquitectura RDF também possibilita um reagrupamento onde qualquer declaração RDF pode ser o recurso ou a declaração de um triplo, o que significa que as representações podem ser reagrupadas e também encadeadas. Por exemplo, isto permite-nos, na Web, expressar dúvidas ou suportar declarações criadas por outras pessoas. Finalmente, é possível especificar tipos de recursos, como por exemplo “ISBN0012515866” é do tipo (rdf:type) ‘book‘, criando para isso uma referencia para a definição de ‘book’ no Esquema RDF:

<rdf:Description about=www.books.org/ISBN0012515866> <rdf:type resource=http://description.org/schema/book>

</rdf:Description> É importante verificar que o RDF está desenhado de forma a fornecer um modelo de dados do tipo recurso-propriedade-declaração. A arquitectura RDF não define um modelo de dados normalizado. Como o XML o modelo de dados do RDF não providencia mecanismos para especificar os nomes de propriedades que podem\devem ser utilizados. [DM+00]

Semantic Web ISEP - 2002

56

4.2.2. Sintaxe RDF A sintaxe RDF é definida por:

? Valores Simples: uma entidade simples é utilizada quando se deseja mencionar apenas uma característica sobre um valor de um determinado recurso (Figura 4.2.1.-1). A representação utilizando a sintaxe RDF/XML é expressa por: <?xml version= “1.0”?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22 -rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">

<rdf:Description about = http:/www.isep.ipp.pt/~i970697/semantic.htm ”>

<dc:Creator>Rui Pereira</ dc: Creator> </rdf:Description>

</rdf:RDF>

Esta representação especifica dois namespaces identificados pelo token “xmlns”, a saber: rdf e dc. O primeiro, identificado pela URI http://www.w3.org/1999/02/22-rdf-syntaxns# que referencia as definições do modelo básico do RDF; o segundo, identificado pela URI “http://purl.org/dc/elements/1.1/” referencia o esquema de definição dos elementos do padrão Dublin Core, ou seja, os tokens criados pelo autor desta expressão. A marcação “rdf:Description about” menciona o recurso a ser descrito. A marcação “dc:Creator” especifica as propriedades referentes ao recurso citado com o valor Rui Pereira.

? Valores Estruturados: uma entidade estruturada é utilizada quando se deseja mencionar mais de uma característica sobre um valor de um determinado recurso. A entidade estruturada pode ser representada como outro recurso e quando esse recurso não possui um nome (recurso anónimo) a sua representação é feita através de uma elipse vazia. A Figura 4.2.2.-1 contém um grafo a partir da declaração a seguir:

“A pessoa cujo nome é Rui Pereira e o e-mail [email protected], é o criador do recurso ‘http://wwwdei.isep.ipp.pt/~i970697/paper.htm’ intitulado de Semantic Web”.

Fig. 4.2.2.-1 Propriedade com valor estruturado

Semantic Web ISEP - 2002

57

A representação utilizando a sintaxe RDF/XML é dada por:

<?xml version= “1.0”?> <rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22 -rdf-syntax-ns#" xmlns:mod ="http://www.dei.isep.ipp.pt/de9/sgdc_w/moddec/definition"> <rdf: Description about = “http://www.dei.isep.ipp.pt/~i970697/ paper.htm”>

<mod:titulo > Semantic Web </mod:titulo > <mod:Agente_Criador>

<mod:nome>Rui Pereira</mod:nome > <mod:e-mail>[email protected]</mod:e-

mail> </mod:AgenteCriador>

</rdf:Description> </rdf: RDF>

Na representação anterior foi utilizado um novo namespace denominado “mod” definido pelo criador da expressão e que possui o esquema de definição no endereço “http://www.dei.isep.ipp.pt/de9/sgdc_w/moddec/definition”.

? Colecções de Objectos: a habilidade de criar colecção de valores permite que uma declaração possa ser efectuada sobre um conjunto de valores referentes a uma propriedade. O RDF define três tipos de recipientes de objectos:

? Bag: é uma lista de recursos ou de valores não ordenados utilizada para declarar que uma propriedade pode ser composta de múltiplos valores independentes da ordem de atribuição, permitindo valores duplicados. A Figura 4.2.2.-2 especifica que o curso representado pelo recurso dei.isep.ipp.pt/curso/PG é constituído pelos alunos Cezar, Paulo e Beth.

Fig. 4.2.2.-2 Colecção do tipo Bag.

A propriedade “rdf:type” especifica o tipo de colecção (“rdf:Bag”) que está a ser utilizado. Cada elemento da colecção é nomeado através de propriedades numeradas como “_1”, “_2”, “_3” e assim sucessivamente.

Semantic Web ISEP - 2002

58

A representação utilizando a sintaxe RDF/XML é exemplificada a seguir:

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22 -rdf-syntax-ns#" xmlns:s="http://dei.isep.ipp.pt/schema/"

<rdf:Description about = “http://dei.isep.ipp.pt/curso/PG”> <s:alunos>

<rdf:Bag> <rdf:li

resource=“http://dei.isep.ipp.pt/alunos/Cezar> <rdf:li

resource=“http://dei.isep.ipp.pt/alunos/Paulo”/> <rdf:li

resource=“http://dei.isep.ipp.pt/alunos/Beth”/> </rdf:Bag>

</s:alunos> </rdf:Description>

</rdf:RDF>

? Sequence: é uma lista de recursos ou valores ordenados utilizada para declarar que uma propriedade pode ser composta de múltiplos valores que obedecem a uma determinada ordem como, por exemplo, alfabética ou numérica de valores. Este tipo de colecção permite valores duplicados. ? Alternative: é uma lista de recursos ou valores que apresentam valores possíveis para uma propriedade, proporcionando uma livre escolha de qualquer item da lista.

? Declarações sobre Declarações: o modelo RDF permite não apenas descrever

recursos, mas também descrever as próprias declarações. Para isso, é necessário definir um modelo de uma declaração a ser utilizado na criação de novas declarações sobre este modelo.

O RDF apresenta o mecanismo de reintegração de modo a permitir que uma declaração também possa ser tratada como um recurso. É definido a partir das propriedades: sujeito (subject), predicado (predicate), objecto (object) e tipo (type). Através do seguinte exemplo, expresso através desse mecanismo, podemos definir estas propriedades:

“O artigo http://www.dei.isep.ipp.pt/AnáliseFuncional_SBD_RO.pdf cujos autores são: Rui Pereira, Genelice Pereira e Verônica Aguiar foi aceite por http://www.dei.isep.ipp.pt/seminarioinf .”

? Subject: define o recurso que está a ser descrito pela declaração modelada, isto

é, o valor da propriedade subject é o recurso sobre o qual a declaração original é feita. (ex.: “http://www.dei.isep.ipp.pt/Análise_Funcional_de_dois_SBDRO.pdf”).

? Predicate: identifica a propriedade original da declaração modelada. O valor da

propriedade predicate é um recurso que representa uma propriedade específica na declaração original (ex.: mod:autor).

Semantic Web ISEP - 2002

59

? Object: identifica o valor da propriedade em uma declaração modelada. O

valor da propriedade objecto é o objecto na declaração original (Ex.: colecção do tipo bag).

? Type (Tipo): o valor dessa propriedade descreve o tipo do novo recurso. Todas

as declarações reintegradas são instâncias do rdf:statement. Um recurso do tipo rdf:statement é, por definição, composto pelas propriedades rdf:subject, rdf:predicate e rdf:object.

A Figura 4.2.2.-3 apresenta o grafo de reintegração relativo ao exemplo em questão:

Fig. 4.2.2.-3 Grafo de reintegração

A seguir é mostrada a representação segundo a sintaxe RDF/XML.

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22 -rdf-syntax-ns#" xmlns:mod="http://www.dei.isep.ipp.pt/de9/sgdc_w/moddec/definiti

on"> <rdf:Description> <rdf:subject resource =

“http://www.dei.isep.ipp.pt/Análise_Funcional.. .”/> <rdf:predicate resource = mod:autor /> <rdf:object>

<rdf:bag> < rdf:li resource=“Rui Pereira”/> < rdf:li resource=“Genelice Pereira”/> < rdf:li resource=“ Verônica Aguiar”/>

</rdf:bag> <rdf:object>

<rdf:type resource=“http://www.w3.org//1999/02/22 -rdf-syntax-ns#Statement”/>

<mod:aceito_por>“http://www.dei.isep.ipp.pt/seminarioinf”</mod:aceito_por>

</rdf:Description> </rdf:RDF>

Semantic Web ISEP - 2002

60

4.2.3. Esquema RDF (RDF Schema) Como o Esquema XML (XML Schema) providencia uma definição de um vocabulário de uma forma fácil, o Esquema RDF [RDFS] permite que os programadores definam um vocabulário particular para os dados RDF e também que especifiquem o tipo de recursos para os quais esses atributos podem ser aplicados [BG00]. O Esquema RDF provê uma mecanismo para a declaração de propriedades de recursos (título, autor, etc.), relacionamentos entre essas propriedades, classes de recursos que podem ser descritas (livros, pessoas, páginas Web, etc.), combinações possíveis entre classes e propriedades, etc. Basicamente, o Esquema RDF provê um sistema de tipos básicos que é empregado na construção de Esquemas RDF. O Esquema RDF é especificado como um conjunto de classes, propriedades e restrições entre seus relacionamentos, e pode ser usado em conjunto com outros vocabulários específicos, tais como o padrão Dublin Core. [DCMI] Este tipo de sistema utiliza alguns termos pré-definidos, como ‘Class’, ‘subPropertyOf’ e ‘subClassOf’ para o esquema de especificação de aplicações. As expressões do Esquema RDF são também expressões RDF válidas (como as expressões do Esquema XML são também expressões XML válidas). Os recursos RDF podem ser definidos como instâncias de uma ou mais classes utilizando para isso a propriedade ‘type’. A propriedade ‘subClassOf’ permite ao programador especificar a organização hierárquica das classes (por exemplo, uma classe Gato poderia ser considerada uma subclasse da classe Mamífero que é uma sub-classe da classe de Animal. Isto significa que qualquer recurso do tipo rdf:type Gato é também do tipo rdf:type Animal). A propriedade ‘subPropertyOf’ funciona da mesma maneira que a propriedade ‘subClassOf’ mas vocacionada para as propriedades. Constrangimentos nas propriedades podem ser especificadas utilizado construtores de domínio e de séries, os quais podem ser utilizados para estender tanto o vocabulário como as possibilidades de interpretação das expressões RDF. Este mecanismo é utilizado para traduzir uma representação ontológica de uma linguagem para o RDF. [DM+00]

Semantic Web ISEP - 2002

61

Fig. 4.2.3.-1 Grafo da hierarquia de classes do esquema RDF [RDFS]

O sistema de tipos é especificado nos termos do modelo de dados básico do RDF como recursos e propriedades, segundo uma hierarquia de classes apresentada na Figura 4.2.3.-1 As setas indicam que o objecto da qual elas partem possui o tipo do recurso para o qual está apontando. As classes, propriedades e restrições são descritas sucintamente a seguir: [Moura01]

? rdfs:Resource - representa qualquer objecto descrito por expressões RDF; ? rdf:Property - representa uma propriedade de um recurso; ? rdfs:Class - é um tipo de recurso que representa o conceito de classe de objectos,

como nos sistemas OO; ? rdf:type - determina que um recurso é membro de uma classe, possuindo todas as

suas características. Um recurso no modelo RDF pode ser uma instância de mais de uma classe;

? rdfs:subClassOf - é um tipo de propriedade que declara a relação de sub-classe / superclasse entre duas classes. Uma classe pode ser sub-classe de mais de uma classe no modelo RDF;

? rdfs:subPropertyOf – declara um relacionamento de especialização entre duas propriedades;

? rdfs:seeAlso - é uma propriedade usada para declarar que um recurso pode prover informações adicionais a respeito do recurso;

? rdfs:isDefinedBy – é uma sub-propriedade da propriedade rdfs:seeAlso que define o objectivo do recurso.

? rdfs:ConstraintResource - é uma subclasse de Resource, cujo objectivo é prover um mecanismo que possibilite ao processador RDF determinar as demais classes definidas que estabelecem regras de restrições;

? rdfs:ConstraintProperty - é um recurso subclasse de rdf:property. Todas as instâncias dessa classe são usadas para especificar restrições. É também subclasse de rdfs:ConstraintResource, correspondendo a um subconjunto que representa propriedades;

Semantic Web ISEP - 2002

62

? rdfs:range: é uma instância da classe rdfs:ConstraintProperty que é usada para restringir valores de propriedades. O valor da propriedade range é sempre uma classe;

? rdfs:domain - é uma instância da classe rdfs:ConstraintProperty usada para especificar a classe na qual uma determinada propriedade pode ser aplicada. Esta definição difere da OO, onde o domínio encerra os possíveis valores de uma determinada propriedade.

O RDFS permite modelar uma aplicação a partir de um esquema conceptual (em UML ou ER, por exemplo) representando hierarquias entre classes e seus relacionamentos. Considere o exemplo da Figura 4.2.3-2, onde as classes Mamífero e Ave são subclasses de Animal.

Fig. 4.2.3.-2 Grafo de um Esquema RDF

Semantic Web ISEP - 2002

63

A representação em RDF da figura 4.2.3-2: <rdf:RDF xmlns: rdf=“http:llwww.w3.orp,/1999/02/22-rdf-syntax-ns#” xmlns: rdfs=“http://www.w3.org/2000/01/rdf -schema#”>

<rdf:Description ID=“Animal”>

<rdf:type resource=“http://www.w3.org/2000/01/rdf -schema#Class”/>

<rdfs:subClassOf resource=“http://www.w3.org/TR/WD -rdf-schema#Resource”/>

</rdf:Description> <rdf:Description ID=“Mamífero”>

<rdf:type resource=“http://www.w3.org/2000/01/rdf -schema#Class”/>

<rdf:subClassOf resource=“#Automóvel”/> </rdf:Description> <rdf:Description ID=“Ave”>

<rdf:type resource=“http://www.w3.org/2000/01/rdf-schema#Class”/>

<rdf:subClassOf resource=“#Animal”/> </rdf:Description> <rdfs:Property rdf:ID=“cor”> <rdfs:comment>Cor da penugem </rdfs:comment> <rdfs:domain rdf:resource=“#Ave”> <rdfs:range rdf:resource=“http://www.w3.org/2000/03/exam ple/classes#String”> </rdfs:Property> <rdfs:Property rdf:ID=“habitat”> <rdfs:comment>Local onde é encontrado </rdfs:comment> <rdfs:domain rdf:resource=“#Mamífero”> <rdfs:range rdf:resource=“http://www.w3.org/2000/03/example/classes#String”> </rdfs:Property>

</rdf:RDF> Brachman destingue três camadas num sistema de representação de conhecimento: [Brachman79]

? Nível de Implementação – Consiste na estruturação dos dados para uma implementação em particular;

? Nível lógico – Define, de uma forma abstracta, as inferências que são executadas pelo sistema;

? Nível epistemologico – Define primitivas adequadas de representação para expressar conhecimento de uma maneira convencional – usualmente aquele que é utilizado por um engenheiro do conhecimento.

O Nível epistemologico é normalmente definido por uma gramática que define a linguagem de interesse, mas as primitivas de representação podem ser consideradas uma ontologia – como objectos de um domínio em particular. Através desta perspectiva, técnicas de modelação de domínios são apropriadas para definirem uma linguagem de representação de

Semantic Web ISEP - 2002

64

conhecimento. Deste modo. O nível epistemologico é ele próprio uma ontologia que define os termos da linguagem de representação. Definir uma ontologia em RDF significa definir um Esquema RDF que especifica todos os conceitos e relações de uma linguagem em particular. (Um exemplo de uma linguagem definida como uma ontologia é o Esquema RDF, o qual é definido em termos de si próprio. [BG00])

Semantic Web ISEP - 2002

65

4.2.4. Mecanismos de Consulta em RDF As instâncias oriundas de aplicações RDF podem ser consultadas segundo duas abordagens [Kar01]: a visão dos meta-dados RDF como uma Base de Dados Relacional ou XML e a visão dos meta-dados RDF como uma base de conhecimento. [Moura01] A primeira abordagem é semelhante às consultas efectuadas a Bases de Dados com características relacionais ou XML, onde a ênfase é dada às operações em nível de estrutura do documento. Neste caso, as descrições RDF são tratadas com base nos dados relacionais, ou seja, a aplicação RDF é vista como uma instância XML e não como um modelo de meta-dados visando prover interactividade. As linguagens de consulta incluídas nesse contexto fornecem construtores necessários à realização de consultas a documentos e colecções de um esquema específico, onde são conhecidas as propriedades e os relacionamentos entre recursos. Recentemente a IBM propôs a linguagem de consulta RDF Query [MS98], uma linguagem declarativa que utiliza a sintaxe XML e pode ser aplicada a instâncias RDF de maneira uniforme, independentemente de ser um dado ou um meta-dado. A segunda abordagem visa representar conhecimento juntamente com o meta-dado RDF, unindo mecanismos que exploram a semântica provida pelo Esquema RDF. O objectivo é preencher as lacunas que as linguagens de consulta (SQL, XML-QL, XQL, etc.) não fazem. Nesse contexto, uma linguagem de consulta RDF deve suportar conceitos de modelagem OO, mecanismos de inferência e prover acesso às definições de esquemas para os vocabulários utilizados em qualquer bloco de dados de RDF, levando-se em consideração o facto de se ter meta-dados distribuídos e de forma heterogénea [DBSA01] [GLMB98] [Saarela98].

Semantic Web ISEP - 2002

66

4.3. Áreas de aplicação da arquitectura RDF A arquitectura RDF permite a descrição de recursos Web com vista a facilitar o processamento automático de informação, sem assumir nenhuma aplicação em particular ou domínio semântico. A arquitectura RDF pode ser utilizada numa variedade de áreas de aplicação, por exemplo: [Azevedo01]

? Na descoberta de recursos, desenvolvendo as capacidades dos motores de pesquisa; na catalogação, ao permitir descrever o conteúdo e as relações de conteúdos disponíveis em páginas Web ou bibliotecas digitais;

? Por agentes de software inteligentes, ao permitir a troca e partilha de conhecimento; ? Na ordenação dos conteúdos; ? Na descrição das capacidades dos dispositivos. As capacidades de processamento e

visualização de dispositivos Web móveis podem ser descritas em RDF, bem como as preferências dos seus utilizadores. Assim, poder-se-á adaptar o conteúdo da Web às necessidades específicas de cada utilizador;

? Na descrição de práticas de privacidade. O consórcio W3C possui um grupo de trabalho que pretende desenvolver uma plataforma que permitirá aos utilizadores serem informados sobre as práticas de privacidade de um determinado site na Web. Os utilizadores (ou mais propriamente os agentes de software) poderão negociar políticas de privacidade diferentes. A arquitectura RDF pode ser utilizada para descrever a estrutura formal das práticas de privacidade;

? Na descrição de colecções de páginas que representam um único documento lógico;

? Na descrição dos direitos de propriedade intelectual de páginas Web; ? Em assinaturas digitais, que são o caminho para a “Web de Confiança” (Trust Web),

úteis para o comércio electrónico e na certificação de páginas e sites Web. A arquitectura RDF pode ser utilizada para exprimir a informação sobre o que está a ser assinado, o significado da assinatura, as datas de validade da assinatura, etc.

Semantic Web ISEP - 2002

67

4.4. – Resumo Há duas maneiras de considerar a modelação semântica na ciência dos computadores: semântica declarativa e procedimental. Na semântica declarativa, é dado significado a uma expressão E através da sua conversão para um formalismo bem conhecido, ou tornando estáticas as conclusões ou propriedades que emanam de E. A expressão pode ser compreendida sem necessidade de uma referencia para qualquer procedimento computacional, e é por isso que esta aproximação é chamada “declarativa”. Na semântica procedimental, é dado significado à expressão E referindo o comportamento que um procedimento real ou virtual (ou programa, ou máquina) exibe em E. Por vezes a única maneira de obter expressões de significados através da semântica procedimental é através da simples execução do procedimento e observar o seu resultado. A diferença entre a semântica declarativa e a semântica procedimental coincide com a diferença entre a aproximação XML e RDF com a semântica das páginas Web. Uma expressão XML não possui uma semântica inerente, e o seu significado é apenas determinado pela acção tomada de um ou mais programas. Uma expressão RDF, por outro lado, tem uma semântica declarativa específica, a qual é especificamente independente de qualquer processador RDF; isto é, todos os processadores RDF devem-se conformar com as semânticas adoptadas. [Moura01] A arquitectura RDF é a base de suporte à Semantic Web, da mesma maneira que a linguagem HTML foi a base de suporte da Web original. A arquitectura RDF funciona como uma armação (framework) que suporta a descrição de recursos, ou meta-dados, para a Web. Providencia estruturas comuns que podem ser utilizadas para interagir com a troca de dados em formato XML. [SWAS] Na arquitectura RDF, o significado é expressado e codificado em conjuntos triplos (recurso-propriedade-declaração), cada triplo é mais precisamente como o assunto, o verbo e o objecto de uma sentença elementar. Estes triplos podem ser escritos utilizando a notificação XML. Na notação RDF, um documento faz afirmações de que as coisas particulares (por exemplo: povos, páginas da Internet, etc.) têm propriedades (como " é uma irmã de, " " é o autor de ") com determinados valores (uma outra pessoa, uma outra página de Internet). Esta estrutura tenta descrever de maneira natural a maioria dos dados processados por máquinas. Ao assunto e ao objecto são associados um identificador universal do recurso (URI – Universal Resource Identifier) da mesma forma que é usado nas ligações das páginas da Internet. (URLs, Uniform Resource Locators, são o tipo mais comum de URI). Os verbos também são identificados por URIs, o que permite a qualquer entidade definir um conceito novo, um verbo novo, precisando para isso apenas de definir um novo URI. [Moura01] A unicidade da relação conceito-URI, garante a unicidade dos triplos de significado. Desta forma, cada conceito tem uma identificação única e os triplos constituirão uma rede de informação relacionada na qual se podem utilizar regras de inferência para fazer deduções a partir do significado dos dados definidos pelo triplo.

Semantic Web ISEP - 2002

68

Apesar de não ser fácil de se ver, a estrutura RDF encadeada (nested) de recurso-propriedade-declaração satisfaz a necessidade de um formato de troca universal. Em complemento com aplicações independentes de análise gramatical (‘parsers’) já existentes, o RDF vem preencher as nossas necessidades de interactividade sintáctica. Na interactividade semântica o RDF tem vantagens significativas em relação ao XML: A estrutura recurso-propriedade providencia uma semântica natural porque todos os objectos são entidades independentes. Um modelo de domínio – define os objectos e as suas relações – pode ser naturalmente representado em RDF, não havendo a necessidade de utilizar passos intermédios de tradução como acontece no XML. Técnicas de pesquisa de representações de conhecimento, entre duas descrições RDF, são directamente aplicadas. É claro, que isto não resolve o problema geral de interactividade de encontrar características semânticas entre os objectos, mas o uso de RDF para a troca de dados aumenta o nível de uso de potenciais componentes de software, os quais vão muito mais além do que o uso das análises gramaticais (‘parser’) que são oferecidas pelo XML. Além disso, o modelo RDF (e o software que utiliza o modelo RDF) pode ser utilizado mesmo se a actual sintaxe XML for alterada ou desaparecer, porque o RDF descreve uma camada independente do XML. [DM+00] Utopicamente, todos nós gostávamos de possuir uma linguagem universal de representação partilhada de conhecimento para suportar a Semantic Web. Mas, por uma quantidade de razões pragmáticas e tecnológicas, é praticamente inexequível. Pelo contrário, temos que viver com uma multiplicidade de representações de meta-dados. A arquitectura RDF possui tecnologia de representação de conhecimento suficiente para ser partilhada entre uma larga variedade de linguagens de meta-dados. Além disso, a linguagem do Esquema RDF é suficientemente potente para poder definir linguagens mais ricas por cima das primitivas de RDF. [DM+00]

Semantic Web ISEP - 2002

69

5. Ontologias

A utilização dos triplos de URI, como vimos no capítulo anterior, garante a definição única dos conceitos. No entanto, o mesmo conceito pode ser expresso de formas diferentes e em línguas diferentes. Por exemplo, duas Bases de Dados podem armazenar os mesmos conceitos utilizando terminologia diferente. Para que a informação possa ser processada e relacionada, é necessário que exista uma definição da relação entre os conceitos contidos em diferentes documentos. A solução proposta pela Semantic Web são as Ontologias. O termo ontologia teve origem na Filosofia, onde é definido como “uma especificação explícita de um conceito” [Grubber99] [Guarino98], isto é, tem como pressuposto a existência de algo. O seu uso gerou algumas controvérsias na comunidade de Inteligência Artificial (IA), porque em sistemas de IA o que “existe” é aquilo que pode ser representado através de um formalismo. Quando um domínio de conhecimento é representado através de um formalismo declarativo, o conjunto de objectos que pode ser representado é denominado de universo de discurso. [Moura01] Assim, uma ontologia é a descrição explícita e precisa de conceitos e relações que existem em um domínio particular tal como uma dada organização, um domínio de estudo, uma área de aplicação, etc. Por exemplo, a ontologia definida para um programa de computador deve incluir a especificação dos conceitos: programa, identificador, declaração, expressão, controladores, etc. O operador maior-que (>), por exemplo, deve estar especificado por um tipo de relação com a classe de operadores relacionais, os identificadores devem ser definidos como string, etc. [Moura01] Uma ontologia requer o uso de um vocabulário específico, para descrever uma realidade, e um conjunto de axiomas lógicos e necessários para dar semântica ao significado pretendido pelas palavras daquele vocabulário. Dessa forma, duas ontologias podem referir-se a uma mesma especificação de conceito (i.e., um só domínio de conhecimento), muito embora apresentem vocabulários distintos de representação, tal como o uso de dois idiomas distintos, para descrever uma mesma ontologia, por exemplo.

Semantic Web ISEP - 2002

70

5.1. Para que serve uma ontologia? Uma Ontologia em termos de Informática representa um documento ou um ficheiro que formalmente define as relações entre os termos. O tipo mais básico de uma ontologia para a Internet possui uma taxinomia e um conjunto de regras de inferência. [BHL01] A taxinomia define classes de objectos e as relações entre eles. As classes, as subclasses e as relações entre as entidades são uma ferramenta muito poderosa para se utilizar na Internet. É possível expressar um grande número de relações entre entidades atribuindo propriedades às classes e permitindo que as subclasses herdem tais propriedades. A utilização de regras de inferência nas ontologias é de grande utilidade. Apesar de os computadores não “compreenderem” a informação representada pela ontologia, podem facilmente e eficientemente manipular os termos de maneira a que estes sejam úteis e significativos para um utilizador humano. Com a utilização de ontologias nas páginas Web, as soluções para uma terminologia, e outros problemas relacionados, começaram a surgir. As ontologias podem realçar o funcionamento da Internet de muitas maneiras: melhorar a exactidão dos programas de pesquisa (procurando páginas relacionadas com um conceito preciso e não por palavras ambíguas); relacionar a informação da página com as estruturas de conhecimento associadas e as regras de inferência (como é utilizado neste site: http://www.cs.umd.edu/~hendler - Aqui um ser humano pode facilmente encontrar a ligação para a biografia e ler que Hendler recebeu seu Doutoramento na Universidade de Brown. No entanto, um programa de computador que tente encontrar tal informação teria que ser muito complexo para supor que esta informação podia estar na biografia e compreender a língua inglesa ai utilizada. Para os computadores, a página de Internet anterior “está” ligada a uma página de ontologia que define a informação sobre o Departamento de Ciência dos Computadores. Por exemplo, os professores trabalham em universidades e têm geralmente doutoramentos. Uma ligação adicional na página (não mostrada por um “browser” normal) usa conceitos ontológicos para especificar que Hendler recebeu o seu doutoramento da entidade descrita no URI http://www.brown.edu - a página da Internet da Universidade de Brown. Os computadores podem também descobrir que Hendler é membro de um projecto de pesquisa particular, têm um endereço particular de correio electrónico, etc. Toda esta informação será processada prontamente por um computador e poderia ser usada para responder a perguntas (tais como, onde é o Dr. Hendler recebeu o grau de Doutor?) que de outra forma necessitaria que um humano explorasse através do índice de várias páginas obtidas com a ajuda de um Motor de Pesquisa. [BHL01] Outra particularidade, é o de facilitar o desenvolvimento de programas que podem tratar perguntas complicadas cujas respostas não residem numa única página da Internet. [BHL01]

Semantic Web ISEP - 2002

71

5.2. Propriedades de uma ontologia Existem vários níveis e tipos de ontologias. A vantagem de uma ontologia é de se lidar com conceitos, representando-os formalmente, e de se livrar de problemas inerentes ao vocabulário da linguagem natural tais como homonímia, sinonímia, metonímia, etc. [Bézivin98]. As principais propriedades de uma ontologia são: compartilhamento e filtragem. Compartilhamento significa que deve existir entre diferentes agentes uma concordância baseada num acordo de ontologias comuns, isto é, devem ter a mesma percepção sobre um dado conceito. Por exemplo, quando duas pessoas falam sobre “Mercado”, é preciso assegurar que ambas estejam tratando do mesmo conceito. A Filtragem está ligada à abstracção, modelos de abstracção. Esses modelos, por definição, levam em consideração somente parte da realidade, e a vantagem de utilização está na habilidade de deixar de lado muitas características indesejáveis. Uma ontologia define o que deveria ser extraído de um sistema de forma a construir um determinado modelo desse sistema. Uma ontologia contém os conceitos e relações relevantes a uma dada tarefa de modelagem, podendo conter informações de diferentes naturezas. Geralmente existem três tipos de informação numa ontologia [Bézivin98]:

a) Terminológica: constitui-se do conjunto básico de conceitos e relações da ontologia, denominada de camada de definição da ontologia;

b) Assertiva: denominada de camada de axiomas da ontologia, constitui-se do

conjunto de assertivas que se aplicam aos conceitos e relações. Por exemplo:

o solteiro(x) ? homem(x) ? ~ casado(x) o carnívoro(x) ? animal(x) ? come (y) ? y = 'carne' o herbívoro(x) ? animal(x) ? come (y) ? y = 'vegetais' o animal(x) ? carnívoro(x) ? herbívoro(x)

c) Pragmática: corresponde à camada de ferramentas e contém um conjunto de

informações pragmáticas que não se enquadram em a) ou b). Contém a forma de expressar esse conceito na prática. Um conjunto de dados pragmáticos pode ser definido a partir de uma ontologia.

Para exemplificar cada uma dessas categorias de informação, considere a linguagem de modelagem UML (A UML é vista como um meta-modelo, isto é, serve de base para construir modelos). O conjunto de conceitos embutidos na sua definição (classes, associações, hierarquias, etc.), faz parte da ontologia terminológica. No entanto, se utilizarmos a UML para definir a espécie animal, por exemplo, estaremos nos referindo à camada b). Já uma ferramenta gráfica construída para tratar os objectos da camada anterior é classificada na categoria c). Assim, o uso da ontologia facilita o entendimento dos diferentes níveis de abstracção. Quando se utiliza um dado sistema, é possível observar e trabalhar com diferentes modelos do mesmo sistema, cada um caracterizado por uma dada ontologia. Estes modelos, naturalmente, permanecem relacionados entre si. No contexto da Web, a utilização de ontologias é crucial: permite que agentes de software compreendam a semântica embutida nas definições e vocabulário especificados com

Semantic Web ISEP - 2002

72

respeito a um domínio, sem ambiguidades, viabilizando o intercâmbio de informações através de consultas. Bases de conhecimento podem também ser criadas especializando e instanciando aquela ontologia, através de uma aplicação específica [Dev99]. Recentemente, foram criadas algumas linguagens para definição de ontologias na Web, de entre as quais se destacam a OIL (Ontology Inference Layer), SHOE e DAML.

Semantic Web ISEP - 2002

73

5.3. Domínio de concepção Geralmente definidas como uma concepção formal de partilha de um domínio em particular, as ontologias providenciam uma compreensão comum de tópicos que podem ser comunicados entre pessoas e sistemas de aplicações. As ontologias são utilizadas no “e-commerce” para permitir comunicações entre compradores e vendedores; integração vertical de mercados (VerticalNet [http://www.verticalnet.com]); reutilização de descrições entre diferentes mercados. Motores de pesquisa também utilizam ontologias para procurarem páginas com palavras que são sintacticamente diferentes mas semanticamente similares. [DM+00] Uma ontologia tipicamente contém uma hierarquia de conceitos de um domínio e descreve as propriedades cruciais de cada conceito através de um mecanismo de atributo-valor. Relações posteriores entre os conceitos deveram ser descritos através de sentenças lógicas adicionais. Finalmente, constantes (como “Janeiro”) são atribuídas a um ou mais conceitos (como “Mês”) de maneira a associar entre si o seu tipo de propriedade. [DM+00] A ontologia OIL, por exemplo, consiste em definições de relacionamento (slot-def) e definições de classe (class-def). A figura 3.4.2.-1 (do capitulo 3 – A linguagem XML) é um exemplo de uma ontologia, apesar de omitir as definições de relacionamento de modo a simplificar o exemplo. Uma definição de relacionamento descreve uma relação binária entre duas entidades. Uma definição de classe associa o nome de uma classe com a descrição da classe e consiste nos seguintes componentes (qualquer um deles pode ser omitido): [DM+00]

? Tipo de definição (Definido/Primitiva) – Se for do tipo Definido, a classe é completamente especificada na definição da classe. Se for do tipo Primitiva, as condições na definição da classe são necessárias, mas insuficientes para determinar a classe.

? Constrangimento de relacionamento – Restringe os valores possíveis que um relacionamento pode ter quando aplicada a uma instância de uma classe.

? Sub-classe de (subclass-of) – Relaciona a definição da classe a uma lista de uma ou mais classes de expressões (nomes de classes, constrangimentos de relacionamento, ou uma combinação “boleana”, arbitrária e complexa de todos eles). A partir deste momento, a classe fica definida como uma sub-classe.

Os componentes principais de um constrangimento de relacionamento são: [DM+00]

? nome – uma string que delimita o relacionamento a ser constrangido; ? valor-tipo – Uma lista de uma ou mais classes de expressões para as quais o valor

da classe deve ser uma instancia de cada uma delas. ? ter-valor (has-value) – Uma lista de uma ou mais classes de expressão onde cada

instancia da classe definida pelo constangimento de relacionamento deve ser referida através do relacionamento para a instancia de cada uma das classes expressão da lista.

O domínio de uma ontologia define um vocabulário – propriedades e classes – que podem ser utilizadas para escrever informação em RDF. É usual desenvolver mecanismos para expandir o modelo de dados RDF através de primitivas de modelação, e a partir de

Semantic Web ISEP - 2002

74

qualquer linguagem de ontologia. A aproximação para o uso de primitivas de uma linguagem de ontologia L para descrever um domínio particular possui três passos: [DM+00]

? Passo 1 – Descrever as primitivas de modelação da linguagem L utilizando um Esquema RDF (efectivamente escrever a meta-ontologia de L através do Esquema RDF).

? Passo 2 – Descrever uma ontologia específica em L utilizando o resultado do documento de Esquema RDF.

? Passo 3 – Utilizar os documentos de Esquema RDF para descrever instancias da especifica ontologia L modelada no passo 2.

A Tabela 1 lista os tipos de expressões para cada passo. Esta aproximação de três passos sugere um requerimento adicional para uma linguagem de ontologia L: Porque o Esquema RDF já é uma linguagem de definição ontológica, L tem que ser forçosamente compatível com ela. Deste modo, processadores de Esquema RDF existentes podem fazer uma utilização perto de 100% da ontologia definida em L. As mesmas ferramentas são possíveis de aplicar para todas as possíveis ontologias Ls, o que conduz a uma grande flexibilidade no desenho e uniformização das linguagens.

Tabela 1 - Os passos na expansão do RDF na aproximação de uma linguagem ontológica.

Semantic Web ISEP - 2002

75

5.4. Definir uma linguagem ontológica (ex: OIL)

Fig. 5.3.-1 Grafo RDF para um conjunto de propriedades e classes OIL

A figura 5.3.-1 demonstra como o mecanismo de Esquema RDF pode ser utilizado para definir elementos de OIL. As elipses sombreadas são elementos que devem ser adicionados à definição de esquema existente para obter um esquema para a OIL. Podemos ilustrar este principio através do exemplo de ontologia da figura 3.4.2.-1 (do capitulo 3 – A linguagem XML). A definição de herbívoro (herbivore) utiliza a primitiva de modelação subclass-of, a qual é uma relação que identifica os dois argumentos como objectos: a classe herbívoro e uma classe de expressão sofisticada (animal AND NOT carnívoro). A classe de expressão pode ser vista como um objecto, porque a expressão ‘animal AND NOT carnívoro’ define uma nova classe. Definindo as primitivas de uma linguagem como uma ontologia resulta num gráfico RDF (figura 5.3.-1), o qual define várias propriedades e classes. A classe ‘oil:ClassExpression’ é uma classe de depósito que agrupa vários tipos de classes de expressão para objectivos definidos. ‘oil:AND’ e ‘oil:NOT’ são dois tipos particulares de classes de expressões. A propriedade ‘oil:hasOperand’ é uma propriedade auxiliar utilizada para conectar uma classe expressão do tipo operador com outra classe expressão. A actual descrição da primitiva ‘rdfs:sub-ClassOf’ está expandida: O seu alcance inclui, além de ‘rdfs:Class’, também ‘oil:ClassExpression’. Também, a actual descrição de ‘rdfs:Class’ está expandida: ela é também uma sub-classe de ‘oil:ClassExpression’ (porque é considerada um tipo particular de classe de expressão).

Semantic Web ISEP - 2002

76

A partir do gráfico da figura 5.3.-1, a expressão: ‘class-def defined herbivore subclass-of animal, NOT carnivore’

pode se descrita em RDF da forma como é apresentado na figura seguinte:

Fig. 5.3.-2 Gráfico RDF que descreve um definição RDFS-OIL

Porque cada ontologia (Esquema RDF) utiliza o seu próprio namespace (neste caso foi escolhido o prefixo oil), termos de diferentes ontologias podem ser misturados no mesmo documento RDF sem existirem confusões [BPM98]. A arquitectura RDF define um estrutura de objectos de uma maneira clara, tornando possível fazer afirmações numa linguagem acerca de um objecto definido em termos de outra linguagem. Por exemplo, podemos misturar a ontologia de declarações de comportamentos de diferentes classes de animais utilizando uma linguagem de automatização de estados finitos [MMP00]. Já não é possível o mesmo efeito em XML porque o significado de uma ligação marcação (objecto, atributo, valor, etc.) não está definido, e não se pode assumir nada acerca da estrutura do objecto. [DM+00]

Semantic Web ISEP - 2002

77

5.5. Linguagens para a Criação de Ontologias na Web As ontologias providenciam o mecanismo formal capaz de viabilizar o processamento semântico da informação através de uma máquina. O uso de ontologias permite que o entendimento compartilhado de termos possa ser utilizado por homens e programas para ajudar no intercâmbio de informações. [Moura01] Diversas linguagens e mecanismos para a definição de ontologias foram criados nos últimos anos, a exemplo de: SHOE [LH00], XOL [KCT99]; OIL [OIL, HFBD00], DAML (DARPA Agent Markup Language) [DAML], SOntoDL [GE01], dentre outros. [Moura01] A principal característica dessas linguagens está na capacidade de representar ontologias em RDF/RDFS, arquitectura já consagrada pela W3C para interoperabilidade de informações na Web. A seguir serão apresentadas algumas dessas linguagens que têm merecido maior destaque na literatura. 5.5.1. SHOE (Simple HTML Ontology Extensions) SHOE é uma extensão para HTML (recentemente também utilizado em XML) que providencia meios de incorporar conhecimento semântico de forma a ser entendido por máquinas (robôs, agentes, etc.) ou outros documentos WWW. O objectivo é o definir informação significativa nas páginas Web de maneira a melhorar os mecanismos de busca. A linguagem SHOE inclui um mecanismo de definição de ontologias, instâncias de dados em páginas Web e de classificação hierárquica de documentos HTML. Isto é feito a partir de categorias (classes) e regras que especificam relacionamentos e hierarquias entre instâncias, a partir de um conjunto de marcações acrescidas ao HTML padrão. Existem duas categorias de marcações SHOE: marcações para a definição de ontologias tais como /ONTOLOGY, USE-ONTOLOGY, DEF-CATEGORY, DEF-RELATION, /INSTANCE, etc. e marcações para a classificação de documentos Web. 5.5.2 XOL (XML-based Ontology Exchange Language) XOL é uma linguagem de especificação e intercâmbio de ontologias, especificado em DTD/XML. Utiliza um modelo semântico baseado em “molduras” (frames) denominado OKBC (Open Knowledge Base Connectivity). Um arquivo XOL consiste num módulo cabeçalho de definição, que providencia meta-informação sobre a ontologia, tal como nome e versão; classes e subclasses que permitem estabelecer hierarquias entre categorias de elementos; e relacionamentos (slots) que estabelecem propriedades aos elementos das classes; e definições individuais que permitem declarar nomes, descrições, informações sobre instância, valores, etc. às propriedades dos relacionamentos.

Semantic Web ISEP - 2002

78

5.5.3. OIL (Ontology Inference Layer) OIL é uma linguagem para a especificação de ontologias que reúne as seguintes características: providencia primitivas de modelagem normalmente utilizadas em ontologias baseadas em molduras; possui uma semântica bem definida, simples e clara baseada em descrição lógica; e apresenta suporte para dedução automática [BBD00]. Uma ontologia OIL contém descrições para classes, relacionamentos e instâncias. Classes podem se relacionar com outras classes através de uma hierarquia (classes/subclasses) e através de relações binárias estabelecidas entre duas relações. Além disso, restrições de cardinalidade podem ser atribuídas aos relacionamentos. A definição de uma ontologia em OIL é constituída de dois componentes: o primeiro, que descreve as características da ontologia (ontology container) utilizando descritores do padrão Dublin Core; e o segundo (ontology definitions) que define o vocabulário particular daquela ontologia. A linguagem OIL tem sido considerada pela W3C como uma linguagem de grande relevância no contexto actual de desenvolvimento de aplicações na Web. Diante desse facto, é apresentado a seguir um exemplo (parcial) de uma ontologia definida nessa linguagem, onde parte dos termos da sintaxe é auto descritiva. ontology-container

title “Meios de Transporte” creator “Rui Pereira” subject “automóvel, autocarro, transportes em geral” description “exemplo de especificação de ontologia descrevendo meios de transporte da cidade do Porto” .... language “OIL” language “Português”

ontology-definitions class-def transporte /* define hierarquia entre classes */ class-def carro

subclass–of transporte class-def avião

subclass–of transporte class-def autocarro

subclass–of transporte class-def terrestre

subclass–of transporte slot-constraint tem_pneus /* define relacionamento entre

classes */ value-type automóvel, autocarro /* enumeração de valores */ slot-constraint total has-value (min 4) /* estabelece cardinalidade mínima = 4 */

class-def aéreo subclass–of transporte slot-constraint tem_asas value-type avião disjoint aéreo, terrestre

class-def automóvel utilitário subclass-of automóvel slot-constraint tem-marca has-filler Renault, Fiat, Peugeot /* enumeração de valores */ .............

Semantic Web ISEP - 2002

79

Uma característica importante desta linguagem é que a mesma pode ser utilizada com a linguagem XML, muito embora Esquemas XML não capturem totalmente a semântica embutida no OIL. Porém, a sua integração com RDF/RDFS é bastante promissora. Do mesmo modo que um Esquema RDF é utilizado para se auto-definir, o mesmo também pode ser utilizado para definir outras linguagens de ontologia. Dessa forma o RDF/RDFS foi utilizado para definir o OIL básico, onde elementos do seu vocabulário foram mapeamentos para termos do RDF/RDFS, tais como: classe OntologyConstraint é mapeada como subclasse de rdfs:ConstraintResource; classes do tipo class-def são definidas como rdfs:Class; subclasses OIL sub-classof tornam-se rdfs:subClassOf; OILslots tornam-se sub-propriedades de rdf:Property, e assim por diante. Além disso, a sintaxe RDF inclui namespaces específicos dc e oil para definir os termos específicos do padrão Dublin Core e outros do vocabulário OIL respectivamente, que não existem em RDF [HFBD00]. 5.5.4 DAML (DARP Agent Markup Language) A linguagem DAML é uma iniciativa da agência DARPA que está a ser desenvolvida como uma extensão da XML e RDF. A sua mais recente iniciativa é oriunda da combinação de DAML e OIL [DO], uma linguagem que está sendo proposta como padrão para representação de ontologias e meta-dados pela W3C. A combinação de DAML e OIL, denominada DAML+OIL, sofre muita influência do OIL original, embora não se utilize do seu conceito original de molduras. É constituída de uma colecção de classes, propriedades (agrupadas numa colecção de axiomas e precedidos pela marcação ‘daml’) e objectos que são adicionados ao RDF e RDFS. Assim, declarações (statements) em DAML+OIL também são declarações RDF. Para exemplificar, considere-se a seguinte definição em OIL:

class-def Homem class-def Cirurgião

subclass-of Homem slot-constraint realiza_cirurgia

has-value Paciente class-def Mulher disjoint Cirurgião,Mulher

Semantic Web ISEP - 2002

80

A descrição em DAML+OIL, equivalente à definição em OIL anterior, é a seguinte: <rdf:RDF

xmlns:rdf ="http://www.w3.org/1999/02/22 -rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf -schema#" xmlns:daml="http://www.daml.org/2000/12/daml+oil#" xmlns ="http://www.daml.org/2000/12/daml+oil -ex#" > <daml:Ontology rdf:about="">

<daml:versionInfo>$Id: daml+oil-ex.daml,v 1.4 2001/01/11 $</daml:versionInfo>

<rdfs:comment>Exemplo de ontologia usando daml+oil </rdfs:comment>

<daml:imports rdf:resource="http://www.daml.org/2000/12/daml+oil"/>

</daml:Ontology> <rdfs:Class rdf:ID= “Mulher”>

<rdfs:label> Mulher </rdfs:label> <rdfs:comment>

Esta é uma classe da ontologia </rdfs:comment>

</rdfs:Class> <rdfs:Class rdf:ID= “Homem”> </rdfs:Class> <rdfs:Class rdf:ID= “Paciente”> </rdfs:Class> </rdfs:Class><rdfs:Class rdf:ID= “Cirurgião”>

<rdfs:subClassOf rdf:resource= “#Homem”> <daml:disjointWith rdf:resource="#Mulher"/>

</rdfs:Class> <rdf:Property rdf:ID="realiza_cirurgia">

<rdfs:domain rdf:resource="#Cirurgião"/> <rdfs:range rdf:resource="# Paciente"/>

</rdf:Property>

</rdf:RDF> De facto, a Semantic Web só poderá ser atingida através do inter-relacionamento automático de pequenas ontologias, desenvolvidas de forma totalmente independentes e específicas nos seus sub-domínios. Este facto talvez justifique o desenvolvimento e proliferação de tantas linguagens de definição de ontologias e representação de conhecimento em torno da Semantic Web. Porém, à medida que tais linguagens são utilizadas, tornam-se necessários mecanismos de edição e modelagem de ontologias que, a exemplo de ferramentas Case (as quais possibilitam o uso de ferramentas distintas de modelagem), permitam a utilização de várias linguagens semânticas na Web. O sistema Protégé-2000 [NSD01] é uma ferramenta gráfica para a edição de ontologias e aquisição de conhecimento. Inclui um mecanismo de ajustamento que permite a modelagem conceptual em várias linguagens semânticas da Web a exemplo de RDF, OIL e DAML+OIL. Outras ferramentas, a exemplo de OntoEdit [ONT] [SM00] e OntoBroker [OBR] também caminham nessa direcção. A OntoBroker, por

Semantic Web ISEP - 2002

81

exemplo, é um sistema OO que providencia compiladores em diversas linguagens para descrever ontologias, regras e factos.

Semantic Web ISEP - 2002

82

5.5. Resumo A disponibilização das ontologias como páginas Web tornará mais simples a resolução de problemas de indefinição ou conflito de terminologia. O programador de uma página XML pode ligá-la a uma ontologia que defina o significado de cada uma das marcações utilizadas. A partir desse momento, a página pode ser relacionada com outras utilizando regras de inferência definidas. Uma ontologia especifica um vocabulário de representação para um domínio. Mas a ontologia não é apenas o vocabulário, pois deve efectuar um tratamento ao mais alto nível dos conceitos desse mesmo vocabulário. Uma ontologia pode ser representada por uma Base de Conhecimento estruturada hierarquicamente em classes. Contudo, não é obrigatório que a estruturação seja feita dessa maneira. Há vários critérios que devem ser considerados na concepção de uma nova ontologia, tais como: [Ramos01]

? Clareza – Uma ontologia deve descrever de um modo efectivo o significado pretendido para os termos definidos. As definições devem ser objectivas. Sempre que possível as definições devem ser completas (através de condições necessárias e suficientes) e não parciais;

? Coerência – Se uma frase que pode ser inferida dos axiomas da antologia vier a contradizer uma definição da ontologia, então esta é incoerente. O que não é desejável;

? Estensibilidade – Devemos poder definir novos termos para usos especiais com base no vocabulário existente sem que tal implique a necessidade de alterar as definições;

? Codificação mínima – A normalização deve ser feita ao nível do conhecimento, sem envolver codificações particulares ao nível dos símbolos. Note-se que os agentes podem estar implementados com estilos ou sistemas de representação diferentes.

? Necessidade mínima de compromissos lógicos – Dado que os compromissos ontológicos se baseiam no uso consistente do vocabulário, estes compromissos podem ser minimizados usando a teoria fraca (que cabe em todas as teorias) e definindo apenas os temas que são essenciais para a comunicação de conhecimento consistente segundo tal teoria.

Semantic Web ISEP - 2002

83

6. Agentes de Software

A Semantic Web só atingirá todo o seu potencial (representar valor para os utilizadores), quando forem criados programas que colectem os conteúdos da Internet, independentemente das fontes, e consigam processar e trocar informação entre si. [BHL01] 6.1. O que é um agente? Vejamos três definições retiradas do dicionário: Agente:

? Algo que produz ou é capaz de produzir um efeito; ? Algo ou alguém que age por, ou em lugar de, outrém por autorização deste último; ? Um meio ou instrumento através do qual uma entidade inteligente obtém um

resultado. Em termos informáticos o termo “Agente” começa a popularizar-se com a Inteligência Artificial Distribuída, introduzida no início dos anos 80. A Inteligência Artificial Distribuída resulta da junção de duas áreas: a Inteligência Artificial e a Computação Distribuída. O termo “Agente” atinge o seu auge na actualidade com o “boom” da Internet e da WWW. [Ramos01] Principais características ou propriedades que se podem atribuir aos agentes:

? Autonomia – Decide e controla as suas próprias acções; ? Capacidade Sensorial – Dispõe de sensores para captar informação sobre o meio

envolvente; ? Persistência – Existe ao longo do tempo; ? Inteligência – Capacidade de raciocínio autónomo, planeia o que faz, corrige os

erros e reage a situações não esperadas, adapta-se e aprende; ? Capacidade Social – Comunica e coopera com outros agentes e talvez com pessoas;

concorre; compete; ? Reactividade – Sente e age, responde ao longo do tempo às mudanças do ambiente; ? Pró-actividade – Orienta-se por objectivos, não age apenas para responder ao

ambiente; ? Aprendizagem – Muda o seu comportamento com base na experiência anterior; ? Mobilidade – Capacidade de movimentar-se de uma máquina para outra; ? Flexibilidade – Não necessita que as suas tarefas sejam pré-determinadas; ? Agilidade – Capacidade de aproveitar rapidamente novas oportunidades não

previstas; ? Carácter – Personalidade credível e comportamento emocional.

Semantic Web ISEP - 2002

84

Nem todos os agentes possuem todas estas características. Dependendo do meio em que actuam, dos seus objectivos e das características que possuem, eles são agrupados em: [Ramos01]

? Agentes Reactivos; ? Agentes Autónomos; ? Agentes Pró-Activos; ? Agentes Persistentes; ? Agentes com Capacidade Social; ? Agentes com Aprendizagem; ? Agentes Móveis; ? Agentes Flexíveis e Ágeis; ? Agentes com Carácter; ? Agentes Inteligentes; ? Agentes Semantic Web.

Uma característica importante nos agentes é a negociação. Tal como na negociação entre seres humanos, os agentes deverão ser capazes de comunicar entre si e exibirem algumas capacidades sociais para que se estabeleça uma negociação. Os tipos de negociação mais usuais são:

? um para um; ? um para “N”; ? “N” para um; ? “N” para “N”.

Semantic Web ISEP - 2002

85

6.2. Agentes Sematic Web Uma importante característica do funcionamento dos agentes de Semantic Web será a troca de “provas” escritas na linguagem unificadora Semantic Web (a linguagem que expressa as inferências lógicas criadas utilizando regras e conhecimento tal como as que estão especificadas por ontologias). A utilização de assinaturas digitais é outra característica vital. Os agentes de Semantic Web devem ser cépticos em relação às informações que retiram da Semantic Web enquanto não verificarem as fontes da informação. [BHL01] Actualmente existem alguns serviços automáticos na Internet, mas como não utilizam uma semântica não permitem que outros programas, como os agentes de Semantic Web, tenham uma maneira de os relacionar com uma função específica. Este processo chama-se Serviço de Descoberta e apenas pode ser realizado quando existe uma linguagem comum para descrever um serviço de maneira que seja possível que outros agentes “compreendam” as funções oferecidas e possam tirar partido delas. Os serviços e os agentes podem anunciar uma função depositando, por exemplo, as suas descrições num formato idêntico ao das “Páginas Amarelas”. [BHL01] Ao contrário de esquemas de baixo-nível de Serviços de Descoberta actualmente disponíveis como o Microsoft’s Universal Plug and Play e o Sun Microsystems’s Jini que atacam o problema a um nível estrutural ou sintáctico confiando pesadamente na normalização de um predeterminado conjunto de descrições de funcionalidades – o que é muito limitado principalmente tendo em conta as futuras necessidades – a Semantic Web é muito mais flexível. Os agentes de Semantic Web do consumidor e do produtor podem alcançar uma compreensão compartilhada trocando as ontologias, que fornecem o vocabulário necessário para a discussão. Os agentes podem “nivelar” novas potencialidades de raciocínio quando descobrem novas ontologias. A semântica permite tirar, também, vantagens de um serviço que combine parcialmente um pedido. [BHL01] Um processo típico envolverá a criação de uma “corrente de valor” onde os subconjuntos de informação são passados de agente para agente, e cada um “adiciona valor” para a construção do produto pedido pelo utilizador. Mas sem cometerem erros: na criação automática de complicadas “correntes de valor”, alguns agentes exploraram tecnologias de Inteligência Artificial além da Sematic Web. Mas a Semantic Web fornecerá as fundações e a estrutura para tornar tais tecnologias praticáveis. [BHL01]

Semantic Web ISEP - 2002

86

6.3. Resumo O verdadeiro poder da Semantic Web só será perceptível quando representar valor para os utilizadores. É necessário que sejam criados programas de computador, designados por agentes de software, que apoiem os utilizadores e facilitem a actividade humana. Os agentes de software serão capazes de “compreender” o significado e relação entre os objectos, com base em ontologias, e de racionar sobre eles utilizando regras de inferência. Deverão também ser capazes de trocar entre si dados, resultado de processamento de dados e a forma como o raciocínio foi realizado. A autenticidade e a confiabilidade das fontes adquire um novo significado quando consideramos que os agentes de software podem, através da manipulação/raciocínio dos dados, chegar a conclusões que afectem a acção humana. As assinaturas digitais serão a forma de cada agente verificar a autenticidade das suas fontes. De acordo com a informação que a assinatura digital lhe fornece, o agente poderá alterar o grau de certeza que associa ao resultado do seu raciocínio (certeza total, parcial, etc.) ou mesmo ignorar a informação, se a fonte não for fidedigna. Será interessante imaginar um mundo virtual de agentes interagindo sobre a Semantic Web, onde os agentes possam cooperar entre si formando uma “corrente de valor” que facilitaram a comunicação e acção humana. Além disso, cada agente poderá publicitar as suas funcionalidades e procurar um agente que ofereça determinadas funcionalidades.

Semantic Web ISEP - 2002

87

7. Semantic Web ISEP

Devido à importância e actualidade do tema em questão, é indubitável que, mais tarde ou mais cedo, será matéria indispensável a inserir nos planos curriculares dos cursos de Engenharia Informática. É fundamental que os engenheiros de informática tenham contacto com estas novas matérias. O tema pode ser abordado, principalmente, do ponte de vista teórico, apesar de algumas tecnologias envolvidas poderem ser utilizadas em casos práticos (Como acontece com a linguagem XML que já faz parte do plano curricular da cadeira de “Ambiente de Desenvolvimento” deste curso – Engenharia Informática do ISEP). A disciplina onde melhor se poderá inserir a abordagem deste tema, no curso de Engenharia Informática do ISEP, tanto de uma forma teórica como, eventualmente, através de um componente prática, é a de “Agentes Inteligentes e Sistemas Cooperativos” leccionada no 5º ano (principalmente por ter uma matéria complementar a este tema e ser do 5º ano - onde os alunos já possuem uma maior quantidade de conceitos e de abstracção), segundo o meu ponto de vista. A disciplina de “Agentes Inteligentes e Sistemas Cooperativos”, como o nome indica, debruça-se, especialmente, sobre o estudo dos agentes de software e seus comportamentos, focando principalmente o cooperativismo. Eventualmente, noutras disciplinas e noutros cursos/ramos haverá matéria a explorar, para a inclusão da Semantic Web, daí que se possa vir a reconhecer a necessidade de aprofundar o estudo, com novas ênfases, dos planos curriculares de alguns cursos/ramos.

Semantic Web ISEP - 2002

88

8. Conclusão

Actualmente, a Semantic Web já não é considerada uma obra de ficção, mas em contrapartida, ainda está longe de ser uma realidade. A Semantic Web é, antes de tudo, um grande desafio (como o foi em tempos a própria Web): implica ter informação definida e integrada de forma a ser utilizada, quer, por agentes de software (máquinas), quer, por pessoas, não apenas com o objectivo de informação, mas para automatização, integração e reutilização da informação utilizada por diversas aplicações, auxiliando o homem nas suas tarefas diárias. A materialização desta nova visão da Web, necessita do desenvolvimento de um conjunto de padrões e tecnologias capazes de processar e compartilhar a informação a partir de programas desenvolvidos de formas totalmente independentes, mas interrelacionáveis. Dentro desta perspectiva, observa-se o desenvolvimento de uma variedade de tecnologias e linguagens semânticas para a Web que actualmente têm sido alvo de vários congressos internacionais [SWW01], [DEX01], [IIW01]. Neste momento a linguagem XML e a arquitectura RDF são as duas principais tecnologias que servem de base à Semantic Web. As principais pesquisas e projectos actuais sobre a Semantic Web prendem-se sobretudo com as ontologias. Esta tendência é evidenciada sobretudo pelo desenvolvimento de uma variedade de sistemas e estruturas de software informático visando prover: a integração de ontologias; bibliotecas e editores de ontologias; e linguagens para a definição de ontologias [SWW01]. A integração de ontologias torna-se hoje relevante para o desenvolvimento e consolidação de várias actividades na Web, tais como: prover mecanismos de pesquisa mais precisos; oferecer maior suporte aos serviços de comércio electrónico (tais como B2B - business-to-business, B2C - business to consumers, etc.); prover interactividade entre serviços e aplicações, além de prover o relacionamento semântico entre os conteúdos das páginas permitindo um uso eficiente deste ambiente, quer por pessoas , quer por robôs. Mas o verdadeiro poder da Semantic Web só será perceptível quando representar valor para os utilizadores. É aqui que entram em cena os programas de computador, designados por agentes de software, que apoiaram os utilizadores em todas as suas actividades. Os agentes de software serão capazes de “compreender” o significado e relação entre os objectos, com base em ontologias, e de racionar sobre eles utilizando regras de inferência. Deverão também ser capazes de trocar entre si informação, resultado de processamento de dados e a forma como o raciocínio foi realizado. Num passo seguinte, a Semantic Web, sairá do mundo virtual e abraçará o mundo físico. Nessa nova perspectiva os URIs podem apontar para qualquer coisa, incluindo entidades físicas, o que nos permitirá utilizar a arquitectura RDF para descrever dispositivos como telefones celulares e televisões. Esses dispositivos podem anunciar as suas funcionalidades

Semantic Web ISEP - 2002

89

– o que podem fazer e como podem ser controlados – de maneira idêntica aos agentes de software. Sendo muito mais flexível do que os esquemas de baixo-nível como o Universal Plug and Play, este tipo de aproximação semântica abre um mundo novo de possibilidades emocionantes. [BHL01] Do meu ponto de vista, esta nova visão da Web é extremamente positiva, pois já é chegado o tempo em que é necessário tentar por alguma ordem na Web e poder assim explorar todo o seu potencial, coisa que ainda não acontece nos nossos dias. A ideia da Semantic Web, apesar, de ainda não ter recebido a atenção merecida, vai chegar o tempo em que vai estar de tal maneira incutida na nossa maneira de pensar que nos vai parecer como uma ideia normal a qual não se pode nem nunca se poderá ter posto em causa – espelhando a nossa atitude com o que aconteceu e acontece actualmente com a Web. Para terminar quero apenas acrescentar que a realização deste trabalho, demonstrou ser muito gratificante e foi uma tarefa enriquecedora, principalmente em termos de conciliação de diversos conceitos ligados ao mundo da Internet. Auguro que muito em breve tenhamos uma Internet diferente, uma Internet que terá como base a Semantic Web.

Semantic Web ISEP - 2002

90

Anexo A - WWW em datas 1945 - Vannevar Bush escreve um artigo no ''Atlantic Monthly'' sobre um dispositivo

mecânico fotoeléctrico de nome Memex que permitia criar links de ligação entre documentos numa microficha.

1960 - Doug Engelbart (o criador do ''rato'') desenvolve um protótipo (oNLine System)

que permite editar hipertexto e o correio electrónico. 1965 - Ted Nelson refere-se ao termo Hipertexto no decorrer de uma conferência em

Nova Iorque da Association for Computing Machinery. 1967 - Andy van Dam e seus colegas desenvolvem o ''Hypertex Editing System''. 1980 - Tim Berners-Lee escreve um ensaio sobre hipertexto e criação de links; 1989 - Tim Berners-Lee põe a circular na intranet do CERN uma proposta sobre ''Gestão

de Informação''. 1990 - O CERN autoriza Berners-Lee a continuar estudos e a construir um sistema de

hipertexto para a gestão da informação do centro. O projecto recebe o nome de World Wide Web.

1991 - Depois de divulgado a nível interno, os primeiros ficheiros em hipertexto são

postos à disposição na Net. 1992 – O Banco Mundial coloca o seu site on-line; O termo "surfar na Internet" é cunhado

por Jean Armour Polly. 1993 - Apresentada a versão experimental do Mosaic; o CERN declara que a Web é livre

de pagamentos de direitos; A Casa Branca (EUA) coloca o seu site online. 1994 – O’Reilly, Spry, etc anunciam “Internet in a box”, um produto para levar a Web a

casa de todas as pessoas; Primeira Conferencia Internacional da WWW no CERN em Geneva; É fundado o World Wide Web Consortium; Já é possível encomendar pizzas pela Web.

1995 – A Web é o tema principal na reunião dos G7; A Sun lança o JAVA; O Vaticano

coloca o seu site on-line. 1996 – Guerra dos browsers WWW, disputada principalmente entre a Netscape e a

Microsoft; Restrições no acesso à Internet em algumas regiões do mundo: China, Arábia Saudita, Singapura, Nova Zelândia, etc.

1997 – Os EUA lançam o projecto ‘Internet2’ com três objectivos: criar uma rede de alto

desempenho, desenvolver serviços tecnológicos de rede avançados, e construir aplicações que não tenham limitações de banda.

Semantic Web ISEP - 2002

91

1998 – Selos postais electrónicos tornam-se uma realidade, com o Serviço Postal dos EUA permitindo que os selos sejam comprados, descarregados da Web e impressos; Surgem os softwares de código aberto.

1999 – A IBM torna-se a primeira corporação em parceria a ser aprovada para acesso à

Internet2; Grande divulgação do formato MP3. 2000 – O tamanho da Web estimado pela NEC-RI e Inktomi ultrapassa um bilião de

páginas indexáveis; Aparecimento da tecnologia ASP e do Napster.

Crescimento da WWW:

Date Sites | Date Sites | Date Sites ----- ---------- + ----- ---------- + ----- ---------- 06/93 130 | 09/97 1,364,714 | 11/99 8,844,573 09/93 204 | 10/97 1,466,906 | 12/99 9,560,866 10/93 228 | 11/97 1,553,998 | 01/00 9,950,491 12/93 623 | 12/97 1,681,868 | 02/00 11,161,811 06/94 2,738 | 01/98 1,834,710 | 03/00 13,106,190 12/94 10,022 | 02/98 1,920,933 | 04/00 14,322,950 06/95 23,500 | 03/98 2,084,473 | 05/00 15,049,382 01/96 100,000 | 04/98 2,215,195 | 06/00 17,119,262 03/96 135,396 | 05/98 2,308,502 | 07/00 18,169,498 04/96 150,295 | 06/98 2,410,067 | 08/00 19,823,296 05/96 193,150 | 07/98 2,594,622 | 09/00 21,166,912 06/96 252,000 | 08/98 2,807,588 | 10/00 22,282,727 07/96 299,403 | 09/98 3,156,324 | 11/00 23,777,446 08/96 342,081 | 10/98 3,358,969 | 12/00 25,675,581 09/96 397,281 | 11/98 3,518,158 | 01/01 27,585,719 10/96 462,047 | 12/98 3,689,227 | 02/01 28,125,284 11/96 525,906 | 01/99 4,062,280 | 03/01 28,611,177 12/96 603,367 | 02/99 4,301,512 | 04/01 28,669,939 01/97 646,162 | 03/99 4,349,131 | 05/01 29,031,745 02/97 739,688 | 04/99 5,040,663 | 06/01 29,302,656 03/97 883,149 | 05/99 5,414,325 | 07/01 31,299,592 04/97 1,002,612 | 06/99 6,177,453 | 08/01 30,775,624 05/97 1,044,163 | 07/99 6,598,697 | 09/01 32,398,046 06/97 1,117,259 | 08/99 7,078,194 | 10/01 33,135,768 07/97 1,203,096 | 09/99 7,370,929 | 11/01 36,458,394 08/97 1,269,800 | 10/99 8,115,828 | 12/01 36,276,252

Sites = Número de servidores Web (um computador pode ter muitos sites utilizando

diferentes domínios ou número de)

Semantic Web ISEP - 2002

92

Fig. A1-1 Crescimento da Internet

Semantic Web ISEP - 2002

93

Anexo B - Pesquisa e recuperação de informação na Web

A Web é considerada o maior suporte de informação nos mais variados domínios de conhecimento. Nesse contexto, uma enorme quantidade de recursos e documentos de todo tipo é disseminado (bases de dados, programas, artigos, mensagens, arquivos ftp, etc.) de forma autónoma, sem a devida preocupação com regras de catalogação e descrições de suas propriedades, aspectos, estes, relevantes para a sua pesquisa. Esta deficiência pode ocasionar: demora na localização de informações; informações não localizadas devido às mudanças nas URLs; recuperação de um elevado número de recursos que, em sua maioria, não atendem às expectativas dos utilizadores; ou ainda recuperação de informações fora do contexto solicitado devido a problemas de semântica, ambiguidade, etc. Consequentemente, a busca pelo aprimoramento de ferramentas e mecanismos de busca direccionados à localização e recuperação de tais informações torna-se um desafio para a comunidade científica e uma fonte de pesquisa para os utilizadores. A efectividade dessas ferramentas depende directamente da maneira com que os recursos foram descritos e catalogados na Web. Os documentos podem ser organizados usando directórios Web, bases de dados ou técnicas de bibliotecas digitais, cujo conteúdo pode ser manipulado usando mecanismos de recuperação diferentes, provendo melhores serviços aos usuários. As ferramentas de pesquisa são classificadas em quatro categorias [HB00][Kan01][UTMB]: pesquisa em directório, motores de pesquisa, directórios com motores de pesquisa e múltiplos mecanismos de pesquisa, sucintamente descritos a seguir: [Moura01]

a) Pesquisa em directórios: pesquisam a informação por assunto através de uma pesquisa hierárquica, que começa a partir de um tópico genérico, ramificando em sub-tópicos específicos. Enciclopédia Britânica [EB], YAHOO [YAHOO], CADE [CADE] são bons exemplos de ferramentas nessa categoria.

b) Motores de pesquisa: pesquisam a informação pelo uso de palavras chave, fornecendo uma lista de referências ou marcações como resultado. Utilizam bases de dados constituídas de recursos provenientes de diversos autores ou através de informações oriundas de robôs (Web Crawlers) que podem enviar títulos ou URLs de cada página visitada, marcações HTML e textos inteiros referentes a cada página. A forma de indexação e recuperação de informações na BD não é precisa, o que dificulta a obtenção de informações de acordo com as expectativas dos utilizadores. Alta Vista [AV], Lycos [Lycos], Infoseek [INF], GOOGLE [GOO], entre outros, são exemplos de ferramentas nessa categoria;

c) Directórios com motores de pesquisa: utilizam tanto a pesquisa por palavras-chaves como por título de assunto. Na parte referente à pesquisa em directório, a pesquisa segue um percurso hierárquico que vai de assuntos genéricos aos mais específicos. Em cada paragem ao longo do caminho, uma opção do motor de pesquisa é provida para permitir que o utilizador efectue uma pesquisa por palavra-chave. Possui habilidade para estreitar o campo de procura e obter resultados melhores. Porém, não é indicada para pesquisas mais complexas e difíceis, devido

Semantic Web ISEP - 2002

94

ao problema de imprecisão. Yahoo2, Magellan [MAG] (este utiliza o motor de busca “Excite”) fazem parte dessa categoria.

d) Múltiplos mecanismos de pesquisa (meta-searchers): adoptam os recursos de vários motores de pesquisa em paralelo. A pesquisa é conduzida através de palavras-chaves. Uma lista de informações é obtida de acordo com cada mecanismo de pesquisa envolvido ou de forma integrada. Metacrawler [META] e Dogpile [DOG] são exemplos de ferramentas nessa categoria.

Semantic Web ISEP - 2002

95

Anexo C - Document Type Definition (DTD)

DTD : [Moura01]

? Define a estrutura lógica do documento: Define a gramática (combinação válidas de palavras);

? É definida em uma linguagem à parte; ? Possui um conjunto de restrições muito limitado: Não permite a criação de tipos de

dados; Não permite intervalos de restrição para os dados.; ? Garante a utilização de documentos válidos: Documentos bem formados em

conformidade com o DTD (‘parser’).

Fig. AC-1 Um DTD é utilizado para definir estruturalmente conteúdos.

Fig. AC-2 Estrutura em árvore de um DTD.

Semantic Web ISEP - 2002

96

Exemplo da especificação de um DTD: <!DOCTYPE bd [ <!ELEMENT bd (livro)> <!ELEMENT livro (titulo,autor,ano)> <!ELEMENT titulo (#PCDATA)> <!ELEMENT autor (#PCDATA)> <!ELEMENT ano (#PCDATA)> ]> Exemplo da especificação de um DTD para a árvore binária da figura AC-3. <!ELEMENT no (folha|(no,no))> <!ELEMENT folha (#PCDATA)> <no> <no> <no><folha> 1 </folha> </no> <no><folha> 2 </folha> </no> <no> <no><folha> 3 </folha> </no> </no> Exemplo da especificação de um DTD para um esquema relacional :

? Tab1(m,n), Tab2(p) </DOCTYPE bd [ <!ELEMENT bd (tab1, tab2)> <!ELEMENT tab1 ((m,n)|(n,m))> <!ELEMENT tab2 (p)> <!ELEMENT m (#PCDATA)> <!ELEMENT n (#PCDATA)> <!ELEMENT p (#PCDATA)> ]> Atributos e referencias em DTD:

Fig. AC-3 Árvore binária

Semantic Web ISEP - 2002

97

Outro exemplo:

Limitações do DTD

? Impõe uma ordem; ? Não aceita tipagem de dados (somente PCDATA); ? Os elementos são globais: não permite nome de livro, nome de pessoa em

diferentes estruturas; ? Utilização de espaço de nomes (namespaces);

Semantic Web ISEP - 2002

98

Referências [AA+00] S. Adler, B. Anders, C. Jeff, S. Deach, P. Grosso, E. Gutentag, A. Milowski,

S. Parnell, J. Richman, S. Zilles. Extensible Stylesheet Language (XSL). (http://www.w3.org/TR/2000/CR-xsl-20001121/)

[ABA] Email the most used Internet service, Australian Broadcasting Authority

(http://www.aba.gov.au/internet/research/families/usage5.htm) (visitado em Março de 2002)

[AV] Alta Vista. (http://www.altavista.com). [Azevedo01] Isabel Azevedo. Semantic Web. Armazenamento e Recuperação de

Informação – Mestrado em Gestão de Informação. FEUP 2001. [Barker90] R. Barker. Entity Relationship Modeling. Addison-Wesley. Boston, Mass., 1990 [BBD00] S. Bechhofer, J. Broekstra, S. Decker. An Informal Description of Standard OIL

and Instance OIL. Novembro, 2000. (http://www.ontoknowledge.org/oil/). [Berners90] Tim Berners-Lee. Information Management: A Proposal. CERN, Maio, 1990.

(http://www.w3.org/History/1989/proposal.html). [Berners98a] Tim Berners-Lee. What the Semantic Web can represent.

(http://www.w3.org/DesignIssues/RDFnot.html) [Berners98b] Tim Berners-Lee. Semantic Web Road map.

(http://www.w3.org/DesignIssues/Semantic.html) [Bézivin98] J. Bézivin. Who’s Afraid of Ontologies?

(http://www.metamodel.com/oopsla98-cdif-workshop/bezivin1/) [BC00] A. Bonifati, S. Ceri. Comparative Analysis of Five XML Query.

(http://citeseer.nj.nec.com/325897.html) [BCS99] Tim Berners-Lee, Dan Connolly, Ralph R. Swick. Web Architecture: Describing

and Exchanging Data. W3C Note 7 June 1999. (http://www.w3.org/1999/04/WebData)

[BG00] D. Brickley, R. Guha. Resource Description Framework (RDF) Schema

Specification. W3C Candidate Recommendation. Março 2000. (http://www.w3.org/TR/2000/CR-rdf-schema-20000327)

[BHL01] T. Berners-Lee, J. Hendler, O. Lassila. The Semantic Web. Scientific

American, Maio, 2001. (http://www.scientificamerican.com/2001/0501issue/0501berners-lee.html).

Semantic Web ISEP - 2002

99

[BPM98] T. Bray, J. Paoli, C. M. Sperberg-McQueen. Extensible Markup Language (XML) 1.0, W3C Recommendation, Fevereiro 1998 (http://www.w3.org/TR/REC-xml)

[Brachman79] R.J. Brachman. “On the Epistemological Status of Semantic Networks” in

Associative Networks: Representations and Use of Knowledge by Computers, N.V. Findler, ed., Academic Press, 1979.

[BKSSW00] Tim Berners-Lee, David R. Karger, Lynn Andrea Stein, Ralph R. Swick,

Daniel J. Weitzner. Semantic Web Development. Technical Proposal. Fevereiro, 2000. (http://www.w3.org/2000/01/sw/DevelopmentProposal)

[CADE] (http://www.cade.com.br). [CERN] European Organization for Nuclear Research, http://welcome.cern.ch/welcome/gateway.html . (visitado em Março de

2002) [CO01] K. G. Coffman, A. M. Odlyzko. Internet growth: Is there a “Moore’s Law” for

data traffic?. AT&T Labs – Research. Junho. 2001. (http://www.research.att.com/~amo/doc/internet.moore.pdf)

[DAML] DAML: The DARPA Agent Markup Language. (http://daml_about.html) [DBSA01] S. Decker, D. Brickley, J. Saarela, J. Angele. A Query and Inference Service for

RDF. 1998. (http://www.ilrt.bris.ac.uk/discovery/rdf-dev/purls/papers/QL98-queryservice/)

[DCMI] Dublin Core Metadata Iniciative. http://dublincore.org [DEX01] Database and Expert Systems Applications; Electronic Commerce and Web

Technologies Proc. Of the 12th International Conference, DEXA 2001, Munich, Alemanha. Setembro 2001.

[DM+00] Stefan Decker, Sergey Melnik, Frank Van Harmelen, Dieter Fensel, Michel

Klein, Jeen Broekstra, Michael Erdmann, Ian Horrocks. The Semantic Web: The Roles of XML and RDF. Outubro 2000. (http://dlib.computer.org/ic/books/ic2000/pdf/w5063.pdf)

[DO] (http://www.daml.org/2000/12/daml+oil-index). [DOG] Dogpile. (http://www.dogpile.com). [EB] Enciclopedia Británica (http://www2.Britannica.com). [Elmer98] Greg Elmer. The Economy of Cyberpromotion: Awards on the World Wide Web.

The World Wide Web and Contemporary Cultural Theory , Novembro, 1998. (http://www.drake.edu/swiss/webconference/elmer.html).

Semantic Web ISEP - 2002

100

[FSW00] M. Fernandez, J. Siméon, P. Wadler. XML Query Languages: Experiences and Examples. (http://www-db.research.bell-Labs.com/user/simeon/xquery.html)

[Gago] José Gago. Portugal na Sociedade da Informação. Ministrério da Ciência e da

Tecnologia. (http://www.mct.pt/PtSocInfo/) (visitado em Março de 2002) [GE01] R. Grutter, C. Eikemeier. Development of a Simple Ontology Definition Language

(SontoDL) and its Application to a Medical Information Service on the World Wide Web. The First Semantic Web Working Symposium, California, USA, Julho, 2001.

[GLMB98] R. V. Guha, O. Lassila, E. Miller, D. Brickley. Enabling Inferencing. 1998.

(http://www.w3.org/TandS/QL/QL98/pp/enabling.html) [GOO] Google. (http://www.google.com). [GP00] C. Goldfarb, P. Prescod. The XML Handbook. 2nd. Ed. Upper Saddle River,

NJ: Prentice-Hall. 2000. [Grubber99] T. Grubber. What is an Ontology? 1999. (http://www-

ksl.stanford.edu/kst/what-is-an-ontology.html) [Guarino98] N. Guarino. Formal Ontology and Information System. Proc. of FOIS’98, Trento,

Itália. Junho 1998. [Guha97] G. V. Guha. Meta Content Framework 1997.

(http://mcf.research.apple.com/hs/mcf/html) [Hayes01] P. hayes (ed.). RDF Model Theory. W3C Working Draft, 25 Setembro 2001.

(http://www.w3.org/TR/2001/WD-rdf-mt-20010925) [HB00] D. P. Habbib, R. L. Balliot. How to Search the World Wide Web: A Tutorial for

Beginners and Non-Experts. 2000. (http://204.17.98.73/midlib/tutor.htm#GSE)

[Hendler01] J. Hendler. Agents and the Semantic Web. IEEE Intelligent System, Março-

Abril 2001. [HFBD00] I. Horrocks, D. Fensel, J. Broekstra, S. Decker. The Ontology Layer OIL.

(http://www.ontoknowledge.org/oil/TR/oil.long.html) [HIT] Hobbes' Internet Timeline v5.6,

http://www.zakon.org/robert/internet/timeline/. (visitado em Fevereiro de 2002)

[IIW01] Third International Conference on Information Integration and Web-based

Applications and Services (IIWAS2001), Linz, Áustria. Setembro. 2001. [INF] Infoseek. (http://www.infoseek.com).

Semantic Web ISEP - 2002

101

[INRIA] Institut National de Recherche en Informatique et Automatique, França, http://www.inria.fr/

[ISW] Information Society Website.

http://europa.eu.int/information_society/index_en.htm [IW97] R. Iannella, A. Waugh. Metadata: Enabling the Internet.

(http://www.dstc.edu.au/RDU/reports/CAUSE97). 1997. [Jann99] J. Jannink. An Alegra for Semantic Interoperation of Semistructured Data. IEEE

Comp. Soc. Press. Los Alamitos, California. 1999 [JC99] M. Page-Jones, L.L. Constantine. Fundamentals of Object-Oriented Design in

UML. Addison-Wesley. Boston, Mass., 1999. [Kan01] Kansas. Kansas City Publication Library. Introduction to Search Engines. 2001.

(http://www.kcpl.lib.mo.us/search/srchengines.htm) [Kar01] G. Karvounarakis. RDF Query Languages: A state-of-art. 2001.

(http://www.ics.forth.gr/proj/isst/RDF/RQL/rdfql.html) [KCT99] P. D. Karp, V. K. Chaudhri, J. Thomer. XOL: An XML-Based Ontology

Exchange Language. Tech. Rep., Versions 0.3, 1999. [Keio] Keio University Shonan Fujisawa, Japão, http://www.keio.ac.jp/ [Kennelly00] Bill Kennelly, Tim Berners-Lee The Father of the World Wide Web,

http://www.callnetuk.com/home/billkennelly/berners.htm. (visitado em Março de 2002)

[KM01] Marja-Riitta Koivunen, Eric Miller. W3C Semantic Web Activity. Semantic Web

Kick-off Seminar in Finland Nov 2, 2001. (http://www.w3.org/2001/12/semweb-fin/w3csw)

[KW95] R. Kahn, R. Wilensky. A Framework for Distributed Object Services. Maio 1995.

(http://www.cnri.reston.va.us/home/cstr/arch/k-w.html). [LC95] R. Lasher, D. Cohen, A Format for Bibliographic Records, 1995.

(http://sunsite.auc.dk/RFC/rfc/rfc1807.html) [Lesk95] Michael Lesk. The Seven Ages of Information Retrieval. IFLANET, Junho, 1995.

(http://www.ifla.org/VI/5/op/udtop5/udtop5.htm) [LH00] S. Luke, J. Heflin. SHOE 1.01. Proposed Specification.

(http://www.cs.umd.edu/projects/plus/SHOE/spec.html) [Lima01] Tarcísio S. Lima. Entrelaçamentos Semânticos Modelando a Integração da Informação

na Web Semântica. Tese de Douturamento, USP – S. Carlos, Setembro 2001.

Semantic Web ISEP - 2002

102

[LLD99] C. Lagose, C. A. Lynch, R. JR. Daniel. The Warwick Framework – A Container Architecture for aggregating Sets of Metadata. 1996. (http://www.dlib.org/dlib/july96/lagoze/07lagoze.html).

[LS99] O. Lassila, Ralph Swick. Resource Description Framework (RDF) Model and

Syntax Specification. W3C Recommendation.Fevereiro, 1999. (http://www.w3.org/TR/REC-rdf-syntax)

[Lycos] Lycos. (http://www.lycos.com). [Mc00] D.L. McGuinness. The Chimaera Ontology Environment. AAAI Press, Menlo

Park, California. 2000. [MAG] Magellan. (http://www.mckinley.com). [Marbi96] Marbi. The USMARC Formats: Background and Principles. American Library

Association’s ALCTS/LITA/RUSA, Machine-Readable Bibliographic Information Committee, (http://lcweb.loc.gov/marc/)

[MB01] MusicBrainz 2.0 (http://musicbrainz.org/MM) [META] Metacrawler. (http://www.metacrawler.com). [MMP00] S. Melnik, H. Garcia-Molina, A. Paepcke. A Mediation Infrastucture for Digital

Library Services. Proc. ACM Digital Libraries Conf., ACM Press, Junho 2000.

[Moura01] Ana Moura. A Web Semântica. 2001.

(http://ipanema.ime.eb.br\~anamoura\web_sem.html ) (visitado em Março de 2002)

[MIT] Massachusetts Institute of Tecnology, EUA, http://web.mit.edu/ [MS98] A. Malhotra, N. Sundaresan. RDF Query Specification. 1998.

(http://www.w3.org/Tands/QL/QL98/pp/rdfquery.html) [Naughton98] John Naughton. Darth Vader meets his Match?. London Observer,

Novembro, 1998. http://molly.open.ac.uk/Personal-pages/Pubs/981108.htm [NSD01] F. Noy Natalya, M. Sintek, S. Decker. Creating Semantic Web Contents with

Protégé-2000. IEEE Intelligent Systems, Março/Abril, 2001. [OBR] (http://www.ontoprise.de/start_produts.htm) [OIL] The Ontology Interchange Language – OIL

(http://www.ontoknowledge.org/oil/) [ONT] (http://www.ontoknowledge.org/tools/ontoedit.shtml)

Semantic Web ISEP - 2002

103

[QS01] John S. Quarterman, Peter H. Salus. How the Internet Works. Matrix.Net – the state of the internet, maio, 2001. (http://www.matrix.net/research/library/how_the_internet_works.html).

[PICS96] PICS: Internet Access Controls Without Censorship. Communications of the

ACM, Vol.39, N.10. Outubro 1996. [Ramos01] C. Ramos. Agentes Inteligentes e Sistemas Cooperativos. Disciplina do 5º ano da

Licenciatura em Engenharia Informática – Ramo de Computadores e Sistemas. 2001.

[RDF] Resource Description Framework (RDF) Model and Sintax Specification. W3C

Recommendation, Março 2000. (http://www.w3.org/TR/2000/CR-rdf-schema-20000327)

[RDFS] Resource Description Framework (RDF) Schemas. W3C Candidate

Recommendation, 2000. (http://w3.org/TR/rdf-schema/) [Rodriguez99] Karen Rodriguez. Plenty deserve credit as ‘father’ of the Internet. BusinessJournal

, Outubro, 1999. (http://sanjose.bizjournals.com/sanjose/stories/1999/10/25/newscolumn2.html).

[RSS00] RSS 1.0 (http://groups.yahoo.com/group/rss-dev/files/specification.html) [Saarela98] J. Saarela. A Query and Inference Service for RDF. Cambridge, Mass.: The Query

Language Workshop, W3C, 1998. (http://www.ilrt.bris.ac.uk/discovery/rdf-dev/purls/papers/QL98-queryservice/)

[SM00] S. Staab, A. Maedche. Ontology Engineering beyound the Modeling of Concepts and

Relations. ECAI’2000 Workshop on Applications of Ontologies and Problem-Solving methods, Berlin 2000.

[SES] Search Engine Showdown – The Users’ Guide to Web Searching, http://searchengineshowdown.com/ . (visitado em Março de 2002) [SGML] SGML Overview of SGML Resources,

(http://www.w3.org/MarkUp/SGML/) [Suler01] John Suler. The Psychology of Cyberspace. Rider University , Junho, 2001.

(http://www.rider.edu/users/suler/psycyber/psycyber.html). [SWAS] Semantic Web Activity Statement. W3C.

(http://www.w3.org/2001/sw/Activity). [SWW01] The First Semantic Web Working Symposium. Stanford University, Estado

Unidos, Julho. 2001. [UTMB] UTMB. University of Texas Medical Branch. Searching for Subject Information on the

WWW. (http://library.utmb.edu/SearchEngines/ComparisonChart.asp)

Semantic Web ISEP - 2002

104

[VG00] Ellen Voorhees, John Garofolo. The TREC Spoken Document Retrieval Track.

American Society for Information Science. Junho, 2000. (http://www.asis.org/Bulletin/June-00/voorheesgarofolo.html )

[Voiskounsky98] Alexander E. Voiskounsky. Internet: Diversity or Unification?. 48th Annual

Conference of the INTERNATIONAL COMMUNICATION ASSOCIATION, Julho, 1998. (http://www.ifi.uib.no/staff/konrad/research/culture/DalexApplicatICA98icapaper.htm)

[W3C_a] WWW Consortium, http://www.w3.org [W3C_b] A Little History of the World Wide Web, http://www.w3.org/History.html.

(visitado em Março de 2002) [W3C_c] W3C World Wide Web Consortium in 7 points,

http://www.w3.org/Consortium/Points/ [W3C_d] W3C Semantic Web, http://www.w3.org/2001/sw/ [WKLW98] S. L. Weibel, J. A. Kunze, C. Lagoze, M. Wolf. Dublin Core Metadata for

Resource Discovery. 1998. (http://www.ietf.org/rfc/rfc2413.txt) (visitado em Abril de 2002)

[XML_a] Extensible Markup Language (XML), 2000.

(http://www.w3.org/TR/2000/REC-xml-20001006) [XML_b] (http://www.w3c.org/XML/Activity) [XML_c] Extensible Markup Language (XML) Activity Statement.

(http://www.w3.org/XML/Activity) [YAHOO] (http://www.yahoo.com).