Upload
api-3841227
View
2.099
Download
2
Embed Size (px)
DESCRIPTION
Trabalho Individual - PUCRS\MESTRADO EM CIÊNCIA DA COMPUTAÇÃO
Citation preview
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.
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
2
3.1. SHOE .................................................................................................................32
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
3
Listas de Figura
4
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.
5
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,
6
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
7
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
8
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]:
9
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
10
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.
11
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.
12
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)
13
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.
14
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
15
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.
16
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
17
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-
18
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
19
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.
20
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
21
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.
22
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.
Figura 2.4: Framework de Warwick
23
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.
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.
24
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)”.
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
7 Uniform Resource Identifier, incluindo também o Uniform Resource Locator - URL
25
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].
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
26
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.
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.
27
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
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
28
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:
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].
29
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:
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.
30
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:
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.
31
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
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
32
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].
33
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.
34
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
35
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
36
[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.
37
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.
38
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
39
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.
40
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
41
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
42
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.
43
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:[email protected]" /><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
44
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
45
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
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.
46
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
47
define o domínio (Semantic Domain) onde os agentes atuam. Cada domínio pode ser
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
48
em uma thread, desta forma não se pode afirmar este ciclo pois há autonomia na
execução de uma thread.
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.
49
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.
50
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.
51
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
52
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
53
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,
54
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
55
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
56
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.
57
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.
58
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,
59
adicionando assim suporte a semântica. No entanto, será necessário que as novas
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.
60
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
61
[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
62
[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 thecurrent Web in which information isgiven well-defined meaning, enablingcomputers and people to work in better
cooperation.
63