FACULDADE DE TECNOLOGIA DE SÃO JOSÉ DOS CAMPOS
CIRO FERNANDES MATRIGRANI
SEMANTICPAD: UMA FERRAMENTA WEB DE EDIÇÃO DE CONTEÚDO PARA
WEB SEMÂNTICA ADEQUADA A USUÁRIOS LEIGOS
SÃO JOSÉ DOS CAMPOS
2009
CIRO FERNANDES MATRIGRANI
SEMANTICPAD: UMA FERRAMENTA WEB DE EDIÇÃO DE CONTEÚDO PARA
WEB SEMÂNTICA ADEQUADA A USUÁRIOS LEIGOS
Trabalho de graduação apresentado à
Faculdade de Tecnologia de São José dos
Campos, como parte dos requisitos necessários
para obtenção de título de Tecnólogo em
Banco de Dados.
Orientador: Msc. Giuliano Araujo Bertoti
SÃO JOSÉ DOS CAMPOS
2009
CIRO FERNANDES MATRIGRANI
SEMANTICPAD: UMA FERRAMENTA WEB DE EDIÇÃO DE CONTEÚDO PARA
WEB SEMÂNTICA ADEQUADA A USUÁRIOS LEIGOS
Trabalho de graduação apresentado à
Faculdade de Tecnologia de São José dos
Campos, como parte dos requisitos necessários
para obtenção de título de Tecnólogo em
Banco de Dados.
________________________________
MSC. ADRIANA DA SILVA JACINTO (FATEC)
________________________________
DRª. CARLA DIACUI MEDEIROS BERKENBROCK (ITA)
________________________________
MSC. GIULIANO ARAUJO BERTOTI (FATEC)
__/__/__
DATA DE APROVAÇÃO
AGRADECIMENTOS
Agradeço a todos os professores e colaboradores da FATEC de São José dos Campos que
tornaram possível a formação da primeira de muitas turmas de Tecnologia em Banco de
Dados da qual faço parte. Em especial para o coordenador Fernando Masanori, meu
orientador Giuliano Bertoti, a dona Lourdes do cafezinho além dos meus colegas que
compuseram o cenário desta fantástica fase na minha vida. Obrigado!
“O importante não é o desenho, mas o desenhar”
José Matrigrani
RESUMO
Há uma quantidade de documentos disponibilizados na web e seu conteúdo aumenta
consideravelmente todos os dias. O usuário leigo, sem conhecimento acadêmico em
tecnologia da informação, se tornou o principal responsável pelo conteúdo na Web 2.0 por
meio de de blogs, wikis, redes sociais e ferramentas colaborativas. Hoje, uma pesquisa por
“redes” numa ferramenta de busca como o Google, por exemplo, retorna milhões de
resultados, e minerar essa informação pode levar horas de pesquisa. Organizar e selecionar
todo este conteúdo se tornou um desafio para cientistas da computação contemporâneos. A
World Wide Web Consortium, órgão responsável pelos padrões da web, desenvolveu nos
últimos anos tecnologias como o Resource Description Framework que tornarão possível a
Web Semântica, uma proposta para solucionar este problema. Porém, foram desenvolvidas
por pessoas com conhecimento acadêmico em tecnologia da informação, e não são de fácil
utilização para os usuários leigos. Este trabalho apresenta o desenvolvimento da Semanticpad,
uma ferramenta web de edição de conteúdo semântico para usuários leigos apoiada na
arquitetura de gadgets da Google e acoplável em páginas, blogs, sites e aplicações na web. A
Semanticpad também utiliza a interface baseada em mapas conceituais tentando agregar a
simplicidade e usabilidade reconhecida neste modelo e propõe um novo modelo de
colaboração para criação de conteúdo semântico na web.
Palavras-Chave: Web Semântica, RDF, Web 3.0.
ABSTRACT
There are a lot of documents available on the web and its content increases significantly every
day. The user layman without academic knowledge in information technology, became the
main responsible for the content on the Web 2.0 through blogs, wikis, social networks and
collaborative tools. Today, a search for "networks" in a search engine like Google, for
example, returns millions of results, and to mine this information can take hours of research.
Organize and select this content has become a challenge for the contemporary computer
scientists. The World Wide Web Consortium, the organization responsible for web standards,
has developed in last years technologies such as Resource Description Framework which will
build the Semantic Web, a proposal to solve this problem. However, it was developed by
people with academic knowledge in information technology, and is not easily accessible to lay
users. This document presents the development of Semanticpad, a web editing tool semantic
content for lay users supported by the technology of Google Gadgets, to allow be embeddable
on webpages, blogs, websites and web applications. The Semanticpad interface also uses the
concept maps based on trying to add simplicity and usability recognized in this model and
proposes a new collaborative model for creating semantic content on the Web.
Key-Words: Semantic Web, RDF, Web 3.0.
LISTA DE FIGURAS
Figura 1 - Pesquisa de imagens pela palavra “Vênus” ............................................................. 20
Figura 2 - Exemplo de conteúdo na web .................................................................................. 20
Figura 3 - Exemplo de como uma máquina enxerga o conteúdo ............................................. 21
Figura 4 - Camadas da web....................................................................................................... 23
Figura 5 - Requisição de página cliente/servidor ..................................................................... 25
Figura 6 - Exemplo de código HTML ...................................................................................... 25
Figura 7 - Renderização de HTML exibida pelo navegador Firefox versão 3.0.7 ................... 26
Figura 8 - Exemplo de código XHTML ................................................................................... 27
Figura 9 - Página HTML ligada em folha de estilo externa ..................................................... 28
Figura 10 - Exemplo de código CSS ........................................................................................ 28
Figura 11 - Página HTML associada com folha de estilo rederizada pelo navegador Mozilla
Firefox 3.0.7 ............................................................................................................................. 28
Figura 12 - Arquitetura da Web Semântica............................................................................... 30
Figura 13 - Alguns exemplos de URI’s .................................................................................... 32
Figura 14 - Exemplo de código XML ...................................................................................... 33
Figura 15 - Exemplo de código DTD ....................................................................................... 34
Figura 16 - Exemplo de código XML Schema ......................................................................... 35
Figura 17 - Gráfico RDF somente com literais ........................................................................ 37
Figura 18 - Exemplo de gráfico RDF ....................................................................................... 38
Figura 19 - Exemplo de gráfico RDF descrevendo Frank Manola .......................................... 38
Figura 20 - Exemplo de gráfico RDF para loja de veículos ..................................................... 39
Figura 21 - Exemplo de gráfico RDF com vocabulário Dublin Core ...................................... 41
Figura 22 - Exemplo de namespace ......................................................................................... 41
Figura 23 - Exemplo de gráfico RDF ilustrando tripla............................................................. 42
Figura 24 - Gráfico RDF destacando namespace ..................................................................... 42
Figura 25 - Declaração de namespaces .................................................................................... 43
Figura 26 - Exemplo de código RDF Schema .......................................................................... 44
Figura 27 - Exemplo de código RDF/XML.............................................................................. 44
Figura 28 - Árvore de ligações entre URI’s em tripla RDF ..................................................... 45
Figura 29 - Árvore de ligações de URI’s com XML namespaces ............................................ 45
Figura 30 - Interface do Protégé-Frames .................................................................................. 49
Figura 31 - Interface do Protégé-OWL..................................................................................... 50
Figura 32 - Interface do WebPrótegé ........................................................................................ 50
Figura 33 - Interface do OntoEdit ............................................................................................ 53
Figura 34 - Interface do SemanticWorks .................................................................................. 55
Figura 35 - Exemplo de mapa conceitual ................................................................................. 61
Figura 36 - Mapa conceitual tipo aranha .................................................................................. 63
Figura 37 - Mapa conceitual tipo sistema................................................................................. 63
Figura 38 - Mapa conceitual tipo hierárquico .......................................................................... 64
Figura 39 - Interface colaborativa ............................................................................................ 71
Figura 40 - Modelo de colaboração .......................................................................................... 72
Figura 41 - Gadget inserido em páginas recipientes................................................................. 74
Figura 42 - Linha de código para inserção de um gadget ........................................................ 74
Figura 43 - Interface de gerenciamento do Google Project Hosting ........................................ 76
Figura 44 – Semanticpad em tela de edição Mapa Descritivo ................................................. 81
Figura 45 - Semanticpad em tela Gerar RDF ........................................................................... 82
Figura 46 - Semanticpad em tela Opções ................................................................................. 83
Figura 47 – Ilustração de cada tipo de elemento de uma tripla na tela Mapa Descritivo ......... 83
Figura 48 – Semanticpad em tela Mapa Descritivo inicial....................................................... 84
Figura 49 - Botões de edição de conceito ................................................................................. 84
Figura 50 - Menu de configuração de conceito ........................................................................ 85
Figura 51- Exemplo de uso de coleção “rdf:Alt” ..................................................................... 86
Figura 52 - Menu de inserção de coleções ............................................................................... 86
Figura 53 - Exemplo de uso de “rdf:Alt” pelo Semanticpad .................................................... 87
Figura 54 - Exemplo de uso de “rdf:Bag” pelo Semanticpad .................................................. 87
Figura 55 - Exemplo de uso de “rdf:Seq” pelo Semanticpad ................................................... 87
Figura 56 - Configurações de níveis de confiabilidade ............................................................ 88
Figura 57 - Principais opções disponíveis ................................................................................ 88
Figura 58 - Alguns alertas de suporte da ferramenta ................................................................ 89
LISTA DE ABREVIATURAS E SIGLAS
AJAX: Asynchronous Javascript and XML
API: Application Programming Interface
CSS: Cascate Style Sheets
DAML: DARPA Agent Makup Language
DC: Dublin Core
DOM: Document Object Method
DTD: Data Type Definition
GPL: GNU General Public License
GUI: Grafic User Interface
HTML: Hiper Text Makup Language
IP: Internet Protocol
JQueryUI: JQuery User Interface
JRE: Java Runtime Environment
KAON: the KArlsruhe ONtology and semantic web tool suíte
MPL: Mozilla Public License
OCML: Open Configuration and Management Layer
OIL: Ontology Inference Layer
OKBC: Open Knowledge Base Connectivity
OntoEdit: Ontology Enginnering Environment
OWL: Ontology Web Language
PHP: Hipertext Preprocessor
RDF: Resource Description Framework
RDF(S): RDF Schema
RDFa: Resource Description Framework in attributes
RDFS: RDF Schema
RSS: Really Simple Syndication
SPARQL: SPARQL Protocol And RDF Query Language
SWRL: Semantic Web Rule Language
URI: Uniform Resource Identifier
URL: Uniform Resource Location
UTF-8: 8-bit Unicode Transformation Format
W3C: World Wide Web Consortium
WISEWIG: What You See Is What You Get
XHTML: Extensible Hiper Text Makup Language
XML: Extensible Makup Language
XMLNS: XML Namespace
XSD: XML Schema
XSLT: Extensible Stylesheet Language for Transformation
SUMÁRIO
1
INTRODUÇÃO ......................................................................................... 15
1.1
Objetivo ................................................................................................................ 16
1.1.1
Objetivo Geral ...................................................................................................... 16
1.1.2
Objetivo Específico .............................................................................................. 16
1.2
Metodologia .......................................................................................................... 17
1.3
Organização do Trabalho ...................................................................................... 17
2
WEB SEMÂNTICA .................................................................................. 18
2.1
O que é Web Semântica ........................................................................................ 18
2.1.1
Conteúdo para Máquinas ...................................................................................... 21
2.1.2
Agentes de Software ............................................................................................. 22
2.2
Ambiente da Web Sintática................................................................................... 23
2.2.1
URL ...................................................................................................................... 24
2.2.2
HTML ................................................................................................................... 25
2.2.3
XHTML ................................................................................................................ 26
2.2.4
CSS ....................................................................................................................... 27
2.2.5
Outras Tecnologias ............................................................................................... 29
2.2.6
Semântica na Web 2.0 ........................................................................................... 29
2.3
Ambiente da Web Semântica ................................................................................ 30
2.3.1
Camada de Estrutura ............................................................................................. 30
2.3.2
Camada de Ontologia ........................................................................................... 31
2.3.3
Camada Lógica ..................................................................................................... 31
2.3.4
URI ....................................................................................................................... 32
2.3.5
XML ..................................................................................................................... 32
2.3.5.1
DTD ...................................................................................................................... 34
2.3.5.2
XML Schema ........................................................................................................ 34
2.3.6
RDF ...................................................................................................................... 35
2.3.6.1
Notação RDF ........................................................................................................ 36
2.3.6.2
Vocabulários ......................................................................................................... 39
2.3.6.3
Vocabulário Dublin Core ...................................................................................... 40
2.3.6.4
Namespaces .......................................................................................................... 41
2.3.6.5
RDF Schema ......................................................................................................... 43
2.3.6.6
XML/RDF Sintaxe ............................................................................................... 43
2.3.7
Outras Tecnologias ............................................................................................... 46
2.4
Considerações Finais ............................................................................................ 46
3
FERRAMENTAS DE EDIÇÃO SEMÂNTICA PARA WEB .............. 47
3.1
Principais Ferramentas de Edição para Web Semântica ....................................... 47
3.1.1
Protégé .................................................................................................................. 48
3.1.1.1
Disponibilidade ..................................................................................................... 48
3.1.1.2
Suporte .................................................................................................................. 49
3.1.1.3
Recursos ................................................................................................................ 49
3.1.2
OntoEdit................................................................................................................ 51
3.1.2.1
Disponibilidade ..................................................................................................... 52
3.1.2.2
Suporte .................................................................................................................. 52
3.1.2.3
Recursos ................................................................................................................ 52
3.1.3
SemanticWorks ..................................................................................................... 53
3.1.3.1
Disponibilidade ..................................................................................................... 54
3.1.3.2
Suporte .................................................................................................................. 54
3.1.3.3
Recursos ................................................................................................................ 54
3.2
Outras Ferramentas de Edição Semântica ............................................................ 55
3.2.1
WebODE ............................................................................................................... 56
3.2.2
OntoEditor ............................................................................................................ 56
3.2.3
RDFedt .................................................................................................................. 56
3.2.4
WebOnto ............................................................................................................... 56
3.2.5
KAON ................................................................................................................... 57
3.2.6
IkkeWiki ............................................................................................................... 57
3.2.7
OntoWiki .............................................................................................................. 58
3.3
Considerações Finais ............................................................................................ 58
4
SEMANTICPAD: UMA FERRAMENTA DE EDIÇÃO WEB
SEMÂNTICA PARA LEIGOS ................................................................................. 59
4.1
Modelagem ........................................................................................................... 59
4.1.1
Modelo de Interface Gráfica ................................................................................. 59
4.1.1.1
Mapas Conceituais ................................................................................................ 60
4.1.1.1.1
Escrita de Mapas Conceituais ............................................................................... 60
4.1.1.1.2
Leitura de Mapas Conceituais .............................................................................. 62
4.1.1.1.3
Tipos de Mapas Conceituais ................................................................................. 62
4.1.1.1.4
Interface Baseada em Mapas Conceituais ............................................................ 64
4.1.2
Modelo de Colaboração ........................................................................................ 65
4.1.2.1
Colaboração na Web 2.0 ....................................................................................... 65
4.1.2.2
Colaboração na Representação de Conhecimento ................................................ 66
4.1.2.3
Colaboração em Mapas Conceituais ..................................................................... 66
4.1.2.4
Modelo em Níveis de Confiabilidade ................................................................... 67
4.1.2.4.1
Declaração Fraca e Forte ...................................................................................... 67
4.1.2.4.2
Descrição Aberta e Fechada.................................................................................. 68
4.1.2.4.3
Mapas Conceituais Individuais e Colaborativos................................................... 69
4.1.2.4.4
Ligação entre Mapas e Incremento de Vocabulários ............................................ 70
4.1.2.4.5
Interface Colaborativa .......................................................................................... 70
4.1.3
Modelo de Aplicação Web .................................................................................... 72
4.1.3.1
Gadgets ................................................................................................................. 73
4.1.3.1.1
Características dos Gadgets .................................................................................. 73
4.1.3.1.2
Recursos do Google Gadgets................................................................................ 75
4.1.3.1.3
API Gadgets.......................................................................................................... 76
4.1.3.1.4
OpenSocial. ........................................................................................................... 77
4.1.3.2
Outras Bibliotecas e Recursos .............................................................................. 78
4.1.3.2.1
JQuery ................................................................................................................... 78
4.1.3.2.2
JQueryUI............................................................................................................... 79
4.1.3.2.3
JSDraw2D ............................................................................................................. 79
4.1.4
Visão Geral da Modelagem da Ferramenta .......................................................... 80
4.2
Protótipo ............................................................................................................... 80
4.2.1
Principais Telas da Ferramenta ............................................................................. 80
4.2.2
Interface de Edição de Mapas Conceituais ........................................................... 83
4.2.3
Interface de Edição de Coleções RDF .................................................................. 85
4.2.4
Interface de Colaboração de Mapas Conceituais .................................................. 87
4.2.5
Outras Opções Disponíveis................................................................................... 88
4.2.6
Suporte e Documentação ...................................................................................... 89
4.2.6.1
Teclas de Atalho .................................................................................................... 89
4.3
Considerações Finais ............................................................................................ 90
5
CONCLUSÃO ........................................................................................... 91
5.1
Contribuições e Conclusões .................................................................................. 91
5.2
Publicação ............................................................................................................. 93
5.3
Trabalhos Futuros ................................................................................................. 94
REFERÊNCIAS BIBLIOGRÁFICAS ............................................................................... 95
15
1
INTRODUÇÃO
Uma considerável quantidade de documentos e páginas está disponibilizada na
Internet e cientistas procuram por novas formas de minerar todo esse conhecimento humano
(MARKOFF, 2008). Em 2001 a World Wide Web Consortium (W3C, 2009) renovou seu
esforço para a produção de tecnologias como o Resource Description Framework (RDF), que
possibilitarão a chamada Web Semântica (HENDLER, 2006), ou seja, uma web que pode ser
compreendida tanto por humanos quanto por máquinas.
A Web Semântica proverá acesso refinado às fontes de informação e permitirá
a criação de produtos que possam minerar essas fontes baseando-se nas necessidades dos
usuários (FENSEL,1998). A Web Semântica é uma proposta para solucionar as deficiências e
organizar as informações na web (BERTOLINI, 2009).
Para que isto seja possível é necessário que os produtores de conteúdo
disponibilizem seus dados de forma que possa ser lido por máquinas. Estas tecnologias foram
desenvolvidas por pessoas com experiência em lógica e inteligência artificial, para
desenvolvedores tradicionais isto não é muito fácil de entender (W3SCHOOLS, 2009).
Segundo DEITEL, 2008, é improvável que desenvolvedores codifiquem todo o
conteúdo da web com estas tecnologias porque é tedioso e complexo. Isso provavelmente
ocorrerá de forma gradual por meio de editores.
Para que a internet tenha seu conteúdo legível por máquinas é necessário que
usuários produzam seu conteúdo de forma semântica, o usuário comum é o maior produtor de
conteúdo na web 2.0 (O’REILLY, 2005), mas a grande maioria desses usuários não possui
conhecimento sobre as tecnologias da Web Semântica ou como utilizá-las.
São biólogos, médicos, sociólogos e empresas que disponibilizam informações
que só podem ser descritas por pessoas da sua área ou elas próprias. Não seria exatamente
adequado que houvesse um profissional especializado para descrever informação de outrem.
Os editores disponíveis como Protégé, SemanticWorks ou OntoEdit são
voltados para profissionais de TI,
de qualquer forma um conteúdo descrito com RDF
dificilmente será mais simples de produzir do que uma informação em linguagem natural.
Uma ferramenta simples de edição semântica focada no usuário comum se faz
útil para contribuir com a proposta de uma web que possa atingir seus plenos potenciais.
16
1.1
Objetivo
A seguir serão expostos os objetivos gerais e os objetivos específicos deste
trabalho.
1.1.1
Objetivo Geral
Desenvolver uma ferramenta web de edição de RDF, com objetivo de alcançar
simplicidade, focando os usuários pouco familiarizados com tecnologia da informação.
1.1.2
Objetivo Específico
A seguir serão apresentados os objetivos específicos deste trabalho:
a) desenvolver uma ferramenta simples para edição de código RDF;
b) modelar um editor semântico para ser disponibilizado como componente
reutilizável em páginas da web;
c) disponibilizar uma ferramenta com foco no usuário leigo em TI para que possa
ser utilizada nas primeiras fases da engenharia de ontologias;
d) desenvolver uma interface que permita a colaboração e aproveite os benefícios
da inteligência coletiva;
e) desenvolver uma ferramenta simples e intuitiva para facilitar a usabilidade e
aprendizado sem necessidade de suporte;
f) tornar a ferramenta disponível e acessível para qualquer produtor de conteúdo
na web.
17
1.2
Metodologia
A seguir será apresentada a metodologia adotada para o desenvolvimento deste
trabalho:
a) estudar a realidade das tecnologias da Web Semântica, suas aplicações e
padrões;
b) coletar informações das principais ferramentas de edição utilizadas atualmente
para edição de conteúdo semântico para web;
c) pesquisar sobre possíveis pontos a serem desenvolvidos nos editores existentes;
d) pesquisar e aplicar os modelos mais adequados de desenvolvimento de
aplicações web;
e) utilizar tecnologias e bibliotecas atuais para implementação ágil e adequada do
editor.
1.3
Organização do Trabalho
A seguir serão apresentados os demais capítulos deste trabalho:
a) o Capítulo 2 apresenta um resumo sobre a Web Semântica, suas principais
tecnologias e diferenças da web de hoje;
b) o Capítulo 3 apresenta as principais ferramentas de edição de conteúdo
semântico disponíveis para a comunidade;
c) o Capítulo 4 apresenta a modelagem e protótipo da ferramenta web de edição
de conteúdo semântico para usuários leigos;
d) o Capítulo 5 apresenta a conclusão deste trabalho de graduação.
18
2
WEB SEMÂNTICA
Este capítulo apresenta a Web Semântica, bem como sua proposta e aplicação
baseando-se na literatura existente. As próximas seções deste capítulo apresentam as
diferenças entre a Web Sintática e a Web Semântica, bem como as suas principais tecnologias
e arquiteturas.
O Capítulo está organizado como segue: a Seção 2.1 apresenta o cenário que
motivou a Web Semântica. A Seção 2.2 apresenta o ambiente da Web Sintática e suas
principais tecnologias, enquanto a Seção 2.3 apresenta o ambiente da Web Semântica, suas
principais tecnologias e diferenças da Web Sintática.
2.1
O que é Web Semântica
Esta seção apresenta uma visão geral do cenário que motivou o
desenvolvimento da Web Semântica, sua justificativa e aplicação como proposta para web do
futuro.
Órgãos responsáveis pela regulamentação da web, como a Word Wide Web
Consortium (W3C), preocupam-se com o seu futuro. As constantes e drásticas transformações
que a web vem sofrendo nos últimos deram uma nova definição à web de Web 2.0
(O’REILLY, 2005). Uma das principais características desse novo conceito de internet é a
participação do usuário como atraente recurso estratégico. O usuário passou a ser o centro da
web perdendo a posição de consumidor de conteúdo e ganhando uma posição de produtor de
conteúdo.
Todos os dias, grande quantidade de conteúdo é inserida na web por todo tipo
de usuário, e toda essa informação nem sempre tem garantia de confiabilidade o que gera um
crescente acúmulo de lixo virtual.
Uma pesquisa por Redes de Computadores poderia trazer várias informações
sobre “redes” (redes de pesca ou redes de dormir) ou sobre “computadores” (lojas de
computadores) quando na verdade essa pesquisa procura por um assunto que não corresponde
a estes temas. Poder-se-ia definir a pesquisa melhor colocando entre aspas concatenando o
19
termo “redes de computadores” para que a busca retornasse apenas páginas com o conjunto
completo dessas palavras-chave em seu conteúdo. Mas ainda assim permitiria o retorno de
uma reportagem sobre a “precariedade das redes de computadores na África”, ou seja,
informações que seriam irrelevantes para o foco da pesquisa.
Hoje, uma busca mais refinada na internet pode levar horas de navegação
(MARKOFF, 2008). Com o tempo a situação tende a se agravar fazendo com que buscas
demandem muito mais tempo e esforço. Segundo BERNERS-LEE, 2001, os motores de busca
não podem fazer uma busca mais refinada porque não são capazes de entender as informações
como os seres humanos, isso porque a web é produzida para humanos e não para que
máquinas possam entender seu conteúdo.
Uma máquina num ambiente descrito para seres humanos, como a web de hoje,
pode fazer uma busca por uma palavra ou conjunto de caracteres, como o nome de um
quadro, mas não pode nos trazer informações adicionais sobre este determinado quadro, como
sua época literária, de onde veio, o que o inspirou, informações do autor... Isto porque não é
capaz de reconhecer ligações entre a palavra pesquisada e seus atributos (BREITMAN, 2005).
Ainda se este quadro tivesse um nome de uma coisa comum, como “Vênus”, essa ferramenta
de busca em um ambiente não descrito semanticamente não seria capaz de entender a
diferença entre o quadro e o astro. A Figura 1 apresenta um exemplo de busca de imagens
pela palavra “Vênus”.
20
Figura 1 - Pesquisa de imagens pela palavra “Vênus”
Apenas com buscas por palavras-chaves, a criação de resultados mais
inteligentes e sofisticados é complicada sem que as máquinas entendam a informação tal qual
os humanos entendem. Quando um ser humano observa uma página da web, como a página
abaixo, ele pode deduzir simplesmente pela exibição do conteúdo e do significado das
palavras, ainda que sem nenhuma descrição adicional, que se trata de uma receita culinária. A
Figura 2 mostra um exemplo de página da web contendo uma receita culinária.
Figura 2 - Exemplo de conteúdo na web
Um ser humano pode perceber que bolo de cenoura é um subtipo de bolo que é
composto pelos ingredientes da lista, e que os parágrafos abaixo são o modo de preparo e que
21
irão utilizar os ingredientes da lista para produzir o bolo de cenoura, etc. Mesmo sem nenhum
enunciado adicional, um ser humano pode fazer inferências sobre a informação acima por
meio da sua exibição. Toda esta semântica agregada permite ao ser humano fazer uma
quantidade de inferências lógicas sobre este conteúdo que vão muito além do seu significado
sintático, mais isso porque cada conceito presente também reúne semântica antecedente de
outras fontes. Em um ambiente sintático, como a web atual, uma máquina enxerga essa
informação mais ou menos como na Figura 3 (BREITMAN, 2005).
Figura 3 - Exemplo de como uma máquina enxerga o conteúdo
Para que uma máquina possa fazer inferências sobre o conteúdo da web assim
como um ser humano é necessário que as informações estejam disponíveis num formato que
possa ser lido por máquinas (BERNERS-LEE, 2001), que agreguem semântica e aproveitem a
semântica antecedente de outras fontes.
2.1.1
Conteúdo para Máquinas
Gerenciado pela W3C, o grupo SEMANTIC WEB ACTIVIT, 2001, está
desenvolvendo um novo conjunto de linguagens nos últimos anos. Essas novas tecnologias
permitirão que as pessoas tornem suas informações legíveis para máquinas.
Segundo BERNERS-LEE, 2001, e HENDLER, 2009, a web é um espaço
informativo concebido não apenas com o objetivo de prover comunicação entre humanos,
mas também para que máquinas fossem capazes de participar e ajudar os usuários a se
comunicarem.
22
Colocar semântica no conteúdo da web aumentará a possibilidade de
computadores do futuro fazerem tarefas e buscas sofisticadas que hoje seriam complicadas
(BERNERS-LEE, 2001). Será uma web capaz de responder perguntas complexas e sutis
(DEITEL, 2008). Para atingir os plenos potenciais da web, é necessário que máquinas sejam
capazes não apenas de varrer o conteúdo da internet para fazer buscas, mas entender o
conteúdo para manipulá-lo.
Nomes de filmes, trabalhos artísticos e pessoas possuem atributos e relações
muito difíceis de serem captados de forma automatizada sem uma descrição desta informação.
Ao longo do tempo, essas tecnologias e linguagens desenvolvidas pela W3C que compõe o
cenário da Web Semântica, estarão gradativamente formando uma web interligada por
informações e não por páginas (MARKOFF. 2008), o que facilitará essa captação,
interconexão de conceitos e informações sobre os conceitos.
A web permite que vejamos nossos dados bancários, agendas, calendários ou
nossas fotos, mas não nossas fotos no calendário com a data que foram tiradas, ou os dados
bancários na agenda. Isto porque essas páginas e serviços na web não estão conectados por
seu conteúdo (WEB SEMANTIC ACTIVIT, 2009). A web semântica proverá tecnologias que
permitirão progressivamente ligar conceitos em um conhecimento universal e unificado
(BERNERS-LEE, 2001). Estamos longe dos plenos potenciais dos sistemas inteligentes na
web e, quando chegarmos a esse ponto, chamaremos a internet de Web 3.0 (O’REILLY,
2006).
2.1.2
Agentes de Software
Grandes companhias como GOOGLE, 2009, e IBM, 2009, tem aderido a esta
proposta de web com significado (MARKOFF, 2008). O mercado se interessa por agentes
capazes de fazer buscas mais precisas e inteligentes.
O ambiente da web não possibilita o desenvolvimento de agentes de software
que sejam capazes de fazer inferências sobre a informação (BREITMAN, 2009), porque eles
não podem fazer inferências lógicas sofisticadas em ambientes sintáticos. A Web Semântica
não visa criar software e agentes com inteligência artificial que possam fazer tarefas
elaboradas, mas sim tornar a web um ambiente para que esses agentes possam existir e atuar
no futuro (BERNERS-LEE, 2001).
23
Iniciativas como DBPEDIA, 2009, grupos de trabalho da W3C e DUBLIN
CORE ACTIVITIT, 2009, estão estudando e ampliando as alternativas para tornar possível
este ambiente onde estes agentes possam atuar (HENDLER, 2006).
Segundo MARKOFF, 2008, a Web Semântica permitirá a criação de softwares
que atendam a uma busca como: “Estou procurando um lugar confortável para as férias, tenho
um orçamento de 3000 dólares e um filho de 11 anos”, que retornasse um pacote completo de
férias planejado tão meticulosamente como se tivesse sido feito por um agente humano em
uma agência de turismo.
As próximas seções apresentaram respectivamente a Web Sintática de hoje e a
Web Semântica do futuro, elucidando suas características e diferenças arquiteturais,
conceituais e tecnológicas.
2.2
Ambiente da Web Sintática
Esta seção apresenta uma visão geral sobre a arquitetura e tecnologias da Web
Sintática para destacar suas diferenças com a proposta da Web Semântica. As próximas
subseções detalharão a arquitetura e principais tecnologias da web de hoje.
A web tem uma arquitetura em camadas. Isto a torna flexível de forma que
diferentes partes podem ser alteradas independentemente contanto que o meio de
comunicação entre elas esteja inalterado (HARA-NETO, 2009). As principais camadas são a
de dados responsável pelo armazenamento da informação, a camada de negócio que manipula
os dados e a camada de apresentação que exibe os dados para o usuário (WIKIPÉDIA, 2009).
A Figura 4 apresenta um esquema que ilustra as principais camadas da web:
Figura 4 - Camadas da web
Nas próximas subseções será apresentado um resumo das principais
tecnologias atuantes na web contemporânea.
24
2.2.1
URL
A camada de apresentação (máquinas clientes) geralmente se comunica com a
camada de negócio (servidores) com uma requisição a um Uniform Resource Location (URL)
que representa um endereço na web.
Todos URLs representam um endereço de Internet Protocol (IP) de uma
máquina (roteador) na internet. Segue abaixo alguns URLs seguidos dos respectivos
endereços IPs que representam na web (WIKIPÉDIA, 2009).
a) endereço URL (www.w3.org), endereço IP correspondente: 128.30.52.38;
b) endereço
URL
(www.google.com),
endereço
IP
correspondente:
IP
correspondente:
74.125.93.147;
c) endereço
URL
(www.fatecsjc.edu.br),
endereço
208.70.188.17.
Um URL é um identificador de local, ou seja, um endereço de rede na internet.
Um URL como “http://www.exemplo.com.br/diretório1/diretório2/recurso.html” apresenta as
seguintes partes (ICMC USP, 2009):
a) o protocolo de acesso (http://);
b) o endereço IP da máquina pelo domínio (www.exemplo.com.br);
c) o caminho de diretórios até o recurso (\diretorio1\ditretorio2\);
d) o recurso a ser obtido (\recurso.html).
Após uma requisição ser enviada a um servidor, este responde com uma página
(ou outro recurso). Outras requisições podem ser feitas para o servidor contendo dados de um
formulário, dados inseridos na própria URL ou por objetos de requisição assíncrona
(TABLELESS, 2009). Estes dados podem ser processados no servidor gerando novas
respostas. Após a interação os dados podem ser armazenados na camada de persistência
(DEITEL, 2008).
A web desenvolve-se por meio da arquitetura Cliente/Servidor, onde o servidor
é qualquer recurso de hardware e software da rede que administra e oferece serviços, tais
como: hospedagem de websites, bancos de dados, serviços de e-mails, dentre outros
(AZAMBUJA, 2007).
25
2.2.2
HTML
Máquinas clientes solicitam recursos dos servidores. A resposta geralmente é
uma página de código Hiper Text Makup Language (HTML) mesclada com o conteúdo como
um documento, isto ocorre quando é digitado um endereço no navegador (DEITEL, 2008). O
código HTML define o a marcação do conteúdo para indicarmos formatações, inserir imagens
e ligações de hipertexto. Os Navegadores identificam essas marcações em HTML e
apresentam a página como foi especificada na marcação (ICMC USP, 2009). A Figura 5
apresenta um esquema de uma requisição de página na arquitetura Cliente/Servidor:
Figura 5 - Requisição de página cliente/servidor
A sintaxe HTML é baseada em tags que marcam o conteúdo e descrevem para
o interpretador de cada navegador como o documento será renderizado. Tags podem ser
abertas e fechadas definindo um escopo onde o conteúdo dentro deste é exibido com um
formato ou regra pré-definido no interpretador. A exibição descrita pela tag ainda pode sofrer
modificações descritas por seus atributos (W3C XHTML2 WORKING GROUP, 2009). A
Figura 6 mostra um exemplo de código HTML:
Figura 6 - Exemplo de código HTML
26
No exemplo de código HTML, a tag “<table> ... </table>” indica para o
interpretador do navegador que o conteúdo dentro desse escopo deverá ser exibido dentro de
uma tabela, as tags “<tr>....</tr>” (table row) e “<td>...</td>” (table dimension) indicam as
linhas e células de cada linha da tabela respectivamente. O atributo “border=1” define a
espessura da borda da tabela. O conteúdo é enviado para o navegador dentro de tags HTML
que definem a regra de exibição para o usuário mostado na Figura 7.
Figura 7 - Renderização de HTML exibida pelo navegador Firefox versão 3.0.7
2.2.3
XHTML
Segundo o XHTML2 WORKING GROUP, 2009, atualmente a maior parte das
páginas da web é feita em HTML, uma pequena parcela da internet utiliza Extensible Hiper
Text Makup Language (XHTML)(DEITEL, 2008).
O XHTML foi projetado como uma iniciativa de evitar os problemas sintáticos
do HTML, XHTML é o sucessor do HTML; este é baseado em Extensible Makup Language
(XML) e projetado para trabalhar com aplicações e agentes baseados em XML. É uma
recomendação da W3C e séries de especificações são desenvolvidas e reformuladas para a
linguagem todo ano (XHTML2 WORKING GROUP, 2009).
O XHTML é sempre associado a um documento Data Type Definition (DTD)
de validação por ser feito em XML, esse documento define as especificações das tags do
XHTML. Assim como no XML, o XHTML não permite erros sintáticos que comumente são
tolerados pelos navegadores nos códigos HTML, e é, desde a sua concepção, projetado para
ser renderizado em qualquer dispositivo.
Uma página XHTML pode ser validada em 3 DTD’s diferentes
disponibilizados na W3C, cada um com sua finalidade e nível de rigor. A Figura 8 mostra um
exemplo documento XHTML válido associado com o DTD do tipo Strict, o mais rigoroso em
temos de especificação de sintaxe.
27
Figura 8 - Exemplo de código XHTML
As linhas anteriores a tag “<html>” garantem a consistência da informação
associando o documento ao DTD, daí para baixo é uma página HTML normal seguindo os
padrões exigidos. Isto garante maior confiabilidade na exibição da página ou com sua iteração
com outras tecnologias, mas o foco não é descrever a informação, apenas exibir o conteúdo.
2.2.4
CSS
Para tornar mais rica a exibição do conteúdo são usadas outras tecnologias em
conjunto com o HTML como as Cascate Style Sheets (CSS), arquivos que permitem estilizar
de forma mais específica e com muito mais recursos de exibição aplicados à marcação
(TABLELESS, 2009).
O CSS é uma tecnologia que pode ser associada a páginas para definir o layout
e formatação do conteúdo, permite a aplicação de cores, bordas, planos de fundo e sons. A
folha de estilo em cascata pode ser aplicada diretamente na página HTML armazenada no
código dentro da tag “<style>...</style>” ou ligadas de forma externa pela tag “<link>”.
Abaixo um exemplo de aplicação de folha de estilo associada a uma página HTML de forma
externa. A Figura 9 mostra uma página HTML comum associada a uma folha de estilos CSS
por meio da tag “<link>”:
28
Figura 9 - Página HTML ligada em folha de estilo externa
A Figura 10 mostra um exemplo de código CSS que poderia ser associado a
página HTML especificando tamanho, tipo e cores das margens e das bordas de cada
elemento:
Figura 10 - Exemplo de código CSS
A Figura 11 mostra como será a renderização da página da Figura 9 ao aplicarse a folha de estilos acima:
Figura 11 - Página HTML associada com folha de estilo rederizada pelo navegador
Mozilla Firefox 3.0.7
29
2.2.5
Outras Tecnologias
O comportamento da página pode ser escrito em uma linguagem script como
Javascript dentro da tag “<script>...</script>” ou incluso em arquivo externo. Isto permite
adicionar comportamentos ou funções adicionais a página que são executados nos
navegadores (DEITEL, 2008).
Existem recursos de exibição mais ricos que permitem animações, interação e
comportamentos mais dinâmicos. Também existem linguagens ativas no servidor que
possibilitam que páginas adquiram regras de negócio, contudo, nenhuma dessas tecnologias
tem compromisso com a descrição dessa informação para máquinas (BERNERS-LEE, 2001).
2.2.6
Semântica na Web 2.0
A maior parte da web é composta por documentos em HTML ou XHTML
ligados por hiperlinks (WIKIPÉDIA, 2009). As empresas usam mineração de dados para
extrair o significado de páginas. O XHTML ou HTML, associado com folhas de estilo,
especificam a marcação e a exibição como cores e layout, mas não especificam o significado
de seu conteúdo para as máquinas (DEITEL, 2008). Isso torna difícil a mineração e uso
dessas informações (MARKOFF, 2008).
Tanto o HTML quanto o XHTML não guardam nenhuma informação
semântica sobre a informação que é nele inserido, somente como ela deve ser exibida ao
usuário, é uma web feita para humanos entender seu conteúdo, não para máquinas (DEITEL,
2008) (BERNERS-LEE, 2006) (HENDLER, 2006). Descrever a semântica da informação é
muito mais complexo do que etiquetá-la entre tags, para tornar um documento machine
readable são necessárias tecnologias especializadas em descrição semântica que veremos na
próxima seção.
30
2.3
Ambiente da Web Semântica
Esta seção detalha na arquitetura básica da Web Semântica e apresenta suas
principais tecnologias.
A arquitetura da Web Semântica é comumente ilustrada por uma figura
chamada “Bolo de Noiva” (BERNERS-LEE, 2008). Ela apresenta as camadas adicionais que
a Web Semântica conterá e ilustra as principais tecnologias atuantes em cada uma. Pode ser
reconhecida em três níveis sendo esses: estrutural, ontologia e lógica (WIKIPÉDIA, 2009)
além de dois níveis verticais que garantem a segurança. A Figura 12 ilustra a arquitetura da
Web Semântica.
Lógica
Ontologia
Estrutura
Figura 12 - Arquitetura da Web Semântica
2.3.1
Camada de Estrutura
A Camada de Estrutura abrange os dois primeiros níveis com as tecnologias de
Uniform Resource Identifier (URI), Unicode, XML e namespaces. Elas definem os aspectos
sintáticos mais simples da web estrutural (JACINTO, 2006). Essa camada é o alicerce da Web
31
Semântica. Segundo a W3C WEB SEMANTIC ACTIVIT, 2009, esta camada tem por
finalidade de:
a) padronizar o uso de caracteres;
b) definir significado sintático;
c) definir localização dos recursos.
2.3.2
Camada de Ontologia
A Camada de Ontologia abrange os dois níveis com as tecnologias de Modelo
e Sintaxe RDF, RDF Schema e Ontologias. Com o tempo surgiram outras linguagens como a
Ontology Web Language (OWL) com maiores recursos de descrição semântica. Esta camada
tem as seguintes finalidades (W3C, 2009):
a) descrever os recursos com meta-informação;
b) ter uma melhor e mais detalhada classificação e caracterização das relações
entre os recursos;
c) garantir interoperabilidade e reuso de conceitos e termos;
d) para os casos mais complexos, definir as relações lógicas entre os recursos.
2.3.3
Camada Lógica
A Camada de Lógica abrange os últimos níveis chamados de Regras, Lógica,
Prova e Confiança. É neste nível que é validada e especificada a meta-informação das
camadas inferiores para que se atinja a confiabilidade (W3C, 2009). Este nível tem a
finalidade de:
a) definir as regras entre os recursos e suas relações;
b) extrair e vincular fontes de dados para garantir o seu intercâmbio com os dados
provenientes de outras fontes;
c) consultar informações descritas por meio dessas relações;
d) revelar contradições;
e) descobrir novas relações.
32
Nas próximas seções serão apresentadas as principais tecnologias da Web
Semântica.
2.3.4
URI
Um Uniform Resource Indentifier (URI) identifica um recurso na web, seja este
abstrato ou físico (W3C, 2009). Um URI pode identificar de forma única qualquer coisa na
internet. O URI é uma extensão do URL sendo que todo URL também é um URI (MANOLA,
2004). A Figura 13 mostra alguns exemplos de URI que apontam para recursos:
Figura 13 - Alguns exemplos de URI’s
No primeiro exemplo temos uma identificação de um recurso de caixa de
email, no segundo um livro e no terceiro exemplo, a idade de uma pessoa. Por meio dos
URI’s podemos identificar qualquer coisa na web como um recurso e, a partir disso, começar
a descrevê-la. O URI é a base para o RDF e desde já soluciona o problema de ambigüidade
como pesquisar por um nome comum já que a identificação do recurso passa a ser único na
internet (BERNERS-LEE, 2004).
Logo, é conveniente utilizar URI’s para identificar recursos na web. No modelo
do RDF quanto mais utilizar-se URI’s do que informações literais (caracteres em linguagem
natural, por exemplo) mais adequado será para termos uma web ligada por informações
(MANOLA, 2004). Nas próximas seções será apresentado o XML e o RDF, e como estes
fazem uso das URI’s para sanar alguns dos problemas semânticos da web.
2.3.5
XML
Extensible Makup Language (XML)(W3C, 2009) é uma linguagem de
marcação recomendada pela W3C que tem uma finalidade diferente do HTML. Trata-se se
uma linguagem que representa informação em forma de árvores estruturando o conteúdo, são
linguagens com finalidades diferentes (BRAY, 2008). O HTML é projetado para exibição da
33
informação enquanto o XML é projetado para seu armazenamento e transporte
(W3SCHOOLS, 2009).
Diferente do HTML, o XML não possui tags pré-definidas, qualquer usuário
pode definir suas próprias tags como lhe convenha para estruturar sua informação. A Figura
14 mostra um exemplo de arquivo XML:
Figura 14 - Exemplo de código XML
O XML tem a finalidade de prover comunicação padronizada entre máquinas
especificando uma estrutura comum para a comunicação. Para isto, usa um documento que
padroniza a informação como um DTD ou XML Schema. Na web as máquinas trocam
informações entre si em XML e a exibem para o usuário em HTML (W3SCHOOLS, 2009)
O XML é usado como base para criação de vários outros padrões como o
XHTML e o RDF. No entanto o XML por si só também não tem compromisso com a
semântica da informação. Inserir semântica no conteúdo é mais complexo do que envolvê-los
em tags. O XML serve de base para as linguagens de descrição semântica, mas ele próprio é
apenas sintático (BERNERS-LEE, 2004) e pertence à camada estrutural da Web Semântica.
34
2.3.5.1
DTD
Um documento XML pode ser validado por um documento Data Type
Definition (DTD), por meio dos DTD’s pode se criar padrões para o transporte e
armazenamento da informação entre dispositivos diferentes, solucionando o problema de
incompatibilidade dos dados. Dados marcados em XML são arquivos de textos simples
legíveis por quaisquer dispositivos (W3SCHOOLS, 2009)
Para o documento XML mostrador anteriormente, poderia ser criado um DTD
como o apresentado na Figura 15 para padronizar o transporte de informação sobre receitas
culinárias.
Figura 15 - Exemplo de código DTD
O DTD acima descreve os elementos válidos para o documento XML, a tag
“<receita>” na linha dois deve receber os elementos filhos “<modo_de_preparo>” e
“<ingredientes>”, o elemento “<ingredientes>” deve receber o elemento “<ingrediente>” e o
“<modo_de_preparo>” pode ou não receber o elemento “<passo>” e pode receber conteúdo
de texto (#PCDATA).
Um documento DTD pode ser utilizado para criar um padrão de comunicação
entre máquinas, por isso o XML não permite erros de sintaxe segundo as especificações da
linguagem ou do documento de definição.
2.3.5.2
XML Schema
Assim como o DTD, um XML Schema pode ser usado para validar um
documento XML, mas esse possui mais recursos como cardinalidade, suporte a criação de
tipos, namespaces além de ser escrito em XML (W3C SCHOOLS, 2009). A Figura 16 mostra
um exemplo de um documento XML Schema com a mesma finalidade do DTD da Figura 15:
35
Figura 16 - Exemplo de código XML Schema
2.3.6
RDF
A Web Sintática é destinada ao usuário humano sendo que o usuário máquina
não pode dispor das informações contidas nela tal qual um ser humano, porque para uma
máquina, essas informações não possuem um significado (BREITMAN, 2006). No contexto
da Web Semântica essas informações são chamadas de recursos.
Um recurso é qualquer informação que possa ser descrita com suas
propriedades e suas relações com outros recursos. Segundo (MANOLA, 2004) um recurso é
qualquer informação na web que possa ser identificada e reutilizada. Para descrever esses
recursos são utilizadas tecnologias como o Resourse Description Framework (RDF).
Podemos definir o RDF como um ambiente de descrição de recurso que tem
suas características e padrões. A seguir, o RDF e suas particularidades serão mostrados com
mais detalhes.
36
2.3.6.1
Notação RDF
O RDF é um ambiente simples que possibilita a descrição de meta-informação
sobre recursos da web. As descrições são formadas por uma série de declarações que são
chamadas de triplas. Uma tripla está presente em qualquer declaração descritiva (BERNERSLEE, 2001). Triplas são compostas de três elementos: um sujeito, um predicado e um objeto
(MANOLA, 2004) como serão descritos a seguir:
a) sujeito: É o recurso que a declaração descreve;
b) predicado: Uma propriedade do recurso que a declaração descreve;
c) objeto: O valor da propriedade do recurso que a declaração descreve, podendo
este também ser outro recurso.
Um exemplo de declaração como: “RDF Primer foi criado em 10 de fevereiro
de 2004”, pode ser expressa pela seguinte tripla: (a) “RDF Primer”, (b) “data de criação”, (c)
“10 de Fevereiro de 2004”, sendo:
a) sujeito: RDF Primer;
b) predicado: data de criação;
c) objeto: 10 de Fevereiro de 2004.
Assim qualquer informação sobre qualquer recurso na web pode ser expressa
por triplas, como na tripla “Frank Manola” “autor” “RDF Primer”. O recurso RDF Primer
surge agora como um objeto da declaração, porém para uma máquina não existe nenhuma
relação entre o sujeito “RDF Primer” da primeira declaração com o objeto “RDF Primer” da
segunda declaração que garanta que sejam referentes ao mesmo conceito; trata-se apenas um
conjunto de caracteres iguais sem garantia que sejam a mesma coisa para uma máquina
(BREITMAN, 2006).
Da mesma forma “redes” (num contexto de pescaria) ou “redes” (num contexto
de computadores) possuem o mesmo conjunto de caracteres, mas não agregam semântica que
explicite que sejam conceitos diferentes.
Isto ocorre porque estamos trabalhando com literais. Literais são valores que
podem ser utilizados em triplas RDF, mas que só representam o significado léxico da
informação como em linguagem natural (W3SCHOOLS, 2009). Em gráficos RDF, literais são
exibidas dentro de retângulos, a Figura 17 mostra as triplas acima expressas por um gráfico
RDF somente com literais:
37
Figura 17 - Gráfico RDF somente com literais
Como visto, literais não bastam para identificar um recurso como sendo único
e permitir sua reutilização, assim, na especificação da notação RDF, literais só podem ser
utilizadas como objetos, mas nunca como sujeito ou predicado (W3SCHOOLS, 2004).
O RDF usa URI’s para identificar sujeitos e predicados nas triplas de forma
que cada recurso pode ser referenciado como sendo único e suas diferenças possam ser
descritas. A solução adequada no exemplo anterior é centralizar o recurso “RDF Primer” por
meio de uma identificação única de recurso como: “http://www.w3.org/TR/2004/REC-rdfprimer-20040210”.
O conceito “RDF Primer” identificado por um URI aponta para o mesmo
recurso, logo uma máquina entende que estão sendo feitas declarações sobre um mesmo
recurso “RDF Primer”. A primeira tripla acima pode ser escrita da seguinte forma
(MANOLA, 2004):
a) <http://www.w3.org/TR/2004/REC-rdf-primer-20040210>;
b) data de criação;
c) 10 Fevereiro 2004.
Logo a segunda tripla receberia o mesmo URI para identificar o recurso “RDF
Primer” indicando que se trata de uma relação sobre a mesma informação:
a) “Frank Manola”
b) “autor”
c) <http://www.w3.org/TR/2004/REC-rdf-primer-20040210>
Na notação RDF referências para URI’s são apresentadas dentro dos sinais de
menor e maior como uma tag. As triplas acima representam um gráfico como o apresentado
pela Figura 18.
URI’s são apresentadas com elipses em gráficos RDF. O gráfico da Figura 18
mostra duas triplas, uma que referência “RDF Primer” como objeto, e outro como sujeito. O
termo “Frank Manola” é um sujeito neste exemplo, logo este também não pode ser uma
literal. Segundo BERNERS-LEE, 2001, é sempre melhor que sujeitos e predicados sejam
sempre identificados por URI’s para permitir a identificação e reuso da informação.
38
Figura 18 - Exemplo de gráfico RDF
Informações adicionais sobre os recursos “RDF Primer” e “Frank Manola”
poderiam ser declaradas em outras triplas que ligariam várias informações sobre estes
recursos. A Figura 19 mostra o conceito “Frank Manola” representado por um URI agregando
mais informações:
Figura 19 - Exemplo de gráfico RDF descrevendo Frank Manola
Um conjunto de triplas consistente forma uma ontologia. No contexto da Web
Semântica, uma ontologia caracteriza um conjunto de conceitos dentro de um domínio de
conhecimento e os relacionamentos entre estes (WIKIPÉDIA, 2009). Ao longo do tempo,
estas ontologias irão gradativamente formar uma web interligada por conceitos e não por
páginas (MARKOFF, 2008). As tecnologias da Web Semântica permitirão progressivamente
ligar conceitos em um conhecimento universal e unificado (BERNERS-LEE, 2001)
(HENDLER, 2006).
Predicados em RDF (como “data de criação” e “autor”) também não podem ser
expressos por literais, os predicados também ligam as relações em conceitos de relação
centralizados (KLYNE, 2004) e seus conceitos podem ser sujeitos e objetos de outras
39
declarações. Conjuntos de conceitos reutilizáveis são chamados de vocabulários.
Conheceremos a definição de vocabulários na seção a seguir:
2.3.6.2
Vocabulários
No exemplo acima não temos literais como sujeito, porém nota-se que os
predicados não estão identificados de forma única. URI’s também são aplicados para
identificar predicados. Termos utilizados em descrições RDF agrupados em um namespace
que são chamados de vocabulários.
Uma loja de veículos que esteja descrevendo semanticamente seus produtos
poderia definir um vocabulário que descreve as propriedades dos veículos como o vocabulário
a seguir:
a) conceito “modelo”: “http://www.lojaveiculos1.com/prod/terms/modelo”;
b) conceito “ano”: “http://www.lojaveiculos1.com/prod/terms/ano”;
c) conceito “cor”: “http://.www.lojaveiculos1.com/prod/terms/cor”.
Este vocabulário poderia ser reutilizado por uma segunda loja para descrever
seus veículos e assim teríamos um vocabulário com termos únicos que interligariam a
semântica de veículos como no exemplo da Figura 20:
Figura 20 - Exemplo de gráfico RDF para loja de veículos
Não foi necessário que a Loja de Veículos 2 (www.lojaveiculos2.com) criasse
seu próprio vocabulário, mas esta reaproveitou o significado já descrito nos termos do
vocabulário da Loja Veículos 1 (www.lojaveiculos1.com). Da mesma forma a Loja Veículos
2 reutilizou o URI “www.lojaveiculos1.com/automoveis/tipos/fusca” disponibilizado pela
40
Loja Veículos 1 para descrever um “modelo” (www.lojaveiculos1.com/prod/terms/modelo)
de fusca. Isso é uma utilização de recurso, assim diferentes vocabulários vão sendo
interligados formando descrições comuns de recursos.
Ambas as lojas utilizaram um vocabulário que já poderia ter coleções de triplas
interligadas com outros termos ou outros vocabulários de outras fontes. Segundo MANOLA,
2004, isto é a segunda finalidade do URI, reuso de informação.
2.3.6.3
Vocabulário Dublin Core
Vocabulários comuns possibilitam o reuso da informação, alguns vocabulários
como o DUBLIN CORE, 2009, já são recomendações. O Dublin Core é um vocabulário com
quinze termos gerais utilizados para a descrição de recursos na internet (DUBLIN CORE,
2009), abaixo serão listados os termos desse vocabulário:
a) contribuidor (Contributor): Uma entidade responsável pela criação do recurso;
b) cobertura (Coverage): Uma extensão ou escopo do conteúdo do recurso;
c) criador (Creator): Uma entidade principal responsável pela elaboração do
conteúdo do recurso;
d) formato (Format): A manifestação física ou digital do recurso;
e) data (Date): A data de um evento no ciclo de vida do recurso;
f) descrição (Description): Uma descrição do conteúdo do recurso;
g) identificador (Identifier): Uma referência inequívoca para o recurso dentro de
um determinado contexto;
h) língua (Language): A língua em que foi produzido o conteúdo do recurso;
i) editora (Publisher): Uma entidade responsável por tornar o recurso disponível;
j) relação (Relation): Uma referência a um recurso relacionado;
k) direitos (Rights): Informações sobre os direitos adquiridos sobre o recurso;
l) fonte (Source): Uma referência a um recurso a partir do qual o presente recurso
é derivado;
m) assunto (Subject): Um tópico do conteúdo do recurso;
n) título (Title): Um nome dado ao recurso;
o) tipo (Type): A natureza ou gênero do conteúdo do recurso.
41
A Figura 21 mostra as triplas da Figura 17 adequadamente descritas segundo a
notação RDF e recomendações da W3C utilizando o vocabulário Dublin Core:
Figura 21 - Exemplo de gráfico RDF com vocabulário Dublin Core
Um namespace como o Dublin Core pode ser referenciado por um qname. O
Vocabulário Dublin Core é comumente referenciado pelo prefixo “dc”. A definição de
namespace e prefixo será apresentada na próxima seção.
2.3.6.4
Namespaces
Um namespace é um container abstrato que reúne um conjunto de recursos
(WIKIPÉDIA, 2009). Um grupo de recursos disponíveis em um URI é chamado de
namespace. A Figura 22 mostra um exemplo de namespace:
Figura 22 - Exemplo de namespace
Por meio do atributo “xmlns” (XML namespace) pode se reduzir os
namespaces em prefixos também chamados de qnames facilitando a referência escrita para os
42
URI’s, ou seja, reaproveitar endereços de termos e recursos que sejam comuns em pequenas
inscrições no código (MANOLA, 2004) como no exemplo mostrado na Figura 23:
Figura 23 - Exemplo de gráfico RDF ilustrando tripla
O predicado da tripla acima faz referência ao vocabulário Dublin Core na
propriedade date (http://purl.org/dc/elements/1.1/date) e pode ser escrito pela tripla:
a) sujeito: <http://www.w3.org/TR/2004/REC-rdf-primer-20040210>
b) predicado: <http://purl.org/dc/elements/1.1/date>
c) objeto: “10 Fevereiro 2004”
Se fosse utilizada a propriedade “xmlns” aplicando o namespace do
vocabulário Dublin Core (http://purl.org/dc/elements/1.1/), ele pode ser resumido a um
QName como “dc”, desta forma o gráfico ficaria como mostrado na Figura 24:
Figura 24 - Gráfico RDF destacando namespace
E a tripla poderia ser escrita da seguinte forma:
a) sujeito: <http://www.w3.org/TR/2004/REC-rdf-primer-20040210>
b) predicado: dc:date
c) objeto: “10 Fevereiro 2004”
Existem prefixos que são muito utilizados em documentos XML/RDF, e são
tidos como padrões pela comunidade, os mais comuns são:
a) prefixo “rdf” referenciando “http://www.w3.org/1999/02/22-rdf-syntax-ns#”:
define um documento RDF e as propriedades do namespace do RDF;
43
b) prefixo
“rdfs”
referenciando
“http://www.w3.org/2000/01/rdf-schema#”:
define o namespace do RDF Schema;
c) prefixo
“dc”
referenciando
“http://purl.org/dc/elements/1.1/”:
define
o
namespace para o vocabulário Dublin Core;
d) prefixo “xsd” referenciando “http://www.w3.org/2001/XMLSchema#”: define
o namespace XML Schema.
A Figura 25 mostra um exemplo de declaração de namespaces num documento
RDF:
Figura 25 - Declaração de namespaces
Os vocabulários são geralmente descritos por um RDF Schema. Na próxima
seção será apresentada a definição de RDF Schema.
2.3.6.5
RDF Schema
O RDF Schema pode descrever recursos e vocabulários com classes e
propriedades de forma semelhante ao conceito de Orientação a Objetos (W3SCHOLS, 2009).
Ele foi originalmente desenvolvido pelo (RDF SCHEMA WORKING GROUP, 2000) da
W3C (BRICKLEY, 2004), e tem por finalidade descrever vocabulários (MANOLA, 2004). A
Figura 26 mostra um exemplo de RDF Schema descrevendo um vocabulário válido para
descrição de receitas culinárias.
2.3.6.6
XML/RDF Sintaxe
Tanto o RDF quanto o RDF Schema são definidos em XML (FENSEL, 2009)
(DEITEL, 2008). Esta sintaxe é chamada de RDF/XML (BECKETT, 2004).
44
Figura 26 - Exemplo de código RDF Schema
A tripla a seguir pode ser representada por um documento XML/RDF:
a) sujeito: <http://www.w3.org/TR/2004/REC-rdf-primer-20040210>
b) predicado: dc:date
c) objeto: “10 Fevereiro 2004”
A Figura 27 apresenta um exemplo de documento XML/RDF para a declaração
acima:
Figura 27 - Exemplo de código RDF/XML
45
O
atributo
“xmlns”
faz
as
ligações
ou
arcos.
A
linha
“xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#” define o trecho de código da
Figura 27 como um gráfico XML/RDF válido, pois as tags “<rdf:RDF>...</rdf:RDF>”
definem o escopo associado com o namespace do RDF. A linha logo abaixo desta faz a
ligação com o vocabulário do namespace do Dublin Core. O documento provê a ligação dos
seguintes URI’s formando uma árvore como apresentada na Figura 28:
Figura 28 - Árvore de ligações entre URI’s em tripla RDF
As três últimas são respectivamente o sujeito, predicado e objeto. A Figura 29
mostra como poderia ser a mesma árvore com os qnames definidos no escopo da tag
“<rdf:RDF>”
Figura 29 - Árvore de ligações de URI’s com XML namespaces
Logo, com exceção das três últimas, as três primeiras URI’s que são o
cabeçalho de uma descrição RDF válida (MANOLA, 2004). Cada documento RDF/XML
pode fazer uma série de declarações sobre um recurso. Um conjunto de triplas RDF
consistente forma uma ontologia (BRICKLEY 2004).
46
2.3.7
Outras Tecnologias
a) OWL: O Web Ontology Language se tornou recomendação da W3C em 2004.
Surgiu da fusão entre outras duas linguagens de descrição semântica, Ontology
Inference Layer (OIL) + DARPA Agent Makup Language (DAML)
(WIKIPÉDIA, 2009). OWL é uma extensão do RDF Schema agregando mais
recursos de descrição com maior quantidade de vocabulários possibilitando
maior interpretação por máquinas (W3C SCHOOLS, 2009). Possui três níveis
sendo do mais simples para o mais completo, OWL Lite, OWL DL e OWL
Full respectivamente (MCGUINNESS, 2004).
b) SWRL: O Semantic Web Rule Language (SWRL) surgiu da combinação das
linguagens OWL e Rules Makup Language (HORROCKS, 2004). É uma
extensão do OWL que permite a inserção de regras sobre o conteúdo descrito;
c) SPARQL: Trata-se de uma linguagem estruturada para consulta a ontologias
(PRUD'HOMMEAUX, 2008).
2.4
Considerações Finais
Este capítulo expôs as diferenças entre a Web Sintática e a Web Semântica
bem como uma visão geral de suas principais tecnologias. No Capítulo 3 será mostrado
algumas das mais utilizadas ferramentas edição de conteúdo semântico e ontologias. No
próximo capítulo são apresentadas algumas ferramentas de edição de conteúdo semântico
utilizadas atualmente pela comunidade desenvolvedora.
47
3
FERRAMENTAS DE EDIÇÃO SEMÂNTICA PARA WEB
Este capítulo apresenta as principais ferramentas utilizadas para produção,
edição e manipulação de semântica para web. Foram selecionadas algumas das ferramentas
utilizadas pela comunidade desenvolvedora de ontologias com base nas publicações e
trabalhos desenvolvidos.
A as subseções da Seção 3.1 apresentam respectivamente as ferramentas
Protégé, OntoEdit e SemanticWorks. A última seção deste capítulo descreve resumidamente
algumas outras ferramentas disponíveis à comunidade.
3.1
Principais Ferramentas de Edição para Web Semântica
As subseções a seguir apresentam algumas ferramentas de edição de conteúdo
semântico disponíveis para a comunidade desenvolvedora.
Três das principais ferramentas foram analisadas pelos seguintes critérios:
a) disponibilidade: analisa a disponibilidade da ferramenta considerando versão
estável, beta ou protótipo, os direitos vigentes sobre a utilização da ferramenta
e quais as plataformas e tecnologias necessárias para sua instalação.
b) suporte: considera o tipo de suporte que as entidades disponibilizam para a
comunidade, a documentação da ferramenta, a facilidade de encontrar suporte e
informações na internet, FAQ, fóruns, tutoriais, cursos e publicações.
c) recursos: considera a interface nos requisitos de usabilidade, verifica a
existência de recursos para desenvolvimentos nos vários padrões e linguagens,
analisa a existência de recursos para desenvolvimento colaborativo.
As demais ferramentas apresentadas contam com uma breve descrição. Esperase com este estudo adquirir parâmetros que contribuam com a construção da ferramenta que
se propõe este trabalho.
48
3.1.1
Protégé
Protégé é uma das mais difundidas ferramentas de edição semântica entre os
desenvolvedores, foi desenvolvida pela Universidade de Stanford com colaboração da
Universidade de Manchester (WIKIPÉDIA, 2009).
Várias comunidades de desenvolvedores trabalham para o aperfeiçoamento
dessa ferramenta (JACINTO, 2006). Entre as entidades que fazem parte da comunidade de
desenvolvimento e aperfeiçoamento da ferramenta estão PROTÉGÉ-STANFORD, 2009:
a) Defense Advanced Research Projects Agency;
b) eBay Inc.;
c) National Cancer Institute;
d) National Institute of Standards and Technology;
e) National Institutes of Health's National Centers for Biomedical Computing;
f) National Library of Medicine;
g) National Science Foundation.
O site oficial também divulga congressos e conferências sobre a ferramenta.
Nas subseções a seguir serão apresentadas as principais características da
ferramenta Protégé.
3.1.1.1
Disponibilidade
Protégé é um editor de ontologias livre, de código fonte aberto sobre a licença
MPL (Mozilla Public License) (PROTÉGÉ-STANFORD, 2009). Pode ser encontrado em
vários páginas para download gratuito em todas suas versões ou após um cadastro no site
oficial da ferramenta.
Protégé também tem uma versão on-line chamada WebProtégé, porém oferece
menos recursos do que em sua versão para instalação. Protégé é de plataforma independente,
fácil instalação não carecendo de configuração alguma e foi desenvolvido principalmente em
Java tendo a Java Runtime Environment (JRE) como pré-requisito.
49
3.1.1.2
Suporte
Protégé possui uma vasta documentação disponível tanto no site oficial quanto
na ferramenta, Ela possui uma comunidade ativa, sites, FAQ,blogs e fóruns. O site oficial e
disponibiliza alguns cursos rápidos e gratuitos com duração de 2 a 4 dias.
3.1.1.3
Recursos
Protégé é uma plataforma que suporta dois níveis de modelagem, ProtégéFrames e Protégé-OWL. Protégé-Frames permite que usuários possam povoar ontologias,
possui uma interface baseada em figuras para facilitar a ambientação do usuário não
familiarizado com a arquitetura técnica das ontologias. As descrições são armazenadas em um
conjunto de classes organizadas hierarquicamente em conformidade com o OKBC (Open
Knowledge Base Connectivity) (PROTÉGÉ-STANFORD, 2009). A Figura 30 exibe a
interface de Protégé-Frames:
Figura 30 - Interface do Protégé-Frames
Protégé-OWL permite que ontologias sejam criadas de forma mais técnica.
Fornece recursos para edição de classes, propriedades, instâncias e lógica (PROTÉGÉSTANFORD, 2009). Neste modelo, de todas as ferramentas analisadas, Protégé é a que dá
50
maior suporte as linguagens e padrões desde o RDF, RDF Schema, RDF(S), OWL Lite, OWL
DL, OWL Full, OIL, DAML, DAML+OIL e até Turtle. A Figura 31 mostra a interface de
Protégé-OWL (PROTÉGÉ-STANFORD, 2009).
Figura 31 - Interface do Protégé-OWL
Protégé também possui uma versão na web chamada WebProtégé. WebProtégé
suporta a criação de ontologias colaborativamente no ambiente da web. A Figura 32 apresenta
a interface do WebProtégé.
Figura 32 - Interface do WebPrótegé
51
Segundo o FAQ de (PROTÉGÉ-STANFORD, 2009) as características que
diferem Protégé de outras ferramentas são:
a) facilidade: na versão Protégé-Frames é intuitivo para facilitar a produção de
ontologias para os usuários;
b) Escalabilidade: possui uma arquitetura que não deteriora o desempenho ainda
que trabalhando milhares frames com uma comunidade que já conta com cerca
de 150,000 frames;
c) extensibilidade: Aceita plug-ins de ampliação;
d) documentação: possui uma extensa documentação e cursos gratuitos.
Protégé-OWL possui um modo gráfico para visualização das triplas baseado
em mapas conceituais e permite a geração do código ou edição do mesmo em modo textual
diretamente em XML.
3.1.2
OntoEdit
OntoEdit é um ambiente de engenharia de ontologias criado pela empresa
alemã ONTOPRISE, 2009. É uma parte do projeto ON-TO-KNOWLEDGE, 2009, que visa
tornar disponíveis ontologias para empresas melhorarem sua gestão de conhecimento. A
Seguir serão apresentadas as principais características da ferramenta de edição semântica para
web OntoEdit.
Trata-se de um consórcio composto pelas entidades abaixo (ANGELE, 2001):
a) Vrije Universiteit Amsterdam VUA;
b) Institute AIFB / University of Karlsruhe;
c) Schweizerische Lebensversicherungs- und Rentenanstalt/Swiss Life;
d) British Telecommunications plc;
e) CognIT a.s.;
f) EnerSearch AB;
g) AIdministrator Nederland BV.
52
Este projeto conta com diversas outras ferramentas utilizadas pela comunidade
desenvolvedora de ontologias. OntoEdit é um ambiente extensível a plug-ins e add-ons e,
constantemente, possui novos recursos incrementais (SURE, 2002).
3.1.2.1
Disponibilidade
OntoEdit (Ontology Enginnering Environment) é disponibilizado em três
versões: freeware, standard e professional (SURE, 2003), todas com suporte a diversas
linguagens.
Funciona principalmente na plataforma Windows. OntoEdit tem como
requisito mínimo a JRE1.2.2 instalada, mas os autores recomendam a JRE1.3 (SURE, 2003),
pode ser encontrado para download em vários sites em suas três versões.
3.1.2.2
Suporte
A ajuda da ferramenta inclui informações sobre a versão, contato e guia do
usuário. O guia do usuário é simples e completo contendo figuras de exemplo (SURE, 2002).
Na web a empresa não disponibiliza muita informação, tutoriais, FAQ ou
fóruns sobre a ferramenta, mas existe uma documentação oficial completa sobre a ferramenta
disponibilizada em ON-TO-KNOWLEDGE, 2009. Além disso, existem vários artigos
publicados contendo OntoEdit como foco sob diversos aspectos. Dentre estes, MAEDCHE,
2000, STAABET, 2000, e HANDSCHUH, 2001, são autores de algumas publicações (SURE,
2002).
3.1.2.3
Recursos
OntoEdit possibilita a inspeção, navegação, codificação e edição de ontologias.
A interface possibilita a manipulação em modo gráfico ou textual. A configuração da
53
ferramenta pode ser customizada (SURE, 2003). Segundo (JACINTO, 2006) OntoEdit tem
algumas funcionalidades como:
a) hierarquia de conceitos;
b) ontologia multi-lingual;
c) modelo de representação baseado em frames;
d) trabalho colaborativo;
e) herança múltipla.
Implementado em Java, OntoEdit foi principalmente elaborado para ser um
agregador de add-on, snap-ins e plug-ins sendo um ambiente incremental e em constante
ampliação de recursos por meio da modularização (SURE, 2002). OntoEdit também permite a
produção colaborativa de ontologias (SURE, 1999). A Figura 33 apresenta a interface de
OntoEdit.
Figura 33 - Interface do OntoEdit
3.1.3
SemanticWorks
SemanticWorks é um editor de RDF e OWL para Web Semântica, é uma
ferramenta atual, sua primeira versão foi lançada em 2006 e hoje encontra-se na versão 2009
(ALTOVA, 2009). Trata-se de uma ferramenta proprietária produzida pela Altova, uma
empresa de desenvolvimento de software fundada em 1992 (WIKIPÉDIA, 2009).
54
Abaixo serão apresentadas as principais características da ferramenta de edição
semântica para web SemanticWorks.
3.1.3.1
Disponibilidade
SemanticWorks é uma ferramenta proprietária, porém é disponibilizada em
versão de teste por trinta dias. Pode ser encontrada para download em vários sites ou em
(ALTOVA, 2009). SemanticWorks possui versões para MacOS X ,Linux RedHat 8.0 e
Windows NT 4.0 ou superior (ALTOVA, 2009).
3.1.3.2
Suporte
O site oficial da ferramenta oferece cursos, FAQ, fóruns e suporte para outras
ferramentas desenvolvidas pela empresa, no entanto SemanticWorks é uma das ferramentas
que possuem menos documentação e suporte pelo site. Contudo, a documentação disponível
no help da ferramenta é bastante abrangente e fácil de utilizar.
3.1.3.3
Recursos
SemanticWorks não oferece suporte a muitas linguagens e padrões sendo mais
focada em RDF, RDF Schema e OWL em suas três versões, OWL-Lite, OWL-DL e OWLFull (ALTOVA, 2009).
SemanticWorks tem uma interface limpa, ferramentas e pallets que são usadas
em modo OWL Full não aparecem no modo de edição de RDF, a interface esconde ou exibe
o recurso dependendo do nível de semântica ou linguagem que o usuário pretende utilizar .
A interface gráfica de SemanticWorks é semelhante aos programas comuns a
desenvolvedores, como DreamWeaver, facilitando a rápida ambientação. As triplas RDF
55
podem ser visualizadas tanto em modo texto, em código XML, como em modo gráfico
seguindo um modelo semelhante á mapas conceituais, podendo ser editadas graficamente.
Existe também um tipo de validador que previne eventuais erros e exibe avisos.
A ferramenta aceita plug-ins e extensões (ALTOVA, 2009). A Figura 34 apresenta a tela
principal do SemanticWorks.
Figura 34 - Interface do SemanticWorks
3.2
Outras Ferramentas de Edição Semântica
Nesta seção serão apresentados os resumos descritivos de outras ferramentas de
edição semântica.
56
3.2.1
WebODE
Ambiente para produção de ontologias semelhante à Protégé. É um ambiente
de trabalho integrado que facilita o desenvolvimento e raciocínio sobre ontologias e exporta
arquivos em diversos formatos (JACINTO, 2006).
3.2.2
OntoEditor
OntoEditor é uma ferramenta web para edição de ontologias, tem uma interface
simples baseada no paradigma de navegação na web e permite a criação de ontologias a partir
de arquivos de texto tabulados representando a estrutura das ontologias (YOUN, 2006).
3.2.3
RDFedt
Desenvolvido por Jan Winker, RDFedt é uma ferramenta que tem semelhanças
com a proposta deste trabalho por ter um foco na produção simples e rápida de triplas RDF
além permitir a edição de RSS 1.0.
RDFedt possui um modo gráfico que exibe estruturas em forma de árvore, possui um recurso
que possibilita transformar texto identado em códigos RDF. Suporta formatação em
Extensible Style sheet Language for Transformation (XSLT) e geração automática de RDF
baseada em lista HTML (YOUN, 2006).
3.2.4
WebOnto
Desenvolvido pelo intituto Knowledge Media Institute da Open University na
Inglaterra. Suporta a criação e navegação colaborativa em Open Configuration and
57
Management Layer (OCML). É de utilização simples e suporta ontologias em larga escala.
Entre as principais funcionalidades estão (YOUN, 2006):
a) gerenciamento WISEWIG (What You See Is What You Get);
b) geração de formulários para edição de instâncias baseados nas definições das
classes;
c) inspeção dos elementos em árvore;
d) depuração de consistência;
e) suporte a edição colaborativa.
3.2.5
KAON
KAON (the KArlsruhe ONtology and semantic web tool suíte) é uma suíte de
ferramentas para Web Semântica baseada na arquitetura multi-camadas de (BERNERS-LEE,
2001. É uma ferramenta para edição de DAML+OIL e Frame-Logic, mas prevê atualização
para OWL (JACINTO, 2006).
Foi desenvolvida pelo centro de pesquisa AIFB da universidade alemã de
Karlsruhe. Possui dois níveis de inteface sendo OiModeler para edição de DAML+OIL e
KAON PORTAL para edição de Frame-Logic (YOUN, 2006).
3.2.6
IkkeWiki
Desenvolvido pelo Salzburg Research Forschungsgesellschaft, teve sua versão
estável publicada em 2008 (SCHAFFERT, 2008). É um ambiente colaborativo semelhante a
Wikipédia para geração de ontologias na web (WIKIPÉDIA, 2009).
58
3.2.7
OntoWiki
OntoWiki é uma plataforma de colaboração para Web Semântica desenvolvida
em Hipertext Preprocessor (PHP) pela Universität Leipzig e tem uma grande comunidade
atuante, é de código aberto e funciona na web, permite visualização em mapas conceituais
(WIKIPÉDIA, 2009).
A ferramenta pode ser acessada em versão demo e está disponível para
download na página do projeto hospedada no Google Project Hosting (ONTOWIKI, 2009).
3.3
Considerações Finais
Entre as limitações encontradas nas ferramentas analisadas destacam-se as
correntes em interoperabilidade e colaboração, todavia novas ferramentas podem ser
desenvolvidas suportando mais recursos e propondo soluções às limitações das principais
ferramentas (YOUN, 2006).
Tradicionalmente as descrições para Web Semântica são desenvolvidas por
dois profissionais: sendo um de TI, e outro, especialista na área de conhecimento que a
ontologia será desenvolvida (YOUN, 2006). Seria adequado que ontologias fossem
enriquecidas pelo desenvolvimento colaborativo, pelo menos em suas primeiras fases de
desenvolvimento (BRAUN, 2007).
Este capítulo apresentou três das principais ferramentas de edição de conteúdo
semântico para web destacando suas principais características e possíveis pontos a serem
desenvolvidos. No próximo capítulo é apresentado o desenvolvimento da ferramenta de
edição semântica Semanticpad, proposta desse trabalho.
59
4
SEMANTICPAD: UMA FERRAMENTA DE EDIÇÃO WEB
SEMÂNTICA PARA LEIGOS
Este capítulo apresenta o processo de modelagem e desenvolvimento do
protótipo da ferramenta de edição semântica a qual se propõe este trabalho, a partir de agora
denominada Semanticpad.
O capítulo está organizado como segue: a Seção 4.1 apresenta a modelagem da
ferramenta considerando modelo da interface gráfica, modelo de colaboração e modelo de
aplicação web, a Seção 4.2 apresenta o protótipo da ferramenta Semanticpad.
4.1
Modelagem
As subseções a seguir apresentam os
modelos utilizados para o
desenvolvimento do Semanticpad. A primeira subseção aborda a interface gráfica baseada no
modelo de mapas conceituais, a segunda subseção apresenta a modelagem da ferramenta com
foco na colaboração, e a terceira, a modelagem da aplicação web seguindo a arquitetura web
de gadgets e principais bibliotecas adotadas.
4.1.1
Modelo de Interface Gráfica
A proposta para o desenvolvimento do Semanticpad é fazer uma ferramenta
que atenda aos seguintes requisitos não funcionais:
a) simplicidade: deve ser simples de um modo geral, carecendo de pouca ou
nenhuma documentação;
b) usabilidade: deve possibilitar fácil ambientação e utilização dedutiva,
principalmente para usuários não profissionais de TI;
c) agilidade: deve permitir a rápida produção, edição e manipulação de RDF.
60
Para atender estes requisitos, foram pesquisados modelos que facilitem às
pessoas descreverem seus conhecimentos. A seguir será destacado o modelo de representação
de conhecimento baseado em mapas conceituais (NOVAK, 2006).
4.1.1.1
Mapas Conceituais
O conceito de mapa conceitual foi desenvolvido por NOVAK,2006, foi
inspirado na teoria de aprendizagem significativa de (AUSUBEL, 1968). Trata-se de um
eficaz modelo para estruturar o conhecimento (TAVARES, 2007)
Segundo NOVAK, 2006, o mapa conceitual é uma ferramenta que representa o
conhecimento de modo gráfico. Mapas conceituais também são chamados de redes
semânticas e representam relações entre conceitos de forma espacial e visual (AMORETTI,
2000).
Um mapa conceitual é um gráfico cujos vértices representam conceitos, e as
arestas que fazem a ligação, representam as relações entre eles (AMORETTI, 2000). Estas
redes semânticas basicamente ilustram as relações (arestas) entre as palavras (vértices) que
usamos para representar conceitos (MOREIRA, 2009). A Figura 35 apresenta um exemplo de
mapa conceitual que ilustra a modelagem do Semanticpad.
Um mapa conceitual é uma representação visual de um conhecimento, um
conjunto de conceitos ligados por uma série de proposições que podem ser usado para
partilhar significados (TAVARES, 2007). Nas subseções a seguir veremos os benefícios deste
modelo na escrita e leitura de representações de conhecimento.
4.1.1.1.1
Escrita de Mapas Conceituais
Os conceitos na mente humana são formados por conjuntos de características
comuns pertencentes a um objeto ou entidade (TAVARES, 2007). Nos mapas conceituais, os
conceitos são equivalentes aos recursos na notação RDF. Trata-se de uma informação que
pode ser editada e reutilizada em outras declarações.
61
Figura 35 - Exemplo de mapa conceitual
As informações da mente humana partem de níveis mais abstratos para os mais
específicos. É mais fácil para seres humanos descreverem particularidades de conceitos
baseando-se em modelos pré-existentes em níveis mais abstratos. Assim, os seres humanos
organizam a informação de forma hierárquica (AUSUBEL, 1968).
Uma cadeira pode agregar vários atributos que a diferencie de outras cadeiras,
mas sempre agregara um conjunto de propriedades comuns a todas as cadeiras, que a define
como pertencente a um conceito mais abstrato de cadeira (TAVARES, 2007). Este conjunto
de propriedades distingue o objeto como pertencente a uma classe que se destaca dentre
outras (AMORETTI, 2000).
Ao construir um mapa conceitual, são pessoa organizados de forma hierárquica
conceitos já conhecidos. Os mapas conceituais são organizados iniciando em um conceito
central e se estendendo progressivamente em níveis mais específicos (NOVAK, 2006). O
indivíduo categoriza os conceitos de forma espontânea, ilustrando graficamente a estrutura
hierárquica da informação existente em sua mente, o que garante uma liberdade e facilidade
da escrita e adaptação ao modelo. Segundo AMORETTI, 2000, não existe mapa conceitual
certo ou errado, tamanho padrão ou número fixo de relações existentes.
62
4.1.1.1.2
Leitura de Mapas Conceituais
A memória humana assimila mais facilmente a informação representada em
mapa conceitual porque ele simula aspectos comuns da cognição humana. É uma
representação aberta e flexível de conhecimento, pois a descrição dos conceitos pode ser
acrescida cada vez mais com novas relações e propriedades (AMORETTI, 2000).
Da mesma forma, os mapas conceituais facilitam a compreensão das
informações ilustradas de forma mais efetiva que os textos, permitindo que sejam feitas
inferências mais complexas sobre a informação (VEKIRI, 2002). Isso porque a apresentação
gráfica de informações complexas é menos exigente no processo cognitivo de que
informações textuais e verbais (TAVARES, 2007). O conhecimento apresentado de forma
visual requer menos transformações cognitivas, não sofrendo as limitações da memória de
curto prazo como um texto (VEKIRI, 2002).
4.1.1.1.3
Tipos de Mapas Conceituais
Abaixo serão apresentadas algumas possibilidades de representação de
conhecimento baseadas em mapas conceituais ilustrando conceitos sobre o Semanticpad:
a) mapa conceitual tipo aranha: O conceito principal é colocado no centro e as
relações vão se propagando para as extremidades. A Figura 36 mostra um
exemplo de mapa conceitual tipo aranha (TAVARES, 2007);
63
Figura 36 - Mapa conceitual tipo aranha
b) mapa conceitual tipo sistema: Baseia-se no modelo de um fluxograma com
entrada e saída. A Figura 37 exibe um exemplo de mapa conceitual tipo
sistema;
Figura 37 - Mapa conceitual tipo sistema
c) mapa conceitual hierárquico: Os conceitos vão sendo depositados dos mais
generalizados para os mais específicos, A Figura 38 mostra um exemplo de
mapa conceitual tipo hierárquico.
64
Figura 38 - Mapa conceitual tipo hierárquico
4.1.1.1.4
Interface Baseada em Mapas Conceituais
A interface gráfica da ferramenta de edição semântica será baseada no modelo
de mapas conceituais. O editor deve possibilitar de forma simples, com ações do mouse, a
produção de mapas conceituais utilizando recursos de arrastar e soltar. Abaixo serão
apresentados alguns tópicos que, apoiados nas seções anteriores, demonstram este modelo
como adequado para atender os requisitos não funcionais apontados para interface gráfica:
a) facilidade e agilidade de produção e edição;
b) facilidade e agilidade de compreensão;
c) fácil adaptação ao uso do modelo;
d) trata-se de um modelo livre para edição que não restringe implementação do
desenvolvedor a padrões e modelos pré-definidos;
e) compatível com os modelos formais de representação RDF;
f) adequado para a produção incremental de representação de conhecimento
(AUSUBEL, 1968);
g) adequado para a interação colaborativa à distância (AMORETTI, 2000).
A interface foi produzida de forma que possibilite a fácil produção e edição de
mapas conceituais. A aplicação será responsável por transcrever os mapas em códigos
RDF/XML. Desta forma, usuários não familiarizados com tecnologias e linguagens como
65
XML ou RDF estarão aptos a fazer as descrições de suas informações em triplas válidas para
aplicações Web Semânticas.
Foi apresentado o modelo adotado na interface gráfica. A próxima subseção
ilustrará o modelo de colaboração proposto para a ferramenta.
4.1.2
Modelo de Colaboração
O Semanticpad permite descrições incrementais de conhecimento baseadas em
colaboração. As descrições RDF/XML poderão ser armazenadas e enriquecidas por outros
usuários de maneira colaborativa. Para isto, será proposto um modelo em níveis de
colaboração sobre a interface baseada em mapas conceituais. As subseções a seguir mostrarão
mais detalhes deste modelo.
4.1.2.1
Colaboração na Web 2.0
A Web 2.0 vê o usuário como o centro da web. A ascensão de empresas que
utilizam o usuário como fonte de conteúdo e colaboração nos últimos anos, evidenciou o
recurso de colaboração como vantagem estratégica. A participação do usuário ganhou mais
relevância competitiva (O’REILLY, 2005).
Colaboração, inteligência coletiva, interação e interatividade se tornaram
palavras de ordem na Web 2.0 (O’REILLY, 2005). Segundo PIAGET, 2002, e VYGOTSKY,
1978, a colaboração traz mais beneficio, com a interação interpessoal do que no contexto de
concorrência.
Resultados como WIKIPÉDIA, 2009, FLICKR, 2009, DELICIOUS, 2009,
TWITTER, 2009, e as redes sociais como ORKUT, 2009, MYSPACE, 2009, ou
FACEBOOK, 2009, são exemplos de grandes instituições que se apoiaram na colaboração de
usuários da internet para atingir resultados surpreendentes. No contexto da Web Semântica a
colaboração já tem sido vista como atraente recurso na descrição de conhecimentos como será
mostrado na próxima seção.
66
4.1.2.2
Colaboração na Representação de Conhecimento
Ferramentas de edição semântica, como Protégé e OntoEdit, são comumente
utilizadas para produção de ontologias em desktop, não aproveitando os recursos de
colaboração de outros usuários. A maior parte das ontologias é produzida individualmente e
não é submetida ao enriquecimento comunitário (BRAUN, 2007).
Um importante princípio da aprendizagem significativa (AUSUBEL, 1968) é
que a representação de conhecimento também deve explorar similaridades e discrepância
entre idéias, e isto só pode ocorrer de forma relevante com interação entre indivíduos.
Segundo BRAUN, 2007, sistemas colaborativos consideram aspectos
indispensáveis as fases iniciais da produção de uma ontologia, principalmente quando é
gerada a partir de comunidades que se relacionam com os conceitos descritos nesta ontologia.
Algumas ferramentas como MediaWiki, OntoWiki e IkeWiki já utilizam do
recurso de colaboração para produção de ontologias (BRAUN, 2007). Mapas conceituais
ilustram de forma autônoma um conhecimento, mas não restringem a colaboração. Na
próxima subseção serão apresentadas as vantagens de mapas conceituais colaborativos.
4.1.2.3
Colaboração em Mapas Conceituais
Dois especialistas em determinado assunto provavelmente ilustrariam seus
conceitos de forma diferenciada (TAVARES, 2007). Mesmo conceitos semelhantes
apresentam diferenças quando representados em mapas conceituais, tornando as
particularidades da informação mais perceptíveis (AMORETTI, 2000). Mapas conceituais
colaborativos podem resolver alguns problemas da descrição de conhecimento (AUSUBEL,
1980):
a) mais de um vértice representando o mesmo conceito;
b) um único vértice representando mais de um conceito;
c) diferentes características de conceitos aparentemente semelhantes.
Segundo TAVARES, 2007, existem características específicas na maneira que
cada um constrói um conceito. A autonomia de um mapa conceitual deve ser respeitada para
67
que não haja conflitos nas descrições de um determinado conceito criado por um autor. Porém
para possibilitar a colaboração, a ferramenta precisa de mecanismos que permitam a
inferência de terceiros sobre os mapas conceituais.
Nas próximas subseções serão apresentados os recursos colaborativos previstos
para a produção do protótipo para garantir a autonomia e colaboração.
4.1.2.4
Modelo em Níveis de Confiabilidade
Este trabalho propõe um mecanismo baseado em níveis de confiabilidade.
Nesse modelo o autor define o que pode ser alterado ou extensível colaborativamente
dependendo do quanto confia em suas declarações e descrições.
Um mapa conceitual pode ser colaborativo ou individual, e cada conceito pode
ser aberto ou fechado em sua descrição e forte ou fraco em cada declaração. Para facilitar o
entendimento, faz-se adequado definir declaração e descrição no contexto deste modelo:
a) declaração: uma declaração é entendida como uma tripa, uma afirmação
descritiva contendo um sujeito, um predicado e um objeto;
b) descrição: conjunto de declarações ligadas a um conceito, o número de
afirmações que fornecem uma descrição mais ou menos detalhada sobre
determinado conceito.
4.1.2.4.1
Declaração Fraca e Forte
Mapas conceituais gerados de forma colaborativa permitem a descrição de
informações, não apenas compartilhadas, mas que são alteradas pelas inferências baseadas nas
informações de outros indivíduos, gerando uma descrição de conhecimento coletivo. É um
recurso especialmente adequado para interação à distância (AMORETTI, 2000).
A ferramenta garantirá a autonomia dos mapas conceituais permitindo que
conceitos definidos pelo autor não sejam apagados ou reescritos por usuários, porém um autor
ao produzir a representação de conhecimento pode eventualmente se ver em dúvida sobre
68
determinada declaração. Para isso a ferramenta proverá um recurso de confiabilidade na
declaração podendo definir uma declaração forte ou fraca:
a) declaração forte: uma declaração forte consiste num conceito que não pode ser
apagado ou reescrito por terceiros em mapas conceituais compartilhados.
Apenas o autor pode re-nomear ou apagar o conceito definido como forte. O
autor ao definir um conceito como forte assume que tem certeza que a
declaração é verdadeira e não precisará de opiniões externas sobre a sua
declaração.
b) declaração fraca: Uma declaração fraca pode ser editada ou apagada por
terceiros que compartilham o mapa conceitual. O autor ao definir um conceito
como fraco assume que a declaração é duvidosa ou não é precisa. Declarações
feitas colaborativamente em conceitos abertos serão sempre fracas, e apenas o
autor do mapa conceitual pode definir um conceito como forte e inalterável.
4.1.2.4.2
Descrição Aberta e Fechada
Mapas conceituais podem ser produzidos colaborativamente. Segundo
AMORETTI, 2000, a autonomia e colaboração durante a produção de mapas conceituais não
se anulam, a autonomia enriquece o mapa conceitual feito por um grupo, pois integra
conhecimentos de todos.
Uma característica colaborativa prevista para o Semanticpad é permitir que
outros usuários ampliem a rede semântica de outrem por meio de extensões dos mapas
conceituais.
Um conceito pode ser descrito ligando suas propriedades a outros conceitos ou
literais. O autor do mapa pode definir se o conceito já está devidamente descrito ou se sua
descrição pode ser enriquecida por outro usuário. Para isto, a colaboração descritiva é definida
em cada conceito, e o autor decide se a descrição deste conceito é aberta ou fechada para
outras declarações.
a) descrição fechada: um conceito definido como fechado não é extensível a
outras declarações, apenas o autor do mapa pode fazer outras ligações a partir
deste conceito. Nesse contexto, o autor assume que o conceito já foi
suficientemente descrito naquele mapa conceitual, contudo, qualquer um que
69
compartilhe o documento poderá descrever um conceito fechado em outro
documento de sua própria autoria, e a ligação das descrições de ambos os
documentos serão sugeridas para o autor do primeiro mapa.
b) descrição aberta: quando o autor define um conceito como aberto, ele assume
que o conceito em questão não foi descrito o suficiente, e aceita a descrição de
outros usuários para esse conceito. Outros usuários que compartilhem o
documento podem fazer outras ligações para descrever melhor esse conceito,
contudo qualquer declaração feita colaborativamente, automaticamente será
definida como conceito fraco.
4.1.2.4.3
Mapas Conceituais Individuais e Colaborativos
A definição dos conceitos e suas relações num mapa conceitual dependem
muito da pessoa que o descreve, pois a formulação dos conceitos é fortemente influenciada
pelo que o autor já conhece (AUSUBEL, 1986). Assim, é adequado que o usuário tenha a
opção de definir seu mapa como individual ou colaborativo para garantir a autonomia das
idéias as quais se baseia a descrição.
a) mapa conceitual individual: não permite a inferência de terceiros sobre seu
conteúdo, todos os conceitos serão fechados e fortes; contudo, isso não
significa que seu conteúdo seja privado ou exclusivo, pois estará disponível
para leitura. Como a proposta da ferramenta é facilitar a produção semântica de
conteúdo gerando triplas RDF/XML disponíveis para toda a comunidade, os
mapas conceituais individuais podem ser compartilhados para leitura e seu
código fonte em RDF/XML pode ser disponibilizado para qualquer um; a única
característica de individual é que mapas conceituais individuais não poderão
ser editados colaborativamente.
b) mapa conceitual colaborativo: permite a atuação de terceiros na produção do
conteúdo. Qualquer usuário com qual o mapa esteja compartilhado poderá
alterar suas declarações ou descrições. No entanto um mapa conceitual
colaborativo pode ser parcialmente alterável, isto ocorre porque a colaboração
é definida a nível de conceito. Um usuário poderá disponibilizar a edição
colaborativa em um conceito e não permitir a edição colaborativa em outro.
70
Um mapa conceitual que disponibilize a edição ou extensão de um único
conceito já pode ser considerado colaborativo.
4.1.2.4.4
Ligação entre Mapas e Incremento de Vocabulários
Predicados poderão ser definidos como fracos ou fortes e abertos ou fechados
da mesma forma que os conceitos. A ferramenta contará com uma opção para adicionar novos
vocabulários ao mapa conceitual. Vocabulários e termos externos sempre terão preferência
sobre os termos criados pelo autor, a ferramenta sempre recomendará a substituição de
conceitos próprios por conceitos provenientes de vocabulários externos.
Conceitos que possuam um qname “base”, o padrão das ferramentas para
conceitos criados pelo autor do mapa, estarão disponíveis para assumir outros qnames que
apontem para namespaces com o mesmo conceito já descrito em outros vocabulários
externos. Isso visa contribuir com a ligação das bases semânticas prevista por BERNERSLEE, 2001, como resultado que gradualmente permitirá uma web descrita em sua maior parte
com um conhecimento unificado.
4.1.2.4.5
Interface Colaborativa
A interface da ferramenta deverá ilustrar de maneira visual os níveis de
colaboração. A Figura 39 mostra um exemplo da aparência de um mapa conceitual com os
recursos visuais ilustrando os níveis de colaboração.
71
Figura 39 - Interface colaborativa
São propostas as seguintes representações gráficas para os conceitos:
a) Conceito Fechado: conceitos fechados apresentarão uma borda sólida e
contínua para demonstrar a completude da descrição;
b) Conceito Aberto: conceitos abertos apresentarão uma borda pontilhada para
demonstrar que podem ser extensíveis;
c) Conceito Forte: conceitos fortes deverão ser azuis para demonstrar que estão
bem definidos;
d) Conceito Fraco: conceitos fracos deverão ser vermelhos destacando que a
declaração pode estar incorreta ou imprecisa.
Assim como nos padrões RDF os quadrados representarão as literais e as
elipses representarão os recursos (conceitos) no mapa conceitual. Literais nunca poderão ser
definidas como abertas porque extensões de literais não são permitidas pelos padrões da
notação RDF, porém essas literais podem ser definidas como literais fracas, como visto na
Figura 39 acima, significando que poderão ser reeditadas.
A Figura 40 mostra um resumo do modelo colaborativo em mapa conceitual:
72
Figura 40 - Modelo de colaboração
Foi apresentado o modelo de colaboração, a próxima subseção apresentará o
modelo da aplicação.
4.1.3
Modelo de Aplicação Web
Esta seção apresenta o modelo de aplicação web para o desenvolvimento da
ferramenta de edição de RDF. Nas próximas subseções serão apresentadas as principais
características do modelo de aplicação utilizado no desenvolvimento do protótipo.
73
4.1.3.1
Gadgets
A proposta da modelagem da ferramenta Semanticpad visa prover um serviço
de edição de RDF reutilizável em qualquer lugar da web sem necessidade de modificação.
Uma forma simples e adequada de atender este requisito é disponibilizá-la como um gadget
(ou widget) que pode ser reutilizados em qualquer aplicação, página na web ou em outros
gadgets (GOOGLE-CODES, 2009).
Gadgets (ou widgets) geralmente são aplicações simples que atendem a
necessidades específicas e bem definidas como apresentação de notícias, música, agenda,
álbum de fotos, jogos, bloco de notas, calculadora (MICROSOFT, 2009), mas também podem
ser aplicativos complexos interagindo com vários outros gadgets e utilizando recursos bem
mais elaborados (GOOGLE-CODES, 2009).
Gadgets da Google (www.google.com) na web são aplicações geralmente
baseadas em XML, HTML, CSS e Javascript, são independentes de plataforma ou aplicação
(WIKIPÉDIA, 2009). Por meio de tags e bibliotecas, funcionam em lugares diferentes com
extensões da Application Programming Interface (API) principal dos gadgets (GOOGLEGADGETS, 2009).
4.1.3.1.1
Características dos Gadgets
Gadgets são mini-aplicações que podem ser desenvolvidas por amadores ou
por profissionais, são implementadas em uma Application Programming Interface (API)
como a Gadgets do Google e são armazenados num repositório de gadgets. Gadgets podem
ser inseridos, a partir do repositório, em qualquer lugar da web, geralmente por meio de
iframes (janelas) individuais dentro de outra página chamada de página recipiente (GOOGLECODE, 2009).
Qualquer site ou aplicativo que execute gadgets é chamado de recipiente
(GOOGLE-GADGETS, 2009), podem ser sites comerciais, aplicações web, blogs ou perfis
em redes sociais. Um recipiente pode definir o layout que o gadget será exibido em sua
página e também outras funcionalidades (GOOGLE-CODES, 2009).
74
Além de páginas, gadgets podem ser inseridos em vários outros locais como
barras laterais na área de trabalho, desktops on-line como o iGoogle ou Dashboard do Mac
(GOOGLE-DESKTOP, 2009).
A Figura 41 mostra um exemplo de gadget inserido em dois contextos:
Figura 41 - Gadget inserido em páginas recipientes
Para inserir um gadget em uma página na web, a página recipiente deve apenas
recortar uma linha de código fonte que chama o gadget do repositório para sua página no
local onde este deverá aparecer. Esta linha de código é fornecida automaticamente pelo
provedor de gadgets. A Figura 42 mostra um exemplo de linha de código que insere um
gadget:
Figura 42 - Linha de código para inserção de um gadget
Segundo o GOOGLE-GADGETS, 2009, não existem gadgets privados, todos
os gadgets são de domínio público, seja para uso ou reaproveitamento de código fonte. A
75
visibilidade pública do código fonte dos gadgets permite que a lógica seja reaproveitada para
a produção de outros gadgets similares.
Gadgets podem ser personalizáveis e também permitem sistemas de
alimentação de conteúdo como Really Simple Syndication (RSS). Gadgets também podem ser
compartilhados e editados de forma colaborativa (GOOGLE-GADGETS, 2009).
Os gadgets usam codificação UTF-8 e possuem um sistema que facilita a
internacionalização, adaptação a idiomas e configurações locais (GOOGLE-CODE, 2009). O
Google Gadget (http://www.google.com/webmasters/gadgets/) fornece uma API e diversos
outros recursos gratuitos para a produção de gadgets. Boa parte desses recursos dará suporte
ao desenvolvimento do protótipo. Alguns desses recursos são apresentados na próxima seção.
4.1.3.1.2
Recursos do Google Gadgets
O Google Gadgets disponibiliza recursos para que qualquer desenvolvedor
possa criar e disponibilizar seus gadgets. Esses gadgets podem ser publicados no diretório de
gadgets do Google (http://www.google.com/ig/directory?synd=open) e passa a estar
disponível para toda comunidade web. O Google Gadgets também fornece uma API que
provê uma série de recursos e um editor simples para o desenvolvimento de gadgets
(GOOGLE-GADGETS, 2009).
O Google Code (http://code.google.com/intl/en/) também oferece um
repositório no Google Project Hosting (http://code.google.com/intl/en/projecthosting/) que
fornece um domínio e uma hospedagem gratuita para projetos, ainda oferece uma interface de
gerenciamento com recursos de controle de versão pelo TurtoiseSVN (GOOGLE-CODE,
2009). A Figura 43 ilustra a interface de gerenciamento do desenvolvimento da Semanticpad
fornecida pelo Google Project Hosting:
76
Figura 43 - Interface de gerenciamento do Google Project Hosting
Os gadgets do Google podem ser testados na página do (IGOOGLE, 2009), um
desktop on-line disponibilizado gratuitamente, ou no (GOOGLE-DESKTOP, 2009), uma
barra lateral instalada na área de trabalho que agrega e gerencia gadgets off-line (GOOGLEGADGETS, 2009).
Qualquer pessoa pode adicionar um gadget disponibilizado no diretório de
gadgets do Google em seu iGoogle, Google-Desktop ou em qualquer outro lugar da web
(GOOGLE-GADGETS, 2009).
Estes gadgets são suportados pela API Gadgets desenvolvida pela Google. Esta
API é responsável por responder as requisições de gadgets e prover suporte a várias outras
funcionalidades que veremos com mais detalhes na próxima seção.
4.1.3.1.3
API Gadgets
A API Gadgets do Google oferece vários recursos para fornecer suporte aos
gadgets. Abaixo estão listados alguns dos recursos fornecidos pela API Gadgets (GOOGLECODE, 2009):
a) permite que gadgets obtenham recursos de outras URL’s, deixando-os
extensíveis a diversas outras tecnologias como Flash ou Silverlight;
b) fácil implementação de suporte para vários idiomas e localidades;
c) conjunto amplo de APIs sociais (no caso do OpenSocial);
77
d) permite que os gadgets sejam redimensionáveis em altura tanto em nível de
recipiente como em nível de usuário;
e) permite
uma
biblioteca
de
componentes
de
interface
com
várias
funcionalidades como navegação por guias;
f) configuração dos gadgets por preferências dos usuários;
g) internacionalização de gadgets por meio de mapeamento de mensagens em
qualquer idioma;
h) permite que um gadget seja exibido de forma diferente dependendo do
contexto e localidade no qual ele é renderizado por meio de Seções de
conteúdo múltiplo.
A maior parte destes recursos listados será utilizada no desenvolvimento do
protótipo para garantir sua disponibilidade da ferramenta. A API de gadgets do Google será o
principal suporte ao Semanticpad.
4.1.3.1.4
OpenSocial.
O OpenSocial é uma iniciativa para
desenvolver aplicativos que tem
principalmente a atuação em redes sociais. Foi implementado com a tecnologia de gadgets.
Tem características especiais para interações nas redes sociais e atualização de RSS
(GOOGLE-CODE, 2009).
A proposta do OpenSocial é que as atividades sejam executadas no perfil do
usuário em uma rede social, e tem a vantagem de possibilitar recursos de interação com os
demais usuários da rede (WIKIPÉDIA, 2009).
OpenSocial é um conjunto de API’s mantida por vários sites que permitem que
qualquer desenvolvedor crie gadgets para rodar em redes sociais. Dentre as redes que
fornecem suporte as API’s do OpenSocial estão: HI5, 2009, MYSPACE, 2009, ORKUT,
2009, NETLOG, 2009, SONICO, 2009, FRIENDSTER, 2009, NING, 2009 e YAHOO, 2009,
entre outras (JQUERYUI, 2009).
78
4.1.3.2
Outras Bibliotecas e Recursos
Abaixo
serão
apresentadas
as
principais
bibliotecas
utilizadas
na
implementação do Semanticpad.
4.1.3.2.1
JQuery
A principal linguagem de implementação de gadgets é o Javascript. JQuery é
um framework que facilita e enriquece o desenvolvimento para web em tecnologias baseadas
em Javascript e Asynchronous Javascript and XML (AJAX) (JQUERY, 2009), JQuery é uma
biblioteca Javascript que habilita uma série de recursos para efeitos visuais e animações,
possui configurações para interagir com as API’s de gadgets (JQUERYUI, 2009).
JQuery é uma biblioteca Javascript desenvolvida por RESIG, 2006, é
disponibilizado pela licença GNU General Public License
(GPL) de software livre
(SAMMY-SILVA, 2008). O Principal Foco do JQuery é diminuir e simplificar o
desenvolvimento com Javascript (RESIG, 2006)
Dentre as melhorias que o JQuery se propõe em relação ao desenvolvimento
Javascript estão (WIKIPÉDIA, 2009):
a) resolução da incompatibilidade entre os navegadores;
b) redução de código;
c) reusabilidade do código por meio de plug-ins;
d) facilitar implementação com AJAX e DOM;
e) implementação segura de recursos de CSS.
JQuery facilita e agiliza o desenvolvimento além de prover novos recursos de
apresentação. JQuery foi a principal biblioteca utilizada no desenvolvimento do protótipo do
Semanticpad.
79
4.1.3.2.2
JQueryUI
JQuery User Interface (JQueryUI) é um complemento da biblioteca JQuery
especialmente adequado para produção de Grafic User Interface (GUI) para aplicações web.
Foi especialmente implementado para resolver o problema de incompatibilidade entre
navegadores (JQUERY, 2009).
JQueryUI oferece uma galeria de temas e componentes, widgets ou gadgets,
aplicáveis à interface; possui recursos especiais que adicionam a biblioteca JQuery
comportamentos como arrastar e soltar, selecionar, entre outros; também possui um
framework CSS com várias possibilidades de formatação adicionais. JQueryUI é
especialmente adequado para a produção de gadgets e widgets (JQUERYUI, 2009).
JQueryUI é suportado pelos seguintes navegadores (JQUERYUI, 2009):
a) Internet Explorer 6.0 ou superior;
b) Mozilla FireFox 2 ou superior;
c) Safari 3.1 ou superior;
d) Opera 9.0 ou superior;
e) Google Chrome 1.0 ou superior.
JQueryUI foi utilizado para a produção da interface gráfica da ferramenta
porque oferece recursos que facilitarão a interação do usuário com a interface na produção
dos mapas conceituais.
4.1.3.2.3
JSDraw2D
A JSDRAW2D, 2009, é uma biblioteca gratuita de desenho gráfico em
Javascript. Ela foi aplicada nas funcionalidades gráficas e visuais da tela de edição de mapas
conceituais da ferramenta Semanticpad. A biblioteca JSDRAW2D, 2009, possui vários
recursos de manipulação de imagens vetoriais que implementaram vários requisitos na
interface gráfica da ferramenta Semanticpad.
80
4.1.4
Visão Geral da Modelagem da Ferramenta
Esta seção apresentou os modelos adotados para implementação do
Semanticpad considerando modelo de interface baseado em mapas conceituais; modelo de
colaboração baseado em Níveis de Confiabilidade e modelo de aplicação baseado na
arquitetura de gadgets fornecida pela API de Gadgets do Google. A seção a seguir mostrará o
protótipo da Semanticpad desenvolvido neste trabalho.
4.2
Protótipo
A seguir serão apresentados as principais telas, funções e recursos da
ferramenta Semanticpad.
4.2.1
Principais Telas da Ferramenta
A interface do Semanticpad conta com três abas superiores que alternam entre
as três principais telas que a ferramenta contém, estas telas são Mapa Descritivo, Gerar RDF e
Opções. Segue abaixo a descrição de cada tela.
a) tela Mapa Descritivo: exibe um painel para a edição dos mapas conceituais. É a tela
onde o usuário passará a maior parte do tempo enquanto usa a ferramenta. Essa tela
utiliza recursos gráficos e visuais para prover um ambiente de edição de mapas
conceituais com simplicidade principalmente para o usuário leigo. A Figura 44 exibe a
tela de edição de mapa descritivo do Semanticpad:
81
Figura 44 – Semanticpad em tela de edição Mapa Descritivo
b) tela Gerar RDF: tem uma funcionalidade especifica e bem definida, mostrar o código
RDF/XML gerado a partir do mapa conceitual. A ferramenta transcreve os mapas
conceituais em tempo real e este pode ser visualizado a qualquer momento em que o
usuário clique na guia. Esta tela também disponibiliza edição diretamente em modo
texto caso o usuário prefira fazer alguns ajustes no código gerado. A Figura 45 mostra
a tela com um mapa RDF/XML transcrito pela ferramenta:
82
Figura 45 - Semanticpad em tela Gerar RDF
c) tela Opções: exibe algumas configurações disponíveis como converter o mapa inteiro
para determinado nível de confiabilidade; nela também é possível adicionar, editar ou
remover novos vocabulários e relacioná-los com seus respectivos qnames, da mesma
forma permite a manipulação de XML Entities. Por padrão todo conceito gerado pelo
usuário esta relacionado a um URI padrão apontado pelo qname “base”. A Figura 46
exibe a tela Opções:
83
Figura 46 - Semanticpad em tela Opções
4.2.2
Interface de Edição de Mapas Conceituais
A interface de edição de mapas conceituais, exibida pela tela Mapa Descritivo,
é a principal tela da ferramenta. É por meio dessa tela que os usuários descreverão qualquer
tipo de informação. Conceitos, predicados e literais são expressos segundo suas formas. A
Figura 47 mostra como cada elemento é ilustrado.
Figura 47 – Ilustração de cada tipo de elemento de uma tripla na tela Mapa Descritivo
84
A tela inicial já apresenta dois conceitos iniciais e um predicado com um valor
padrão, a partir do momento que o usuário digite algo em qualquer um destes conceitos, ele já
passa a pertencer ao namespace “base” e sua descrição já pode ser vista na tela Gerar RDF. A
Figura 48 exibe o mapa inicial pronto para edição:
Figura 48 – Semanticpad em tela Mapa Descritivo inicial
A partir desta declaração inicial, novos conceitos podem ser criados, excluídos
e relacionados a partir dos conceitos iniciais para que o mapa comece a adquirir significado.
Tais funções são disponibilizadas por pequenos botões que aparecem apenas quando o usuário
passa o mouse por um conceito passível de edição, exclusão ou configuração segundo a
configuração colaborativa. A Figura 49 ilustra o menu de opções de edição para um conceito:
(a)
(b)
(c)
(d)
Figura 49 - Botões de edição de conceito
O menu de opções possui quatro botões que podem ou não aparecer
dependendo da configuração colaborativa do conceito, abaixo serão descritos as
funcionalidades de cada um dos quatro botões:
a) Botão Adicionar (+): estende um novo conceito e predicado a partir do
conceito clicado;
b) Botão Remover (-): exclui o conceito clicado;
c) Botão Menu (>): exibe a configuração de propriedades mais técnicas do
conceito como: exibir como atributo XML, como blank-node ou como literal.
Também exibe uma opção para alterar ligação que cria uma relação com o
próximo conceito clicado sendo o segundo definido como novo conceito pai do
primeiro. Esta alteração só pode ser feita entre predicados e sujeitos, caso
tente-se mudar uma ligação de um sujeito para um sujeito ou de um predicado
85
para um predicado, uma mensagem de erro é exibida. Além disso, esse menu
também
mostra
as
configurações
colaborativas
do
conceito,
essas
configurações serão descritas mais a frente na Subseção 4.2.4. A Figura 50
mostra o menu em cascata exibido pelo Botão Menu.
d) Botão Conjunto (e): exibe opções para definir coleções RDF de uma forma
mais simples para um usuário leigo. Será explicado com mais detalhes na
próxima subseção.
Figura 50 - Menu de configuração de conceito
4.2.3
Interface de Edição de Coleções RDF
Sem que o usuários conheça as coleções “rdf:Alt” (para coleções com uma
alternativa), “rdf:Seq” (para coleções com seqüência definida) e “rdf:Bag” (para coleções sem
seqüência definida) previstas na linguagem RDF, ele pode precisar do recurso de coleções. É
proposto um modelo que simplifica o uso das coleções em uma linguagem dedutível e
adequada para um usuário leigo em RDF. O exemplo da Figura 51 apresenta uma situação
que justificaria o uso de uma coleção do tipo “rdf:Alt”:
86
Figura 51- Exemplo de uso de coleção “rdf:Alt”
O gosto do bolo pode ser somente “doce” ou “salgado”, logo é adequado que o
atributo “rdf:Alt” seja utilizado. Porém um usuário leigo pode não absorver esta sintaxe com
facilidade. Assim, cada conceito possui um Botão de Conjunto que faz uma ligação a uma
coleção. A Figura 52 apresenta o menu de inserção de coleções disponíveis pelo Botão de
Conjunto.
Figura 52 - Menu de inserção de coleções
A opção “ou...” representa o atributo “rdf:Alt” pois expressa um termo de
alternatividade. Da mesma forma a opção “e...” está associada ao atributo “rdf:Bag” por
sugerir uma coleção sem que necessariamente seja ordenada e, por fim, a opção “próximo...”
representa o atributo “rdf:Seq” por sugerir uma seqüência ordenada. As Figuras 53,54 e 55
mostram respectivamente exemplos de uso das coleções “rdf:Alt”, “rdf: Bag” e “rdf: Seq”.
87
Figura 53 - Exemplo de uso de “rdf:Alt” pelo Semanticpad
Figura 54 - Exemplo de uso de “rdf:Bag” pelo Semanticpad
Figura 55 - Exemplo de uso de “rdf:Seq” pelo Semanticpad
4.2.4
Interface de Colaboração de Mapas Conceituais
Qualquer conceito dentro de um mapa conceitual pode ser configurado em
níveis colaborativos de confiabilidade ao clicar no Botão Menu. Esse botão exibe um menu
em cascata que permite a configuração de um conceito como aberto ou fechado, fraco ou
forte.
A edição destas propriedades muda a aparência do conceito para que
visualmente sejam percebidos os que podem ser editados colaborativamente ou não. Quando
um desses é forte, os botões de edição e exclusão não ficam disponíveis em acessos de
terceiros; quando é fechado, o botão de extensão e de conjunto do mapa torna-se indisponível
88
para outros usuários. A Figura 56 mostra como são restringidas as opções segundo os níveis
de confiabilidade de cada conceito.
Todos botões disponíveis
Somente botões de extensão
Somente botões de edição
Nenhum botão disponível
Figura 56 - Configurações de níveis de confiabilidade
Desta forma apenas os conceitos permitidos pelo autor poderão se estendidos e
editados colaborativamente sem que seja necessária qualquer mensagem de alerta sobre
permissão de acesso.
4.2.5
Outras Opções Disponíveis
Na tela de Opções existem quatro opções que convertem todos os conceitos do
mapa para determinado nível de confiabilidade, serve como um atalho para que o usuário não
tenha que se definir um por um. Também nesta tela existem recursos para manipulação de
vocabulários e entidades, a Figura 57 mostra as principais opções:
Opções de conversão de
nível de confiabilidade
Adicionar novo
vocabulário/entidade
qnames
Excluir
vocabulário/entidade
Figura 57 - Principais opções disponíveis
89
4.2.6
Suporte e Documentação
A ferramenta é produzida para ser simples e objetiva de forma que não seja
necessária consulta a um tutorial para seu uso, assim não existe algum help em algum setor
separado, mas o suporte está inserido ao longo de toda aplicação com mensagens de aviso.
Abaixo alguns exemplos de alertas que visam facilitar o uso da ferramenta. A Figura 58
mostra algumas mensagens e alertas de suporte.
Figura 58 - Alguns alertas de suporte da ferramenta
4.2.6.1
Teclas de Atalho
As opções e funções do Semanticpad podem ser acessadas por teclas de atalho,
esse recurso aprimora o requisito de agilidade na edição dos mapas conceituais. Abaixo segue
uma lista das principais teclas de atalhos da ferramenta:
a) seta para direita (botão adicionar): criar novo elemento filho; apontar para
filhos;
b) seta para baixo: criar novo elemento irmão; apontar para irmão (baixo);
c) seta para esquerda: apontar para pai;
d) seta para cima: apontar para irmão (cima);
e) Shift+Del (botão remover): excluir elemento;
90
f) Page Up (botão selecionar novo pai): ativar seleção de novo pai;
g) Page Down: definir novo pai;
h) Ctrl+Shift+S: converter para conceito forte;
i) Ctrl+Alt+S: converter todos os conceitos para conceitos fortes;
j) Ctrl+Shift+W: converter para conceito fraco;
k) Ctrl+Alt+W: converter todos os conceitos para conceitos fracos;
l) Ctrl+Shift+O: converter para conceito aberto;
m) Ctrl+Alt+O: converter todos os conceitos para conceitos abertos;
n) Ctrl+Shift+C: converter para conceito fechado;
o) Ctrl+Alt+C: converter todos os conceitos para conceitos fechado;
p) Ctrl+S: salvar mapa;
q) Ctrl+O: abrir mapa;
r) Ctrl+N: novo mapa.
4.3
Considerações Finais
Este capítulo apresentou o processo de modelagem e desenvolvimento do
protótipo da ferramenta de edição semântica Semanticpad, bem como as principais
tecnologias utilizadas, suas principais telas e recursos.
No próximo capítulo serão apresentadas as conclusões e contribuições obtidas
com este trabalho de graduação.
91
5
CONCLUSÃO
Este capítulo tem por objetivo descrever as principais contribuições,
conclusões e experiências adquiridas ao longo deste trabalho, e esboçar os trabalhos futuros
que podem se estender deste projeto.
Este capítulo está organizado como segue: na Seção 5.1 são apresentadas as
principais contribuições e conclusões, a Seção 5.2 apresenta o artigo publicado em periódico
durante o desenvolvimento deste trabalho e, por fim, a Seção 5.3 apresenta os trabalhos
futuros.
5.1
Contribuições e Conclusões
Abaixo serão apresentadas as principais contribuições deste trabalho de
graduação.
a) o Semanticpad soma como uma alternativa possivelmente simples para edição
de código RDF para Web Semântica;
b) pode ser utilizado para as primeiras fases da Engenharia de Ontologias como
agregador de semântica de usuários leigos;
c) um componente que pode ser inserido em páginas, blogs ou para outras
aplicações web, até mesmo em perfis de rede sociais no modelo OpenSocial;
d) beneficia-se da arquitetura web para geração de conteúdo semântico acessível a
toda a comunidade em um modelo comparável a um wiki semântico;
e) permite fácil adaptação e uso sem necessidade de suporte ou tutoriais devido à
interface intuitiva baseada em mapas conceituais;
f) trata-se de um editor livre e acessível a toda a comunidade disponível
gratuitamente no repositório de gadgets do Google.
A seguir são apresentadas as conclusões obtidas a partir das contribuições:
a) apesar de contarmos com muitos editores de código RDF na atualidade, o
Semanticpad atende a uma categoria carente neste meio, uma categoria de
ferramentas rápidas e práticas como um “notepad semântico”. Não é necessária
a instalação ou tutorial para o uso da ferramenta.
92
b) tendo uma interface de rápida adaptação para um usuário leigo, o Semanticpad
se faz adequado para fases iniciais da Engenharia de Ontologias. Mapas criados
por especialistas em determinados domínios de conhecimento, porém leigos em
TI, podem ser revisados e adequados aproveitando a semântica adquirida em
suas descrições;
c) a disponibilidade do Semanticpad como um gadget tornou a ferramenta
acoplável em qualquer página, blog ou até outras ferramentas na web. O
requisito de geração de conteúdo semântico pode ser atendido em aplicações
mais elaboradas sem a necessidade da geração de um novo editor. Serve como
um componente para aplicações web reutilizável;
d) é uma ferramenta que aproveita dos benefícios da inteligência coletiva
disponível na web e usufrui destes como motor de ligação e unificação de
conhecimentos. Várias triplas RDF podem ser geradas e disponibilizadas para a
comunidade desenvolvedora ao longo do tempo. Semânticas geradas a partir do
Semanticpad podem ser aproveitas ou enriquecidas em outros editores pois
produz arquivos com total compatibilidade por serem texto XML puros;
e) é possivelmente uma ferramenta intuitiva e explicativa que, por si só, serve de
um tutorial. Não carece de documentação extra e é adequado para ingressantes
no estudo de ontologias;
f) a comunidade web desenvolvedora não só tem acesso a mais uma ferramenta
de edição semântica completamente livre, como a um módulo que pode
compor partes de ferramentas web mais elaboradas que careçam de um editor
básico para descrição de conteúdo semanticamente.
A seguir são apresentadas experiências obtidas durante o desenvolvimento
deste trabalho:
a) trabalhar com Web Semântica pode ser visto como um dos estudos que estão
no limiar da tecnologia, porque remete ao futuro. É um conhecimento com
projeção e aspectos admirados por cientistas visionários. A experiência de
trabalhar com Web Semântica elucida o poder da web e lança o autor para
alternativas que aproveitam o potencial da web como recurso. Web Semântica,
como toda ciência em sua infância, se faz um cenário próspero e carente de
soluções, especialmente bom para ingressantes no mundo acadêmico de
tecnologia.
93
b) reuso é um termo nativo do estudo de Orientação a Objetos, e se faz bem
presente na web de hoje e do futuro pelos benefícios dos conceitos de baixo
acoplamento, compartilhamento e interação dos sistemas. API’s, serviços web,
bibliotecas,
frameworks,
gadgets
e
widgets
são
exemplos
que
o
desenvolvimento caminha para um novo paradigma de abstração e reuso
culminando num talento coletivo e incremental que tem projeção para um
futuro melhor em compartilhamento de tecnologia. A confiança apostada na
inteligência coletiva e no trabalho já implementado pela comunidade se
mostrou recurso seguro, favorável, adiantando horas de implementação e
possibilitando resultados muito além das perspectivas. A experiência do reuso
vai além de usar algo pronto, é um talento inerente a um desenvolvedor típico
da web plataforma que reúne pesquisa, testes, adaptação e estudo que deveras
valem a pena.
Este trabalho além de prazeroso contribuiu para formação profissional,
acadêmica e pessoal dos envolvidos, e é preferível que seja para outros que utilizem deste
documento para o desenvolvimento de trabalhos futuros.
5.2
Publicação
Este trabalho foi publicado no periódico “Boletim Técnico da FATEC-SP”
(ISSN 1518-9082) e apresentado no Simpósio de Iniciação Científica e Tecnológica (SICT,
2009) com o título: “SEMANTICPAD: UMA FERRAMENTA DE EDIÇÃO WEB
SEMÂNTICA PARA LEIGOS”.
94
5.3
Trabalhos Futuros
Abaixo estão listados algumas previsões de futuros:
a) executar estudos de caso para validação do modelo de interface colaborativa
proposto, bem como a interface intuitiva baseada em mapas conceituais;
b) produção de nova versão com maior suporte a número de conceitos e ligações,
maior segurança e robustez e mecanismos de busca de conceitos existentes em
vocabulários já definidos.
Abaixo estão listadas novas ferramentas baseadas no modelo do Semanticpad
que podem ser cogitadas como trabalhos futuros e correlatos:
c) ServicePad: ferramenta web para edição de serviços web semânticos;
d) SemanticSocial: ferramenta web para edição de RDF especialmente elaborada
para utilização em redes sociais na arquitetura OpenSocial;
e) SemanticTag: ferramenta web para edição de RDFa (XHTML semântico)
especialmente elaborada para aplicação em blogs;
f) SemanticSchema: ferramenta web de edição e criação de vocabulários em RDF
Schema;
g) SemanticLite: gadget de edição de OWL Lite;
95
REFERÊNCIAS BIBLIOGRÁFICAS
ALTOVA, 2009. Disponível em: < http://www.altova.com/semanticworks.html> Acesso em:
15 de Abril de 2009.
AMORETTI, M. S. M.; TAROUCO, L. R. Mapas Conceituais: Modelagem Colaborativa do
Conhecimento. Informática na Educação: Teoria & Prática. v.3, n.1, set. 2000. Disponível
em: <http://www.api.adm.br/GRS/referencias/mapasconceituaismodelagemcolaborativa.pdf>.
Acesso em: 23 de Abril de 2009.
ANGELE, J.; SURE, Y. Whitepaper: Evaluation of Ontology-based Tools. 2001.
Disponível em:
<http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.3.2828&rep=rep1&type=pdf>
Acesso em: 15 de Abril de 2009.
AUSUBEL, D. P.; Educational psychology: A cognitive view. New York: Holt, Rinehart and
Winston, 1968.
AZAMBUJA, R. X.; ROCHA, T. R. Caracterizando a Semântica Web. Santa Maria, 2007.
Disponível em:
<http://www.ulbra.br/santamaria/eventos/jornada/2007/arquivos/Sis1192660917.pdf/>.
Acesso em: 14 de Março de 2009.
BELTRÃO, F. B. Produção de edição Colaborativa na Internet. Universidade Federal de
Pernambuco, 2007. Disponível em:
<http://www.almanaquedacomunicacao.com.br/files/others/intercomProdu%C3%A7%C3%A
3o%20e%20edi%C3%A7%C3%A3o.pdf>. Acesso em: 28 de Março de 2009.
BENTLEY, R.; et al. Supporting Collaborative Information Sharing with the World
Wide Web: The BSCW Shared Workspace System. 1995. Disponível em:
<http://www.w3.org/Conferences/WWW4/Papers/151/>. Acesso em: 23 de Abril de 2009.
BERNES-LEE, T.; HENDLER, J.; LASSILA, O. The Semantic Web: a new form of web
content that is meaningful to computers will unleash a revolution of new possibilities.
Scientific American, New York, 2001. Disponível em:
<http://www.scientificamerican.com/article.cfm?id=the-semantic-web>. Acesso em: 13 de
Janeiro de 2009.
BERTOLINI, R. M. V. Web Semântica: Novo Desafio para os Profissionais da
Informação. Campinas, 2002. Disponível em:
<http://www.sibi.ufrj.br/snbu/snbu2002/oralpdf/124.a.pdf/>. Acesso em: 14 de Março de
2009.
96
BRAUN, S.; SCHMIDT, A.; WALTER, A. Ontology Maturing: a Collaborative Web 2.0
Approach to Ontology Engineering. Karlsruhe, 2007. Disponível em:
<http://www2007.org/workshops/paper_14.pdf >. Acesso em: 22 de Abril de 2009.
BRAY, T. et al. Extensible Markup Language (XML) 1.0 (Fifth Edition). Massachusetts,
2008, Disponível em: <http://www.w3.org/TR/REC-xml/>. Acesso em 15 de Abril de 2009.
BREITMAN, K. Web Semântica: A Internet do Futuro, 1, Rio de Janeiro: Selo-LTC, 2005.
240p., 24cm, ISBN: 9788521614661.
BRICKLEY, D. RDF Vocabulary Description Language 1.0: RDF Schema. Massachusetts,
2004, Disponível em: < http://www.w3.org/TR/rdf-schema/ >. Acesso em 15 de Abril de
2009.
DBPEDIA, 2009. Disponível em: < wiki.dbpedia.org/About> Acesso em: 10 de Abril de
2009.
DEITEL, H. M. AJAX, Rich Internet Applications, and Web Development for
Programmers. New Jersey: Prentice Hall, 2008. 991p. ISBN: 0131587382, 9780131587380.
DELICIOUS, 2009. Disponível em: < http://delicious.com/> Acesso em: 13 de Julho de 2009.
DUBLIN CORE METADATA INITIATIVE, 2009. Disponível em: < http://dublincore.org/ >.
Acesso em: Acesso em: Acesso em 01 de Maio de 2009.
FALKENBACH, G. A. M.; AMORETTI, M. S. M.; TAROUCO, L. R. Aprendizagem de
Algoritmos:Uso da Estratégia Ascendente de Resolução de Problemas. Universidade
Federal do Rio Grande do Sul. 2003. Disponível em:
<http://www.tise.cl/archivos/tise2003/papers/aprendizagem_de_algoritmos.pdf > Acesso em:
23 de Abril de 2009.
FACEBOOK, 2009. Disponível em: <http://www.facebook.com/> Acesso em: 13 de Julho de
2009.
FENSEL, D. The Semantic Web and its Languages. Amsterdam: IEEE, 2000. Disponível
em: < http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.22.5473>. Acesso em: Acesso
em: Acesso em 02 de Março de 2009.
FLICKR, 2009. Disponível em: < http://www.flickr.com/> Acesso em: 13 de Julho de 2009.
FRIENDSTER, 2009. Disponível em: <www.friendster.com/> Acesso em: 13 de Julho de
97
2009.
GILLET, D.; NGOC, A. V. N.; REKIK, Y. Collaborative web-based experimentation in
flexible engineering education. Switzerland: IEEE, 2005. ISSN: 0018-9359. Disponível em:
<http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?a>. Acesso em: 27 de Abril de 2009.
GOOGLE GADGETS, 2009. Disponível em:
<http://www.google.com/ig/directory?synd=open> Acesso em: 10 de Julho de 2009.
GOOGLE CODE, 2009. Disponível em: < http://code.google.com/intl/pt-BR/>. Acesso em:
10 de Julho de 2009.
GOOGLE DESKTOP, 2009. Disponível em: < http://desktop.google.com/>. Acesso em: 16 de
Julho de 2009.
HARA NETO, K. Desenvolvimento de Sistema Web utilizando arquitetura em Três
Camadas e Applets. Centro Federal de Educação Tecnológica do Paraná, 2009. Disponível
em: <http://inf.unisul.br/~ines/workcomp/cd/pdfs/2905.pdf>. Acesso em 03 de Maio de 2009.
HENDLER, J. Web 3.0: Chicken Farms on the Semantic Web. Local :IEEE. 2008.
ISSN:0018-9162. Disponível em:
<http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4445616>. Acesso em: 05 de Abril
de 2009.
HI5, 2009. Disponível em: <http://hi5.com/> Acesso em: 13 de Julho de 2009.
IBM, 2009. Disponível em: < http://www.ibm.com/br/pt/> Acesso em: 10 de Abril de 2009.
IGOOGLE, 2009. Disponível em: < http://www.google.com.br/ig?hl=pt-br&source=iglk>
Acesso em: 11 de Julho de 2009.
JACINTO, A. S. Uma Arquitetura para Sistemas Tutores Inteligentes Apoiada por
Sistemas de Web Semântica. 2006. 174f. Dissertação (Mestrado em Engenharia Eletrônica e
Computação) – Instituto Tecnológico de Aeronáutica, São José dos Campos, 2006.
JQUERY. 2009. Disponível em: < http://jquery.com/>. Acesso em: 16 de Julho de 2009.
JQUERYUI. 2009. Disponível em: < http://jqueryui.com/>. Acesso em: 19 de Julho de 2009.
JSDRAW2D. 2009. Disponível em: < http://draw2d.org/draw2d/>. Acesso em: 27 de Julho de
2009.
98
KECMANOVIC, D. C.; WEBB, C. Towards a Communicative Model Of Collaborative
Web-Mediated Learning. Universidade de Western Sydney, Hawkesbury, 2009. Disponível
em: < http://www.ascilite.org.au/conferences/brisbane99/papers/cecezkecmanovicwebb.pdf >.
Acesso em: 23 de Abril de 2009.
KLYNE, G.; CARROLL, J. J. Resource Description Framework (RDF): Concepts and
Abstract Syntax. Massachusetts, 2004. Disponível em: < http://www.w3.org/TR/rdfconcepts/>. Acesso em: 17 de Abril de 2009.
MANOLA, F.; MILLER, E. RDF Primer. Massachusetts, 2004, Disponível em:
<http://www.w3.org/TR/2004/REC-rdf-primer-20040210/>. Acesso em 01 de Março de 2009.
MARKOFF, J. Entrepreneurs See a Web Guided by Common Sense. The New York Times,
New York, 23 nov. 2006.
MCGUINNESS, D. L.; HARMELEN, F. V. OWL Web Ontology Language Overview,
2004. Disponível em: < http://www.w3.org/TR/owl-features/>. Acesso em: 22 de Abril de
2009.
MICROSOFT, 2009. Disponível em: <http://gallery.live.com/devcenter.aspx>. Acesso em: 11
de Julho de 2009.
MOREIRA, M. A. Mapas Conceituais e Aprendizagem Significativa. Instituto de Física –
UFRGS, Porto Alegre, 1998. Disponível em: <
http://www2.iq.usp.br/docente/famaxim/disciplina/integrada/mapasport-Moreira.pdf>.
Acesso em: 23 de Abril de 2009.
MYSPACE, 2009. Disponível em: <http://www.myspace.com/> Acesso em: 13 de Julho de
2009.
NETLOG, 2009. Disponível em: <www.netlog.com/> Acesso em: 13 de Julho de 2009.
NING, 2009. Disponível em: <www.ning.com/> Acesso em: 13 de Julho de 2009.
NOVAK, J. D. The Theory Underlying Concept Maps and How to Construct Them.
IHMC, Flórida, 2006. Disponível em:
<http://cmap.ihmc.us/Publications/ResearchPapers/TheoryCmaps/TheoryUnderlyingConcept
Maps.htm >. Acesso em: 22 de Abril de 2009.
ON-TO-KNOWLEDGE, 2009. Disponível em: <http://www.few.vu.nl/~ontoknow/>. Acesso
em: 13 de Abril de 2009.
99
O'REILLY, T. Web 2.0 and Cloud Computing. California, 2008. Disponível em: <
http://radar.oreilly.com/2008/10/web-20-and-cloud-computing.html> Acesso em: 24 de Abril
de 2009.
O'REILLY, T. What Is Web 2.0: Design Patterns and Business Models for the Next
Generation of Software. Sebastopol: O'Reilly, 2005. Disponível em: <
http://oreilly.com/web2/archive/what-is-web-20.html>. Acesso em: 12 de Maio de 2009.
ORKUT, 2009. Disponível em: <www.orkut.com> Acesso em: 13 de Julho de 2009.
PAOLUCCI, M.; et al. Semantic Matching of Web Services Capabilities. Carnegie Mellon
University, Pittsburgh, 2002. ISSN 1611-3349. Disponível em: <
http://www.springerlink.com/content/9lwn9fkclngm6trl/>. Acesso em: 24 de Abril de 2009.
PIAGET, J.; Epistemologia Genética Martins Fontes, São Paulo, 2002.
PROTÉGÉ TEAM, 2009. Disponível em: < http://protege.stanford.edu/>. Acesso em: 13 de
Abril de 2009.
PRUD'HOMMEAUX, T.; SEABORNE, A. SPARQL Query Language for RDF. 2008.
Disponível em: < http://www.w3.org/TR/rdf-sparql-query/>. Acesso em: 11 de Abril de 2009.
SICT, 2009. Disponível em: <http://sict.fatecsp.br/> Acesso em: 20 de Setembro de 2009.
SONICO, 2009. Disponível em: <www.sonico.com> Acesso em: 13 de Julho de 2009.
SURE, Y. et al. OntoEdit: Collaborative Ontology Development for the Semantic Web.
Universidade de Karlsruhe, 2002. Disponível em:
<http://www.springerlink.com/content/drux1nwev5ghr695/> Acesso em: 13 de Abril de 2009.
SURE, Y.; Studer, R. On-To-Knowledge Methodology - Expanded Version. Universidade
de Karlsruhe, 1999. Disponível em: <http://www.york-sure.de/publications/OTK-D17_v10.pdf>. Acesso em: 13 de Abril de 2009.
TABLELESS, 2009. Disponível em: < http://www.tableless.com.br/>. Acesso em: Acesso em:
Acesso em 12 de Abril de 2009.
TAVARES, R. Animações Interativas e Mapas Conceituais. Universidade Federal da
Paraíba (UFPB), Rio de Janeiro, 2005. Disponível em:
<http://rived.mec.gov.br/atividades/fisica/EXTERNOS/ufpb_energia/Textos/AIMCSimposio.
pdf>. Acesso em: 27 de Abril de 2009.
100
TAVARES, R. Construindo Mapas Conceituais. Universidade Federal da Paraíba (UFPB),
João Pessoa, 2007. ISSN 1806-5821. Disponível em:
<http://www.cienciasecognicao.org/pdf/v12/m347187.pdf >. Acesso em: 23 de Abril de 2009.
TWITTER, 2009. Disponível em: <http://twitter.com/> Acesso em: 13 de Julho de 2009.
UNDERGOOGLE. Disponível em: < http://www.undergoogle.com/blog/>. Acesso em: 28 de
Março de 2009.
URIS, URLs, and URNs: Clarifications and Recommendations. 1.0: Report from the joint
W3C/IETF URI Planning Interest Group. 2001. Disponível em: < http://www.w3.org/TR/uriclarification/ >. Acesso em: 11 de Abril de 2009.
VYGOTSKY, L., COLE, M.; Mind in society: The development of higher , psychological
processes. Cambridge: Harvard University Press, 1978.
W3C SEMANTIC WEB ACTIVITY, 2009. Disponível em: <http://www.w3.org/2001/sw/>.
Acesso em: 15 de Julho de 2009.
W3SCHOOLS, 2009. Disponível em: < http://www.w3schools.com/rdf/default.asp >. Acesso
em: 13 de Julho de 2009.
W3SCHOOLS, 2009. Disponível em: < http://www.w3schools.com/rdf/rdf_schema.asp>.
Acesso em: 14 de Julho de 2009.
W3SCHOOLS, 2009. Disponível em: < http://www.w3schools.com/schema/default.asp >.
Acesso em: 14 de Julho de 2009.
W3SCHOOLS, 2009. Disponível em: < http://www.w3schools.com/xml/default.asp >. Acesso
em: 15 de Julho de 2009.
W3SCHOOLS, 2009. Disponível em: <http://www.w3schools.com/rdf/rdf_owl.asp>. Acesso
em: 14 de Julho de 2009.
W3SCHOOLS, 2009. Disponível em:
<http://www.w3schools.com/xml/xml_namespaces.asp>. Acesso em: 13 de Julho de 2009.
WEBONDEMAND. Disponível em: < http://www.webondemand.net/home.asp>. Acesso em:
28 de Março de 2009.
WIKIPÉDIA, 2009. Disponível em: < http://en.WIKIPÉDIA.org/wiki/Html >. Acesso em: 12
101
de Maio de 2009.
WIKIPÉDIA, 2009. Disponível em: < http://en.WIKIPÉDIA.org/wiki/URI>. Acesso em: 19
de Março de 2009.
WIKIPÉDIA, 2009. Disponível em: < http://en.WIKIPÉDIA.org/wiki/Url >. Acesso em: 11
de Abril de 2009.
WIKIPÉDIA, 2009. Disponível em: < http://en.WIKIPÉDIA.org/wiki/XML_Namespaces >.
Acesso em: 14 de Março de 2009.
WIKIPÉDIA, 2009. Disponível em:
<http://en.WIKIPÉDIA.org/wiki/Prot%C3%A9g%C3%A9_(software)>. Acesso em: 13 de
Abril de 2009.
WIKIPÉDIA, 2009. Disponível em: <http://pt.WIKIPÉDIA.org/wiki/Desktop_online >.
Acesso em: 128 de Março de 2009.
WIKIPÉDIA. Disponível em: <
http://en.WIKIPÉDIA.org/wiki/Software_release_life_cycle#Beta>. Acesso em: 28 de Março
de 2009.
XHTML2 WORKING GROUP HOME PAGE, 2009. Disponível em:
<http://www.w3.org/MarkUp/>. Acesso em: 21 de Maio de 2009.
YAHOO, 2009. Disponível em: <www.yahoo.com/> Acesso em: 13 de Julho de 2009.
YOUN, S.; et al. Survey about Ontology Development Tools for Ontology-based
Knowledge Management. University of Southern California, 2009. Disponível em: <
http://www-scf.usc.edu/~csci586/projects/ontology-survey.doc>. Acesso em: 24 de Abril de
2009.
YOUN, S.; MCLOAD D. Ontology Development Tools for Ontology-based Knowledge
Management. University of Southern California, Los Angeles, 2006. Disponível em: <
http://sirlab.usc.edu/publications/Survey%20of%20Ontology%20Development%20Tools%20for%20
Knowledge%20Management.pdf> Acesso em: 24 de Abril de 2009
Download

semanticpad: uma ferramenta web de edição de conteúdo para web