Você está na página 1de 63

PONTIFÍCIA UNVERSIDADE CATÓLICA DO RIO GRANDE DO SUL

FACULDADE DE INFORMÁTICA
PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO

Web Semântica:
O estado da arte

Por

ALBERTO SALES E SILVA

Trabalho Individual I

Prof. Dsc. Marcelo Blois Ribeiro

Orientador

Porto Alegre, janeiro de 2008.


2

Sumário

1. Introdução .................................................................................................................4

1.1. A Web atual.........................................................................................................5

1.2. Estrutura do trabalho...........................................................................................6

2. Definições e padrões da Web Semântica...................................................................7

2.1. Definições da Web Semântica............................................................................7

2.2. Web Semântica: gerenciamento da informação ................................................9

2.3. Porquê precisamos..............................................................................................11

2.4. Agentes de software ...........................................................................................11

2.5. Representação do conhecimento na Web ...........................................................12

2.6. Visão e arquitetura .............................................................................................13

2.6.1.As camadas da Web Semântica ..................................................................15

2.7. Padrões ...............................................................................................................16


2.7.1.Universal Resource Identifier....................................................................16
2.7.2.XML e XML Schema .................................................................................17
2.7.3.Dublin Core – DC ......................................................................................17
2.7.4.Framework Warwick ..................................................................................20
2.7.5.Resource Description Framework.............................................................21
2.8. Ontologias...........................................................................................................24
2.8.1.A função das ontologias..............................................................................25
2.8.2.Uma arquitetura da Web Semântica baseada na Ontologia........................25
2.8.3.Reuso de ontologias ...................................................................................26
2.9. Linguagens..........................................................................................................28
2.9.1.OWL – Ontology Web Language................................................................28
2.9.2.OIL – Ontology Inference Layer ...............................................................30
2.9.3.DAML+OIL – Darpa Agent Markup Language + OIL..............................31
3. Propostas de ferramentas para uso na Web Semântica..............................................32
3.1. SHOE .................................................................................................................32
3

3.2. OWL-S ...............................................................................................................33


3.3. OntoEdit .............................................................................................................34
3.4. OntoLingua Frame Editor – SHOE ...................................................................37
3.5. OilEd ..................................................................................................................37
3.6. Protègè................................................................................................................38
3.7. OntoShare ..........................................................................................................39
3.8. OntoBroker ........................................................................................................41
3.9. Projeto FOAF – Friend of a Friend ....................................................................42
3.10. Jena ..................................................................................................................43
4 Principais componentes de software para a construção de aplicações para a Web
Semântica .................................................................................................................45
4.1 SemantiCore........................................................................................................45
4.1.1 Ciclo de vida de um agente SemantiCore................................................46
4.1.2 O SemantiCore e a Web Semântica.........................................................48
4.2 Sesame ...............................................................................................................49
4.3 Framework UPML..............................................................................................50
4.4 IBROW – Internet BRokering Service for Knowledge-Component Reuse on the Web...53
4.4.1 Intermediando Componentes de Raciocínio na Web...............................53
5 Estudo de Caso SemantiCore....................................................................................55
5.1 Descrição do Problema ......................................................................................55
5.2 A aplicação..........................................................................................................55
6 Conclusão..................................................................................................................58
Referência Bibliográfica .................................................................................................60
4

Listas de Figura
5

1. Introdução

A Internet é uma grande conquista tecnológica com um número crescente de usuários e


fonte de informações. Entretanto, o aumento da complexidade na web afeta diretamente
os usuários deixando-os responsáveis por controlar acesso, extração, interpretação e
manutenção da informação. Apesar de ter grande influência nas atividades dos usuários,
muitas destas atividades desejadas não são suportadas por ferramentas automatizadas.
Atualmente o que está à disposição na Web são ferramentas que fazem uso de palavras-
chave que servem como base para, por exemplo, motores de busca. Estas ferramentas,
quando indispensáveis, têm sérias limitações em termos de pesquisas, precisão e
conteúdo, ao fazermos uma simples pesquisa teremos várias páginas retornadas e que
ainda não satisfazem o contexto da pesquisa.

A maior parte do conteúdo da Web de hoje é utilizado para consumo humano, com
máquinas estando aptas apenas para capturar e manipulá-los sintaticamente. A idéia
central da iniciativa Web Semântica [01] é dar significado ao conteúdo web acessível e
processável por máquinas. Isso permite o desenvolvimento de ferramentas sofisticadas
que poderão proporcionar funcionalidades superiores no apoio as atividades humanas na
web. A Web semântica depende da combinação das seguintes tecnologias:

• Metadados: permite que páginas da web possam demonstrar o significado sobre


suas próprias informações. Por exemplo, em uma página web pessoal,
metadados podem identificar nome, cargo, filiação, estudos, publicação e etc.
[02].

• Ontologias: descrevem os principais conceitos de um domínio e os seus


relacionamentos. Por exemplo, uma ontologia pode conter conceitos como
pessoas, professores, cursos, e seus relacionamentos [03].

• Raciocínio lógico: Neste caso torna-se possível tirar conclusões a partir das
combinações dos dados (metadados) com ontologias.
6

O objetivo da Web Semântica é permitir desenvolver padrões e projetar tecnologias que


ajudam máquinas a compreender mais informações na Web, a fim de que eles possam
suportar descobertas, integração de dados, navegação e automatização de tarefas. Com a
Web Semântica, nós não só receberemos resultados mais exato na pesquisa de
informação, mas também saberemos quando é que podemos integrar informações de
diferentes fontes de informações para saber o que comparar, e podem fornecer todos os
tipos de serviços automatizados em diferentes domínios como as casa futurísticas,
bibliotecas digitais, o comércio eletrônico e aos serviços de saúde [01].

1.1 A Web Atual

Com o formato da web atual, há apenas duas formas de introduzir mais informações em
documentos disponíveis. Através do uso de portais temos um método de aplicar
conhecimento mesmo que ainda através do esforço humano e desta maneira manter uma
adequação categorizando as páginas e seus links associados. Estes portais são, hoje, de
grande importância pois o homem ainda é o grande gestor desta ferramenta introduzindo
conhecimento à informação e ainda será por alguns anos.

Os motores de busca, são ferramentas que dão atenção especial aos metadados nas
páginas da Web, pois estes os adicionam aos seus índices em suas bases de dados. Estes
metadados são de grande importância para as mais avançadas ferramentas de buscas
como o Google, que não só avalia a ocorrência de palavras-chave em uma página, mas
também os números de links existentes para outra página na Web.

Estes mecanismos de busca se esforçam menos com relação ao seres humanos, mas ainda
estão aquém de produzir índices eficientes que facilitam a busca. Em qualquer solicitação
as estes motores de busca é retornado informações que não se relacionam com o contexto
ou ainda que simplesmente não fazem parte do significado desta informação.

Diante destes fatores, a Web necessita de uma tecnologia que possa catalogar e classificar
os seus próprios conteúdos e possibilitar assim que sejam desenvolvidos agentes de
software [04] que poderia explorar a informação nas páginas da Web. O que facilitaria o
uso da Web sem ter de depender destas ferramentas de buscas ou mesmos de portais,
7

tornando a informação adaptada à particularidade de cada usuário. Estes agentes podem


ainda aprender e responder as informações de outros agentes1 atuantes na web com a
utilização de conceitos de inteligência computacional.

1.2 Estrutura do trabalho

Este trabalho é dedicado aos desafios da WEB SEMÂNTICA, visando contextualizar os


conceitos, vantagens e aplicabilidade. Inicialmente será feita uma análise do estado atual
da web e quais as características que levarão a concretização dos objetivos pertinentes à
Web Semântica. Finalizando este trabalho teremos uma análise das ferramentas atuais
disponibilizadas bem como a realização de um estudo de caso utilizando as ferramentas
JENA e SEMANTICORE.

A estrutura deste trabalho será a seguinte:

• O capítulo 2 terá o seu desenvolvimento acerca dos conceitos da Web


Semântica, suas características e aplicabilidade. Definições e padrões de web
semântica

• O capítulo 3 tratará das propostas de ferramentas para uso na web semântica

• O capítulo 4 apresentará os principais componentes de software para a


construção de aplicações para a web semântica.

• O capítulo 5 será a respeito de um estudo de caso no qual apresentará a


utilização das ferramentas JENA, PROTÈGÈ e SEMANTICORE.

• O capítulo 6 concluirá os conceitos aplicados a este trabalho.

1
Agentes são programas autônomos que podem reagir a uma ação ou estímulos externos
8

2. Definições e padrões de web semântica

2.1. Web Semântica: Visão

A Web Semântica é uma extensão da web atual, na qual é dado à informação um


significado bem definido permitindo que computadores e pessoas trabalhem em
cooperação [01]. Dando capacidade aos computadores de interpretar e processar
informações além de manter a web organizada.

A Web Semântica, a figura 2.0 demonstra uma visão inicial, deverá fornecer uma
estrutura ao conteúdo dos recursos da web em que é atribuído à informação um
significado bem definido. Desta forma a Web Semântica será capaz de suportar serviços
automatizados baseados nessas descrições onde é mantido serviços através da utilização
de metadados processáveis por máquinas.

Atualmente a Web é voltada apenas para o consumo humano e não para o computador.
Apesar de sabemos que a web é extensa e suficientemente madura com suas informações
e recursos automatizados [05].

As informações na Web devem ser definidas de tal forma que possa ser usado por
computadores, não somente para exibi-las, mas também para permitir a
interoperabilidade e a integração entre sistemas e aplicações. Uma forma para permitir
trocas de informações automatizadas de modo que os computadores possam entender.
Este é principal objetivo da Web Semântica tornar possível o processamento das
informações na Web por computadores.

No entanto, é preciso reconhecer que o computador é, atualmente, utilizado como um


simples canal de envio de informações, e não como o consumidor da informação. Como
resultado, uma grande parte do potencial da Web ainda tem de ser desenvolvido. Este
potencial se refere a capacidade que os computadores tem de processar milhares de
informações e que está subutilizado. Contudo este potencial deve ser desenvolvido para
que os computadores possam utilizar as informações da mesma forma que os seres
humanos o fazem.

A grande vantagem dos computadores é a capacidade de processar informações


provenientes de várias páginas da Web, comparando-as em segundos. Apesar desta
9

aparente simplicidade, há um grande número de questões que devem ser abordadas se


quisermos fazer um bom uso dessas informações.

Figura 2.0: Proposta original feita por Tim Berners-Lee

A nova geração da Web combinará as atuais tecnologias da Web com a representação


formal do conhecimento [06]. O conhecimento na Web Semântica deverá ser formado e
estruturado utilizando conceitos de metadados, agentes, ontologias, Web services,
linguagens e ainda outras tecnologias que irão definitivamente formalizar o conhecimento
oferecendo desta maneira novas opções para o processamento da informação [07].

Em breve a Web Semântica utilizará dados compreensíveis e acessíveis em qualquer


lugar, tanto para as pessoas e aplicações como para as máquinas. Isto é mais uma visão do
que tecnologia propriamente dita. Algumas das visões mais representativas sobre a Web
Semântica são as seguintes [08]:
10

• Dados legíveis por máquinas: a idéia de ter dados definidos na Web e ligados
de uma forma que ele pode ser usado por máquinas não apenas para mostrar
efeitos, mas para automação, integração e reuso de dados através de várias
aplicações.

• Agentes inteligentes: o objetivo da Web Semântica é tornar a Web atual legível


para as máquinas, a fim de permitir que agentes inteligentes tenham a
capacidade de recuperar e manipular informações relacionadas.

• Banco de dados distribuídos: o conceito da Web Semântica faz para os dados


o que o HTML fez para o sistema de informação textual, proporciona
flexibilidade suficiente para ser capaz de representar todos os banco de dados e
regras lógicas para interliga-los acrescentando mais valores.

• Infra-estrutura automatizada: segundo Tim Berners-Lee2 a Web Semântica


não é uma aplicação e sim uma infra-estrutura.

• Servente à humanidade: A Web semântica é uma visão da próxima geração da


web, permitindo que as aplicações web recolham documentos automaticamente
da web a partir de diversas fontes, integrem e processem informações, e
integrando com outras aplicações, a fim de executar tarefas sofisticadas para os
seres humanos.

• Anotação melhorada: a idéia da Web Semântica é suprir a web que nós


conhecemos, com anotações expressas em uma forma que máquinas possam
processá-las e uni-las.

• Pesquisa aperfeiçoada: o principal objetivo é criar uma estrutura de índices


nos sítios na Web, tornando o acesso aos recursos na Web por conteúdo não
somente por palavras-chave.

• Web Services: a Web Semântica promete expandir os serviços da Web atual,


habilitando agentes de software a automatizar procedimentos que atualmente
são executados manualmente e por introduzir novas aplicações que hoje são
inviáveis.
2
Criador da World Wide Web e precursor da Web Semântica
11

Estas descrições são vistas como um fator-chave para encontrar uma saída para os
problemas crescentes por conta da expansão da Web, em que a maioria dos recursos web
atualmente só podem ser encontrados através de correspondências sintáticas.

2.2. Web Semântica: gerenciamento da informação

Para conhecermos os desafios do computador para consumir informação baseada na web,


podemos considerar o seguinte cenário. Suponha que estamos pesquisando da Web para
obter informações sobre uma determinada doença. Em resposta à nossa consulta, nós
encontramos uma página que contém as palavras-chave solicitadas, mas a informação
está fora da nossa compreensão. Podemos ler o documento detalhadamente, e procurar
qualquer palavra que nos é familiarizada em um dicionário.

Nós também podemos ir mais afundo, e examinar as referências apresentadas no


documento, ou ainda entrar em contato com o autor. No entanto, é provável que
venhamos a ter uma maior compreensão do conteúdo do documento logo no início da
leitura. O que nos faltará é o cenário do conhecimento que será necessário para
compreender a resposta, neste caso poderemos obter com alguns anos de estudo sobre
este cenário.

Este cenário descrito é muito semelhante à situação que encontramos quanto tentamos
processar informações em uma página da web automaticamente através de um programa
de computador. O programa poderá contar facilmente as palavras-chave, baixar arquivos
de imagens, e seguir as ligações. No entanto, o nosso programa não terá uma
compreensão do conteúdo da página, e não poderemos fazer nada com esta informação
além de um aproveitamento apenas em análises estatísticas. No entanto, as limitações
desta abordagem de pesquisa da Web são evidentes.

Uma demonstração das limitações da Web atual pode ser obtida considerando o seguinte
exemplo: na web queremos determinar a melhor hora para se marcar uma consulta
médica. Nesse caso, as informações pertinentes podem ser encontradas na Web, e
podemos definir melhor fazendo comparações analíticas de qual o horário podemos
dispor.
12

Contudo, se não houver uma aplicação que seja capaz de realizar tal procedimento, o
computador será capaz de nos fornecer o resultado desejado. Pois as palavras-chave não
serão úteis, com exceção da possibilidade de encontrar uma grande lista de sites que
contenham as informações relacionadas à pesquisa efetuada. O computador não pode
analisar o horário possível da consulta com a agenda do usuário interessado nesta
pesquisa, uma vez que não tem conhecimento da informação encontrada na web. É
devido a esta falta de compreensão que o computador não é capaz de realizar qualquer
tipo de inferência automática com esta informação.

A questão fundamental está relacionada com o clássico problema da informação versus


conhecimento. O que existe na Web na atualidade é a informação, essencialmente uma
grande coleção de fatos. Para fazer uso desta informação, precisamos analisar esses fatos
nos mais amplos contextos do conhecimento. Por isso, entende-se que a informação deve
interpretar conceitos, como verdades, perspectivas, raciocínio, metodologias, e
conhecimento. A Web atualmente é focada somente na utilização dos usuários que
inferem nas informações conhecimento para fazer uso destas informações [09].

Estes problemas são fatores motivadores da Web Semântica que fará uma associação do
conhecimento à informação e então abrirá as portas para a construção de uma nova classe
de aplicações Web inteligentes. Vários autores têm delineado os seus conceitos sobre a
Web semântica e as aplicações que será possível criar e utilizar nesta nova web. Como
exemplo terá aplicações que farão pesquisas inteligentes, mineração de dados
automatizada, sistemas de e-learning, dispositivos inteligentes dentre outras aplicações.
Estes exemplos fornecem uma idéia do poder e flexibilidade de associar semântica ao
conhecimento com a informação existente na Web atual.

2.3. Por que precisamos?

A Web foi concebida, inicialmente, por Tim Berners-Lee visando disponibilizar


conteúdos publicados para consumo por seus usuários. O processo evolutivo da Web tem
permitido que conteúdos sejam utilizados por aplicações, com intensa troca de
informações. Esta troca tem dependido, em grande parte, dos usuários de modo que esta
interoperabilidade entre essas aplicações.
13

A proposta da Web Semântica é buscar diminuir ou extinguir essa dependência,


aumentando a importância dos descritores associados aos recursos disponíveis,
permitindo automatizar a colaboração entre aplicações e entre as aplicações e os usuários.
Na Web atual os documentos são apenas interligados entre si, tornando o usuário
responsável por interpretar a natureza destas ligações, para a Web Semântica estas
ligações serão semanticamente interligadas dando suporte às aplicações em suas
interações.

A Web Semântica não é somente para a Web3, ela representa um conjunto de tecnologias
que irão funcionar da mesma forma em ambientes internos das corporações em suas
intranets. Isto é correlacionado aos Web Services que não somente atuam na Web como
também internamente nas empresas. Desta forma a Web Semântica irá resolver vários
problemas que as tecnologias atuais não atendem.

A sobrecarga de informação é um dos problemas mais evidentes para serem resolvidos


somados ao grande problema das informações ficarem retidas nas tecnologias geradoras
não podendo ser compartilhada por outros sistemas ou organizações.

A Web Semântica representa a evolução da Web atual. Ela visa fornecer estruturas e dar
significado semântico ao conteúdo das páginas web, criando um ambiente onde agentes
de software e usuários possam trabalhar de forma cooperativa [01]. A próxima sessão
trata de agentes de software e sua importância para a Web Semântica.

2.4. Agentes de Software

A Web Semântica é uma visão: é a idéia de se ter dados na Web bem definidos e
interligados de uma maneira tal que possam ser usados por máquinas não só com o
objetivo de apresentação, mas para automação, integração e reutilização dos dados entre
aplicações [10].

A visão da Web Semântica nos dá a noção de que os agentes primários são consumidores
do conhecimento. Estes agentes são programas que irão coletar conteúdo da Web de
diversas fontes, processarem as informações, bem como transacionar os resultados com

3
World Wide Web (WWW)
14

outros agentes. Agentes não são apenas programas com contexto arbitrários, são
programas com autonomia e comportamento racional que interagem uns com os outros
[11]. Esses comportamentos são necessários para o tipo de sistemas dinâmico que
queremos construir. Neste caso, poderemos definir agentes que podem sair para a Web e
executar tarefas como marcar consultas, verificar tempo, consultar produtos e etc. sem
que haja intervenções diretas em suas atividades.

Na Web Semântica, agentes de software são usados como entidades capazes de consumir
automaticamente conteúdos publicados. Assim, a Web Semântica pode ser vista como um
sistema multiagentes4 global formado pela relação de um grande número de sociedades
de agentes [12]. Atividades como a descoberta de recursos é desenvolvida não só por
usuários, mas, por meios automatizados como agentes de software.

2.5. Representação do conhecimento na Web

O conhecimento é chave para aproveitarmos o potencial das informações disponibilizadas


na web [13]. Com uma representação condizente deste conhecimento, podemos realizar
inferência sobre a informação, e, desta forma, poder obter novos conhecimentos. No
entanto, antes de se fazer quaisquer tipos de inferência, têm de considerar como é que
este conhecimento pode ser representado, de forma que ele possa ser processado e
compartilhado automaticamente. É necessário adotar determinadas convenções que
podem ser consistentemente interpretadas tanto pelo idealizador quando pelo cliente do
conhecimento.

A Web Semântica depende da habilidade de associar conhecimento formal ao conteúdo.


O campo da representação do conhecimento fornece um bom ponto de partida para a
concepção das linguagens da Web Semântica porque oferece raciocínio sobre a
concepção e utilização das linguagens que tentam formalizar o significado semântico das
informações. Contudo, a Web atual tem muitos desafios, pois a representação do
conhecimento é muito trabalhosa e nos obriga a ver os problemas sob uma nova

4
Sistema multiagentes é uma arquitetura de agentes de software que fornece uma infraestrutura adequada
para o desenvolvimento de agentes.
15

perspectiva [14]. O impacto de algumas das mais importantes características da Web é


discutido em seguida:

• A Web é distribuida: um dos fatores que levam a proliferação da Web é o fato


de não ter uma autoridade centralizada. No entanto, uma vez que a Web é um
produto composto por vários indivíduos, a falta de controle centralizado
apresenta muitos desafios para dar significado às suas informações. Um agente
de software simplesmente não pode assumir que todas as informações que ele
coleta estão corretas, coerentes e consistentes.

• A Web é dinâmica: a Web muda rapidamente, muito mais rápido que um


usuário possa assimilar ou agente inteligente na Web possa acompanhar.
Enquanto novas páginas são adicionadas, os conteúdos das páginas existentes
estão mudando. Algumas páginas são estáticas, outras dinâmicas. Estas
mudanças podem ter vários significados embora não mude de fato o conteúdo
semântico de um documento como, por exemplo, pontuação e ortografia, mas
algumas alterações podem mudar completamente o significado, ou mesmo
eliminar grandes quantidades de informação. Um agente na Web deve assumir
que seus dados podem muitas vezes ser invalidados. O ritmo acelerado das
mudanças das informações na Web representa um desafio a mais para qualquer
tentativa de criar vocabulários padrão e fornecer semântica formal. Como o
entendimento de um dado domínio muda, tanto o vocabulário quanto a
semântica podem ser refinados. É importante que tais modificações não alterem
negativamente os significados de conteúdo existentes.

• A Web é abrangente: a web já ultrapassou os 100 milhões de sites em


funcionamento segundo a NetCraft5. Diante disso, mesmo que cada página
contenha um único agente inteligente colhendo conhecimento o acumulo de
informações seria grande o suficiente para se implementar conhecimento
semântico ao sistema.

2.6. Visão e Arquitetura


5
http://news.netcraft.com/archives/web_server_survey.html
16

Para criar a Web como está disponível atualmente, Tim Berners-Lee pesquisou e
desenvolveu tecnologias de hipertexto e construiu um sistema simples que era fácil de
entender, usar e de manter. Esta simplificação tornou-se um fator importante para o
rápido crescimento da Web. Apesar deste sucesso, as realidades da gestão da informação
são elucidativas alguns problemas de simplificação. Embora a Web continue a ser útil
para recuperar a informação a partir de páginas, portais ou organizações, é muito mais
difícil de usar se quisermos ganhar um amplo entendimento de um determinado assunto.
A Web Semântica identifica um conjunto de tecnologias, ferramentas, e padrões que
formam blocos de construções básicos de uma infra-estrutura para suportar a visão da
Web associada com significado. A arquitetura da Web Semântica é composta de uma série
de padrões organizados dentro de uma determinada estrutura que é uma expressão de
inter-relacionamentos. Esta arquitetura é frequentemente representada usando um
diagrama que primeiramente foi proposto por Tim Berners-Lee [Berners-Lee, Hendler et
al., 2001]. A figura 2.0 ilustra as diferentes partes de uma arquitetura para a Web
Semântica. Sua base é formada por URIs and Unicode. No topo que onde podemos
encontrar uma camada de interoperabilidade sintática na forma de XML [15], que se
segue das camadas formadas por RDF [16] e RDF Schema (RDFS) [17]. Linguagens
ontológicas para Web são construídas em cima da RDF(S). As três últimas camadas são
Lógica, Prova e Confiança, que ainda estão sendo pesquisadas. Algumas dessas camadas
contam com um componente de assinatura digital para garantir a segurança.

Nas seções seguintes serão descritos as camadas restantes desta estrutura arquitetural.
Embora estes conceitos apresentados foram simplificados, eles oferecem conceitos sobre
os diversos diversas componentes da Web semântica.
17

Figura 2.0: arquitetura da Web semântica

2.6.1.As Camadas da Web Semântica

A W3C definiu uma arquitetura para padronizar o desenvolvimento da Web Semântica e


estas camadas desempenham funções que interagem umas com as outras. Com a
finalidade de alinhar as comunidades científicas que estão envolvidas no progresso da
Web, a W3C liderada por Tim Bernes-Lee projetou esta arquitetura e definiu as camadas
da seguinte maneira:

Xml – eXtensible Markup Language. Uma linguagem framework que é usada para
definir usada para definir quase todas as novas linguagens que são usadas para trocar
dados na Web.

Xml-Schema - Uma linguagem usada para definir a estrutura de linguagens XML

RDF - Resource Description Framework. Uma linguagem flexível capaz de descrever


todo tipo de informações e metadados.

RDF-Schema – Um framework que proporciona um meio para especificar vocabulários


básicos para aplicações específicas RDF.

Ontologia – Como descrito em seções anteriores, são linguagens usadas para definir
vocabulários e estabelecer o uso de palavras e termos no contexto de um vocabulário
18

específico. RDF-Schema é um framework para construção de ontologias e é usado por


frameworks de ontologias muito mais avançados. OWL é uma linguagem de ontologia
projetada para a Web Semântica.

Lógica e Provas – Raciocínio lógico é usado para estabelecer a consistência e correção


de conjuntos de dados e inferir conclusões que não são explicitamente declarados, mas
são requeridos pela consistência ou com um conjunto de dados conhecidos.

Confiança – Um meio de fornecer autenticação de identidade e evidenciar a


confiabilidade dos dados, serviços e agentes.

Cada camada é vista como a base para a camada superior. Na camada base, a maioria dos
dados é criada no formato XML. Cada camada é progressivamente mais especializada e
também tendem a serem mais complexos que a camadas abaixo dela. Assim as camadas
podem ser desenvolvidas e se tornarem relativamente independentes operacionalmente e
garantir a interoperabilidade sintática.

As outras camadas ainda estão em desenvolvimento, e suas formas e direção são incertas
conforme subimos nos degraus desta arquitetura.

Na Web do futuro, muitas camadas adicionais serão necessárias se quisermos que


programas de computadores tratem a propriedade semântica das informações sem a
intervenção humana.

2.7. Padrões

2.7.1.URI – Universal Resource Identifier

URI – Identificador de Recursos Universal - é um formato que serve como um meio de


identificação abstrata ou física de um recurso na Web. Um URI ainda pode ser
classificado com um localizador, um nome ou ambos. Uniform Resource Locator (URL)
refere-se a um sub-conjunto de URI que identifica recursos através de uma representação
dos seus principais mecanismos de acessos. Um Uniform Resource Name (URN) refere-
19

se ao subconjunto de URI que é requerida para manterem-se globalmente únicos e


persistência quando os recursos deixar de existir ou se tornar indisponíveis. Por exemplo:

• A URL http://www.pucrs.br/index.htm identifica a localização de onde a página Web


pode ser recuperada.

URIs identificam recursos e portanto são importantes para a Web Semântica, usando uma
convenção mundial de nomes, porém arbitrária a sintaxe, fornece efeitos a rede global
que impulsionam os benefícios da Web. URIs tem um escopo global e são
consistentemente interpretados através de contextos. Associando uma URI com um
recurso significa que qualquer recurso pode criar link, referência ou retornar uma
representação dele mesmo.

De acordo com os objetivos da Web Semântica, queremos dar significado aos


relacionamentos, a URI fornece a base para as relações e sustentam a Web Semântica
permitindo que as máquinas processem os dados diretamente. Desta forma a Web
Semântica desloca a ênfase dos documentos para os dados. Uma grande motivação da
Web Semântica vem do fato de banco de dados relacionais terem seus dados bloqueados,
para que estes valores possam ser liberados, os objetos do banco de dados devem ser
exportados para a Web como objetos de primeira-classe e, assim, serem mapeados para
um sistema de URIs.

2.7.2.XML e XML Schema

Um componente sintático da Web Semântica é a linguagem de marcação que permite a


distinção entre a representação do conteúdo e os metadados que definem como interpretá-
los e processá-los.

Por diversas razões, a escolha atual da linguagem de marcação é a XML, porque, entre
outros motivos ela atende à dois requisitos de auto-definição e descrição de documentos
extensíveis. O XML é o elemento fundamental para a Web Semântica.

Para disponibilizar um formato de metadados capaz de trabalhar na web foi proposto o


XML (Extensible Markup Language). Conforme o W3C o XML é um modelo simples,
com um formato de texto muito flexível derivado do Standard Generalized Markup
20

Language (SGML). É capaz de armazenar dados em unidades chamadas de entidades,


formando um documento com as informações armazenadas de forma comparada a uma
classe de dados, entretanto no XML não há declarações sobre o tipo dos dados
armazenados nem suas relações.

2.7.3.Dublin Core – DC

O Dublin Core [35] é um conjunto de metadados cujo objetivo é facilitar a descoberta de


recursos eletrônicos com 15 elementos – qualifiers - e foi originalmente desenvolvimento
para a melhoria dos recursos de pesquisa na Web transmitindo uma compreensão
semântica comum do elemento. Neste intuito, os elementos do DC foram principalmente
destinados para descrever documentos baseado na Web. Exemplos de metadados do
Dublin Core incluem:

1. Titulo (title): o título do recurso.

2. Assunto (subject): palavras-chave simples ou termos apartir de uma lista de


assuntos.

3. Descrição (description): uma descrição ou abstração.

4. Criador (creator): a pessoa ou organização principal responsável pelo conteúdo


intelectual do recurso.

5. Editor (publisher): o editor.

6. Contribuinte (contributor): um contribuinte secundário para o conteúdo


intelectual do recurso.

7. Data (date): uma data associada com a criação ou disponibilidade do recurso.

8. Tipo (type): a categoria do recurso, com a home page, relatório técnico, ensaio ou
dicionário.

9. Formato (format): o formato dos dados e opcionalmente como tamanho e duração


do recurso. [Breitman03], manifestação física do objeto. Exemplos são arquivos
executáveis, do tipo texto ou PDF.
21

10. Identificador (identifier): um string ou número usados como identificador único


do recurso. Exemplos para recursos na web incluem URL’s. Um outro exemplo é
o ISBN para identificação de livros

11. Origem (source): informação sobre um segundo recurso a partir do qual o


presente recurso é derivado

12. Linguagem (language): a linguagem do conteúdo intelectual do recurso

13. Relação (relation): um identificador de um segundo recurso e seu relacionamento


com o recurso atual

14. Cobertura (coverage): características temporais e espaciais do conteúdo


intelectual do recurso

15. Direitos (rights): informação sobre os direitos do objeto

Seis destes elementos são comuns à todos elementos Dublin Core, estes conjunto define
os elementos para o conteúdo (cobertura, descrição, tipo, relação, origem, e titulo) de um
documento. Há também elementos que descreve os direitos de propriedades intelectuais
(editor, criador, contribuinte, e direitos autorais) e instanciações concretas (data, formato,
identificador e linguagem).

Na figura 2.1 é exemplificado um cenário mais real e completo usando metadados DC. E
pode-se observar que mais de um par de valores predicado que pode ser indicado para um
recurso. Basicamente, ela expressa que o recurso “http://www.pucrs.br/~joao” tem o
título “Página na Web de João Silva,” e o assunto é “Home Page,” e foi criado por “João
Silva.”

<? xml version=” .0” ?>


<RDF xmlns = “http://w .org/TR/ 999/PR-rdf-syntax- 9990 0 #”
xmlns:DC = “ http://dublincore.org/ 00 /0 / / dces#”>
<Description about = “http://www.pucrs.br/~joao” >
<DC:Title> Página na Web de João Silva </DC:Title>
<DC:Creator> João Silva </DC:Creator>
<DC:Date> 2007-11-30 </DC:Date>
</Description>
</RDF>

Figura 2.1 – Exemplo de código RDF usando DC


22

O gráfico representando a figura 2.2 é expresso em RDF usando o namespace DC com as


seguintes sentenças:

Figura 2.2 – Gráfico representando um sentença RDF

O Dublin-Core foi projetado para ser simples e, para facilitar o uso pelos criadores e
mantenedores de documentos web, descritivo o suficiente para auxiliar na recuperação de
recursos na Internet.

2.7.4.Framework Warwick

O Framework Warwick [36], ilustrado na figura 2.4, foi desenvolvido com a realização
de workshops um ano depois da concepção do padrão Dublin Core, este framework foi
proposto com base nos resultados a fim de promover uma maior interoperabilidade entre
os fornecedores de conteúdo, catálogos e indexadores, e descoberta automática de
recursos e sistemas de descrição. Este padrão surgiu da necessidade de ampliar o Dublin
Core, considerado muito simples, pois só disponibiliza um formato para descrição de
recursos [37], como descrito na seção anterior.

O resultado do Warwick Workshop6 é uma arquitetura conteiner, conhecido como


Framework de Warwick. O framework é um mecanismo que agregação logicamente, e
talvez fisicamente, pacotes distintos de metadados. Esta é a modularização de metadados
6
Realizado em abril de 1996 – Metadata II Workshop in Warwick U.K.
23

em questão, com um aumento de novos elementos [37], que foram adicionadas ao Dublin
Core:

• Descrições específicas do domínio do documento (objeto)

• Termos e condições de uso do documento

• Rótulos e gradação do documento

• Informações de segurança, autenticidade, assinaturas

• Origem do fornecedor

• Conjunto de containers para documentos compostos e ponteiros para todas as


manifestações, instâncias ou versões do documento

• Responsável por armazenar o documento, além do, conjunto de descritores do


Dublin Core

Alguns problemas são evidentes, apesar da arquitetura ser bem definida, existe uma
dependência de sintaxe, cada um dos pacotes pode utilizar uma sintaxe diferente. Apesar
de aumentar a flexibilidade do modelo, não garante que dois pacotes poderão trocar
dados entre si. Também não há garantia de que dois conjuntos de metadados possam
estar utilizando um conceito com significados diferentes ou dois conceitos com um
mesmo significado. Diante destes problemas foi definido um novo padrão, o RDF, o qual
substitui o padrão Warwick que não foi aceito pela comunidade.
24

Figura 2.4: Framework de Warwick

2.7.5.RDF – Resource Description Framework

O RDF é uma linguagem para a representação de informações na Web. Trata-se de uma


especificação de framework comum para expressar documentos de metadados, ou seja, o
significado dos termos e conceitos utilizados para descrever recursos na Web, de uma
forma que os computadores possam processar. O objetivo do RDF é fornecer uma
codificação e um mecanismo de interpretação, a fim de que recursos possam ser descritos
de uma forma que um software específico possa entendê-lo. RDF é a principal tecnologia
para a Web Semântica. Além disso, as maiorias das representações de alto nível
dependem ou derivam do modelo RDF para expressar relações e definição de recursos.

RDF normalmente utiliza XML na sua sintaxe e URIs para especificar entidades,
conceitos, propriedades e relações. O modelo se baseia na idéia de fazer declarações
sobre recursos sob a forma de um sujeito - predicado - objeto expressão conhecida como
tripla. Essencialmente, o sujeito é o recurso a ser descrito, o predicado é a descrição do
recurso ou aspecto que está sendo descritos, bem como o objeto é o valor desta descrição.

O RDF foi projetado para ter as seguintes características [18]:

• Independência: qualquer organização independente (ou pessoa) pode inventar


uma propriedade que possam ser devidamente referenciadas e interpretadas por
outros como um recurso.

• Intercâmbio: que é obtida pela conversão em XML, a nova língua franca de troca
de informações na Web.

• Escalabilidade: registros em três partes (Recurso, Propriedade, valor), são fáceis


de manusear e servir de referência para outros objetos.

• Recursos são propriedades: o que significa que eles podem ter suas próprias
propriedades e podem ser encontrados e manipulados como qualquer outro
recurso.
25

• Os valores podem ser Recursos: o que significa que pode ser referenciado da
mesma forma que as Propriedades, têm as suas próprias propriedades, e assim por
diante.

• As declarações podem ser Recursos: que lhes permite ter Propriedades


essenciais se quisermos ser capazes de fazer pesquisas baseadas em outros
metadados e avaliar corretamente as afirmações feitas.

A estrutura de descrição de recursos RDF é composta por três tipos de objetos: recursos,
propriedades e triplas. Um recurso é o que será descrito por uma expressão RDF. Todo
recurso é identificado por URI7. Uma propriedade é qualquer característica utilizada para
descrever um recurso. A representação do conhecimento como triplas, e a construção de
redes semânticas dessas triplas são os principais conceitos em RDF. É importante
entender que existem três visões equivalentes de uma tripla em RDF, são elas:

1. A tripla refere-se a um recurso para a propriedade

2. A tripla define uma sentença com um sujeito, objeto e predicado.

3. A tripla representa uma aresta dirigida e um par de nós em um gráfico.

Cada uma destas visões tem um propósito distinto, a primeira visão é como nós
representamos triplas dentro do framework RDF, A segunda visão é como nós
construímos triplas de uma linguagem natural e a terceira é como uma tripla individual
refere-se a outras triplas em uma coleção definindo como estas triplas podem ser
combinadas em uma rede.

Um domínio de conhecimento em RDF é definido através de RDF Schema (RDFS).


Portanto, é no RDFS que se define a semântica e as características de uma propriedade.

Uma tripla é formada por um recurso, uma propriedade e um valor para a propriedade de
um recurso. A estrutura da tripla possui as seguintes características <sujeito, predicado,
objeto>. Pode-se entender que o significado de uma tripla seja resumido como: “o recurso
(sujeito), que possui a propriedade (predicado) com determinado valor (objeto)”.

7
Uniform Resource Identifier, incluindo também o Uniform Resource Locator - URL
26

Como exemplo de sentenças RDF tem-se: João Silva é o dono da página


http://www.inf.pucrs.br/~joao poderia representado pela seguinte tripla: (“João Silva”,
http://www.owner.com/taxionomy/dono, http://www.inf.pucrs.br/~joao). A representação
desta tripla por grafos seria como é ilustrado na figura 2.5

Figura 2.5: Declaração RDF

2.8. Ontologias

O uso de ontologias aborda a questão de como representar o conhecimento


na Web para que possa ser entendido por um computador [19]. Trata-se de uma condição
necessária no tratamento automatizado da informação na Web. A questão é como
podemos usar esse conhecimento eficazmente? Para responder a esta questão, devemos ir
além da representação, e considerar as tecnologias e aplicativos que serão utilizados para
reconhecermos os benefícios da Web Semântica. Ontologias são tentativas para definir
com mais cuidado partes dos dados e permitir que as interações entre dados sejam
realizadas entre diferentes formatos.

Ontologias são similares a taxonomias, mas usa relacionamentos semânticos mais ricos
entre os termos e atributos, bem como as regras mais estritas sobre como especificar
termos e relacionamentos. Elas têm sido geralmente associadas à inferência lógica e
recentemente começaram a ser aplicadas à Web Semântica.

Ontologias consistem na definição dos aspectos como um esquema de alto nível e


aspectos de asserções como entidades, atributos, inter-relacionamentos entre entidades,
vocabulário de domínio e conhecimento baseado em fatos, todos conectados em uma
maneira semântica [20].
27

Ontologias fornecem um entendimento comum de um domínio. Elas permitem que


pessoas, organizações e sistemas de aplicações se comuniquem. Fornecendo ferramentas
específicas para organizar e fornecer uma descrição completa de conteúdos heterogêneos.
Além do relacionamento estrutural hierárquico típico das taxonomias, as ontologias
permitem cruzar nó de relações horizontais entre as entidades, facilitando, assim, modelar
requisitos de informações do mundo real. [21] identificaram três ontologias mais
utilizadas:

1. para ajudar na comunicação entre seres humanos

2. para alcançar interoperabilidade entre sistemas de software

3. para melhorar o projeto e a qualidade de sistemas de softwares

Uma ontologia é tecnicamente uma modelo que se parece muito com modelos de
programação orientada a objetos que consiste de classes, heranças e propriedades [22].

2.8.1.A função das ontologias

Ontologias são elementos importantes para a Web Semântica, pois concebem as máquinas
a capacidade de compreensão e foram desenvolvidas pela inteligência artificial para
facilitar o compartilhamento e a reutilização do conhecimento. Desde o início de 1990, as
ontologias tornaram-se popular entre os pesquisadores sendo objetivos de estudos por
várias comunidades de inteligência artificial, incluindo o processamento lingüístico e a
representação do conhecimento. Recentemente, o uso de ontologias expandiu-se para
outros domínios como, por exemplo, a integração inteligente da informação, sistemas de
informação cooperativos, recuperação de informação, comércio eletrônico, gestão do
conhecimento e Web Semântica. A razão da ontologia de estar se tornando popular é, em
grande parte, devido aos seguintes fatores: uma compreensão comum e compartilhada de
um domínio que pode ser entre pessoas e sistemas de aplicação. O uso de ontologias e
ferramentas de apoio oferece uma oportunidade para melhorar significativamente a
gestão dos conhecimentos e capacidades em grandes organizações. A arquitetura da Web
Semântica baseia-se na gestão conhecimento e num conjunto de ferramentas inovadoras
para o tratamento semântico das informações.
28

2.8.2.Uma arquitetura da Web Semântica baseada na Ontologia

A figura 2.1 mostra a arquitetura da Web Semântica baseada na gestão do conhecimento.


A arquitetura aborda todas as grandes etapas da construção do ciclo de vida do
gerenciamento do conhecimento.

Figura 2.1 – Arquitetura da gestão de conhecimento

Dada a grande quantidade de informações não estruturadas e semi-estruturadas existentes


nas organizações a extração automática de conhecimento em dados não estruturados e
semi-estruturados em repositórios de dados externos é necessária e isso é mostrado na
camada inferior do diagrama [23].

2.8.3.Reuso de ontologias
29

Ontologias são desenvolvidas com a finalidade de reutilização e compartilhamento do


conhecimento e a reutilização está diretamente relacionada com a generalização. O
escopo desejado da reutilização é uma decisão muito importante que tem de ser tomada
antes de projetar uma ontologia. Embora conceitos genéricos sejam, em geral, mais
reutilizáveis, a reutilização de conceitos genéricos para aplicações específicas pode
incluir, em certos casos, um grande esforço no sentido de traduzir os conceitos genéricos
em conceitos.

Este esforço tem de ser considerado durante a concepção de uma ontologia, e comparado
com o esforço de reutilização, por exemplo, uma ontologia é construída a partir de
conceitos específicos pertencentes às respectivas aplicações. Para a Web Semântica que
se pretende conceber torna-se essencial a reutilização de ontologias existentes.

2.8.4.Ontologia e Web Semântica

Ontologias têm demonstrado ser a melhor resposta para estes problemas de estruturação e
modelagem fornecendo uma conceitualização formal de um domínio específico que é
compartilhado por um grupo de pessoas. Assim, no contexto da Web Semântica,
ontologias descrevem domínios para a representação simbólica da semântica dos dados. A
Web Semântica baseia-se nestas formalidades ontológicas que disponibilizam estruturas
subjacentes permitindo a compreensão dos dados. Embora ferramentas com mecanismos
de ontologias tenham evoluído, a construção manual de ontologias ainda requer muito
trabalho.

2.9. Linguagens

2.9.1.OWL - Web Ontology Language

A W3C viu a necessidade de uma linguagem para facilitar a legibilidade dos conteúdos
da WEB que eram suportados apenas por XML, RDF, e RDF Schema. A OWL foi
projetada para este propósito pela W3C Web Ontology Working Group. E a motivação
são, claramente, a seguinte:
30

Onde linguagens anteriores foram usadas para desenvolver ferras e ontologias para
usuários de comunidades específicas, especificamente nas científicas e em aplicações de
e-commerce específicos, que não foram definidas para ser compatível com a arquitetura
da Web e Web Semântica particularmente [LEUF 02].

OWL é uma linguagem de marcação semântica para publicação e compartilhamento


ontologias na Web, usando notação URI e tecnologia RDF, adequada para aplicações que
necessitam de processar o conteúdo da informação, em vez de apenas apresentar
informações para os seres humanos.

Semântica formal padronizada e vocabulário suplementar permitem a OWL representar


explicitamente descrições de termos e as relações entre as entidades. Ela implementa uma
linguagem rica para descrever as classes e as relações entre elas, que são inerentes a
documentos e aplicações Web.

A intenção da OWL é permitir que desenvolvedores publiquem e compartilhem conjuntos


de termos (ontologias específicas) na Web de forma consistente. Publicando ontologias
com um modelo de estruturas consistentes pode, então, ser alçada para fornecer pesquisa
avançada na Web, agentes de software e gerenciamento de conhecimento. As principais
características de projetos em OWL são [LEUF 03]:

• Habilidade para ser distribuida através de vários sistemas

• Escalabilidade para as necessidades da Web

• Compatibilidade com os padrões da Web para acessibilidade e internacionalização

• Abertura e extensibilidade

OWL tem mais facilidade para expressar significado e semântica do que XML, RDF e
RDFS e mais, OWL vai além dessas linguagens na habilidade de representar conteúdos
interpretados por máquinas na web. OWL adiciona mais vocabulário para descrever
propriedades e classes: relações entre classes, cardinalidade, igualdade, mais riqueza na
descrição de propriedade, características de propriedades e classes enumeradas. A OWL é
dividido em três sub-linguagens:
31

1. OWL Lite – permite definir uma ontologia de classes e propriedades e as


instâncias dessas classes e propriedades, por exemplo, a cardinalidade máxima ou
mínima assume apenas os valores 0 ou 1. OWL Lite provê uma rápida migração
de tesauros e taxonomias.

2. OWL DL - (Description Logic ou Lógica de Descrição) estende a OWL Lite


permitindo restrições de cardinalidade que não são limitadas em 0 ou 1. Também
define classes baseadas em valores específicos de propriedades usando
constructos como hasValue, class expression usando combinações booleanas
como unionOf, intersectionOf e complementOf.

3. OWL Full – estende OWL DL, é a OWL completa. Permitindo que classes sejam
tratadas simultaneamente como coleções e instâncias. OWL Full permite uma
ontologia aumentar o significado de vocabulários pré-definidos em RDF ou
OWL.

Cada uma destas sub-linguagens é uma extensão da sua precedente. As linguagens menos
expressivas (OWL Lite) está contida nas mais expressivas (OWL DL e Full), de maneira
que uma ontologia definida numa linguagem menos expressiva é aceita por uma
linguagem mais expressiva: a recíproca não é verdadeira.

2.9.2.OIL – Ontology Inference Layer

O OIL é uma linguagem de representação e inferência para ontologias na WEB. Sendo


um formalismo baseado na RDFS o amplia usando descrição lógicas, conceitos e regras,
linguagens frames – propriedades são classes secundárias de entidades declaradas dentro
da definição de uma classe [40].

OIL apresenta uma abordagem em camadas para a linguagem de ontologia padrão. Cada
camada acrescenta funcionalidades e complexidade para a camada anterior. Isto é feito de
forma que agentes (pessoas ou máquinas), que possam somente processar a camada
inferior e ainda entender parcialmente as ontologias que são expressas em qualquer uma
das camadas superiores.

As diferentes camadas, conforme a figura 2.5, são:


32

• Core OIL: esta camada coincide em grande parte com o RDF Schema, isto
significa que mesmo um simples agente RDF Schema são capazes de processar
ontologias OIL, e extrair o máximo de seu significado possível.

• Standard OIL: é uma linguagem destinada a capturar os principais modelos


primitivos para a descrição de uma ontologia.

• Instance OIL: é a integração de elementos com base em baanco de dados. Esta


camada tem o mesmo esquema do Standard OIL, mas apresenta descrição com
RDF.

• Heavy OIL: irá incluir capacidades representacionais adicionais e raciocínio.

Figura 2.5: Camadas da OIL – fonte: Towards the Semantic Web

2.9.3.DAML+OIL – Darpa Agent Markup Language + OIL

A DAML+OIL é similar, e sucessor, do OIL em diversos aspectos, mas está bem


integrada com o RDFS que prevê apenas a especificação da linguagem e a sua única
serialização. Enquanto a dependência do RDFS tem algumas vantagens quanto ao reuso
da infra-estrutura de RDFS existente e a portabilidade das ontologias DAML+OIL,
usando RDFS para definir completamente a estrutura do DAML+OIL é muito difícil
porque, ao contrário do XML, RDFS não foi projetado especificar precisamente a
33

estrutura sintática. A dependência da DAML+OIL ao RDFS têm também conseqüências


para decidibilidade da linguagem. Por exemplo, não há uma maneira de RDFS afirmar
que uma restrição deve ser composta exatamente de uma propriedade e uma classe. A
solução adotada pela DAML+OIL para este problema é definir as semânticas da
linguagem, de tal forma que eles dão significado para quaisquer ontologias ou partes dela
que estão em conformidade com a especificação RDFS [24].
34

3. Propostas de ferramentas para uso na Web Semântica

3.1. SHOE

Todas as características e potencial da Web Semântica são demonstrados por esta


ferramenta, um protótipo de linguagem ontológica para Web. SHOE é usado para
desenvolver ontologias extensíveis compartilhadas e criar tipos de assertions que
confirmam determinadas ontologias [25].

SHOE combina linguagens de marcação, representação do conhecimento, datalogs e


ontologias numa tentativa de resolver os problemas exclusivos da semântica na Web.
Suporta aquisição de conhecimento pela Web com a ajuda de tags que fornecem
significado semântico. A estrutura básica consiste de ontologias, que definem as regras
que levam a tipos de afirmações (assertions) que podem ser feitas e que tipos de
conclusões podem ser tiradas a partir destas afirmações, bem como as que fazem
afirmações baseadas nestas regras.

Algumas características da linguagem SHOE que a fazem eliminar a possibilidade as


contradições entre afirmações de agentes, são listadas a seguir as quatros maneiras:

1. SHOE somente permite afirmações, não retração.

2. SHOE não permite negação lógica

3. SHOE não permite relações para especificar a cardinalidade e , assim, limitar


a quantidade de relações de um determinado tipo poder ser por uma única
instância.

4. SHOE não permite a especificação de classes disjuntas.

Claramente, estas restrições expressam a força desta linguagem. Poderíamos argumentar


que sem esses recursos agentes não podem reconhecer quando recursos são
intrinsicamente incompatíveis e nunca devem ser combinados [25]. SHOE usa ontologia
para definir elementos válidos que podem ser usados para descrever entidades. Cada
ontologia pode reusar outras ontologias como extensão delas.
35

A figura 3.0 mostra exemplos, um arquivo, de ontologias SHOE. Este arquivo inclui tags
que identificam a ontologia, estado de cada ontologia são extensíveis e definem vários
elementos da ontologia.

Figura 3.0: um exemplo de ontologia, fonte: Spinning the Semantic Web – MIT Press, 2002

3.2. OWL-S

OWL-S [26] é baseado em OWL especifica uma ontologia para Web Services, que
fornece serviços Web com um conjunto de linguagens de marcação para descrever as
36

propriedades e capacidades dos seus serviços em uma Web não ambígua. Define também
uma ontologia OWL de serviços que permite que os usuários e agentes de software
ajudem a automatizar os processos de descoberta, invocação, composição, e monitorar
recursos na Web que oferece determinados serviços e tenha determinadas propriedades.

O tipo de serviço fornecido pelo OWL-S é um serviço de ontologia para classificação de


conhecimento, utilizando o OWL padrão. O OWL-S define quatro conceitos de nível
superior (figura 3.1). Um serviço é classificado pela ontologia em três categorias
principais: o perfil (profile), o modelo (model) e a base (grounding). O perfil descreve o
que o serviço faz, a fim de anunciar o serviço. O modelo detalha o funcionamento do
serviço para que se possa realizar composição. O serviço base especifica a forma de
acesso ao serviço de forma que a invocação possa ser realizada. Há duas restrições
associadas as esses conceitos. Um serviço pode ser descrito, por no máximo um modelo
e um único serviço base é necessário para cada serviço. Nenhuma dessas restrições é
colocada no perfil. Um serviço, neste caso, pode ser descritos por vários perfis, que
adapta o serviço a determinadas aplicações.

Figura 3.1: OWL-S, ontologias de nível superior

3.3. OntoEdit

Trata-se de um ambiente de engenharia ontológica, que permite criar, mostrar, manter e


gerenciar ontologias. O ambiente suporta o desenvolvimento colaborativo de ontologias
37

[27]. Isto é conseguido através da arquitetura cliente/servidor onde ontologias são


gerenciadas em um servidor central e vários clientes podem acessar e modificar estas
ontologias. O OntoEdit foi desenvolvido para atingir dois objetivos, primeiro o editor foi
criado para ser independente e neutro de uma linguagem representação, segundo esta
ferramenta foi projetada para fornecer uma interface gráfica poderosa para representar
conceitos de hierarquias, relações, domínios, instâncias e axiomas, suportando RDF
Schema, OIL e lógica fuzzy (F-Logic). A arquitetura do OntoEdit é dividida em três
camadas, conforme a figura 3.2

Figura 3.2 – Arquitetura Ontoedit

O OntoEdit suporta explicitamente a metodologia OTK. O framework de plug-in aberto


permite a integração de uma série de extensões para o gerencialmente de serviços básicos
que o OntoEdit fornece. OntoEdit foi reimplementado baseado no framework Eclipse e
recentemente foi disponibilizado sob um novo nome OntoStudio, figura 3.3 . Esta
ferramenta teve incorporado em sua estrutura um reasoner conhecido como FaCT, que
tem como objetivo verificar a consistência da ontologia através de um classificador
SHIQ.
38

Figura 3.3: Interface do OntoStudio

OntoStudio é o núcleo da arquitetura do projeto NEON que é a arquitetura referencia para


tecnologias semânticas. A figura 3.4 demonstra esta estrutura.
39

Figura 3.4: arquitetura projeto NEON.

3.4. OntoLingua Frame Editor

O servidor OntoLingua foi desenvolvido para facilitar o desenvolvimento de ontologias


com interface Web. Inicialmente o servidor OntoLingua tinha como principal ferramenta
um editor de ontologia. O Ontology Editor é uma ferramenta que suporta distribuição,
edição colaborativa, navegação, e criação das ontologias da OntoLingua. Outros sistemas
que compõe esta ferramenta são Webster, Open Konwledge Base Connectivity (OKBC)
Server.

3.5. OilEd

OilEd, figura 3.5, é um editor gráfico de ontologia desenvolvida pela Universidade de


Manchester para descrever lógica em ontologias [28]. O principal propósito desta
ferramenta é fornecer uma edição de ontologias ou schemas, e sua interface foi
40

fortemente influenciada por outra ferramenta, o Protègè Toolkit. A intenção inicial do


OilEd era fornecer um simples editor que demonstrava o uso da linguagem OIL
(Ontology Inference Layer) e no interesse de estimular o seu uso. Não seguindo nenhuma
metodologia o OilEd é internamente formado por DAML+OIL.

Figura 3.5: Painel de Classes do OilEd 3.0

3.6. Protègè

Ferramenta que permite construir um domínio de ontologias, customizar formas de


aquisição de conhecimento, e entrar com domínio de conhecimento. Desenvolvedores de
sistemas a usam o Protègè para criar sistemas baseados em conhecimento, e para projetar
aplicações para resolver problemas e tomar decisões em um domínio. Esta ferramenta
integra toda a gama do processo de desenvolvimento de ontologia [29]:

• Modelando uma ontologia de classes descrevendo um determinado assunto.

• Criando uma ferramenta de aquisição de conhecimento para coletar


conhecimento. Esta ferramenta é projetada para ser de domínio específico,
permitindo que experts entrem com seus conhecimentos de sua área facilmente e
naturalmente.
41

• Executando aplicações: o produto final criado quando se utiliza a base de


conhecimento para resolver problemas de usuários finais empregando métodos
apropriados.

Esta ferramenta, figura 3.3, é projetada para permitir aos desenvolvedores o reuso de
domínios de ontologias e métodos para resolver problemas, assim reduzir o tempo
necessário para desenvolvimento e manutenção de programas.

Figura 3.3: Protègè 3.1, fonte http://protege.stanford.edu/overview/pf-screenshots.html

3.7. OntoShare

OntoShare [38], a figura 3.4 demonstra a sua estrutura ontológica, é um ambiente de


compartilhamento de conhecimento para WEB baseado em ontologias que modela os
interesses dos usuários na forma de perfil de usuário. No OntoShare, perfis de usuários
42

são um conjunto de tópicos ou conceitos ontológicos (classes declaradas em RDF


Schema) em que o usuário tenha manifestado interesse. OntoShare tem a capacidade de
sumarizar e extrair palavras-chave de páginas Web e outras fontes de informações
compartilhadas pelo usuário e então compartilha informação com outros usuários cujos
perfis prevêem interesses na informação.

Figura 3.3: Estrutura ontológica no OntoShare [38] pp. 04

O OntoShare é usado para armazenar, recuperar, sumarizar e informar outros usuários


sobre informações consideradas de alguma forma importante por um usuário da
comunidade. A Figura 3.5 demonstra a tela principal da aplicação OntoShare
43

Figura 3.5: Tela principal do OntoShare.

3.8. OntoBroker

O OntoBroker é similar ao SHOE em muitos aspectos, inclui uma linguagem de definição


de ontologia, uma linguagem de anotação de página web, um rastreador web, um
mecanismo de inferência, e um conjunto de interfaces de consultas [30].

Sendo um dos primeiros projetos destinados a melhorar a recuperação da informação na


WWW, o OntoBroker usa FLogic8 (Frame Logic) como a representação do conhecimento
para representar a ontologia e expressar as anotações de documentos. Representa um
modo declarativo para a maioria dos aspectos estruturais da orientação a objetos e
linguagens baseadas em frames, como objeto identidade, objetos complexos, restrições de
valores de propriedades, herança, tipo polimórficos, métodos de consultas,
encapsulamento, e outros. Propriedades são declaradas dentro de classes. É possível
8
Flogic integra frames e cálculo de predicado de 1ª. Ordem.
44

definir regras de inferência lógica usando conectores (And, Or, Not). O corpo da regra é
uma conjunção de expressões elementares [17] .

É um dos principais mecanismos de inferência para o processamento de ontologias e suas


lógicas. A arquitetura do OntoBroker foi distribuida com o foco nas consultas complexas
e se demonstrou escalável.

3.9. Projeto FOAF – Friend of a Friend

FOAF [39] é um mecanismo ontológico que descreve pessoas, suas atividades e seus
relacionamentos com outras pessoas e objetos. Qualquer um pode usar o FOAF para
descrever alguém ou a si mesmo. FOAF permite que grupos de pessoas possam descrever
um rede social sem a necessidade de uma base de dados centralizada. FOAF é uma
extensão do RDF e é definido usando OWL. Computadores podem usar os perfis para
encontrar, por exemplo, todas as pessoas vivendo no Brasil, ou uma lista de amigos ou
amigo de alguém. A seguir, um exemplo de um perfil FOAF escrito no formato XML
com email, homepage e imagem que são recursos e podem ser descritos utilizando RDF.

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<foaf:Person rdf:about="#JW">
<foaf:name>Jimmy Wales</foaf:name>
<foaf:mbox rdf:resource="mailto:jwales@bomis.com" />
<foaf:homepage rdf:resource="http://www.jimmywales.com/" />
<foaf:nick>Jimbo</foaf:nick>
<foaf:depiction rdf:resource="http://www.jimmywales.com/aus_img_small.jpg" />
<foaf:interest>
<rdf:Description rdf:about="http://www.wikimedia.org" rdfs:label="Wikipedia" />
</foaf:interest>
<foaf:knows>
<foaf:Person>
<foaf:name>Angela Beesley</foaf:name> <!-- Wikimedia Board of Trustees -->
</foaf:Person>
</foaf:knows>
</foaf:Person>
</rdf:RDF>

3.10.Jena
45

Framework desenvolvido com linguagem JAVA para construção de aplicações para Web
Semântica, fornece um ambiente de programação para RDF, RDFS e OWL, SPARQL e
inclui regras baseada em mecanismo de inferência [31] cuja, estrutura geral do
mecanismo de inferência é demonstrada na figura 3.4. O Jena é fornecido como uma API
o que permite ao desenvolvedor utilizá-lo independentemente da ferramenta de
desenvolvimento para gerenciar ontologias OWL. Abaixo é listado algumas
características básicas do Jena:

• leitura e escrita de RDF em RDF/XML, N3 e N-Triples

• suporte à RDQL (linguagem de consulta para RDF)

• armazenamento em memória e persistente

• é baseado em regras (figura 3.5)

Figura 3.4:mecanismo de inferência do Jena, estrutura geral

include <OWL>.
[rule1:
(?cinema rdf:type http://www.inf.pucrs.br/~sales#Cinema)
(?cinema http://www.inf.pucrs.br/~sales#mostra ?filme)
(?filme http://www.inf.pucrs.br/~sales#tipo ?tipo)
(?pessoa rdf:type http://www.inf.pucrs.br/~sales#pessoa)
(?pessoa http://www.inf.pucrs.br/~sales#gostaDe ?filmeX)
(?filmeX http://www.inf.pucrs.br/~sales#tipo ?tipoX)
equal (?tipoX, ?tipo) -> (?Filme http://www.inf.pucrs.br/~sales#sugerir ?Pessoa)]
Figura 3.5: Exemplo de um arquivo de regras
46

O código demonstrado na figura 3.5 é utilizado para manipular as ontologias criadas pelo
aplicativo Protègè permitindo que seja possível dar significado ao conteúdo das
informações.
47

4. Principais componentes de software para a construção de aplicações para


a web semântica.

4.1. SemantiCore

O SemantiCore é um framework que provê uma camada de abstração sobre serviços de


distribuição e uma definição interna de agente capaz de oferecer aos desenvolvedores
uma abstração de alto nível para a construção de Sistemas Multi-agentes (SMAs) [12].
Desenvolvendo aplicações baseadas em agentes da Web Semântica o SemantiCore tem
procedimentos que permitem instanciar a ontologia que representa o agente semântico
com dados do agente e também procedimentos que permitem recriar o agente a partir de
uma instância dessa ontologia. A principal meta do SemantiCore é permitir o
desenvolvimento de agentes internos e ambientes multi-agentes, considerando que a Web
Semântica é povoada por domínios onde agentes “vivem” [12]. A arquitetura do
SemantiCore é demonstrada na figura 4.1.

Figura 4.1: arquitetura SemantiCore

A sua divisão em dois modelos (figura 4.2) é uma característica básica do framework que
são o modelo de agente e o modelo de domínio. E estes modelos são disponibilizados
com flexibilidade (hotspots) permitindo que o desenvolvedor associe diferentes padrões,
protocolos e tecnologias. A sua Plataforma de acordo com a arquitetura da figura acima
define o domínio (Semantic Domain) onde os agentes atuam. Cada domínio pode ser
48

pensado como um Sistema Multiagentes e cada domínio é conectado a outro através da


infra-estrutura da Internet. Um domínio pode ser distribuído através de diferentes
plataformas de hardware ou em um mesmo computador [12].

Figura 4.2: modelo de domínio fonte: mini-curso-blois

4.1.1.Ciclo de vida de um agente SemantiCore

Os agentes SemantiCore estendem da classe Semantic Agent e um agente do SemantiCore


possui um ciclo de vida demonstrado na figura 4.4. O agente começa a sua execução
chamando o método Setup (configuração). Durante esta chamada o desenvolvedor pode
criar sensores, fatos, regras, efetuadores, ações, planos de ações e objetivos para os
agentes [12]. Todo este processo é criado usando classes do SemantiCore e formam o
modelo de referência de um SemanticAgent (figura 4.3). O agente permanece ativo
sentindo novos conteúdos que chegam ao seu ambiente, podendo tomar decisões sobre o
que se segue com base nos conteúdos recebidos e no histórico de execução, este
repositório é somente das ações necessárias, e termina nas publicações das novas
mensagens e recursos no ambiente. Como no SemantiCore cada componente é executado
em uma thread, desta forma não se pode afirmar este ciclo pois há autonomia na
execução de uma thread.
49

Figura 4.3: estrutura de um agente semântico (fonte:Blois)

Um agente SemantiCore está associado diretamente às classes Sensor, Effector, Rule e


Action, sendo que estas classes estão relacionadas a um dos componentes básicos da
estrutura de um agente respectivamente componente sensorial, componente efetuador,
componente decisório, e ao componente executor. No contexto da ontologia, esses
elementos podem ser descritos da seguinte maneira [Blois04]:

• Sensor (Sensor): cada instância desta classe indica um tipo de sensor, que
reconhece um tipo de padrão. Pode-se ter, por exemplo, um sensor do tipo
“OWLSensor” que captura mensagens em OWL e reconhece como padrão o fato
da mensagem estar direcionada ao agente.

• Effector (Efetuador): aqui cada instância também indica o tipo de efetuador


utilizado pelo agente e que deve ser instanciado no momento que o agente for
reconstruído

• Rule (Regra): são as regras explicitadas em função do conhecimento de domínio


e servem de entrada para o mecanismo de decisão do agente. No momento de
reconstrução do agente, essas regras devem ser carregadas no componente
decisório.
50

• Action (Ação): a classe Action é disparada após a ocorrência de um fato novo e


toda ação tem uma pré e uma pós-condição associada. O objetivo deste agente é
dividido em duas partes: o schema (ou estrutura) e os dados (ou indivíduos da
ontologia)

Figura 4.4: ciclo de vida de um Semantic Agent

No SemantiCore procedimentos podem instanciar a ontologia que representa o agente


semântico com dados do agente e também procedimentos que permitem recriar o agente a
partir de uma instância dessa ontologia. Agentes móveis em suas migrações de uma
máquina para outra deve ter uma instância da ontologia que o descreva. É essa instância,
em formato OWL, que irá trafegar pela rede e uma vez no instalado no destino o agente
deve ser recriado a partir da instância da ontologia devendo ser instanciados todos os
elementos necessários para que o agente continue a sua execução.

Os agentes no SemantiCore possuem uma estrutura orientada a componentes e, em cada


um dos componentes pode-se identificar uma entidade ou parte principal, que caracteriza
seu funcionamento [Alemke01].

4.1.2.O SemantiCore e a Web Semântica

Organização de componentes, diferentes instâncias de hotspots, diferentes formatos e


processamento nativo de OWL contribui para diferenciar o SemantiCore das outras
plataformas de Sistemas Multiagentes. O SemantiCore permite que componentes
distribuam agentes entre máquinas. Esse recurso exclusivo permite que o SemantiCore se
adapte aos requisitos de desempenho da Web Semântica.
51

4.2. SESAME

O sistema Sesame [32], é uma arquitetura baseada na Web que permite armazenamento
persistente de dados RDF e informação de Schema. Para armazenamento persistente de
dados RDF é necessário um repositório escalável, como o Sesame foi projetado para ser
independente de um sistema de gerenciamento de banco de dados com o uso do RAL
(Repository Abstraction Layer). O RAL oferece métodos específicos RDF para seus
clientes e traduz estes métodos em chamadas para o seu banco de dados específico. Isto
permite então implementar para qualquer banco de dados sem alterar qualquer
componente do Sesame. Os principais componentes da arquitetura do Sesame é
demonstrada na figura 4.5.

Os módulos funcionais do Sesame são clientes do RAL. Atualmente, existem três destes
módulos:

• Módulo de consulta RQL avalia perguntas feitas pelos usuários

• Módulo de administração de RDF. Este módulo permite o upload incremental de


dados RDF e informação de schema, bem como a exclusão de informações.

• Módulo de exportação de RDF. Este módulo permite a extração de esquemas


completos e/ou dados de um modelo em formato RDF.
52

Figura 4.5: a arquitetura do Sesame

4.3. Framework UPML

UPML (linguagem de marcação para componente de conhecimento) é um software


framework especialmente projetado para descrever sistemas de conhecimento. A figura
4.6 mostra a arquitetura do UPML que consiste de seis diferentes tipos de elementos.
Uma tarefa define o problema para ser resolvido pelo sistema de conhecimento. O
método de solução de problema define o processo de raciocínio usado para resolver o
problema. O modelo de domínio define o domínio do conhecimento disponível para
resolver o problema. Cada um destes elementos é descrito independentemente para
permitir reuso das descrições das tarefas em diferentes domínios, métodos de soluções de
problemas para diferentes tarefas e domínios, e domínio de conhecimentos para
diferentes tarefas e métodos de soluções de problemas. Ontologias fornecem uma
terminologia usada em tarefas, métodos de soluções de problemas, e definições de
53

domínios. Esta separação permite compartilhar conhecimento e reutilização. Como


exemplo, diferentes tarefas ou métodos de solução de problemas podem compartilhar de
alguns vocabulários e definições. Para mais elementos da especificação são adaptados,
que são necessários ajustar outros elementos reutilizáveis para cada outro elemento e para
um problema específico de uma aplicação.

UPML fornece dois tipos de adaptadores: bridges (pontes) e refiners (refinadores). Pontes
(bridges) são explicitamente modelos de relacionamentos entre duas partes específicas da
arquitetura, entre um domínio e uma tarefa ou uma tarefa e um método de solução de
problemas. Refinadores (refiners) podem ser usados para expressar uma adaptação
gradual de outros elementos da especificação, métodos de solução de problemas
genéricos e tarefas podem refinar para tarefas mais específicas aplicando a elas uma
seqüência de refinadores. A principal distinção entre pontes e refinadores é que a ponte
muda a entrada e saída dos componentes para torná-los aptos juntos. Refinadores podem
somente mudar detalhes internos, como as sub-tarefas dos métodos de soluções de
problemas.

Figura 4.6: a arquitetura da UPML


54

4.4. IBROW – INternet BRrokering Service for Knowledge-component Reuse on the


Web

O objetivo do projeto IBROW [33] é desenvolver um broker inteligente capaz de


configurar sistemas de conhecimento de componentes reutilizáveis na Web. Brokers
IBROW irão manipular requisições na Web de algumas classes de sistemas de
conhecimento, acessando bibliotecas de componentes de raciocínio na web selecionando,
adaptando e configurando-os de acordo com o domínio em questão. O projeto TBrow
integra pesquisa em banco de dados heterogêneos, interoperabilidade, e tecnologias Web
com sistemas conhecimento como ontologias e métodos de resolução de problemas.

Atualmente, ontologias [19] representam principalmente conhecimentos estáticos e


declarativos sobre um domínio específico. A forma de aplicar o conhecimento do
domínio para alcançar serviços de usuários, ou conhecimento dinâmico, é normalmente
usado em inferências de algoritmos, em razão do conteúdo do domínio ontológico. Fazer
este conhecimento dinâmico explícito e genérico e considerando-a um elemento
importante de todo o conhecimento contido em um sistema baseado em conhecimento
(KBS) é a lógica que está subjacente nos métodos de soluções de problemas (PSM) [22].

PSM fornece componentes reusáveis para implementar o raciocínio que é parte de KBS e
refina mecanismos de inferência para permitir um maior controle direto do processo de
raciocínio de um sistema para realizar uma tarefa.

PSMs codifica controles de conhecimento independentemente do domínio da


Decompondo a tarefa de raciocínio de sistemas baseados em conhecimento em um
número de sub-tarefas e ações de inferências, que estão conectados por conhecimento que
representando papéis que desempenham no processo de raciocínio.

Ontologias e PSM fornecem os componentes necessários para serem combinados com o


broker IBROW para configurar um determinado sistema de conhecimento baseado na
Web.

4.4.1.Intermediando Componentes de Raciocínio na Web

A missão do projeto IBROW é desenvolver um serviço inteligente de intermediação de


raciocínio capaz de retornar um conjunto de componentes de conhecimento da Web que,
55

quando combinado, podem resolver problemas de usuários de acordo com o estado dos
requerimentos. A figura 4.2 ilustra o principal objetivo do broker IBROW que é
identificar os componentes necessários para resolver problemas e adaptar e configura-los
em um serviço de raciocínio em funcionamento. No contexto da Web, as tarefas do
broker incluem reutilização de componentes de terceiros disponíveis na Web e resolver
problemas operacionais e bases de conhecimentos num conjunto distribuído.

Figura 4.2: O processo de intermediação no IBROW


56

5. Estudo de caso - SemantiCore

Este estudo de caso foi desenvolvido com base nos estudos de Blois [12] e Alemke [34] e
visa demonstrar as principais características do SemantiCore que foi projetado para suprir
as necessidades de modelagem de mecanismos de tomada de decisões dos agentes, que
são disponibilizados para implementação de acordo com a necessidade do programador.
O SemantiCore é um framework que visa promover uma camada de abstração sobre
plataformas ou serviços de distribuição computacional que facilite a implementação de
sistemas multiagentes para execução na Web Semântica [Blois e Escobar 01]. Este
capítulo apresenta um estudo de caso que demonstra um motorista usuário de serviços de
agentes para trafegar em um grande capital, neste exemplo teremos várias características
que serão descritas no tópico a seguir.

5.1. Descrição do problema

Este exemplo demonstra um motorista que trafega nas ruas de uma grande capital com
trânsito caótico. O motorista tem um agente pessoal (Agente Semântico) identificado
como AgMotorista que é utilizado para realizar tarefas especializadas.

Quando o motorista desejar dirigir pela cidade este interage com o AgMotorista que irá
executar seu plano de ação desenvolvido para o propósito que são as seguintes tarefas: (i)
descobrir se há engarrafamento no trânsito, (ii) verificar qual a melhor rota, verificando
tempo e combustível que será gasto, (iii) caso o motorista deseje ir a um local específico,
verificar a melhor rota para atingir o máximo de estabelecimentos, (iv) informação sobre
as condições climáticas.

5.2. A aplicação

O sistema multiagente desenvolvido para atender a este propósito será composto por
agentes que irão interagir entre si de forma que os mesmos possam recuperar informações
para serem utilizadas como base pelos agentes semânticos. Estes agentes serão
executados em diferentes máquinas podendo ser em um único domínio ou em múltiplos
57

domínios. Os agentes AgTransito desempenhará os serviços de fornecimento de catálogo,


executando serviços em uma base de catálogo das requisições de outros agentes
(AgMotoristaLista). Estas requisições são realizadas utilizando palavras-chave
representadas em uma ontologia. Este agente tenta encontrar a mais apropriada descrição
de serviço.

Este agente tem apenas um tipo de Sensor que é uma instância de OWLSensor fornecido
pelo framework SemantiCore, possui um sistema decisório simples, que possui regras e
fatos relacionados ao histórico de recursos recebidos e a programação feita no agente
para a tomada de decisão, capaz de mapear cada consulta fato de uma ação de execução.
Esta ação é executada pela classe AcaoRetornaTransito, ela encapsula a heurística
somente descrita no ambiente e publica o resultado da consulta usando o OWLEffector
fornecido pelo SemantiCore.

O AgTransito tem como objetivo informar aos usuários do trânsito baseado nas
informações em seus registros. Para poder realizar este procedimento o agente deve
receber uma consulta retornando um nome com uma das avenidas da cidade. Então o
agente decide, com base nas características da avenida (bairro, número, CEP e o próprio
nome) em que registro procurar. Este resultado é obtido utilizando regras de decisão
simples do Componente de Decisão. Após encontrar o registro, o agente inicia um plano
de ação adequado AcaoRetornaInformacaoTransito. Estas informações serão enviadas ao
agente que solicitou, e associado a um schema OWL predefinido com instâncias de suas
classes e publicadas usando OWLEffector.

O agente AgTransitoChecker certifica diferentes tipos de serviços de trânsito fornecidos


baseados em avaliações da qualidade de serviços pré-definidas, permitindo que outros
agentes consultem por fornecedores de serviços de trânsitos certificados. Este agente foi
implementado com um único Sensor para capturar requisição baseados nos registros da
Central de Trânsito. A informação do trânsito é passada para o mecanismo de decisão e,
em seguida, para o componente de execução a ser processado. Isto vai iniciar o plano de
ação AcaoRecuperaTransitoClassificacao.
58

O agente pessoal do motorista, AgTransito, encapsula todos os elementos necessários


para coordenar diferentes requisições e decide se o trajeto pode ser utilizado ou não, com
bases em restrições do motorista.

A definição do agente começa na configuração dos métodos onde 3 planos de ações são
declarados: AcaoRetornaTransito, AcaoRetornaTransitoLista e
AcaoRecuperaTransitoClassificacao.

O primeiro permite a comunicação com o AgTransito para retornar informações gerais


sobre o trânsito. O segundo retorna uma lista das principais rotas. O Terceiro retorna uma
qualificação do trânsito para definir a situação do trânsito. Estes planos de ações são
associados com os objetivos dos agentes e deve ser executados quando seus pré-
requisitos são alcançados e/ou a inferência do agente indicá-lo. Algumas regras e fatos
são criadas para mapear essas pré-condições e cadeias de inferências. Por exemplo, o
AgTransito tem alguns fatos e regras que dizem respeito à localização e a melhor rota e
condições climáticas da seleção de sua lista como conseqüência do processamento da
inferência.

Na configuração do agente também tem a instanciação da flexibilidade (hotspot)


indicando que mecanismo de decisão será usado. No exemplo, AgMotorista indica
através do método setDecisionEngine o uso da classe InferenceEngine como
implementação do hotspot.

Esta implementação do hotspot é distribuida com o SemantiCore e integra mecanismo de


inferência do Jena com os agentes Semânticos. As regras e fatos definidos na
configuração são convertidos automaticamente para o formato usado pelo mecanismo de
inferência.

Para resolver o exemplo de uso usa-se CLASSIFICAÇÃO DA MINERAÇÃO DE DADOS.


59

6. Conclusão

A Web Semântica está no estágio inicial de seu desenvolvimento, mas, cada vez mais
surgem abordagens e tecnologias buscando melhorar sua capacidade de prover suporte à
identificação, localização, conhecimento e uso de seus recursos. A utilização de padrões e
arquiteturas extensíveis, capazes de se adaptarem à dinamicidade dos requisitos da Web,
vem trazendo novas perspectivas ao compartilhamento, intercâmbio e integração de
recursos, aumentando sua capacidade de automatização.

A Web Semântica proporcionará um salto qualitativo sobre o potencial da Web atual. A


principal vantagem desta nova concepção da Web será o desenvolvimento de aplicações
com esquemas de dados comuns, fomento das transações entre empresas (comércio
eletrônico) e busca de informações com inferências. Para conseguir estes objetivos se faz
necessário unificar os conteúdos semânticos por meio de ontologias que formalizam estes
conhecimentos de forma consensual e reutilizável.

A Web Semântica foi abordada neste trabalho sob todos os aspectos de seu
desenvolvimento, abordando os conceitos que sustentam as visões desta tecnologia e sua
importância para o futuro da Web e sua arquitetura.

Foram abordados todos os aspectos necessários para a estruturação e representação do


conhecimento através da explanação do conceito de ontologia e as respectivas
tecnologias que as implementam. Para a implementação do conhecimento na Web
Semântica foi feita apresentação de tecnologias tais como: RDF, XML, DC, RDFS. Estas
tecnologias em conjunto formam a base para que se possa inserir conhecimento na Web.

No estudo elaborado da ontologia foram apresentadas algumas ferramentas que vão


permitir inserir conhecimento na Web, estas ferramentas de aprendizagem de ontologias
será um importante componente em aplicações para Web Semântica. Estas ferramentas
ainda são bastantes restritas devido a escassez destas ferramentas.

Este trabalho se concentrou, na maioria dos casos, nas recomendações da W3C para a
implementação da Web Semântica sob todos os aspectos. A viabilização da Web
Semântica só será possível com a adaptação das ferramentas que suportam a Web,
adicionando assim suporte a semântica. No entanto, será necessário que as novas
60

ferramentas sejam implementadas de acordo com as arquiteturas, padrões e linguagens


recomendadas pela W3C.

Apesar das tecnologias já desenvolvidas, o futuro da Web Semântica ainda requer muita
pesquisa e desenvolvimento. Mesmo com todos os desenvolvimentos e pesquisas acerca
da aplicação de ontologias nas tecnologias para a Web Semântica e com o avanço dos
agentes de softwares, ainda se tem muito a pesquisar e desenvolver com relação à
implementação de inteligência computacional, pois há ainda muitas dúvidas sobre a
capacidade desta tecnologia.
61

Referências Bibliográficas

[01] Berners-Lee, T.; Hendler, J.; Lassila, O. The Semantic Web, Scientific American,
2001, pp. 34-43.
[02] Cardoso, J. Semantic Web Services, Information Science Reference, 2006, pp. 04.
[03] D'Aubeterre, F.; Singh, R; S. Iyer, L. Semantic Knowledge Transparency in E-
Bussiness Processes, Idea Group Publishing, 2007, pp. 263
[04] Berners-Lee, T.; Hendler, J.; Lassila, O. The Semantic Web. Scientific
American, 2001, pp. 28-37.
[05] Reeve, L.; Han, H.; Chen, C. Information Visualization and the Semantic Web,
Visualization the Semantic Web.
[06] Grau, Bernardo C.. A Possible Simplification of the Semantic Web Architecture,
2004, WWW 2004, New York.
[07] Breitman, Karin K. Web Semântica, a Internet do Futuro, LTC Editora, pp. 5-9, Rio
de Janeiro, 2005.
[08] Passin, Thomas B. Explorer’s Guide to The Semantic Web, Manning Publications,
pp. 3-5, Greenwich, CT, 2004
[09] Cardoso, J. Semantic Web Services Theory Tools and Applications: The Syntact and
the Semantic Web, Information Science Reference, pp. 2, 2006.
[10] W3C, Semantic Web Activity, http://www.w3.org/2001/sw/, outubro/2007
[11] Hendler J., Agents and the Semantic Web. IEEE Intelligent Systems,
Issue 2, volume 16, pp. 30-37, mar/2001
http://portal.acm.org/citation.cfm?coll=GUIDE&dl=GUIDE&id=630623
[12] Blois et al, Using Agents and Ontologies for Application Development on the
Semantic Web, 2006.
[13] Davies, J.; Fensel D.; Harmelen, F. van, Towards the Semantic Web: A Vision of
Modern Knowledge Management, pp 247, John Wiley & Sons Inc, England, 2003.
[14] Heflin, Jeffrey D., Towards the Semantic Web: Knowledge Representation in a
Dynamic, Distributed Environment, pp 7-9, 2001
[15] W3C, XML
[16] RDF RDF SCHEMA
[17] Gandon, F. Distributed Artificial Intelligence and Knowledge Management:
Ontologies and Multi-Agent Systems for a Corporate Semantic Web, Universisty of
Nice, tese doutorado defendida em 01/11/2002.
[18] Leuf, B., The Semantic Web: Crafting Infrastructures for Agency, 2006
[19] Gruber, T.R, A Translation Approach to Portable Ontology Specifications:
Konwledge Acquisition, 1993
62

[20] Sheth, A. Security Ontology and Semantic Web Technical Exchange Meeting
MITRE, McLean, June 12, 2003 (http://lsdis.cs.uga.edu/lib/presentations/MITRE-0603-
Sheth.pdf)
[21] Cardoso, J. Semantic Web Services Theory Tools and Applications: The Syntact and
the Semantic Web, Information Science Reference, pp. 15, 2006.
[22] Fensel, D. Ontologies: Silver bullet for knowledge management and electronic
commerce. 2001,
http://www.cs.vu.nl/~dieter/ftp/paper/silverbullet.pdf., 16/10/2007
[23] Davies, J.; Fensel D.; Harmelen, F. van, Towards the Semantic Web: A Vision of
Modern Knowledge Management, pp 5-6, John Wiley & Sons Inc, England, 2003.
[24] Davies, J.; Fensel D.; Harmelen, F. van, Towards the Semantic Web: A Vision of
Modern Knowledge Management, pp 26, John Wiley & Sons Inc, England, 2003.
[25] Heflin, Towards the Semantic Web: Knowledge Representation in a Dynamic,
Distributed Environment, pp. 85-90, 2001.
[26] Davies, J.; Studer, R.; Warren, P. Semantic Web Technologies: trend and research in
ontology-based systems, pp 207-213, John Wiley & Sons Ltd, 2006.
[27] Cardoso, J. Semantic Web Services Theory Tools and Applications: editing tools for
ontology creation, Information Science Reference, pp. 75-76, 2006
[28] Manchester University, http://img.cs.man.ac.uk/oil/, 22/11/2007.
[29] Leuf, B. The Semantic Web – Crafting Infrastructures for Agency: application and
Tools, pp. 209-211, John Wiley & Sons Ltd, 2006.
[30] Heflin, Towards the Semantic Web: Knowledge Representation in a Dynamic,
Distributed Environment, pp. 198, 2001.
[31] HP, www.hp.com/semweb, 27/10/2007.
[32] J. Broekstra, Sesame RQL: a tutorial. http://sesame.aduna.biz/publications/rql-
tutorial.html, 22/11/2007
[33] IBROW, http://www.swi.psy.uva.nl/projects/ibrow/, 03/12/2007.
[34] Alemke, Ana P. Um Framework para a Organização do Conhecimento de Agentes de
Software, Dissertação de Mestrado, pp. 104-119, 2007.
[35] Dublin Core, www.dublincore.org, 30/10/2007.
[36] Warwick, http://www.dlib.org/dlib/july96/lagoze/07lagoze.html, 02/11/2007
[37] Breitman, Karin K. Web Semântica, a Internet do Futuro, LTC Editora, pp. 18-19,
Rio de Janeiro, 2005.
[38] Davies, J.; Duke, A.; Stonkus, A. OntoShare: Using Ontologies for Knowledge
Sharing, http://semanticweb2002.aifb.uni-karlsruhe.de/proceedings/Research/davies.pdf,
pp. 02, 01/12/2007.
[39] FOAF Project, http://www.foaf-project.org/, 05/12/2007
63

[40] Gandon, F. Distributed Artificial Intelligence and Knowledge Management:


Ontologies and Multi-Agent Systems for a Corporate Semantic Web, Universisty of
Nice, pp. 131, tese doutorado defendida em 01/11/2002.

The Semantic Web is an extension of the


current Web in which information is
given well-defined meaning, enabling
computers and people to work in better
cooperation.