ver/abrir - Repositório do Departamento de Ciência da Computação

Transcrição

ver/abrir - Repositório do Departamento de Ciência da Computação
Universidade de Brasília
Instituto de Ciências Exatas
Departamento de Ciência da Computação
Publicação de Dados Governamentais Abertos
Utilizando Tecnologias da Web Semântica
Patrícia Martins Gomes
Monografia apresentada como requisito parcial
para conclusão do Curso de Computação Licenciatura
Ricardo Cordeiro Galvão Sant' Ana Van Erven
Monografia apresentada como requisito parcial
para conclusão do Bacharelado em Ciência da Computação
Orientador
Prof. Dr.a Fernanda Lima
a
Brasília
2011
Universidade de Brasília - UnB
Instituto de Ciências Exatas
Departamento de Ciência da Computação
Curso de Computação - Licenciatura
Coordenador:Prof.a Dr.a Carla Denise Castanho
Banca examinadora composta por:
Prof.a Dr.a Fernanda Lima (Orientador) - CIC/UnB
Prof. Msc. Fernando Chacon de Albuquerque - CIC/UnB
Prof.a Dr.a Germana Menezes da Nóbrega - CIC/UnB
CIP Catalogação Internacional na Publicação
Gomes, Patrícia Martins.
Publicação de Dados Governamentais Abertos Utilizando Tecnologias
da Web Semântica / Patrícia Martins Gomes. Brasília : UnB, 2011.
121 p.: il.; 29,5 cm.
Monografia (Graduação) Universidade de Brasília, Brasília, 2011.
1. Web Semântica, 2. Ontologias, 3. RDF, 4. SPARQL, 5. OWL,
6. E-Gov, 7. Dados Governamentais Abertos
CDU 004.4
Endereço: Universidade de Brasília
Campus Universitário Darcy Ribeiro - Asa Norte
CEP 70910-900
Brasília-DF - Brasil
Universidade de Brasília - UnB
Instituto de Ciências Exatas
Departamento de Ciência da Computação
Bacharelado em Ciência da Computação
Coordenador:Prof. Dr. Marcus Vinicius Lamar
Banca examinadora composta por:
Prof.a Dr.a Fernanda Lima (Orientador) - CIC/UnB
Prof. Msc. Fernando Chacon de Albuquerque - CIC/UnB
Prof.a Dr.a Germana Menezes da Nóbrega - CIC/UnB
CIP Catalogação Internacional na Publicação
Van Erven, Ricardo Cordeiro Galvão Sant'Ana.
Publicação de Dados Governamentais Abertos Utilizando Tecnologias
da Web Semântica / Ricardo Cordeiro Galvão Sant' Ana Van Erven.
Brasília : UnB, 2011.
121 p.: il.; 29,5 cm.
Monografia (Graduação) Universidade de Brasília, Brasília, 2011.
1. Web Semântica, 2. Ontologias, 3. RDF, 4. SPARQL, 5. OWL,
6. E-Gov, 7. Dados Governamentais Abertos
CDU 004.4
Endereço: Universidade de Brasília
Campus Universitário Darcy Ribeiro - Asa Norte
CEP 70910-900
Brasília-DF - Brasil
Universidade de Brasília
Instituto de Ciências Exatas
Departamento de Ciência da Computação
Publicação de Dados Governamentais Abertos
Utilizando Tecnologias da Web Semântica
Patrícia Martins Gomes
Monografia apresentada como requisito parcial
para conclusão do Curso de Computação - Licenciatura
Ricardo Cordeiro Galvão Sant'Ana Van Erven
Monografia apresentada como requisito parcial
para conclusão do Bacharelado em Ciência da Computação
Prof.a Dr.a Fernanda Lima(Orientador)
CIC/UnB
Prof. Msc.Fernando Chacon de Albuquerque Prof. a Dr.a Germana Menezes da Nóbrega
CIC/UnB
CIC/UnB
Prof.a Dr.a Carla Denise Castanho
Coordenador do Curso de Computação - Licenciatura
Prof. Dr. Marcos Vinicius Lamar
Coordenador do Bacharelado em Ciência da Computação
Brasília, 04 de julho de 2011
Dedicatória
Dedico, acima de tudo, a Deus que nos fortaleceu e concedeu capacidade para seguir
em frente. (Patrícia)
Dedico este trabalho a todos os que, ao longo dessa valiosa etapa de graduação,
contribuíram e/ou me incentivaram para o êxito de sua conclusão, como professores,
colegas e outros que zeram parte do dia-a-dia dessa conquista. Dedico à professora orientadora, Fernanda Lima, que, muito empenhada ao sucesso de seus alunos,
ajudou-nos a superar os obstáculos. Faço questão de destacar, individualmente, o
suporte do meu pai, João, de irmãos, Carla, Andréa, Gustavo e Ana Paula, de meus
cunhados, Rogério, Gustavo e Camila, e de meus sogros, Geraldo e Roxani. Dou
especial dedicação, por m, à minha mãe Terezinha, doutora em psicologia pela Universidade de Brasília, que, além de seu apoio, sempre foi um exemplo de empenho no
âmbito acadêmico, e à minha esposa, Andreza, a qual não há palavras para retribuir
todo o apoio e o incentivo que me foram reservados. (Ricardo)
i
Agradecimentos
Agradeço meus pais e minha irmã pelo constante apoio e compreensão.
Agradeço familiares e amigos pelo constante incentivo.
Agradeço aos professores que me acompanharam durante todas etapas do curso, em
particular, a professora Fernanda Lima, que nos incentivou e guiou por todo árduo processo de conclusão do curso. (Patrícia)
Agradecimentos a Finatec pelo apoio nanceiro que viabilizou a aquisição de material
bibliográco.
ii
Resumo
A Web Semântica trata de novos esforços para construção de uma Web que trabalhe
além do compartilhamento de arquivos, permitindo maior contribuição das máquinas na
realização de tarefas dispendiosas para os humanos. Soma-se a estes esforços o conceito
de Dados Governamentais Abertos que trata da publicação dos dados de Governo em
formato público e acessível, permitindo o desenvolvimento de aplicações com maior nível
de complexidade, que utilizam dados preparados e padronizados.
O processo de adequação dos dados para formato aberto é dispendioso e requer um
conhecimento do domínio abordado. Os dados de Governo em formato aberto contribuem
facilitando as etapas de desenvolvimento de aplicações, onde desenvolvedores não precisam realizar a tarefa complexa de modelagem dos dados e podem concentrar esforços na
aplicação.
Esse fato, somado ao volume de dados produzidos pelo Governo, auxilia na
produção de aplicações mais interessantes e com base em um repositório de grande valor
para a sociedade.
Palavras-chave:
Web Semântica, Ontologias, RDF, SPARQL, OWL, E-Gov, Dados Go-
vernamentais Abertos
iii
Abstract
The Semantic Web is a new eort to build a Web that works beyond the sharing of les,
allowing greater contribution of the machines to perform tasks costly for humans. Added
to these eorts, the concept of Open Government Data dealing with the publication of
government data on public and accessible format, enabling the development of applications
with greater complexity, using data prepared and standardized.
The process of adjusting the data to an open format is cumbersome and requires a
knowledge of the domain. Government data in open format help facilitate the steps of
application development, where developers do not need to perform the complex task of
modeling data and can focus more on application.
This fact and the amount of data
produced by the Government, assists in the production of more interesting applications
and based on a repository of great value to society.
Keywords:
Semantic Web, Ontology, RDF, SPARQL, OWL, E-Gov, Open Government
Data
iv
Sumário
1 Introdução
2 Referencial Teórico
2.1
Contextualização
2.2
Web Semântica
2.3
2.4
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1
Breve resumo
2.2.2
Novos Esforços
Casos de Uso
1
4
4
5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.3.1
Linked Data - DBpedia . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.3.2
Saúde
15
2.3.3
Educação
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.3.4
Governo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
Web / Governo - Brasil . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
2.4.1
18
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dimensões da Web no Brasil . . . . . . . . . . . . . . . . . . . . . .
2.5
Dados Governamentais Abertos
. . . . . . . . . . . . . . . . . . . . . . . .
2.6
Interoperabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.7
Recursos Avançados da Web . . . . . . . . . . . . . . . . . . . . . . . . . .
23
2.7.1
Mashups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
2.7.2
Tipos
23
2.7.3
Exemplos - Mashups
2.7.4
Tecnologias
2.7.5
Exemplo de API para Mashups
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
24
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
3 Aplicação Proposta
3.1
. . . . . . . . . . . . . . . . . . . .
Modelagem de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1
Hierarquia de Classes . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2
Ontologia
29
31
32
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
55
Instâncias
4.1
Base de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2
Consultas
4 Implementação
4.4
27
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2
4.3
20
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
56
57
Ambiente da Aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
4.3.1
Tomcat
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
4.3.2
Sesame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
Arquitetura da Aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
4.4.1
65
JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
v
4.5
4.4.2
ADF Faces
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
4.4.3
JSF
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
4.4.4
JSP
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
4.5.1
Aplicação
Filtros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
4.5.2
Navegação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
5 Conclusão
Referências
A
B
vi
85
88
91
107
Lista de Figuras
2.1
Gráco FOAF (34) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.2
RDF/XML Foaf (34) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3
DBpedia Cloud
(19) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.4
Exemplo de consulta SPARQL (34) . . . . . . . . . . . . . . . . . . . . . .
13
2.5
Conexão entre banco de dados
(18) . . . . . . . . . . . . . . . . . . . . . .
16
2.6
Saldo de Investimento do PAC no DF (20) . . . . . . . . . . . . . . . . . .
19
2.7
Exemplo de visão do WikiCrimes
. . . . . . . . . . . . . . . . . . . . . . .
24
2.8
Exemplo de visão do Django People . . . . . . . . . . . . . . . . . . . . . .
25
2.9
Busca de localização do usuário com utilização de sensor. . . . . . . . . . .
27
9
2.10 Passagem de informação de preferência de língua.
. . . . . . . . . . . . . .
27
2.11 Passagem de informação de preferência de região.
. . . . . . . . . . . . . .
27
2.12 "Hello World"da API do Google Maps V3. . . . . . . . . . . . . . . . . . .
28
3.1
Portal do Estado de São Paulo . . . . . . . . . . . . . . . . . . . . . . . . .
30
3.2
Hierarquia de Classes - Projeto
. . . . . . . . . . . . . . . . . . . . . . . .
33
3.3
Classe Público-Alvo e subclasses . . . . . . . . . . . . . . . . . . . . . . . .
34
3.4
Classe ÓrgãoGovernamental e subclasses
35
3.5
Classe ÓrgãoFederal e subclasses
. . . . . . . . . . . . . . . . . . . . . . .
35
3.6
Classe ÓrgãoMunicipal e subclasses . . . . . . . . . . . . . . . . . . . . . .
36
3.7
Hierarquia de Classes - Foco na classe Projeto
37
3.8
Hierarquia de Classes - Foco na classe ÓrgãoGovernamental e seus relaci-
3.9
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
onamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
Protégé - Namespace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
3.10 Protégé - Classes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
3.11 Protégé - Datatype Properties . . . . . . . . . . . . . . . . . . . . . . . . .
41
3.12 Modelo com propriedades Datatype e Object . . . . . . . . . . . . . . . . .
44
3.13 Declaração de namespace na linguagem OWL da ontologia baseada no modelo 3.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
3.14 Denição das classes na linguagem OWL . . . . . . . . . . . . . . . . . . .
45
3.15 Denição de uma Datatype Property na linguagem OWL
. . . . . . . . . .
3.16 Denição de propriedades Object Properties na linguagem OWL
45
. . . . . .
46
3.17 Protégé - Lista de Object Properties . . . . . . . . . . . . . . . . . . . . . .
47
3.18 Modelo para a propriedade ProGov:temGestor . . . . . . . . . . . . . . . .
48
3.19 Modelo para a propriedade ProGov:gestorDe, inversa de ProGov:temGestor
48
3.20 Modelo para a propriedade foaf:homepage
49
. . . . . . . . . . . . . . . . . .
3.21 Modelo para a propriedade ProGov:temFuncionarioGestor
. . . . . . . . .
50
3.22 Regras estipuladas para a classe ProjetosDeGoverno . . . . . . . . . . . . .
51
vii
3.23 Regras estipuladas para a classe ProGov:ProjetoDeAgricultura . . . . . . .
52
3.24 Resultado da classicação de taxonomia realizada pelo Protégé . . . . . . .
54
3.25 Formulário para criação de instância da classe ProGov:Projeto . . . . . . .
55
4.1
Interface de administração do Sesame . . . . . . . . . . . . . . . . . . . . .
57
4.2
Consulta principal da aplicação
. . . . . . . . . . . . . . . . . . . . . . . .
58
4.3
Resultado da consulta padrão da página inicial . . . . . . . . . . . . . . . .
59
4.4
Filtros para consultas da aplicação
59
4.5
Consulta para valores do ltro Estado . . . . . . . . . . . . . . . . . . . .
60
4.6
Resultado da consulta aplicada ao ltro Estado
61
4.7
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .
Exemplo de consulta que retorna projetos voltados para o Estado de São
Paulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.8
61
Resultado da consulta que retorna projetos voltados para o Estado de São
Paulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
Consulta que retorna instâncias da classe ProGov:OrgaoGovernamental . .
63
4.10 Resultado da consulta à classe ProGov:OrgaoGovernamental . . . . . . . .
63
4.11 Uma visão geral da arquitetura do Sesame 2.4.0 (2)
. . . . . . . . . . . . .
64
. . . . . . . . . . . . . . . . .
65
4.9
4.12 Arquitetura da interface Web(adaptado (3))
4.13 Tela inicial da aplicação
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
4.14 Resultado modicado pela seleção de valor no ltro Estado . . . . . . . .
67
4.15 Relação de dependência entre os ltros Esfera de Governo e Órgão Gestor 68
4.16 Lista do ltro Órgão Gestor sem interferência do ltro Esfera de Governo 69
4.17 Tela com detalhes do recurso Descoberta do Talento Esportivo
4.18 Tela com detalhes do recurso Ministério do Esporte
. . . . . .
70
. . . . . . . . . . . .
71
4.19 Resultado do uso do ltro de abrangência para "Brasil".
. . . . . . . . . .
74
4.20 Resultado cumulativo dos ltros: Abrangência: Amazonas; Esfera: Federal; Órgão Gestor: Ministério da Defesa.
. . . . . . . . . . . . . . . . . . .
4.21 Resultado dos ltros por Área e Público-Alvo
. . . . . . . . . . . . . . . .
4.22 Página de detalhes do projeto "Reintegração Social".
. . . . . . . . . . . .
75
76
78
4.23 Página de detalhes do órgão "Secretaria de Esporte do Estado de São
Paulo", em que se pode identicar a lista de projetos sob responsabilidade
do órgão. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
4.24 Página de detalhes do responsável "Jorge Roberto Pagura". . . . . . . . . .
80
4.25 Página de detalhes da localidade "São Paulo"(estado) . . . . . . . . . . . .
81
4.26 Página de detalhes da abrangência "São Paulo"(estado) . . . . . . . . . . .
82
4.27 Página de detalhes da área "Sistema Penitenciário". . . . . . . . . . . . . .
83
4.28 Página de detalhes do público-alvo "Presidiário".
84
viii
. . . . . . . . . . . . . .
Capítulo 1
Introdução
O volume de dados produzido pelo Governo atualmente é extenso e muitos dos dados
produzidos, de grande valor, cam armazenados sem que alguém tenha disponibilidade ou
motivação para realizar algo útil com os dados armazenados. Por outro lado, pesquisas
como a Pesquisa Sobre o Uso das Tecnologias da Informação e Comunicação (TICs) no
Brasil - Governo Eletrônico 2010 (22), realizada pelo Comitê Gestor da Internet no Brasil
1
(cgi.br) , mostram que é cada vez maior a quantidade de cidadãos interessados em utilizar
serviços do Governo através da Internet.
Os dados governamentais publicados devem ser acessíveis para a população em geral
e para serem utilizados em aplicações com diversas nalidades, inclusive de forma automatizada.
O que se encontra nos sítios governamentais brasileiros, contudo, são dados
desestruturados, misturados com outros tipos de conteúdo, como publicidade, por exemplo. Dessa forma, é muito difícil realizar o processamento automático desses dados. Por
outro lado, considerando a grande quantidade de dados, o processamento manual também
é uma atividade que, quando não é inviável, é bastante dispendiosa.
Além disso, os dados são publicados, geralmente, connados dentro de documentos ou
imagens, voltados para a compreensão humana, o que diculta o reaproveitamento desses
dados em aplicações ou mesmo em outros documentos.
A publicação de dados em formatos proprietários também é bastante frequente nas
diversas esferas de Governo, o que impede o acesso daqueles que não possuem as licenças
necessárias.
O problema identicado neste trabalho é que a atual disponibilização de dados do
Governo Brasileiro diculta o aproveitamento mais eciente desses dados em outras aplicações, desenvolvidas pelo Governo e pela sociedade.
Isso, aliado à motivação de cidadãos interessados em consumir dados formatados em
aplicações e de indivíduos capacitados para desenvolver essas aplicações Web, alimentadas
pelos dados disponibilizados pelo Governo, formam uma base para analisar o potencial
de desenvolvimento com a utilização de dados no formato aberto, ou seja, estruturados e
conectados a outros dados.
O formato aberto é uma maneira de disponibilizar os dados em um formato acessível
e estruturado, como xml. Uma vantagem do xml é que suas tags servem como metadados
possíveis de serem utilizados por uma aplicação para determinar qual tipo de informação
está sendo tratada.
1 http://www.cgi.br/
1
Uma tecnologia capaz de melhorar a classicação e organização dos dados é a Web
Semântica. Ela está conquistando um espaço maior a cada dia e diversos projetos têm
incentivado a publicação de dados na Web em formato padronizado e com relacionamentos
com outros repositórios, além de promover o reuso desses dados disponibilizados. Isso é
facilitado com o uso ontologias que ajudam a padronizar os tipos de dados do domínio
trabalhado. Com o grande êxito aos poucos alcançado com o uso de padrões difundidos
pelo World Wide Web Consortium (W3C)
2
e diversos pesquisadores do mundo todo,
um grande interesse surgiu para inclusão nesta realidade de instituições produtoras de
volumes signicativos de dados, de grande relevância para a sociedade.
Nesse movimento, os Governos do Reino Unido e Estados Unidos iniciaram a publicação de seus dados em formato aberto, oferecendo, em seus sítios, espaços para discussões,
informações sobre a Web Semântica, dados, conexões para outros sítios que oferecem
Dados Governamentais Abertos e divulgando aplicações desenvolvidas pelo Governo e
sociedade.
Seguindo esta corrente, esforços para que o Brasil se adeque à publicação de Dados
Governamentais Abertos já são notados.
Conferência Web W3C Brasil
3
A Web Semântica está entre os temas da 3
a
, assim como em suas edições anteriores, além de encontros
como o IV Congresso Internacional Software Livre e Governo Eletrônico (CONSEGI)
4
e
outros.
A suposição deste trabalho é que a disponibilização de dados governamentais em formato aberto, seguindo recomendações da Web Semântica, permitiria a desenvolvedores
um reaproveitamento mais eciente dos dados.
De forma complementar, o desenvolvi-
mento da aplicação demonstraria que a publicação de dados governamentais em formato
aberto simplicaria etapas de desenvolvimento de aplicações, visto que os dados já estariam tratados e prontos para uso.
A justicativa deste trabalho é que, tendo em vista a enorme quantidade de dados
governamentais publicados no Brasil, o processamento manual desses dados é geralmente
dispendioso ou mesmo inviável e a forma como são publicados diculta a utilização de
máquinas para realizar esse trabalho.
A publicação de informações referentes a projetos governamentais também é voltada
predominantemente para a compreensão humana, sem possibilitar o reuso. Contribuições,
de acordo com a Web Semântica, para tratar de projetos governamentais podem melhorar
a forma como os dados desses projetos são apresentados, classicados e organizados em
sítios governamentais.
Desse modo, o objetivo geral deste trabalho é mostrar os benefícios da publicação de
dados governamentais no formato aberto, a partir da criação de uma ontologia de projetos
de Governo e do desenvolvimento de uma aplicação para apresentar os dados estruturados
semanticamente. Espera-se, também, mostrar a facilidade no desenvolvimento de aplicações quando os dados estão em formato adequado. Para o desenvolvimento desse projeto,
foram traçados alguns objetivos especícos para alcançar o objetivo geral:
•
Extrair dados sobre projetos de sítios do Governo Brasileiro;
•
Desenvolver ontologia para classicação dos dados referentes aos projetos;
2 http://www.w3.org/
3 http://conferenciaweb.w3c.br/
4 http://www.consegi.gov.br/
2
•
Tratar os dados extraídos de modo que sejam convertidos para padrões abertos e
armazenados adequadamente;
•
Desenvolver consultas sobre repositórios;
•
Criar aplicação Web, que possibilite apresentar os dados em mashups.
Os resultados esperados deste trabalho são apresentar a modelagem de dados de projetos governamentais brasileiros, além apresentar um serviço possível baseado em Dados
Governamentais Abertos.
O Capítulo dois discutirá sobre alguns itens mais relevantes do referencial teórico
do projeto, dentre eles, a própria Web Semântica, alguns de seus casos de uso atuais,
informações sobre dados governamentais abertos, interoperabilidade e mashups.
O Capítulo três apresenta a aplicação da proposta do projeto, passando pela modelagem de dados, a utilização de roteiro para a criação da ontologia, a denição da hierarquia
de classes e de seus atributos, detalhes sobre as propriedades e restrições denidas na ontologia. São mostradas, também, informações sobre a utilização de regras que irão propiciar
inferências sobre as instâncias e sobre o povoamento do banco com essas instâncias.
O Capítulo quatro aborda a implementação da aplicação, que apresentará a base de
dados utilizada pela aplicação, algumas de suas consultas e seus resultados, o ambiente
e a arquitetura em que a aplicação foi desenvolvida, além de detalhamentos das páginas
de visualização dos dados dos projetos e de entidades relacionadas, como órgãos governamentais, responsáveis pelos projetos, entre outras. São apresentadas, também, as formas
de utilização e codicação dos ltros, além da forma que a aplicação navega.
A conclusão discute os resultados obtidos com a criação da ontologia e da aplicação
e evidencia um contraste entre a experiência de exploração de dados a partir do modelo
proposto e a atual forma de exploração de informações de projetos presente nos sítios de
Governos brasileiros.
Os apêndices A e B apresentam as partes mais relevantes, respectivamente, dos códigos
da ontologia e da aplicação desenvolvidos.
3
Capítulo 2
Referencial Teórico
2.1
Contextualização
A Web como conhecemos hoje surgiu da necessidade vivenciada pelo seu inventor,
Tim Berners-Lee, de comunicação com colegas no ambiente de trabalho e relacionamento
entre pesquisas depositadas em diferentes ambientes e formatos.
O cenário que moti-
vou o desenvolvimento da Web consistia das mais diversas pessoas, com computadores e
programas de formatos e arquiteturas diferentes. Este cenário possui algumas diferenças
em relação ao que existe hoje, mas com as ideias primordiais inalteradas.
Berners-Lee
utilizou conceitos já desenvolvidos e testados, para desenvolver a World Wide Web, e em
1990 apresentou, em conjunto com Robert Cailliau, uma proposta (8) mais sólida para a
Web.
Antes da Web os desenvolvedores não podiam relacionar seus conteúdos, apresentando
apenas textos isolados. A partir da Web os desenvolvedores direcionaram a atenção para
o modo como o conteúdo é apresentado aos seus usuários, sem ter a preocupação de cuidar
de detalhes, que puderam então ser encapsulados.
Apesar de toda a revolução que o desenvolvimento da Web causou, o próprio criador frisou que muito ainda não havia sido explorado e que a Web ainda tinha que ser
aprimorada em muitos aspectos.
De fato, a Web atual atende muito bem às conexões
que a mente humana é capaz de realizar. Segundo T. Segaran et al.[2009] (34), a Web
funciona bem porque somos bons processadores de dados. Temos a capacidade de extrair
informações de repositórios em diferentes formatos, fazer inferências e estabelecer relações
entre os dados obtidos, identicando o que é relevante.
Contudo os computadores não
compreendem os dados na forma que estão representados e não conseguem fornecer todo
o relacionamento entre a enorme quantidade de dados disponíveis.
Atualmente, a maior parte do conteúdo da Web é projetada para o entendimento por
humanos, e não para programas de computadores manipularem o seu signicado.
T. Berners-Lee et al.[2001] (10)
A quantidade crescente no volume de informações disponíveis na Web, mais de 8
bilhões de páginas Web, segundo K. Breitman et al.[2007] (14) e a falta de estrutura para
organizar essas informações corroboram com os problemas que os usuários enfrentam.
O exemplo mais nítido de como a estruturação da Web é voltada primordialmente para
a apresentação do conteúdo pode ser notado nos sistemas de consulta por conteúdo.
4
Estes sistemas utilizam como método a busca por palavra-chave e retornam páginas cujo
signicado não condiz com o termo de busca, ou que por vezes não conseguem alcançar
conteúdos relacionados ao assunto pesquisado porque o autor de determinada página
utilizou um sinônimo na identicação do recurso.
A Web sintática nos moldes utilizados hoje não permite que computadores realizem
essas tarefas de maneira simplicada.
Os dados não têm signicado para as máquinas
e os relacionamentos entre eles não são explorados. O que é feito hoje é uma tentativa
de adaptar a estrutura apresentada, realizando inferências sobre o conteúdo com base na
sua localização na página. Existem aplicativos que identicam o header da página como
título, a lateral esquerda comumente utilizada para links, os metadados, entre outros
conteúdos da página para tentar identicar esses conteúdos atribuindo signicado, porém
essa técnica exige aplicações mais complexas.
Essa situação é bem mais simplicada
quando a estrutura da Web está preparada, de modo que as máquinas consigam identicar
o conteúdo alocado de maneira padronizada e relacionar ele a outros conteúdos. Assim, a
máquina tem plenas condições de tratar todos os dados colhidos e identicar corretamente
o contexto no qual esses dados estão inseridos.
Da mesma forma que outros conteúdos da Web, os dados de Governo também apresentam diversas limitações por se enquadrarem no mesmo modelo de Web atual.
2.2
2.2.1
Web Semântica
Breve resumo
A Web Semântica reúne tecnologias e padrões empregados no intuito de criar uma
Web compreensível às máquinas. Os grandes precursores dessa nova visão são o inventor
da Web T. Berners-Lee
1
e o World Wide Web Consortium - W3C
2
, uma comunidade
internacional responsável por diversos padrões adotados no desenvolvimento de aplicações
Web. Esse novo projeto tem como missão explorar todo o potencial da World Wide Web,
através do desenvolvimento de protocolos, padrões e recomendações que assegurem o
desenvolvimento contínuo da Web.
Essa iniciativa ganhou espaço com a publicação, na Scientic American, do artigo
de Berners-Lee, intitulado The Semantic Web: A New Form of Web Content That Is
Meaningful to Computers Will Unleash a Revolution of New Possibilities T. BernersLee et al. [2001] (10). Em síntese, esse artigo mostra como algumas atividades seriam
realizadas caso a Web fosse tratada de forma semântica.
Muitas das aplicações nesse
contexto poderiam ser realizadas em uma Web sintática, mas certamente seria necessário
um esforço signicativamente maior para realizar a mesma tarefa, com vários acessos a
sítios, nem sempre úteis, e com um sério desperdício de tempo associado.
No cenário sintático, o conteúdo é apresentado com foco na compreensão por pessoas,
que têm a função de ltrar informações relevantes aos seus interesses. Não existem metadados associados aos conteúdos que possibilitem uma manipulação mais simplicada dos
recursos, com o uso de máquinas que realizariam a maior parte do trabalho dispendioso
de seleção e tratamento dos dados.
1 http://www.w3.org/People/Berners-Lee
2 http://www.w3.org
5
A proposta da Web Semântica é justamente facilitar a automatização do processamento de dados por máquinas através da estruturação dos dados.
Assim, baseado em
regras pré-estabelecidas e em inferências obtidas a partir dessas regras, agentes de software podem realizar diversas atividades com um grau maior de inteligência, como buscas
a partir de preferências denidas, negociação com outros agentes para divulgação de conteúdo, dentre outras.
Para realizar o que se propõe, a Web Semântica deve adicionar camadas ao modelo
atual de Web. Nessas camadas, metadados representam os dados extras necessários ao
novo modelo. Eles se baseiam em ontologias, que são, na ciência da computação, conforme
denido por N. Guarino [1998] (24), artefatos constituídos por um vocabulário especíco,
usados para descrever certa realidade, além de um conjunto de suposições usadas a respeito
do vocabulário.
Além de tornar explícito o vocabulário usado em aplicações semânticas, as ontologias devem garantir que a informação seja livre de ambiguidades. Essas ontologias podem ser criadas a partir de linguagens como Resource Description Framework (RDF)
[W3C,2004] (28), RDF Schema (RDF-S) [W3C, 2004] (15) e Web Ontology Language
(OWL) [W3C, 2009] (23).
Para que a Web se torne verdadeiramente semântica, é necessário que os dados de
instituições e Governos sejam disponibilizados na Web, de modo que os agentes de software possam vasculhar a rede em busca de referências ao conteúdo procurado. Em meio
a grande quantidade de informações, os dados governamentais se destacam em volume
na Web, mas são disponibilizados em formato variado e de acordo com a conveniência do
órgão. Em alguns casos, os dados são publicados em formatos proprietários ou que dicultam acesso de certos indivíduos, como por exemplo usuários portadores de necessidades
especiais.
Dentre outras vantagens, a padronização proposta pela Web Semântica permite a
reutilização da informação, integração de dados entre diversos órgãos e instituições, buscas
aprimoradas na Web e garantia de acessibilidade. Essa nova abordagem ainda permite
diferentes tipos de interoperabilidade:
a organizacional, que são as colaborações entre
entidades para desenvolvimento e fornecimento de serviços de E-Governo, a semântica, que
permite que entidades processem informações externas, a técnica, que permite interação
tecnológica entre os entes, e a de tempo, que permite a preservação e acesso a informações
ao longo do tempo.
A identicação correta de um conteúdo dependerá de como todos os conceitos relacionados ao conteúdo foram denidos e de todas as relações expressas entre esses conceitos.
O uso de ontologias permite de fato a denição consensual de dados, tornando possível o
processamento correto desses dados pelas máquinas, objetivo da Web Semântica.
Com base em toda a estrutura que a Web Semântica se propõe a oferecer, já é possível
concretizar o ideal de um agente de software capaz de realizar inúmeras tarefas exaustivas
para os usuários, que terão mais tempo disponível para trabalhar no seu objetivo nal,
deixando a cargo da máquina a realização das tarefas de identicação e manipulação
desses dados.
6
2.2.2
Novos Esforços
A Web Semântica traz inúmeras frentes de pesquisa e desenvolvimento de aplicações
abertas e comerciais.
O ideal almejado atualmente é possibilitar que os dados quem
disponíveis para utilização em diversas aplicações ao invés de connados em documentos.
O consórcio W3C é a instituição que está a frente desta iniciativa, estabelecendo
recomendações sobre tecnologias que apoiam a Web Semântica.
Nota-se que o esforço da comunidade está em desenvolver soluções colaborativas, incentivando o reuso, e a disseminação dos dados e aplicações.
O objetivo é encorajar
pessoas, organizações, Governo, a publicar seus dados em um formato padronizado, desenvolver em conjunto soluções para processamento desses dados e na maioria das vezes
disponibilizá-los livremente para reuso, encorajando o uso de recursos que já estão disponíveis na Web.
Linked Data
Proposto em 2006 pelo W3C, o conceito de Linked Data
3
é central na Web Semântica.
Diversas tecnologias de suporte - como RDF, OWL, SPARQL Query Language [W3C,
2008] (32) - podem ser utilizadas para implementar este princípio. E esse princípio consiste
em estruturar os dados compartilhados na Web e estabelecer ligações com outros dados
também disponíveis, de forma que todos sejam identicados unicamente e contenham
links para outros objetos ou conceitos.
É com o uso do RDF e do Universal Resource Identiers (URI), denido em Universal
Resource Identiers in WWW [T.Berners-Lee, 1994] (9), que é possível realizar o Linked
Data. O URI identica unicamente um determinado objeto ou conceito, e o RDF armazena de forma estruturada e interliga os dados, permitindo que aplicações naveguem pelos
dados colhendo, em diversas fontes, dados relacionados.
O RDF, um dos padrões desenvolvidos pelo W3C, é uma linguagem para representação de objetos que podem ser identicados na Web.
Essa padronização com o RDF
permite que as informações sejam processadas por máquinas, que através de frameworks
conhecidos, conseguem realizar a troca de informações com signicado e relações.
A descrição de dados utilizando RDF é realizada com o uso de uma estrutura bem
conhecida: sujeito->predicado->objeto, onde denimos o sujeito, que tem propriedades
(predicado) com determinados valores (objetos) atribuídos a estas propriedades.
Cada
dado especicado é identicado unicamente com o uso do URI.
O RDF identica tudo que representa como recurso e pode apresentar a modelagem
desses recursos e seus relacionamentos gracamente. Com o uso da Extensible Markup
Language (XML) [W3C, 2008] (12), as denições de RDF são codicadas em um formato
estruturado. Um exemplo de aplicação que utiliza essa modelagem de dados e representação com XML é o projeto FOAF Friend of Friend
4
, que surgiu em meados de 2000,
criado inicialmente por D. Brickley e L. Miller. Esse projeto tem como objetivo identicar unicamente um indivíduo no ambiente Web, descrevendo pessoas, conexões entre elas,
atividades, áreas de interesse, entre outros dados.
3 http://www.linkeddata.org
4 http://www.foaf-project.org
7
O FOAF contém informações sobre o indivíduo, como nome, e-mail e amigos.
A
partir da página http://www.ldodds.com/foaf/foaf-a-matic é possível criar uma denição
de FOAF e depois disso basta colocar essa denição na página do indivíduo em questão
para que essa identicação única seja ativada.
T. Segaran et al.[2009] (34) apresenta um exemplo 2.1 de modelagem de dados do
FOAF e de código XML 2.2 que expressa a modelagem gráca do RDF.
Figura 2.1: Gráco FOAF
8
(34)
Figura 2.2: RDF/XML Foaf
(34)
Esse RDF especica uma pessoa e alguns de seus dados pessoais, áreas de interesse e
outras pessoas que são relacionadas. Nesse código é possível notar referências para a especicação do FOAF (http://xmlns.com/foaf/0.1/), recomendações RDF (http://www.w3.org/
1999/02/22-rdf-syntax-ns) e RDF-Schema (http://www.w3.org/2000/01/rdf-schema), direcionamentos que irão validar as informações do documento de acordo com esses padrões.
Realmente é possível notar que a comunidade aderiu aos esforços pela construção
de uma Web com signicado e hoje já é possível encontrar dados de diversas áreas do
conhecimento em formatos estruturados e aplicações completas que fazem uso intenso
desses recursos. Dados sobre medicina, livros, lmes, genética, pessoas, empresas, Governo
e muitos outros, são exemplos de áreas presentes com dados em repositórios que seguem
recomendações do Linked Data.
Uma aplicação notória desse projeto é o DBpedia
5
, que realiza um mapeamento
do conteúdo da Wikipedia armazenando-o no formato estruturado RDF e que permite
estabelecer relacionamentos com outros repositórios estruturados, além de consultas de
alto nível de eciência. De acordo com C. Bizer et al.[2009] (11)atualmente o repositório
contém mais de 2.6 milhões de descrições sobre objetos ou conceitos, e desses, 198.000
são pessoas, 328.000 lugares, 101.000 trabalhos musicais, 34.000 lmes e 20.000 empresas,
além de 3.1 milhões de links para outras páginas da Web. Outro emprego de importância
reconhecida do Linked Data é o LODD Linked Open Drug Data
6
- que oferece diversos
dados relacionados a drogas, que já aparecem em aplicações médicas e cientícas.
5 htttp://www.dbpedia.org
6 http://esw.w3.org/HCLSIG/LODD
9
O
LODD é desenvolvido pelo Semantic Web for Health Care and Life Sciences Interest
Group
7
que desenvolve e oferece suporte ao uso da Web Semântica em Medicina e Ciência
Biológica.
Um dos recursos do Linked Data utilizado para desenvolver essa aplicação é o Drug-
Bank, repositório de aproximadamente 5000 medicamentos aprovadas pelo FDA Food
8
and Drug Administration
- que contém informações sobre drogas, com dados químicos,
farmacológicos e farmacêuticos.
A Figura 2.3 representa alguns dos dados publicados no projeto Linked Open Data.
Nessa gura é possível identicar os relacionamentos entre os conceitos, que são extremamente importantes para construção de aplicações mais robustas, em termos de base de
dados em que são apoiadas. Também é possível notar a separação por área de conhecimento, identicando por cores a área de cada repositório representado, com domínios de
Governo, Ciências da Vida, Publicações, Geográcos, e gerados por usuários, por exemplo. Cada círculo identica um repositório diferente, com a dimensão do círculo indicando
o tamanho do repositório em relação ao volume de recursos armazenados, e cada aresta
os relacionamentos entre estes repositórios.
Figura 2.3: DBpedia Cloud
7 http://www.w3.org/blog/hcls
8 http://www.fda.gov
10
(19)
Vocabulários
Ontologia no âmbito da Web Semântica é um conceito que visa proporcionar uma
forma para descrever termos dentro de um domínio e seus relacionamentos com outros
objetos ou conceitos.
Diante da crescente quantidade de dados dispersos e desordenados na Web, o uso de
ontologias abre um novo horizonte para a maneira de manipular informações de fontes
distintas, provenientes de todas as partes do mundo.
Os dados passam a existir em
um contexto especíco e palavras idênticas, ou palavras que são utilizadas em áreas de
conhecimento distintas, são identicadas corretamente.
Ontologias são especicações formais e explícitas de conceitualizações compartilhadas.
Ontologias são modelos conceituais que capturam e explicitam o vocabulário utilizado nas
aplicações semânticas. Servem como base para garantir uma comunicação livre de
ambiguidades. Ontologias serão a língua franca da Web Semântica.
K. Breitman[2005] (13)
Bases de dados heterogêneas permitem o compartilhamento de informações com maior
facilidade e conceitos são construídos de maneira consensual, com a colaboração de vários
indivíduos.
A princípio esses conceitos possuem denições com uma força de validade
maior, com mais credibilidade pelo fato de terem sido construídos por várias pessoas detentoras do conhecimento. A representação assumida ao nal de toda negociação para o
consenso apresenta denições mais completas e maior número de relacionamentos reconhecidos.
Relacionamentos aqui são de suma importância para concretizar todos os termos no
escopo de um domínio, tornando a conceitualização desse domínio completa em relação
ao que pode ser abstraído do mundo real. Termos não existem de maneira isolada e uso de
ontologias para estabelecer classes, que são modelos, juntamente com relacionamentos entre essas classes, são avanços em relação à dispersão de dados que existe na Web sintática.
Com a concentração de dados e denições, surge uma vantagem adicional e recomendável, o reuso de ontologias já validadas e cujo conceito foi fortemente explorado durante a
produção. De certa forma, é possível armar que as áreas do conhecimento representadas
por ontologias cam cada vez mais especializadas, pelo fato de que, a reutilização de uma
denição permite avançar com base na especicação denida.
A. Maedche[2006] (27) explicita a necessidade da utilização de ontologias no ramo da
computação, justicando que a linguagem natural é ambígua e desta forma não é possível
expressar corretamente denições de termos, objetos, abstrações de um modo geral, do
que existe no mundo real. A contribuição que a ontologia traz para a Web Semântica está
no fato de padronizar as denições dos objetos, de modo que o reuso seja eciente entre
diferentes sistemas, e de modo que a comunicação entre máquinas e humanos, e máquinas
e máquinas se torne mais eciente.
Assim, um determinado conceito passa a ter uma
denição padrão, que quando amplamente aceita, se torna uma recomendação.
É possível então, no código da aplicação, referenciar ontologias estabelecidas como referências e outras aplicações podem também referenciar a essas ontologias. Desta forma,
o conceito manipulado por essas aplicações terá a mesma estrutura, facilitando por exemplo, varreduras na Web em busca de determinado conteúdo, onde não estaremos mais
buscando por palavras-chave, mas por conteúdos com signicado e relacionamentos precisos.
11
Atualmente, as ontologias desempenham um papel importante no contexto de
recuperação da informação. Normalmente, a recuperação dos recursos através de um
sistema de recuperação de informação implica iterações sucessivas de descoberta de
recursos, para posterior avaliação dos recursos, e para fase nal de acesso e exploração
do recurso. Em todas essas etapas, os modelos de ontologias diferentes pode ajudar para
melhorar os resultados produzidos. J. Lacasta et al.[2010] (26)
Na Web Semântica, ontologias são denidas de modo geral através do uso de taxonomias e regras de inferência. São denidas classes de objetos, subclasses, que herdam
características de classes mais gerais, e relacionamentos entre essas classes, de modo que
a máquina tem condições de identicar em que contexto está inserido o conceito e tem
condições de extrair o conteúdo entendendo o signicado.
A precisão em uma linguagem para descrição de ontologias é fator determinante na
qualidade do material produzido, inuenciando bastante no desempenho de aplicações
que utilizem denições provenientes dessas ontologias e na validação do material.
A
OWL, linguagem recomendada pelo consórcio W3C atualmente, é uma extensão do RDF
baseada em XML. Por ser uma recomendação do consórcio que é o grande promotor da
Web Semântica, o que se espera é que essa linguagem seja bastante utilizada.
O objetivo de desenvolver, além de uma apresentação visual direcionada para humanos, um documento estruturado e em um formato como os apresentados em OWL, está
em produzir informações sem ambiguidades e que podem ser processadas por agentes de
software para outras aplicações. A OWL oferece não somente a denição padronizada de
classes, propriedades e relacionamentos entre conceitos, mas permite também que inferências lógicas sejam obtidas a partir dos vínculos estabelecidos entre domínios diferentes.
A descrição de vocabulários na Web Semântica é muito similar à denição de ontologias
e, de fato, a aplicação também é muito parecida. Utilizamos vocabulários para esclarecer
ambiguidades entre termos e para denir conceitos e seus relacionamentos.
Usualmente ontologias são utilizadas para denição de conceitos mais complexos, enquanto o uso de vocabulários é indicado quando não existe a necessidade de denições tão
especícas em relação ao termo.
Consultas
Uma consulta na Web Semântica, assim como em outros paradigmas, é utilizada para
recuperar os dados disponíveis em bases de dados, mas nesse caso, dados armazenados na
Web de Dados. A busca de dados é realizada com o uso da SPARQL Query Language,
que viabiliza buscas na Web estruturada com o uso de RDF.
A linguagem SPARQL fornece ao usuário um sistema de recuperação de dados muito
poderoso, que permite busca em diferentes repositórios, cujo resultado pode ser adicionado
a outras páginas. E faz tudo isso facilmente pela compatibilidade que possui com outras
tecnologias empregadas no desenvolvimento da Web Semântica.
É uma linguagem de consulta direcionada para construções RDF. É capaz de realizar
consultas de dados provenientes de diferentes fontes de dados, desde que estejam em um
formato RDF. Assim como o RDF, a SPARQL também é hoje uma recomendação de
tecnologias de suporte ao desenvolvimento da Web Semântica.
Em sua recomendação Sparql Query Language for RDF [2008] (32) no W3C, é explicitado que o modelo de dados utilizado pela SPARQL também é semelhante ao empregado
12
no RDF, na seguinte estrutura - sujeito, predicado, objeto contudo os valores aplicados
a cada item podem ser variáveis, para atender de forma correta o objetivo da consulta.
Em uma consulta SPARQL primeiramente é necessário denir como referência a base
de dados onde as pesquisas serão realizadas.
Isso é realizado, nessa linguagem, com a
denição de um bloco conhecido como PREFIX declarations. Nesse bloco são estabelecidas as URIs que direcionam para o local de armazenamento dos dados. Neste ponto,
ca mais evidente o potencial das aplicações de Web Semântica, que montam uma rede
interconectada e padronizada, com recursos acessíveis pelo seu identicador único.
São quatro os tipos possíveis de consultas na SPARQL: SELECT, CONSTRUCT, ASK
e DESCRIBE. O tipo mais familiar de consultas é o SELECT. Assim como em outras
linguagens de consultas, ele é seguido por uma cláusula WHERE que funciona como um
ltro para que a consulta retorne os dados tratados de acordo com as regras aplicadas.
O exemplo de código apresentado na Figura 2.4 exibe uma consulta bem simples que
retorna o nome de um indivíduo que dirigiu e atuou no mesmo lme.
Neste código é
possível identicar a estrutura da linguagem. Na primeira linha, é denida a identicação
da localização da base de dados onde a busca será executada, após o uso do SELECT é
denida a especicação do que a consulta irá retornar, no caso, os identicadores ?who e
?lm são chamados de variáveis e substituem o sujeito e objeto na tripla que caracteriza
o relacionamento entre dois recursos.
Após a cláusula WHERE são declaradas as regras da consulta, que denem quais
características um recurso deve possuir para ser selecionado na consulta.
expressão ?lm fb:lm.lm.directed_by ?who.
A primeira
dene que a consulta deverá retornar
uma lista de todos recursos que têm a propriedade fb:lm.lm.directed_by, apresentando
os valores associados a está propriedade como retorno da variável ?who. A expressão ?lm
fb:lm.lm.starring ?who, especica que a consulta também deverá retornar os valores
da propriedade fb:lm.lm.starring para cada sujeito representado pela variável ?lm,
armazenado no repositório.
Figura 2.4: Exemplo de consulta SPARQL (34)
A forma de consulta CONSTRUCT oferece opção de retorno da consulta em formato
de gráco.
A construção desse gráco segue a estrutura:
sujeito, predicado, objeto,
denidos na cláusula CONSTRUCT.
O tipo ASK retorna, de forma simplicada, se o conteúdo existe na base de dados em
questão. E o tipo DESCRIBE pode ser descrito como uma forma de solicitar ao sistema
uma descrição sobre determinada fonte.
Existem diversos outros recursos disponíveis na linguagem SPARQL, que no objetivo
nal são muito parecidos com recursos de outras linguagens de consulta.
O diferencial
está na amplitude da conectividade que só é possível em uma fonte de dados do tamanho
da Web.
13
Inferência
Existem diversos conceitos e ferramentas disponíveis para realizar a modelagem de
dados de modo compatível com o paradigma da Web Semântica, e a inferência é caracterizada como um recurso que permite evidenciar novos relacionamentos, com base nos
dados e em seus relacionamentos, e faz isso analisando os dados já manipulados ou a Web
de um modo amplo.
Aplicações Verticais
Grandes áreas do conhecimento estão recebendo tratamento de informações em um
paradigma diferente, utilizando a Web Semântica para desenvolver suas aplicações.
O
termo aplicações verticais é utilizado para descrever essa área de grandes aplicações que
estão sendo desenvolvidas utilizando as tecnologias promovidas pelo W3C. São aplicações
comerciais, particulares e de comunidades, nas mais distintas áreas do conhecimento, e
que ajudam a validar as diversas tecnologias que são amplamente empregadas no desenvolvimento de aplicações voltadas para a Web Semântica, levantando seus prós e contras
da maneira mais ecaz, através do uso.
2.3
Casos de Uso
Inúmeras aplicações que seguem os princípios da Web Semântica já estão disponíveis.
A nuvem do Linked Data ilustra a quantidade de repositórios com dados em formato
estruturado e com conexões para outros repositórios. São diversas áreas de conhecimento
representadas nesses projetos, com dados que permitem uma manipulação personalizada
do conteúdo e aplicações reais que ilustram bem todo o potencial da Web Semântica.
No quadro atual, é possível encontrar facilmente dados e aplicações de Governo, mídia, publicações, ciências da vida, geográcos, entre outros, com implementações antes
não imagináveis que produzem um resultado nal muito mais completo e interessante, utilizando, por vezes, buscas em diferentes repositórios de áreas distintas do conhecimento.
Assim como o consórcio W3C, incluindo o escritório brasileiro, existem outras iniciativas incentivadoras da disponibilização de dados estruturados. Empresas como IBM
Oracle
lenge
10
12
, projetos como o Semantic Technology Conference
11
9
,
e Semantic Web Chal-
, assim como diversos grupos de especialistas, formam uma força de trabalho em
prol dessa nova Web.
2.3.1
Linked Data - DBpedia
O caso de uso do DBpedia é considerado o elo central do Linked Data. Esse projeto
surgiu a partir da identicação de informações essenciais de determinadas entidades especicadas na Wikipedia
13
. Essa enciclopédia livre baseada no formato de wiki disponibiliza
9 http://www.ibm.com
10 http://www.oracle.com
11 http://semtech2011.semanticweb.com/
12 http://challenge.semanticweb.org/
13 http://www.wikipedia.org/
14
milhares de artigos, sobre os mais variados temas, construídos colaborativamente pelos
usuários.
O pesquisador C. Bizer (11), da Universidade de Berlim, identicou na maioria dos
artigos uma caixa chamada de infoboxe, com informações pontuais sobre o assunto do
artigo. Em artigos sobre países, por exemplo, existem informações comuns a todas entidades classicadas como país. Atributos como população, líder de Governo, pib, cidade
capital cavam disponíveis no corpo do texto e também na forma de atributo e valor
na infoboxe.
Identicando isso, C. Bizer criou uma aplicação para extrair estas infor-
mações e armazená-las em formato estruturado, classicando cada conteúdo de acordo
com uma classe, identicando cada uma destas entidades unicamente e representando
relacionamentos de cada entidade.
De acordo com esta organização, os relacionamentos são realizados através de atributos
de cada entidade, que contém como valor uma outra entidade. Um exemplo pode ser a
busca por uma pessoa, que tem como atributo país onde nasceu, que contém como valor o
nome de um país, representado por outra entidade com outros atributos e relacionamentos.
2.3.2
Saúde
O Semantic Web Health Care and Life Sciences (HCLS) Interest Group é um dos
grupos mais importantes no incentivo à utilização dos conceitos da Web Semântica. O
apoio oferecido por este grupo se dá em diferentes sentidos, como documentação de casos já
desenvolvidos, disseminação de informações sobre grupos de trabalho, formulação de guias
de uso das tecnologias empregadas, desenvolvimento de casos de estudo para demonstrar
o uso de tais tecnologias, e outros trabalhos de apoio na área de saúde e ciências da
vida. Um caso notório, já citado, é o Linking Open Drug Data (LODD), um projeto que
estrutura informações acerca de drogas e relações com outros conceitos, como doenças e
tratamentos.
A gura 2.5 produzida em conjunto pelo grupo BioRDF
14
e LODD
15
mostra a
integração entre os dados na área de saúde. Esses dois grupos estão contidos no grupo
HCLS, e a imagem representa um projeto que conecta conceitos de medicina alternativa e
medicamentos ocidentais. Nela é possível notar a descrição do conceito na forma sujeito>predicado->objeto e observar as possibilidades de consultas que podem ser realizadas
entre as diferentes bases de dados.
Assim como o número, tamanho e complexidade de bancos de dados da ciência da vida
continuam a crescer, a integração dos dados passa a ser um problema proeminente na
ciência. Estas diferentes bases de dados apresentam diversos tipos de dados, como
sequências genéticas, proteínas e medicamentos, produzidos por diferentes tipos de
experimentos, incluindo as que envolvem tecnologias de alta capacidade, tais como
geração de microarrayDNA, espectrometria de massa e nova geração de
sequenciamento. K. Cheung, et al.[2009] (16)
14 http://esw.w3.org/HCLSIG_BioRDF_Subgroup
15 http://esw.w3.org/HCLSIG/LODD
15
Figura 2.5: Conexão entre banco de dados (18)
2.3.3
Educação
Um interessante caso de estudo desenvolvido com foco na educação é a aplicação Lista
de gerenciamento de recursos para estudantes de graduação [W3C, 2009] (17), desenvol16
vida por Chris Clarke em conjunto com a Universidade de Plymouth
do Reino Unido e
17
com a empresa Talis Information Limited
.
A aplicação busca gerenciar de modo mais eciente listas de recursos recomendados
para os alunos, aprimorando o modelo atual que dispõe de uma grande quantidade de
material publicado na Web pelos próprios autores e onde os instrutores dos cursos também
disponibilizam uma série de materiais, em blogs e ambientes de apoio a aprendizagem.
Esse modelo já facilita muito as pesquisas se comparado ao modelo anterior, com listas
de papel e necessidade de deslocamento a uma biblioteca, por exemplo, para encontrar
as obras recomendadas. Contudo o modelo agrega problemas como, referências perdidas
com o passar do tempo e materiais duplicados, além de não permitir que o aluno apresente
um retorno de opinião em relação a qualidade daquele material.
Com base nas limitações identicadas, criou-se uma aplicação que gerencia informações
de diferentes repositórios, relacionando cada recurso com uma descrição já existente sobre
o autor e com observações dos alunos que já utilizaram os recursos.
16 http://www.plymouth.ac.uk/
17 http://www.talis.com/
16
2.3.4
Governo
Uma tendência crescente é o uso da Web Semântica na administração pública, com
o propósito de oferecer serviços à população e disponibilizar a enorme quantidade de
informações que o Governo dispõe.
A variedade de aplicações possíveis com os dados
disponibilizados pelo Governo vai depender da necessidade estabelecida por quem vai manipular esses dados. A ideia é propiciar maior transparência para administração pública,
fornecer dados muitos já estão disponibilizados na Internet em um formato não estruturado de forma estruturada, mais facilmente manipuláveis e incentivar o uso desses
dados em aplicações que tornem os dados úteis, ao invés de connados em páginas.
Os Governos dos Estados Unidos
18
e do Reino Unido
19
são bons exemplos de adminis-
trações públicas que oferecem sítios para repositórios de dados em formato estruturado,
seguindo padrões da Web Semântica. A partir desses repositórios, desenvolvedores com
diferentes interesses formularam aplicações como a FlyOnTime
20
- que oferece uma busca
para voos e suas médias de atraso, ou, Employement Market Explorer
21
- que manipula
dados sobre o mercado de trabalho. É possível encontrar aplicações complexas e também
aplicações simples, mas que também exemplicam possibilidades de aplicações que são
executadas sobre dados em formato RDF.
Essas aplicações reetem o interesse dos indivíduos por determinados dados.
exemplo disso é o Deepwater Horizon Response
22
Um
, projeto do Governo americano que
reúne dados sobre o vazamento de petróleo no Golfo do México. Esse projeto colhe dados
de diversas entidades, como o Departamento de Energia dos Estados Unidos, Agência
Protetora do Meio Ambiente e Estado da Flórida, e pretende relatar dados sobre o vazamento, efeitos no meio ambiente, sobre o que está sendo feito para controlar essa situação
e posteriormente recuperar os danos.
Outros dados disponibilizados ainda reetem um aspecto importante que é a constante
atualização. No sítio data.gov é possível encontrar dados sobre o terremoto no Japão e
dados sobre a radiação na localidade, o que deixa novamente nítido a movimentação da
comunidade em prol de uma Web que possa oferecer um nível mais avançado de dados e
aplicações.
Além dos Governos do Reino Unido e Estados Unidos, os Governos da Austrália
Alemanha
24
, Áustria
25
, Canadá
26
, Dinamarca
27
, Espanha
28
, Estônia
29
, Finlândia
18 http://www.data.gov
19 http://data.gov.uk
20 http://yontime.us
21 http://pujaplicaciones.javeriana.edu.co/Employment
22 http://gomex.erma.noaa.gov/erma.html
23 http://data.australia.gov.au/
24 http://www.portalu.de/ingrid-portal/portal/default-page.psml
25 http://data.wien.gv.at/
26 http://www.data.gc.ca/default.asp?lang=En
27 http://digitaliser.dk/resource/432461
28 http://badalona.cat/portalWeb/badalona.portal?
n f pb
29 http://pub.stat.ee/px-web.2001/Dialog/statle1.asp
30 http://www.suomi./suomi/tyohuone/yhteiset
= truep ageLabel = opendatawlpo pendata
p alvelut/avoind ata/
17
23
30
,
,
França
ega
38
31
, Grécia
32
, Hong Kong
, Nova Zelândia
39
33
, Irlanda
e Timor Leste
40
34
, Itália
35
, Marrocos
36
, Moldávia
37
, Noru-
possuem sítios ociais com a disponibilização de
dados em formato estruturado. Destaque também para o repositório das Nações Unidas
41
,
que possui dados de centenas de nações.
A realidade brasileira ainda consiste na disponibilização dos dados em formatos proprietários ou que não possibilitam tratamento automatizado, como o caso de publicações
de dados em imagens ou documentos direcionados apenas para manipulação humana.
Contudo, existem grandes esforços, liderados pelo escritório do consórcio W3C no Brasil,
por pesquisadores e por servidores do Governo responsáveis pelos dados, para adequar a
publicação dos dados de Governo. Essa adequação na publicação dos dados traz benefícios
para desenvolvedores de aplicações, com acesso para consultar diferentes bases de dados,
e para servidores do Governo e sociedade, que contarão com aplicações mais avançadas e
novas formas de interação.
2.4
Web / Governo - Brasil
A Web no Brasil, assim como na maior parte do mundo, tornou-se uma tecnologia
altamente difundida e aplicável nas mais diversas áreas. Dados da pesquisa Dimensões
e Características da Web Brasileira (21), mostram o impressionante avanço no acesso a
esse recurso pela população brasileira. Em 2005, o número de usuários era de cerca de 37
milhões, passando para 65 milhões, em 2009.
O estado da Web não reete apenas o crescimento em número de usuários mas também
o avanço na variação de serviços e aplicações disponíveis, e no interesse da sociedade na
utilização de recursos facilitadores. Um desses recursos tem foco em dados governamentais
e possibilidades de melhoria na experiência população / governantes.
2.4.1
Dimensões da Web no Brasil
A situação atual mostra que a interação entre cidadãos, empresas e Governo aumenta
muito nessa nova realidade de acesso a Internet no Brasil. A pesquisa Dimensões e Ca-
racterística da Web Brasileira (21), de outubro de 2009, mostra que o Brasil conta com
18.796 sítios sob o domínio gov.br, a maior parte do Governo Federal. Entretanto, esta
pesquisa mostra que a forma escolhida para disponibilização dos dados nesses sítios deixa
muito a desejar nos quesitos organização, disponibilidade e reaproveitamento. Essa armação surge a partir da constatação de que cerca de 89% dos objetos usados nas páginas
31 http://opendata.paris.fr/opendata/jsp/site/Portal.jsp
32 http://geodata.gov.gr/geodata/
33 http://www.gov.hk/en/theme/psi/welcome/
34 http://www.statcentral.ie/
35 http://www.dati.piemonte.it/
36 http://data.gov.ma/
37 http://data.gov.md/
38 http://data.norge.no/
39 http://www.data.govt.nz/
40 http://www.transparency.gov.tl/public/index
41 http://data.un.org/Default.aspx
18
Web governamentais são armazenados e disponibilizados em algum tipo de arquivo gráco, 8.3% correspondem a algum hipertexto (som, vídeo) e 2.5% a arquivos do tipo texto,
como doc, pdf, xls, odt. A realidade brasileira aponta para a simples disponibilização dos
dados para consulta e visualização humana, dicultando uma análise mais especializada
e melhor aproveitamento.
Percorrendo diversos sítios de Governo, seja Federal, Municipal ou Estadual, é muito
nítida a comprovação dos fatos publicados na pesquisa e das justicativas para os Dados
Governamentais Abertos. Um exemplo são os dados referentes aos resultados do Programa
de Aceleração do Crescimento - PAC. As informações estão divididas em regiões, porém
armazenadas em arquivos de extensão direcionada para leitura humana.
A gura 2.6
mostra um quadro extraído do Balanço do PAC no DF, apresentando os investimentos.
Estes dados que poderiam ser úteis para estudos relativos a eciência do programa, cam
armazenados em guras, dicultando acesso aos dados de Governo que são de domínio
público.
Figura 2.6: Saldo de Investimento do PAC no DF (20)
Essa realidade exposta é exatamente a diculdade apresentada na Web atual e o
grande objetivo da Web Semântica é alterá-la para uma Web onde análises mais profundas dos dados sejam possíveis. Isso seria realizado designando às máquinas a realização
do trabalho mais dispendioso, e muitas vezes praticamente impossível para humanos pela
quantidade de dados, de inferência sobre os dados referentes a recursos e seus relacionamentos. Deste modo, seria acrescentado às imagens ou documentos que apresentam dados
governamentais informações, em segundo plano, que possuem uma semântica maior sobre
os recursos.
19
2.5
Dados Governamentais Abertos
As informações governamentais são fundamentais para diversos tipos de análises e, via
de regra, devem ser publicadas conforme regulamentação. Essas informações geralmente
são publicadas sem padronização, utilizando de formatos proprietários e sem integração
com informações de outros órgãos. Arquivos em formatos proprietários, como .doc, .xls,
ou dados apresentados em formato gráco dicultam o acesso a esses dados.
Para tornar os dados governamentais acessíveis de modo padronizado, são necessários
alguns passos:
1. Disponibilizar os dados brutos (ex.: em formato xml);
2. Criar catálogos para que se possa descobrir os dados publicados;
3. Tornar os dados legíveis tanto por humanos quanto por máquinas;
4. Referenciar dados por links e fazer referências a links externos;
5. Integrar dados (mashups).
Segundo M. Alonso e o Grupo de Interesse em Governo Eletrônico do W3C[2009] (5),
a implementação de uma forma de interação com o cidadão permite o desenvolvimento
de políticas relacionadas à interação entre Governo e cidadão. Essas políticas permitem
aos funcionários públicos a utilização da Web para se envolver diretamente no diálogo
com cidadãos sobre políticas públicas, em nome da administração pública. Possibilitam
ainda o envolvimento político em conversas entre cidadãos, nas quais os legisladores se
envolvem diretamente no diálogo entre cidadãos sobre políticas públicas em sítios não
governamentais.
As políticas de interação ainda permitem a assessoria relacionada à interação entre
Governo e cidadãos ou empresas - em que funcionários públicos utilizam a Web para
envolver-se diretamente com cidadãos ou empresas e tratar de problemas ou diculdades
especícas - e a assessoria relacionada à interação entre cidadãos e cidadãos - em que
o Governo participaria, no papel de especialista, intermediando diálogos entre cidadãos
sobre políticas públicas.
Com a padronização da publicação dos dados, espera-se a melhoria da prestação dos
serviços governamentais, aumento da transparência da gestão e melhoria da qualidade dos
dados.
"A criação de um público bem informado é o valor central de um Governo representativo
J. Tauberer[2009] (35)
O conceito de Dados Governamentais Abertos trata da publicação de dados provenientes de entidades governamentais em formato padronizado, Linked Data. Na verdade é
a informação pública disponibilizada em meios digitais, em formato que permite análise
e reuso dos dados, servindo como base para aplicações mais robustas e avançadas.
O Governo produz uma enorme quantidade de dados diariamente e a forma tradicional para publicação destes dados sempre foi a utilização de formatos convenientes para o
órgão, sem se importar com a necessidade do usuário destinatário e impedindo a manipulação mais simplicada daqueles que precisam reutilizar estes dados.
20
A questão de dados governamentais abertos não entra no mérito de quais dados disponibilizar, o que é denido pelas leis de cada Governo, mas mantém o foco nos benefícios
para a sociedade, incluindo possíveis desenvolvedores que produzem aplicações inusitadas
com os dados em formato de mais fácil manipulação, sem a necessidade de se preocupar
com um tratamento inicial desses dados, antes da produção da aplicação nal.
Desta forma, o grande êxito da utilização de Dados Governamentais Abertos está no
surgimento de novas abordagens para situações que sempre tiveram o mesmo tratamento,
baseado unicamente em determinações de governantes, sem participação direta dos cidadãos. Cada indivíduo pode produzir sua aplicação focalizando nos seus interesses, com a
grande vantagem de repositórios disponíveis para fornecer sentido a aplicação.
"Quando as informações são colocadas à disposição na Web com uso dos padrões abertos
apropriados, elas podem ser usadas várias vezes de maneiras novas, imprevistas e
imaginativas, capazes de aumentar muito o valor dos dados por seu reuso e combinação,
com maior automação e interoperabilidade melhor.
M. Alonso, et al.[2009] (5)
2.6
Interoperabilidade
Interoperabilidade é um dos maiores desaos para a Web atual. Ao observar a enorme
quantidade de dados que estão disponíveis na Web, nota-se que é impossível para um
ser humano absorver e tratar todos esses dados, de modo que devem existir sistemas
automatizados que possam processar esses dados.
De nada adiantaria, contudo, que
existissem tais sistemas caso os dados utilizados nas diversas plataformas e entidades não
pudessem ser integrados ou compartilhados.
Diversas áreas, principalmente no Governo eletrônico, estão interessadas na perspectiva de interoperabilidade entre entidades. Nesse âmbito, pode-se destacar a necessidade
dessa integração nas bibliotecas, nos museus e no ensino à distância. No primeiro caso,
por exemplo, segundo M. Pirri et al. [2002] (31), o primeiro passo das bibliotecas foi o de
criar um acervo digital isolado. Depois passou-se a imaginar o armazenamento e gerenciamento dos conteúdos de forma centralizada. O próximo passo seria o de criar uma rede
de bibliotecas, cada uma com seu acervo digital, organizadas a partir de áreas comuns
do conhecimento e acessadas com apenas um canal de acesso. Isso passaria a impressão,
para o usuário, da existência de um único repositório.
Pode-se denir interoperabilidade como "A capacidade de um sistema de hardware
ou de software de se comunicar e trabalhar efetivamente no intercâmbio de dados com
um outro sistema, geralmente de tipo diferente, projetado e produzido por um fornecedor
diferente." (Online Dictionary for Library and Information Science, 2004, apud L. Sayão
et al.[2008] (33). Desse modo, percebe-se a necessidade de que os sistemas gerem dados
que possam ser compreendidos e utilizados por outros sistemas.
Isso deve ser possível
mesmo considerando a diversidade de formatos e plataformas em que cada conjunto de
dados está submetido, em diferentes servidores distribuídos.
É necessário uma vasta
rede de infra-estrutura para manter a interoperabilidade entre entidades, pois deve-se
assegurar o mínimo de disponibilidade e segurança na manutenção dos dados.
Além
disso, o gerenciamento e indexação do conteúdo são fundamentais para se fornecer serviços
sempre atualizados e com celeridade.
21
Para que seja possível a ideia de interoperabilidade, as entidades participantes devem
realizar acordos entre si. Segundo W. Arms et al.[2002] (6), existem três tipos diferentes
de acordos:
1. acordos técnicos:
estão relacionados com a forma de compartilhamento e estão
relacionados aos aspectos de segurança e protocolos;
2. acordos de conteúdo: estão relacionados com os dados e metadados, e acordos semânticos;
3. acordos organizacionais: estão relacionados com regras básicas para acesso, autenticação, pagamento, etc.
Segundo L. Sayão et al.[2008] (33), existem diversos tipos de interoperabilidade que
devem ser levados em consideração para a confecção desses acordos e para que eles se
tornem efetivos:
1. Interoperabilidade técnica:
é o tipo mais fácil de se perceber.
Está relacionada
com a criação de um ou mais padrões em diversos ramos, como de comunicação e
armazenamento;
2. Interoperabilidade semântica : está relacionada com a padronização do tratamento
semântico da informação, como com uso comum de ontologias;
3. Interoperabilidade política: está relacionada ao lado humano das entidades. Os participantes devem realizar treinamentos e mudar o comportamento para se adaptar
ao novo modo de tratar a informação;
4. Interoperabilidade intercomunitária: está relacionada ao acesso à informação em todas as fontes distribuídas entre as entidades, o que pode requerer uma padronização
de práticas e procedimentos;
5. Interoperabilidade legal: está relacionada com as implicações legais da disponibilização da informação;
6. Interoperabilidade internacional: está relacionada a se contornar as diversas barreiras existentes em nível internacional para a integração dos dados, como a própria
língua, por exemplo.
Quanto maior e melhor a quantidade de serviços prestados com uso da interoperabilidade, maior o grau de acoplamento entre os sistemas das entidades e, assim, mais difícil
torna-se integrar um novo ente. Para um sistema de biblioteca digital, por exemplo, W.
Arms et al.[2002] (6) identicam três níveis de interoperabilidade:
1. Federação: seria o maior nível de acoplamento com melhor interoperabilidade. Exige
que haja um acordo para que os serviços estejam em conformidade com uma série de
especicações, obtidas a partir de padrões pré-denidos. Nesse caso, seria possível
implementar uma única interface para interagir com diversos sistemas distribuídos,
mas o custo de se implementar e manter atualizado um sistema desse tipo é bastante
elevado;
22
2. Colheita automática de dados: seria uma solução mais simples para integração, de
modo que os custos fossem menores e mesmo assim proporcionasse um satisfatório
grau de interoperabilidade.
Nesse caso, os serviços são assíncronos, o que reduz
bastante os custos;
3. Agregação automática de informação: seria o caso de não haver um grau formal
de cooperação, mas ainda é possível um grau de interoperabilidade a partir da
agregação das informações disponíveis publicamente, utilizando-se, para isso, metabuscadores e máquinas de busca.
Para se avaliar as diferentes soluções de interoperabilidade, é necessário utilizar critérios, tendo em vista os diferentes objetivos e concepções.
Paepcke et al.[1998], apud
L. Sayão et al.[2008] (33), relacionam seis critérios para a avaliação de interoperabilidade de bibliotecas digitais, que podem ser adaptados para o compartilhamento de outros
repositórios:
1. Grau de autonomia: está relacionado com a conformidade com relação às regras
globais do sistema a que cada ente está submetido.
Quanto maior a autonomia,
maior controle sobre a operação, o que torna viável inclusão de novos sistemas;
2. Custo da infra-estrutura: custo de infra-estrutura para a manutenção do sistema e
para a inclusão de novos participantes;
3. Facilidade de incorporação de componentes: está relacionado com o custo incremental de integrar ao sistema um novo componente;
4. Facilidade de uso: está relacionado com a complexidade de se criar uma interface
ou software cliente para o sistema;
5. Dimensão da complexidade das tarefas: está relacionado à capacidade de desenvolver
e gerenciar componentes para o sistema;
6. Escalabilidade: está relacionado com a capacidade do sistema de crescer na medida
da necessidade, acoplando novos serviços.
2.7
Recursos Avançados da Web
2.7.1
Mashups
Mashups são tipos de aplicações Web interativas que buscam informações de fontes
externas para criar serviços novos e inovadores.
2.7.2
Tipos
São diversos os serviços que podem ser obtidos com o uso de mashup integrado a uma
aplicação.
1. Mashups de mapas: os dados podem ser apresentados com anotações de localização
em mapas, utilizando, por exemplo, Google Maps API.
23
2. Mashups de vídeos e fotos: a partir de metadados, é possível associar fotos com
outras informações, criar mosaicos de fotos ou grácos de redes sociais.
3. Mashups de busca e compras:
a partir de API disponibilizadas pelos sítios, ou
realizando buscas por informações publicadas na internet, é possível realizar comparativos entre os preços de produtos ou mesmo buscar opiniões sobre eles.
2.7.3
Exemplos - Mashups
WikiCrimes
WikiCrimes
42
foi criado pelo professor da Universidade de Fortaleza
43
, Vasco Furtado.
Ele permite o registro de ocorrências de crimes como roubo, furto e latrocínio.
Para
registrar uma ocorrência, deve-se estar identicado no sistema. É possível se cadastrar
para receber alertas por email sempre que uma ocorrência em uma determinada área for
registrada. Além disso, é possível ltrar os eventos por data, tipo de crime ou selecionar
apenas informações que tenham sido certicadas por uma entidade. O WikiCrimes utiliza
o Google Maps API como interface para mostrar o conteúdo do mashup. Segue uma visão
do Wikicrimes na gura 2.7, que apresenta o mapa do país com áreas marcadas por círculos
vermelhos, com intensidade de cor variável conforme a densidade de crimes registrados na
região.
Figura 2.7: Exemplo de visão do WikiCrimes
42 http://www.wikicrimes.org/
43 http://www.unifor.br/
24
Django People
Django People
44
é um sítio que busca ajudar desenvolvedores Django (Framework
Web em Python) a encontrar outros desenvolvedores próximos e com isso ajudar a criar
grupos locais de participantes do Django Project. Ele também utiliza a API Google Maps
e as informações de localização são providas do repositório GeoNames
do Django People na gura
45
. Segue uma visão
2.8.
Figura 2.8: Exemplo de visão do Django People
2.7.4
Tecnologias
Arquitetura
Mashups apresentam a seguinte constituição:
1. Fornecedores de API/conteúdo: fornecem conteúdos para manipulação. Esse conteúdo pode ser oferecido por meio de protocolos como REST, Web Services e
RSS/Atom.
Além disso, ainda é possível extrair dados desses fornecedores por
meio da técnica de mapeamento de tela, que consiste em analisar o conteúdo de
páginas que não tenham sido originalmente criadas para compreensão por outros
programas;
44 http://djangopeople.net/
45 http://www.geonames.org/
25
2. O sítio mashup: é o sítio em que o mashup é hospedado, mas não necessariamente
onde o mashup é executado. Mashups podem ser implementados a partir de tecnologias tradicionais de geradores de conteúdo dinâmicos no lado servidor de aplicações
ou podem também ser implementados em scripts que sejam executados em navegadores clientes. Essa segunda modalidade tem o benefício de diminuir a sobrecarga
nos servidores. É possível, ainda, usar combinações dessas duas implementações;
3. Navegador Web cliente: local em que a aplicação é renderizada gracamente e onde
ocorre a interação com usuário. Geralmente a composição do mashup é realizada no
lado cliente.
Ajax
Ajax é composto de algumas tecnologias de carregamento e apresentação de conteúdo
assíncrono como XHTML, CSS, DOM, XML e JavaScript. A ideia é diminuir a quantidade
de dados trocados com o servidor ao se submeter apenas partes das páginas.
Existem
diversas bibliotecas que possibilitam a criação de mashups, como Sajax.
SOAP e REST
SOAP e REST são protocolos para comunicação com serviços remotos, de modo que
clientes possam interagir com serviços remotos sem a necessidade de conhecer detalhes de
implementação.
O SOAP possui duas características importantes: a primeira é o uso de mensagens
baseadas em formato XML e a segunda é a estrutura da mensagem, que consiste em
cabeçalho e corpo. O cabeçalho é utilizado para transportar informações que não estão
relacionadas com o foco da aplicação, como autenticação, por exemplo. O corpo encapsula
informações sobre que tipo de serviços são fornecidos, o formato das mensagens aceitas e
como endereçá-las.
O REST é um modelo de comunicação que usa apenas HTTP e XML. Apenas algumas operações são suportadas, como POST/GET. REST está focado em partes das
informações, denominadas recursos.
Busca a partir de leitura de páginas
Tendo em vista a baixa quantidade de APIs para acesso às informações presentes
nos sítios, é muito comum se recorrer a métodos de leitura de páginas para recolher as
informações dos mashups. Para isso, são utilizadas ferramentas que analisam o conteúdo
dessas páginas, de modo a identicar estruturas que podem ser usadas para a aplicação.
Isso é bastante utilizado para se obter dados governamentais, tendo em vista a quantidade
de Governos que ainda não adotaram políticas de dados abertos.
Essa forma de busca de dados possui vários problemas, dentre eles, o fato de que não
existe uma denição do modelo de dados a ser buscado.
Com isso, os desenvolvedores
criam um modelo e esperam que os dados se encaixem naquele padrão. Além disso, os
sítios constantemente mudam seus aspectos para se atualizarem, o que geralmente torna
os modelos obsoletos. Outro problema é a baixa quantidade de softwares disponíveis para
esse tipo de busca, tendo em vista a grande especialização desse tipo de aplicação.
26
RSS/ATOM
Sítios podem utilizar do Really Simple Syndication (RSS) [RSS Advisory Board, 2009] (1)
para distribuir conteúdo por meio de um publicador de RSS. Um software cliente tem a
responsabilidade de vericar se há novos conteúdos publicados. Diversos tipos de conteúdos são publicados a partir de RSS, como notícias e atualizações, em projetos e wikis. O
ATOM atua de modo semelhante, mas possui entre outras melhorias, melhor documentação.
2.7.5
Exemplo de API para Mashups
Google Maps JavaScript API V3
Essa é uma das ferramentas mais utilizadas para mashups e permite que mapas sejam
adicionados às páginas Web e dispositivos móveis utilizando JavaScript.
Informações de latitude e longitude devem ser fornecidas para que o Google Maps
identique a localização. Essas informações podem ser passadas por um sensor presente
em algum dispositivo móvel, capturadas com o uso do código da gura 2.9
Figura 2.9: Busca de localização do usuário com utilização de sensor.
As informações de preferências de língua e localização são passadas pelas tags das
guras
2.10 e
2.11.
Figura 2.10: Passagem de informação de preferência de língua.
Figura 2.11: Passagem de informação de preferência de região.
As denições e símbolos necessários ao Google Maps são carregadas pela arquivo presente em http://maps.google.com/maps/api/js. É possível passar opções de mapas que
contenham inicializações para os mapas. Pode-se destacar as opções relativas ao tipo de
mapa, que são:
1. ROADMAP: exibe as blocos 2D ( padrão ).
2. SATELLITE: exibe fotos de satélite.
27
3. HYBRID: exibe uma combinação de fotos de satélite com alguns recursos importantes (estradas, nomes de cidade).
4. TERRAIN: exibição de relevo físico.
Assim, um exemplo de página que carrega mapas em JavaScript pode ser escrito como
na gura
2.12.
Figura 2.12: "Hello World"da API do Google Maps V3.
28
Capítulo 3
Aplicação Proposta
Tendo em vista a crescente movimentação para publicação de dados governamentais
em formato aberto no Brasil e a inexistência de recursos deste tipo nos sítios do nosso
Governo, propomos uma aplicação que consulta os dados previamente manipulados para
formato aberto e os disponibiliza para visualização.
Deste modo, é possível ressaltar o
quão mais simplicado seria desenvolver esta aplicação, se toda a fase de manipulação
dos dados já estivesse pronta.
A proposta é projetar uma aplicação de gerência de projetos desenvolvidos pelo Governo, em seus diferentes níveis: municipal, estadual e federal, e em diversas áreas como
saúde, educação, transporte, saneamento básico e outras. A aplicação deve oferecer a funcionalidade de reunir todas informações sobre projetos de Governo. Informações como,
prossionais responsáveis, objetivos do projeto, situação, e também dados sobre a localidade de implementação, como população e público atendido.
O objetivo deste projeto então é apresentar, desenvolvendo a aplicação de gerência de
projeto, que a publicação de dados governamentais em formato aberto colabora para o
desenvolvimento de aplicações mais avançadas e de modo mais simplicado. Esta adequação, utilizada com muito êxito em países como Reino Unido e Estados Unidos, promete
muito à realidade brasileira, onde cada sítio possui uma quantidade enorme de informações relevantes a população e que, todavia, não são devidamente exploradas em função
do trabalho dispendioso para processá-las.
Para a aplicação, é necessária uma extração manual destes dados, com um número
suciente de instâncias para testar a aplicação, e transformação dos dados extraídos para
formato RDF. Os dados tratados para formato estruturado serão armazenados em aplicações conhecidas como triple stores [W3C, 2003] (7), que permitem armazenar dados
no formato RDF, possibilitando a construção de consultas na linguagem SPARQL e em
diferentes repositórios publicados na Web.
O objetivo inicial desta fase de implementação consistiu na realização de etapas até
alcançar a modelagem dos dados no padrão de uma ontologia. Antes de qualquer outra
etapa, foi necessário conhecer de modo amplo o domínio que iríamos abordar. O primeiro
passo foi uma pesquisa nos sítios de Governo, nas três esferas, analisando as informações
disponibilizadas, a forma de organização das páginas e disposição das informações, e
realizando uma seleção preliminar dos dados que seriam utilizados no repositório.
Durante o desenvolvimento da pesquisa, a situação encontrada nos sítios foi de falta de
padronização na publicação das informações de um órgão de Governo para outro. Deste
29
modo, cada órgão armazena as informações da maneira que julgar mais conveniente, dicultando muito a colaboração entre os órgãos e com a sociedade. Outra questão destacável
é a forma como as informações são agrupadas, juntando diferentes tipos de informações
em um mesmo modelo de página.
Assim, notícias do quotidiano dos órgãos e de seus
representantes são publicadas em meio a informações mais técnicas, como dados sobre
projetos ou sobre o órgão, por exemplo. Mesmo em alguns sítios que apresentam um grau
de organização maior, como é o caso do Governo do Estado de São Paulo, as informações
são totalmente direcionadas para processamento humano, com uma quantidade imensa de
informações. Esta situação condiciona quem tem a necessidade de acesso aos dados, não
apenas para leitura, a realizar toda modelagem, manipulação e extração destes dados.
A gura 3.1 apresenta a página inicial do sítio do Governo Estadual de São Paulo, com
divisões sobre notícias, informações sobre o Estado, informações sobre projetos e ações,
estrutura do órgão e serviços aos cidadãos.
Figura 3.1: Portal do Estado de São Paulo
Neste caso é possível identicar um sítio que conta com uma organização bem estruturada que auxilia os usuários na localização do conteúdo pretendido. Contudo esbarramos
mais uma vez na falta de estrutura das páginas para tratamento automatizado pelas
máquinas.
A identicação desta situação nas páginas do Governo Brasileiro, especicamente em
relação às informações de projetos desenvolvidos pelo Governo, foi o marco inicial do
nosso projeto. Após nos habituarmos com o domínio do projeto, passamos então para a
modelagem concreta dos dados da aplicação.
30
3.1
Modelagem de Dados
Seguindo o roteiro para desenvolvimento de ontologias Ontology Development 101,
de Noy e McGuiness[2001] (29), iniciamos a modelagem que resultou na ontologia que
abastece a aplicação com instâncias das classes e que também possui regras especícas
para cada classe, propriedade e relacionamento.
Dada a complexidade no desenvolvimento de uma ontologia e a grande quantidade de
classes e relacionamentos previstos na ontologia a ser desenvolvida, a ferramenta Protégé
1
foi escolhida para gerenciar este processo. A opção da versão especíca, 3.4.4, também foi
proposital no sentido da necessidade de recursos, como a criação de instâncias de classes
e consultas SPARQL, que não estavam disponíveis em outras versões, inclusive na versão
mais recente, 4.x.
O guia para desenvolvimento de ontologia utilizado, apresenta como primeiro passo
justamente a denição do domínio e escopo da ontologia, respondendo questões como:
1. Qual domínio a ontologia vai englobar?
2. Para que a ontologia será utilizada?
3. Para que tipo de questões as informações na ontologia devem fornecer respostas?
O domínio abordado foi denido como projetos, mais especicamente, projetos governamentais, com necessidade de dados sobre os projetos, localidade de implementação e
áreas de conhecimento contempladas pelos projetos. A opção escolhida para denição do
escopo da ontologia foi o uso de questões de competência, que são na verdade questões
para as quais a base de dados deve conter as respostas. A lista a seguir apresenta algumas
questões de competência denidas.
1. Dado um projeto, qual seu tipo?
2. Qual a localidade de implementação do projeto?
3. Qual órgão governamental é responsável pelo projeto?
4. Qual funcionário é responsável pelo projeto?
5. Qual área do conhecimento é contemplada no projeto?
6. Qual a abrangência de um órgão governamental?
7. Um projeto com um determinado gestor pode ser aplicado na localidade que possui
outro órgão governamental como gestor?
Após a denição de quais funções a base de dados deve atender, foi realizada uma
extensa busca, em diferentes repositórios de ontologias, no intuito de localizar ontologias prontas que pudessem ser integradas no projeto em sua totalidade, parcialmente
ou apenas reutilizando termos isoladamente. Alguns dos repositórios de ontologias mais
reconhecidos, utilizados na busca, estão listados abaixo:
1. Swoogle
2
;
1 http://protege.stanford.edu/
2 http://swoogle.umbc.edu/
31
2. CYC
3
;
3. SchemaPedia
4. DAML
5
4
;
;
5. DBpediaOntology
6
.
A busca por modelagens que se encaixassem na necessidade do projeto foi realizada
em todos estes repositórios citados e também em alguns repositórios de vocabulários,
como FOAF project. A conclusão foi que nenhuma das ontologias atendia por completo
as necessidades do projeto, talvez por se tratar de uma proposta singular no Brasil e por
ser um tema tão especíco. Contudo, alguns vocabulários e recursos disponíveis na Web
puderam ser aproveitados no projeto.
Foram utilizadas então algumas denições do vocabulário FOAF, como name, mbox
e homepage. Além disso, recursos disponibilizados pelo projeto DBpedia, especicamente
recursos referentes a países, estados e cidades. Deste modo, a aplicação contém modelagem
e dados internos, e também referências a recursos externos, como sugere o Linked Data.
3.1.1
Hierarquia de Classes
A próxima etapa na modelagem foi o estabelecimento de uma lista de termos importantes para a aplicação e de propriedades inerentes a estes termos, para reunir as denições
que seriam utilizadas.
A lista de termos importantes para o repositório é a base para a etapa de denição
da hierarquia de classe e, posteriormente, atributos e relacionamentos entre classes.
A
gura 3.2 mostra a hierarquia com foco na classe Projeto, com seus atributos e relacionamentos.
As classes PúblicoAlvo, ÓrgãoEstadual, ÓrgãoFederal e ÓrgãoMunicipal tiveram suas
subclasses suprimidas na gura 3.2 e são apresentadas, respectivamente, de modo completo, nas guras 3.3, 3.4, 3.5 e 3.6.
Cada classe detalhada tem sua existência justicada no processo de desenvolvimento
da ontologia, no que refere a criação de regras de inferência, onde as denições de classes
podem ser utilizadas como restrições para as instâncias de determinada classe. Com o uso
da ferramenta Protégé e sua funcionalidade de vericação de taxonomia e de inferência,
os relacionamentos e restrições são validados, e novas classes surgem para melhorar a
classicação de instâncias de classes, com uma instância podendo pertencer a mais de
uma classe.
Desse modo, duas novas subclasses da classe Projeto foram criadas a m de complementar a estruturação dos dados e facilitar futuras consultas.
A gura 3.7 mostra,
as classes já apresentadas Projeto e ProjetoDeGoverno, e mais as subclasses de Projeto,
ProjetoPorÁrea e ProjetoPorTipo.
Essas são classes que classicam de modo diferente
instâncias da classe Projeto.
Completando o diagrama, a gura 3.8 apresenta a classe ÓrgãoGovernamental e seus
relacionamentos com as classes Localidade e Área.
3 http://www.cyc.com/
4 http://schemapedia.com/
5 http://www.daml.org/ontologies/
6 http://mappings.dbpedia.org
32
Figura 3.2: Hierarquia de Classes - Projeto
33
Figura 3.3: Classe Público-Alvo e subclasses
34
Figura 3.4: Classe ÓrgãoGovernamental e subclasses
Figura 3.5: Classe ÓrgãoFederal e subclasses
35
Figura 3.6: Classe ÓrgãoMunicipal e subclasses
36
Figura 3.7: Hierarquia de Classes - Foco na classe Projeto
37
Figura 3.8: Hierarquia de Classes - Foco na classe ÓrgãoGovernamental e seus relacionamentos
38
3.1.2
Ontologia
A partir do início do desenvolvimento da modelagem de dados, desenvolvendo a hierarquia de classes, é possível mapear as classes da ontologia, os relacionamentos e atributos
destas classes. O Protégé auxilia no desenvolvimento de ontologia por apresentar interface
gráca amigável para os desenvolvedores, que não são obrigados a denir diretamente o
código a ontologia, modo muito mais complexo.
Utilizando a versão de trabalho 3.4.4 do Protégé, a opção de projeto com codicação
OWL/RDF foi escolhida. Antes de iniciar a parte de modelagem propriamente dita, é
preciso estabelecer algumas congurações para que os recursos requisitados funcionem
corretamente.
Na gura 3.9 existem algumas congurações que devem ser ressaltadas.
O campo
identicado como Ontology URI , contém o valor URI que corresponde ao caminho que
identica unicamente a ontologia, de modo que possa ser acessada por qualquer máquina
conectada à Internet.
Figura 3.9: Protégé - Namespace
39
Outra questão importante é a denição de prexos para cada namespace utilizado na
ontologia. Na imagem 3.9, é possível identicar o campo Namespace Prexes, que relaciona cada namespace com o prexo correspondente, deste modo a ontologia ca mais
simplicada com a inserção do prexo no código ao invés do namespace completo.
Na
lista de namespaces utilizados na ontologia ressaltamos o foaf, rdf, rdfs e owl, que contêm vocabulários fundamentais na denição de qualquer ontologia e que são amplamente
utilizados na especicação da ontologia.
O prexo ProGov é o prexo que identica a
ontologia da nossa aplicação. Assim, qualquer recurso proveniente desta ontologia deverá
ser identicado segundo o modelo ProGov:nome_do_recurso.
Classes
A transcrição das classes do diagrama para a ontologia é a primeira etapa desta parte
da modelagem. Abaixo, a gura 3.10 apresenta a ferramenta Protégé na aba de denição
de classes, com diversas classes e subclasses denidas no diagrama de hierarquia de classes.
Figura 3.10: Protégé - Classes
40
Veremos mais adiante que, funcionalidades do Protégé interferem na modelagem da
ontologia, no sentido de sugerir novos arranjos para as classes de acordo com as denições
de regras de inferência.
Nesta hierarquia de classes é possível notar ainda as classes importadas de vocabulários
externos, como foaf:Person e foaf:Document.
Propriedades
A partir do diagrama é possível identicar especicações da modelagem de dados, que
são tratadas de modo distinto no momento da criação da ontologia. O primeiro caso é
em relação aos atributos das classes, que na ontologia são transformados em Datatype
Properties.
Datatype Properties são propriedades das classes que possuem como domínio uma ou
mais classes da ontologia e como contra-domínio um tipo de dados determinado, como
string, oat, int e boolean. Por padrão o namespace http://www.w3.org/2001/XMLSchema,
representado pelo prexo xsd, é utilizado por conter as denições de tipos de dados. O
caso da modelagem é apresentado na gura 3.11 com todos Datatype Properties a esquerda
e detalhamentos de domínio e contra-domínio a direita.
Figura 3.11: Protégé - Datatype Properties
41
A lista abaixo apresenta algumas propriedades das classes:
•
foaf:name
Propriedade importada de vocabulário externo, que tem como domínio as classes
Instituicao, Projeto, foaf:Person, OrgaoGovernamental, Localidade, Area, PublicoAlvo. O contra-domínio desta propriedade é o tipo de dados string.
É um termo muito utilizado no âmbito de recursos que seguem recomendações da
Web Semântica, sendo recorrente em repositórios como DBpedia, CYC, Freebase e
outros.
•
ProGov:comentario
Propriedade com a classe Avaliacao como domínio e contra-domínio o tipo de dados
string.
•
ProGov:data
Propriedade especicada para a classe Projeto (domínio) e com tipo de dados date
como contra-domínio.
•
ProGov:ehDeciente
•
ProGov:ehEgresso
•
ProGov:ehEmpregado
•
ProGov:ehEstudante
•
ProGov:ehPresidiario
As propriedades ehDeciente, ehEgresso, ehEmpregado, ehEstudante e ehPresidiario
têm como domínio a classe Individuo e contra-domínio o tipo boolean. São utilizadas
na formação de restrições nas regras de inferência, para classicar se uma instância pertence, ou não, as subclasses Deciente, Egresso, Trabalhador, Estudante,
Desempregado e Presidiario.
•
ProGov:faixaEtaria
•
ProGov:genero
Propriedade faixaEtaria e genero com classe Individuo como domínio e contradomínio tipo de dados string.
•
ProGov:latitude
•
ProGov:longitude
•
ProGov:objEspecicos
•
ProGov:objGerais
•
ProGov:resultadoAvaliacaoProjeto
•
ProGov:status
Propriedades latitude, longitude, objEspecicos, objGerais, resultadoAvaliacaoProjeto
e status têm a classe Projeto como domínio. O contra-domínio do tipo oat para
propriedades latitude, longitude e resultadoAvaliacaoProjeto, do tipo string para
propriedades objEspecicos e objGerais, e boolean para a propriedade status.
42
Algumas destas propriedades, como populacao e objGerais, exercem a função apenas
de atributos das classes, contudo outras propriedades são utilizadas para criar regras, que
restringem as características para que instâncias pertençam a determinadas classes.
Enquanto os atributos de classes são transformados em Datatype Properties, os relacionamentos entre classes, apresentados no diagrama, são transformados em Object Proper-
ties no desenvolvimento da ontologia. De acordo com a denição, cada Object Property
tem como opção domínio uma ou mais classes e como contra-domínio também uma ou
mais classes. Na instanciação de uma classe, uma Object Property receberá como valor
uma instância da classe especicada como contra-domínio. Neste caso é possível observar a relação sujeito, predicado e objeto, princípio fundamental da modelagem na Web
Semântica.
Na imagem 3.17, é possível vericar do lado esquerdo todas propriedades do tipo Object
Property e do lado direito as especicações para a Object Property selecionada.
Além das características de domínio e contra-domínio, respectivamente Domain e
Range, existem especicações adicionais e opcionais para as propriedades. Essas características são utilizadas para impor ainda mais restrições necessárias para as instâncias
destas classes. As especicações que marcam a propriedade como funcional (Functional),
funcional inversa (InverseFunctional) e inversa (Inverse) merecem destaque pela contribuição para a modelagem.
A propriedade denida como funcional, indica que para um sujeito, instância de uma
classe, existe apenas um objeto para determinada propriedade. Inversamente, a denição
de uma propriedade como funcional inversa indica que existe apenas um sujeito para um
dado predicado (propriedade) e objeto.
Ainda mais interessante é a característica inversa das propriedades, onde ca denida a
reciprocidade de uma determinada propriedade. Ou seja, a direção do relacionamento, que
vai do domínio do sujeito até o contra-domínio do objeto, também tem correta aplicação
inversa.
O modelo 3.12 apresenta as classes Projeto, ProjetoDeGoverno, OrgaoGovernamental
e Localidade, com suas respectivas propriedades. As setas que tem direção de uma classe
a outra ilustram um Object Property, enquanto as setas que tem direção para algum tipo
de dado, como é caso do xsd:string, simbolizam os Datatype Property.
Em P. Hitzler[2009] (25) diversas denições da linguagem OWL, que é utilizada para
codicar a ontologia, são apresentadas. Os recursos de Datatype Property, Object Property
e características destas propriedades são representados, de acordo com namespace
http://www.w3.org/2002/07/owl, da seguinte maneira:
•
Datatype Property - owl:DatatypeProperty;
•
Object Property - owl:ObjectProperty;
•
Propriedade funcional - owl:FunctionalProperty;
•
Propriedade inversa funcional - owl:InverseFunctionalProperty;
•
Propriedade inversa - owl:InverseOf.
43
Figura 3.12: Modelo com propriedades Datatype e Object
A representação, em linguagem OWL, do diagrama 3.12 corresponde ao seguinte código:
1. Denições 3.13 de prexos e namespaces utilizados na ontologia;
2. Denição 3.14 das classes, utilizando a marcação owl:Class para estipular o tipo de
objeto e rdf:ID para estipular o nome da classe;
3. Denição 3.15 da propriedade foaf:name do tipo Datatype Property, identicado por
owl:DatatypeProperty, apresentando o domínio, através da marcação rdfs:domain,
como uma união das classes Localidade, OrgaoGovernamental e Projeto, permitindo que qualquer recurso que pertença a uma das três classes tenha a propriedade
foaf:name;
4. Denição 3.16 das propriedades temGestor e temLocalizacao do tipo Object Property,
identicadas pela marcação owl:ObjectProperty, e que apresentam a denição de
recursos de domínio e contra-domínio, com o uso das marcações, respectivamente,
rdfs:domain e rdfs:range.
44
Figura 3.13: Declaração de namespace na linguagem OWL da ontologia baseada no modelo 3.12
Figura 3.14: Denição das classes na linguagem OWL
Figura 3.15: Denição de uma Datatype Property na linguagem OWL
45
Figura 3.16: Denição de propriedades Object Properties na linguagem OWL
46
A gura 3.17 apresenta os Object Properties da ontologia, assim como suas características de domínio, contra-domínio e restrições.
Figura 3.17: Protégé - Lista de Object Properties
A propriedade temGestor, já citada, é uma propriedade que apresenta a classe
ProjetosDeGoverno no domínio e a classe OrgaoGovernamental no contra-domínio. Apresenta ainda uma propriedade inversa, denominada gestorDe 3.19, onde o domínio e contradomínio são invertidos. A gura 3.18 representa as características da propriedade conforme a linguagem OWL.
47
Figura 3.18: Modelo para a propriedade ProGov:temGestor
Figura 3.19: Modelo para a propriedade ProGov:gestorDe, inversa de ProGov:temGestor
48
Vocabulários externos, importados para a ontologia, também são usado como domínio ou contra-domínio em propriedades.
A propriedade foaf:homepage utiliza classes
internas ProjetosDeGoverno, OrgaoGovernamental e Localidade - no domínio e a classe
foaf:Document, denida no vocabulário FOAF, na contra-domínio.
Figura 3.20: Modelo para a propriedade foaf:homepage
Ilustrando características restritivas possíveis, a propriedade funcionarioGestorDe além
de ser inversa da propriedade temFuncionarioGestor, também tem característica funcional, conforme modelo 3.21. O domínio da propriedade funcionarioGestorDe é a classe
Funcionario e o contra-domínio OrgaoGovernamental. As características citadas garantem
que apenas um objeto da classe Funcionario tenha a propriedade funcionarioGestorDe
com um valor único de um objeto da classe OrgaoGovernamental.
49
Figura 3.21: Modelo para a propriedade ProGov:temFuncionarioGestor
Regras de Inferência
Regras de inferência funcionam como restrições nas classes, estipulando quais características uma instância deve ter para ser classicada em determinada classe. Algumas
características são herdadas de uma classe superior, se este for o caso, enquanto outras
são expressões que denem condições para as propriedades relacionadas a cada classe.
Um exemplo é a classe ProjetosDeGoverno.
A gura 3.22 mostra as expressões
ProGov:temLocalizacao some ProGov:Localidade e ProGov:temPublicoAlvo some ProGov:PublicoAlvo, no campo INHERITED, identicando que são restrições provenientes
da superclasse Projeto. A expressão ProGov:temGestor some ProGov:OrgaoGovernamental
está no campo NECESSARY & SUFFICIENT, indicando que o valor para propriedade
temGestor deve ser algum recurso da classe OrgaoGovernamental.
A restrição aponta
então que qualquer recurso que seja da classe Projeto e que tenha valores da classe
OrgaoGovernamental
na
propriedade
temGestor,
será
classicado
na
classe
ProjetosDeGoverno.
A classe ProjetosPorArea, estipula a restrição de que a instância tem que ser da classe
Projeto e de que, a propriedade temArea, tem que receber algum valor proveniente da
classe Area. Na imagem é possível notar ainda, que existem diversas subclasses da classe
ProjetosPorArea e que, cada uma destas subclasses, tem uma regra relacionada com
as subclasses da classe Area.
Na gura 3.23 é possível observar esta situação, onde a
expressão indica que recursos do tipo ProjetoDeAgricultura, devem cumprir a especicação
de ter um valor de Agricultura na propriedade temArea.
50
Figura 3.22: Regras estipuladas para a classe ProjetosDeGoverno
51
Figura 3.23: Regras estipuladas para a classe ProGov:ProjetoDeAgricultura
52
A
classe
ProjetosPorTipo
reúne,
ProjetosDeGoverno e ProjetosPorArea.
por
sua
vez,
características
das
classes
São as restrições relativas às propriedades
temArea e temGestor.
A princípio as subclasses de ProjetosPorTipo não tinham relação de subordinação com
nenhuma outra classe, contudo o Protégé oferece a funcionalidade de inferir novas classicações na hierarquia com base nas especicações de cada classe. Como exemplo para
descrever como é realizada a inferência, utilizamos a classe ProjetoDaSecretariaDeTurismo
que tem as seguintes especicações:
•
ProGov:temArea some ProGov:Turismo;
•
ProGov:temGestor some ProGov:SecretariaDeTurismo;
•
ProGov:ProjetosPorTipo.
O que ocorre neste caso é que Turismo é subclasse de Area, e portanto esta regra
também se enquadra na regra de ProjetosDeTurismo (subclasse de ProjetosPorArea).
A outra questão é que SecretariaDeTurismo é subclasse de OrgaoEstadual, tendo assim
equivalência com a regra de ProjetoDeGovernoEstadual.
Com estas duas características semelhantes, a funcionalidade de classicação de taxonomia infere que a classe ProjetoDaSecretariaDeTurismo recebe herança múltipla das
classes ProjetoDeTurismo e ProjetoDeGovernoEstadual. Assim uma instância de qualquer
uma das três classes será replicada como componente das outras duas classes.
A gura 3.24 ilustra o ambiente após a execução da funcionalidade de inferência, onde
aparece do lado direito, na cor azul, o que o programa sugere de modicações com base
nas regras estipuladas. Esta funcionalidade é útil para tornar a ontologia mais robusta e
também para vericar se as regras estipuladas correspondem ao objetivo pretendido.
53
Figura 3.24: Resultado da classicação de taxonomia realizada pelo Protégé
54
3.2
Instâncias
Conforme mencionado, o Protégé oferece funcionalidade para criação de instâncias das
classes, em conformidade com as regras estabelecidas.
A gura 3.25 apresenta um formulário de cadastro com todos os campos correspondentes às propriedades da classe, campos estes que restringem o tipo de dado inserido,
conforme as regras estabelecidas.
Figura 3.25: Formulário para criação de instância da classe ProGov:Projeto
Com a criação de instâncias, o código OWL terá, além das denições de classes,
propriedades e restrições, instâncias das classes. A opção foi por manter em apenas um
código as especicações da ontologia e instâncias, porém seria possível gerar um outro
arquivo RDF com os recursos e manter a codicação OWL apenas com as especicações.
55
Capítulo 4
Implementação
Completada toda a fase de modelagem do domínio e preparação dos dados extraídos dos sítios de Governo, inicia-se a preparação da estrutura de apoio à aplicação e,
posteriormente, a codicação da aplicação que manipula os dados para apresentação.
4.1
Base de Dados
Os aplicativos que oferecem suporte ao armazenamento e consulta de dados de acordo
com a Web Semântica, são denominados triple store. Existem diversas ferramentas deste
tipo disponíveis, em versões gratuitas e comerciais. Algumas das mais conhecidas são o
Virtuoso
1
, Jena
2
, Mulgara
3
e Sesame
4
.
De acordo com a arquitetura de implementação, um triple store pode oferecer diferentes
tipos de armazenamento de dados RDF.
•
In-memory: mantém os dados RDF na memória principal;
•
Native:
implementação de banco de dados persistente para armazenar os dados
RDF;
•
Non-memory ou non-native: este tipo de implementação funciona sobre bases de
dados de banco de dados relacionais.
A escolha do triple store Sesame foi baseada principalmente nas funcionalidades apresentadas pelo framework.
Ele apresenta tipo de armazenamento native e non-memory,
tem suporte para inferência e consultas (SPARQL ou SeRQL), funciona como servidor
Web e disponibiliza endpoint SPARQL. Além disso, a escalabilidade para o tipo de armazenamento native, que utilizamos na aplicação, é de 70 milhões de triplas. Outra questão
que foi determinante é o fato de ser um framework Java open source.
Em T. Segaran[2009] (34), o Sesame é denido como um framework Java open source,
com excelente interface de administração incluída na distribuição, de fácil instalação e
desempenho robusto.
1 http://virtuoso.openlinksw.com/
2 http://jena.sourceforge.net/
3 http://docs.mulgara.org/
4 http://www.openrdf.org/
56
O Sesame necessita de dois softwares para funcionamento. Um é o Java, com versão
superior a 5, e outro é um Java Servlet Conteiner, software que suporta aplicações Web.
Por ser um servidor estável e muito recomendado, o Apache Tomcat foi denido para
integrar o ambiente de armazenamento e publicação dos dados.
A Figura 4.1 é da página de administração do Sesame, com informações sobre o repositório da aplicação ProGov. A conguração do repositório foi feita criando um repositório
do tipo native e importando o código em linguagem OWL, gerado como resultado da
modelagem com o Protégé. A interface de administração permite de maneira bem simplicada a criação e edição de repositórios RDF, além da funcionalidade de consulta, que é
bem ecaz para efeito de teste na ontologia, antes do desenvolvimento de uma aplicação
que utilize o repositório.
Figura 4.1: Interface de administração do Sesame
4.2
Consultas
As consultas ao repositório são realizadas através da linguagem SPARQL, semelhante
à linguagem de consulta SQL. A observação em relação a esta linguagem de consulta de
triplas, é que as condições de consulta devem ser realizadas seguindo o padrão sujeito,
predicado, objeto.
Na aplicação ProGov as consultas são divididas em duas categorias. Um conjunto de
consultas foi desenvolvido para abastecer os ltros disponibilizados na aplicação e o outro
conjunto de consultas é utilizado para obter os resultados com base nos ltros selecionados.
57
Todas consultas são voltadas para busca de informações da principal classe da aplicação, a classe Projeto. Os ltros têm a funcionalidade de restringir o resultado para, as
instâncias da classe Projeto, que atendam aos requisitos da consulta.
A consulta padrão, apresentada na página inicial, retorna todos os recursos do tipo
Projeto. Abaixo segue a codicação 4.2 da consulta, com a denição dos prexos utilizados
na ontologia e na consulta, seguido da cláusula SELECT, que dene os campos que
serão retornados, e da cláusula WHERE, que apresenta as restrições de busca. O padrão
estabelecido para os campos de retorno dene que as propriedades foaf:name, latitude,
longitude e status serão apresentadas como resultado da consulta. Este padrão de retorno
é igual para todas consultas direcionadas para a classe Projeto, visto que a aplicação utiliza
propriedades para localização no script GoogleMaps incorporado a aplicação ProGov.
Figura 4.2: Consulta principal da aplicação
Após
a
cláusula
WHERE,
é
especicada
a
primeira
condição
da
consulta,
?Projeto rdf:type ProGov:Projeto, que estabelece que a variável ?Projeto tem o valor ProGov:Projeto na propriedade rdf:type. Esta propriedade rdf:type está presente em
todas instâncias da ontologia e signica que determinado recurso pertence a classe especicada. Assim, todo recurso que tiver a propriedade rdf:type com ProGov:Projeto será
selecionado na consulta.
O restante das condições especica que os campos determinados recebam os valores
de cada projeto. Por exemplo, a expressão ?Projeto foaf:name ?Nome, realiza a função
de associar a variável ?Nome o valor do atributo foaf:name, de cada recurso do tipo
ProGov:Projeto selecionado.
A consulta apresenta o seguinte resultado 4.3:
Na imagem 4.3 observa-se que os campos determinados na consulta receberam seus
valores de retorno, com detalhamento do tipo de dados de cada campo, como xsd:string
ou xsd:oaf.
Além da consulta padrão, a aplicação dispõe de uma série de consultas que adicionam
restrições aos resultados. Essas restrições são disponibilizadas para os usuários em forma
de ltros, que apresentam valores determinados para especializar os resultados de uma
consulta.
58
Figura 4.3: Resultado da consulta padrão da página inicial
A lista de ltros 4.4 disponíveis é a seguinte:
Figura 4.4: Filtros para consultas da aplicação
A seguir é apresentado um detalhamento de exemplos de consultas utilizadas nos ltros
e que produzem resultado conforme a opção selecionada nos ltros.
O ltro Por Abrangência permite que os projetos sejam selecionados de acordo com
valor da propriedade ProGov:temLocalizacao, que indica o local de aplicação do projeto.
Contudo, antes da consulta que trará como resultado os projetos de determinada localidade, é preciso estabelecer uma consulta para o ltro, que apresentará opções de localidade disponíveis. Para exemplicar temos a seguinte consulta apresentada na Figura 4.5
para o ltro Estado.
Como resultado uma lista de instâncias da classe ProGov:Estado é retornada, podendo
assim ser utilizada para abastecer o ltro.
59
Figura 4.5: Consulta para valores do ltro Estado
60
Figura 4.6: Resultado da consulta aplicada ao ltro Estado
Na aplicação, ao selecionar algum elemento apresentado na lista do ltro Estado,
outra consulta é executada, com valor para a propriedade ProGov:temLocalizacao variável
conforme valor selecionado na lista. Por exemplo, o código 4.7 representa o caso onde o
valor São Paulo é selecionado.
Figura 4.7:
Exemplo de consulta que retorna projetos voltados para o Estado de São
Paulo
Na codicação da aplicação, a expressão em destaque na Figura 4.7 é trocada por uma
variável, de modo a aceitar os diferentes valores selecionados.
Como resultado, á apresentado na Figura 4.8 uma lista de todos os projetos, que
têm na propriedade ProGov:temLocalizacao valores do tipo ProGov:Sao_Paulo_Estado,
é apresentada.
Em todos os ltros a situação do ltro Estado se repete. Primeiro é realizada uma
consulta para estabelecer os valores do ltro e quando um de seus valores selecionado,
outra consulta é executada buscando os recursos que correspondem as novas restrições
impostas.
Existem outras duas situações relativas aos ltros que devem ser destacadas.
Uma
ocorre na seleção de algum valor do ltro Esfera de Governo, que desencadeia alterações no ltro Órgão Gestor.
A questão é que o ltro Órgão Gestor é abastecido
61
Figura 4.8: Resultado da consulta que retorna projetos voltados para o Estado de São
Paulo
por instâncias da classe ProGov:OrgaoGovernamental, que por sua vez possui a propriedade rdf:type, que pode ter como valor ProGov:OrgaoEstadual, ProGov:OrgaoFederal ou
ProGov:OrgaoMunicipal.
Para manter a coerência da consulta quando um valor do ltro Esfera de Governo
é selecionado, a consulta do ltro Órgão Gestor, deve ser alterada para que apenas
instâncias com valor de rdf:type igual ao valor selecionado no ltro Esfera de Governo
sejam retornadas, conforme consulta.
Supondo que a opção Esfera Federal seja selecionada no ltro Esfera de Governo,
a consulta para o ltro Órgão Gestor seria alterada na expressão em destaque conforme
a Figura 4.9. Essa alteração faz com que apenas órgãos governamentais de esfera federal
sejam apresentados, ou seja, apenas instâncias da classe ProGov:OrgaoGovernamental
com o valor ProGov:OrgaoFederal na propriedade rdf:type são apresentadas no ltro.
Outra cláusula que oferece características especiais nesta consulta é a FILTER, que
neste caso atende a uma especicação da aplicação de apresentar apenas órgãos governamentais, que estejam vinculados a alguma instância da classe ProGov:Projeto, excluindo
da lista instâncias da classe ProGov:OrgaoGovernamental, cuja seleção não vai retornar
nenhum projeto como resultado da consulta.
A expressão FILTER (EXISTS{?Projeto ProGov:temGestor ?OrgaoGov}) estipula
que, do resultado da execução das expressões acima, sejam selecionados apenas os recursos que aparecem como valor na propriedade ProGov:temGestor de recursos da classe
ProGov:Projeto.
Como resultado da consulta 4.9 os valores da Figura 4.10 apresentam apenas instâncias
da classe ProGov:OrgaoGovernamental que são do tipo ProGov:OrgaoFederal e que são
contra-domínio de instâncias da classe ProGov:Projeto.
4.3
Ambiente da Aplicação
Conforme comentado, o ambiente necessário ao funcionamento da aplicação consiste no
uso de um Web Container, o Tomcat 7.0, para a aplicação Java, e o Sesame, um repositório
62
Figura 4.9: Consulta que retorna instâncias da classe ProGov:OrgaoGovernamental
Figura 4.10: Resultado da consulta à classe ProGov:OrgaoGovernamental
para armazenamento dos dados em RDF. A aplicação foi compactada em um arquivo do
tipo Web Application Archive, de extensão .war. Para o funcionamento, deve-se realizar
a implantação (deploy) desse arquivo no Tomcat após ter sido realizada a conguração
descrita abaixo.
Todas as bibliotecas necessárias ao funcionamento da aplicação foram
incorporadas ao diretório WEB-INF/lib, de modo que ela se torne uma aplicação stand
alone, ou seja, que contém todos os recursos necessários para execução integrados.
4.3.1
Tomcat
O Apache Tomcat é um Web Container bastante popular que provê o ambiente de
execução dos componentes Web utilizados na arquitetura, como páginas JSP e componentes JSF. A versão utilizada foi o Tomcat 7.0 que apresentou melhor compatibilidade
com a arquitetura utilizada.
Mais informações sobre o Tomcat podem ser obtidas em
http://tomcat.apache.org/.
63
A instalação e conguração do Tomcat 7.0 é bastante simples e pode ser feita a partir
do download e descompressão do pacote contendo o arquivo binário para a sua plataforma. A partir disso, deve-se incluir uma variável de ambiente catalina_home e outra
catalina_base direcionadas para a pasta do pacote.
4.3.2
Sesame
O Sesame 2.4.0 é um framework Java para armazenamento e consulta RDF que permite
o uso dos mecanismos de inferência, além de possuir uma API e uma interface HTTP
com suporte ao uso da linguagem de consulta SPARQL. Uma visão geral do Sesame é
apresentada na Figura 4.11.
Figura 4.11: Uma visão geral da arquitetura do Sesame 2.4.0 (2)
De um modo geral, o Sesame fornece uma abstração do modelo RDF utilizado, de
modo a permitir resultados inferidos, apresentando os dados em triplas RDF. Demais
informações podem ser obtidas em http://www.openrdf.org.
A versão 2.4.0 trouxe vá-
rias melhorias em relação à versão 2.3.3, como uso de subconsultas, expressões como
COUNT, ltros REGEX, entre outras.
A instalação do Sesame consiste na inserção (deploy), a partir da página de gerenciamento do Tomcat, dos arquivos openrdf-semame.war e openrdf-workbench.war, presentes
no pacote comprimido.
Para conguração da aplicação ProGov deve-se acessar a página local da aplicação
Sesame - openrdf-workbench e adicionar um novo repositório do tipo Native Java Store
RDF Schema, com id progov e título Sistema de Informações de Projetos Governamentais.
Para carregar dados e metadados no novo repositório, deve-se selecionar o repositório
progov em repositories e clicar em add. No campo RDF Data File, selecionar o arquivo
de extensão owl da ontologia progov e enviar. Isso criará um contexto para o prexo
progov das consultas SPARQL usadas na aplicação.
4.4
Arquitetura da Aplicação
A interface Web consiste no uso sobreposto das tecnologias JavaServer Pages (JSP)[Oracle,
2011] 4, JavaServer Faces (JSF) [Oracle, 2011] (30) e JavaScript, conforme Figura 4.12.
64
Figura 4.12: Arquitetura da interface Web(adaptado (3))
4.4.1
JavaScript
O JavaScript é utilizado pela API do Google Maps, incorporada ao projeto, para
apresentação de um mapa com as localidades dos projetos governamentais cadastrados na
aplicação. Ele inicializa o mapa e os marcadores ao término do carregamento da página.
4.4.2
ADF Faces
Foram incorporados alguns componentes da Oracle ADF Faces 10.1.3. Ele é um fra-
mework que provê funcionalidades AJAX-type, permitindo, dentre outras funcionalidades,
apresentar dados recuperados dinamicamente em uma tabela CoreTable. O ADF possui
uma série de componentes que podem ser utilizados em conjunto com os componentes
JSF dentro de páginas JSP, para aumentar a dinâmica da página.
4.4.3
JSF
JavaServer Faces é um framework Java, ligado ao lado servidor da aplicação, que
produz interfaces para usuário. Ele é composto por uma API que, dentre outras funcionalidades, representa componentes de interface com usuário (UI) e gerencia seus estados,
trata eventos e faz validações.
É possível, com isso, utilizar componentes em uma página apenas adicionando suas tags
( drag and drop components), tratar eventos dos componentes, construir URIs reutilizáveis
e, guardar e carregar estados dos UIs mesmo depois do tempo de vida de um request.
Pode-se destacar os seguintes benefícios com o uso do JSF:
1 clara separação entre comportamento e apresentação;
65
2 permite que a aplicação seja desenvolvida separadamente;
3 provê rica arquitetura para gerenciar estados de componentes, processar dados de
componentes, validá-los e tratar eventos.
O JSF é estruturado da seguinte forma:
1 um conjunto de páginas JSP;
2 um conjunto de JavaBeans, que denem propriedades e funcionalidades para os
componentes UI;
3 um arquivo de conguração da aplicação, que dene as regras de navegação e congura beans e outros objetos, como componentes customizados;
4 um arquivo web.xml;
5 tags e objetos customizados.
O arquivo faces-cong.xml é o principal arquivo de conguração do JSF e descreve as
regras de navegação, a conguração dos beans e de conversores, e outras congurações da
aplicação. Ele irá realizar o mapeamento que será utilizado para que a aplicação encontre
os recursos necessários.
Todas as aplicações JSF mapeiam o Servlet FacesServlet em seu arquivo web.xml. O
FacesServlet recebe requisições request, passa as requisições para processamento e inicializa os recursos.
4.4.4
JSP
JSP é uma tecnologia que propicia criar dinâmica nas páginas de um modo simples e
robusto. As páginas JSP são transformadas em Servlets e tratadas por um Web Container
que irá tratar o evento request e fornecer uma resposta adequada a esse evento. A página
JSP é o ambiente de declaração dos componentes de outras tecnologias, pois incorpora as
tags tanto JSP como JSF, ADF e JavaScript.
4.5
Aplicação
A aplicação é acessada pelo URI http://localhost:8080/ProGov via servidor Apache
Tomcat. A tela inicial apresentada na Figura 4.13 contém os ltros mencionados e seus
respectivos valores provenientes das consultas, uma lista de projetos com o resultado da
consulta de acordo com os valores selecionados nos ltros e um mapa com marcações das
localidades dos projetos listados.
O mapa incorporado na aplicação é um script de domínio da empresa Google, que utiliza valores de latitude e longitude dos projetos, recuperados da consulta, para estabelecer
marcações referentes a cada projeto.
A Figura 4.14, apresentada a seguir, mostra o resultado de uma consulta que teve suas
condições alteradas pela seleção do valor São Paulo no ltro Estado.
66
Figura 4.13: Tela inicial da aplicação
Figura 4.14: Resultado modicado pela seleção de valor no ltro Estado
67
Seguindo na navegação da aplicação, a Figura 4.15 ilustra a relação de dependência
entre os ltros Esfera de Governo e Órgão Gestor, avaliada na seção 4.4. No exemplo,
o valor Federal é selecionado no ltro Esfera de Governo e então, no ltro Órgão
Gestor são apresentadas apenas instâncias que representam órgãos de Governo Federal.
Figura 4.15: Relação de dependência entre os ltros Esfera de Governo e Órgão Gestor
Ainda com relação à dependência entre os ltros, a Figura 4.16 ilustra instâncias da
classe ProGov:OrgaoGovernamental de todos os níveis estadual, federal e municipal, já
que o ltro Esfera de Governo, que interfere no ltro Órgão Gestor, não teve nenhum
valor selecionado.
Além das informações disponibilizadas na página principal, a aplicação oferece uma
página detalhada dos recursos da classe ProGov:Projeto e também de diversos recursos
relacionados a esta classe.
Na Figura 4.17 todos os recursos e dados relacionados ao
projeto Descoberta do Talento Esportivo são detalhados.
Na página de detalhamento do projeto é possível realizar navegação entre os recursos
relacionados ao projeto. Isso porque os recursos associados são do tipo Object Property,
instâncias de outras classes denidas na ontologia. Na Figura 4.17, o indicador está selecionando a instância que é valor da propriedade ProGov:temGestor, no campo identicado
como Órgão Governamental Responsável.
Ao selecionar o recurso a navegação passa
para a página com detalhes do recurso, conforme Figura 4.18.
68
Figura 4.16: Lista do ltro Órgão Gestor sem interferência do ltro Esfera de Governo
69
Figura 4.17: Tela com detalhes do recurso Descoberta do Talento Esportivo
70
Figura 4.18: Tela com detalhes do recurso Ministério do Esporte
71
4.5.1
Filtros
O intuito da disponibilização de ltros é criar visões do resultado a partir de inferência
sobre as informações do projeto ou apenas adicionando restrições. Ao selecionar um ltro,
o mapa é atualizado para apresentar apenas os projetos resultantes da aplicação do ltro.
Os ltros são divididos em três tipos básicos:
1 abrangência do projeto;
2 governo;
3 outros.
Os ltros de abrangência selecionam projetos que tenham a propriedade temAbrangencia marcada para aquela seleção. O resultado da consulta do conjunto de ltros de
abrangência são disjuntos, por isso apenas uma seleção por abrangência é permitida.
De acordo com a necessidade, os valores de seleção apresentados nos ltros também
são resultado de consultas SPARQL. A lista abaixo, contém a codicação implementada
na aplicação de consultas iniciais utilizadas para se obter os valores apresentados ltros.
Seleção por abrangência: Estado Selecionar instâncias da classe Estado
SELECT DISTINCT ?ID ?Nome ?UF
WHERE
?ID rdf:type ProGov:Estado;
foaf:name ?Nome;
ProGov:uf ?UF.
ORDER BY ?ID
Seleção por abrangência: Cidade Selecionar instâncias da classe Cidade
SELECT DISTINCT ?ID ?Nome ?UF
WHERE
?ID rdf:type ProGov:Cidade;
foaf:name ?Nome.
ORDER BY ?ID
Seleção por governo: Órgão Gestor Selecionar instâncias da classe OrgaoGovernamental que sejam responsáveis por algum projeto.
SELECT DISTINCT ?ID ?Nome
WHERE
?ID rdf:type ProGov:OrgaoGovernamental;
foaf:name ?Nome.
FILTER (EXISTS?Projeto ProGov:temGestor ?ID)
ORDER BY ?ID
Outras seleções: Área Selecionar instâncias da classe Área que sejam área de algum
projeto.
72
SELECT DISTINCT ?ID ?Nome
WHERE
?ID rdf:type ProGov:Area;
foaf:name ?Nome.
FILTER (EXISTS
?Projeto rdf:type ProGov:Projeto;
ProGov:temArea ?ID .
)
ORDER BY ?ID
Outras seleções: Público-Alvo Selecionar instâncias da classe Público-Alvo que sejam
público-alvo de algum projeto.
SELECT DISTINCT ?ID ?Nome
WHERE
?ID rdf:type ProGov:PublicoAlvo;
foaf:name ?Nome .
FILTER (EXISTS
?Projeto rdf:type ProGov:Projeto;
ProGov:temPublicoAlvo ?ID .
)
ORDER BY ?ID
As demais listas são conguradas manualmente, com valores xos no código da aplicação.
No caso de se selecionar a abrangência "Brasil", da caixa "País", é realizada a busca
por projetos de abrangência nacional. As caixas Estado e Cidade são desmarcadas, e são
apresentados os projetos que tenham abrangência "Brasil".
Como apenas Órgãos Federais podem possuir projetos de abrangência nacional, é
aplicado um ltro para as caixas "Esfera de Governo"e "Órgão Gestor", de modo que
apenas valores plausíveis sejam apresentados.
A aplicação do ltro é realizada aplicando-se à consulta principal a linha:
ProGov:temAbrangencia ProGov:Brasil;
O mesmo vale para as caixas Estado e Cidade, com a diferença que, quanto menor
for a hierarquia da abrangência selecionada, mais órgãos podem atuar naquela localidade.
Um Órgão Federal, por exemplo, pode possuir projetos com abrangência Brasil ou São
Paulo (Estado) ou São Paulo (Cidade).
Por outro lado, órgãos de mesma esfera são disjuntos. Caso seja selecionada a abrangência para um Estado em particular, serão apresentados apenas os órgãos governamentais
daquele estado. No nível de cidade são apresentados os Órgãos Federais, os pertencentes
ao Estado no qual encontra-se a cidade, além dos órgãos da própria cidade.
73
Figura 4.19: Resultado do uso do ltro de abrangência para "Brasil".
O uso dos ltros Estado e Cidade é dado abaixo, em que <estado> e <cidade> são
identicadores de alguma instância dessas classes:
ProGov:temAbrangencia ProGov:<estado>;
ProGov:temAbrangencia ProGov:<cidade>;
Os ltros de Governo permitem a seleção por esfera de Governo ou órgão gestor. Esses
ltros atuam sobre o resultado da aplicação do ltro por abrangência. O ltro esfera de
Governo traz como resultado os projetos com tipo igual ao da esfera selecionada. Podem
ser projetos de Governo Federal, projetos de Governo Estadual ou projetos de Governo
Municipal.
Um exemplo do uso do ltro Esfera de Governo para a esfera federal é dado abaixo,
ao se substituir a denição de ?Projeto por:
?Projeto rdf:type ProGov:ProjetosDeGovernoFederal;
Percebe-se que, apesar de não se ter instanciado nenhum projeto da classe ProjetosDeGovernoFederal, o Sesame consegue inferir essa instância a partir das propriedades de
cada classe presentes no modelo RDF.
Assim, caso seja selecionada a esfera federal, serão mostrados os projetos inferidos
como projetos de Governo Federal com a abrangência selecionada.
A seleção da esfera
interfere na seleção do órgão. Caso uma esfera seja selecionada, apenas órgãos de mesma
esfera serão apresentados na caixa Órgão Gestor. Isso é feito selecionando como resultado
os órgãos inferidos como sendo órgãos daquela esfera, ou seja, órgãos governamentais tendo
como abrangência um País, um Estado ou uma Cidade. Novamente para esfera federal,
74
para atualização da lista de órgãos, teríamos, na consulta SPARQL, a substituição da
denição do ?ID da consulta de órgão por:
?ID rdf:type ProGov:OrgaoFederal;
O ltro Órgão Gestor permite a seleção dos órgãos responsáveis por algum projeto.
Esse ltro tem a menor prioridade dentre os analisados e apresenta apenas os projetos
vinculados aquele órgão, caso selecionado.
Um exemplo de uso seria o acréscimo da
restrição:
ProGov:temGestor ProGov:<idOrgao>;
Figura 4.20: Resultado cumulativo dos ltros: Abrangência: Amazonas; Esfera: Federal;
Órgão Gestor: Ministério da Defesa.
Os demais ltros não impactam, nem são impactados, pelos já apresentados e podem
ser usados cumulativamente. O ltro por área busca as opções de áreas que sejam usadas
por algum projeto. Da mesma forma, o ltro público-alvo mostra as opções de públicoalvo que estejam sendo utilizadas por algum projeto. O ltro Status seleciona entre os
projetos ativos e os inativos. Um exemplo do uso desses últimos ltros é dado abaixo, em
que <area> seria o ID da área Esporte de Alto Rendimento e <publicoAlvo> seria o
ID do público-alvo Adolescente:
ProGov:temArea ProGov:<idArea>;
75
ProGov:temPublicoAlvo ProGov:<idPublicoAlvo>;
ProGov:status true.
Figura 4.21: Resultado dos ltros por Área e Público-Alvo
4.5.2
Navegação
A navegação irá gerenciar quais páginas serão acessadas após um clique em um botão
ou em um link. O arquivo de conguração da aplicação é o navigation.xml. Nele, encontrase:
1. As regras de navegação;
2. String de saída referenciadas no atributo action do componente botão ou hyperlink.
Essa string é usada pelo JSF para selecionar a regra de navegação.
A navegação foi denida de modo que ao se navegar para uma nova página, o contexto
da página atual é armazenado na sessão e restaurado ao se pressionar o botão voltar.
Ao selecionar um projeto na página de visualização de projetos, a aplicação é direcionada para a página de detalhes do projeto. Dessa página, é possível navegar para a
página de visualização de órgão, de funcionário, de localidade, de abrangência, de área e
de público-alvo. Cada uma delas traz informações mais detalhadas sobre o que foi selecionado e apresenta outras opções de detalhamento para as entidades cadastradas que se
relacionam com a entidade em evidência.
76
Visualização de Detalhes de Projetos
Essa página traz as informações cadastradas para o projeto, como objetivos gerais
e especícos. Há apenas um órgão responsável por cada projeto. Ao se selecionar esse
órgão, a aplicação é direcionada para a página de detalhamento do órgão. Há, também,
a possibilidade de seleção do funcionário responsável pelo projeto, que pode, ou não, ser
o mesmo responsável pelo órgão.
A localidade do projeto pode ser diferente da área de abrangência dele, como é o caso
de um projeto vinculado a um ministério com abrangência em um estado ou cidade. São
disponibilizados links para as páginas de visualização de localidade e de abrangência.
São mostrados, por m, todas as áreas e públicos-alvo cadastrados para o projeto e
disponibilizados os respectivos links.
A consulta básica da página de detalhes é:
SELECT DISTINCT ?Area ?PublicoAlvo ?Localizacao ?Responsavel ?Gestor ?Abrangencia
?Data ?ObjEspecicos ?ObjGerais ?Status ?Nome ?Latitude ?Longitude
WHERE
ProGov:<idProjeto> rdf:type ProGov:Projeto;
ProGov:temArea ?Area;
ProGov:temPublicoAlvo ?PublicoAlvo;
ProGov:temLocalizacao ?Localizacao;
ProGov:temResponsavel ?Responsavel;
ProGov:temGestor ?Gestor;
ProGov:temAbrangencia ?Abrangencia;
ProGov:data ?Data;
ProGov:objEspecicos ?ObjEspecicos;
ProGov:objGerais ?ObjGerais;
ProGov:status ?Status;
foaf:name ?Nome;
ProGov:latitude ?Latitude;
ProGov:longitude ?Longitude .
ORDER BY ?type
Página de Detalhes do Órgão
Nesta página, são apresentadas as informações detalhadas do órgão. Um órgão possui
apenas um responsável, e é possível realizar a seleção deste recurso e navegar para a página
de detalhes do responsável.
São informadas a localidade e abrangência, com links para o detalhamento dos recursos,
o sítio, além das áreas cadastradas para o órgão. Ainda nessa página, uma lista com todos
os projetos sob responsabilidade desse órgão é apresentada. É possível fazer a seleção de
outro projeto, momento em que o contexto da página será armazenado na seção e a
aplicação navegará para a página de detalhamento do novo projeto.
77
Figura 4.22: Página de detalhes do projeto "Reintegração Social".
É possível, dessa forma, navegar pelas informações comuns entre as entidades, de modo
que se possa identicar os relacionamentos entre elas. Isso ocorre em todas as páginas de
detalhamento.
A consulta básica dessa tela busca todas as referências ao ID do órgão:
SELECT * WHERE
ProGov:<idOrgao> ?type ?data
.
ORDER BY ?type
78
Figura 4.23: Página de detalhes do órgão "Secretaria de Esporte do Estado de São Paulo",
em que se pode identicar a lista de projetos sob responsabilidade do órgão.
Página de Detalhes de Responsável
Nessa página, são apresentados os dados do responsável pelo projeto ou do responsável
pelo órgão. É informado o órgão para o qual o responsável trabalha, com um link para a
página de detalhes do órgão.
É apresentada uma lista com os projetos que estão sob responsabilidade do responsável.
Destaca-se que esse campo é a propriedade inversa da propriedade temResponsavel
aplicada a órgãos. Desse modo, percebe-se novamente como o uso semântico dos dados
produz relacionamentos e melhora a qualidade da informação apresentada.
Além disso, nessa tela são utilizados diversos modelos, por exemplo. rdf:type; foaf:name;
gov:holdsPost. O reuso dos modelos diminui o tempo de criação de outros modelos derivados e do sistema como um todo, além de criar padrões para o tratamento de determinada
informação, denindo-se domínio, valores possíveis, etc.
A consulta básica dessa tela busca todas as referências ao ID do responsável:
SELECT *
WHERE
ProGov:<idResponsavel> ?type ?data
79
.
ORDER BY ?type
Figura 4.24: Página de detalhes do responsável "Jorge Roberto Pagura".
Página de Detalhes da Localidade
Essa página apresenta uma lista com todos os projetos vinculados à localidade, além
dos órgãos vinculados, mesmo aqueles que não possuam projetos cadastrados.
A consulta básica segue abaixo:
SELECT DISTINCT ?ID ?Nome
WHERE
?ID ProGov:temLocalizacao ProGov:<idLocalidade>;
foaf:name ?Nome;
rdf:type ProGov:Projeto;
80
.
ORDER BY ?Nome
Figura 4.25: Página de detalhes da localidade "São Paulo"(estado)
Página de Detalhes da Abrangência
Igualmente à página de detalhes de localidade, esta página apresenta uma lista com
todos os projetos vinculados à localidade e outra lista com todos os órgãos vinculados.
81
A consulta básica segue abaixo:
SELECT DISTINCT ?ID ?Nome
WHERE
?ID ProGov:temAbrangencia ProGov:<idAbrangencia>;
foaf:name ?Nome;
rdf:type ProGov:Projeto;
.
ORDER BY ?Nome
Figura 4.26: Página de detalhes da abrangência "São Paulo"(estado)
82
Página de Detalhes da Área
Esta página contém uma lista com os projetos relacionados à área selecionada, uma
lista com os órgãos e outra com os tipos de público-alvo.
A consulta básica segue abaixo:
SELECT DISTINCT ?ID ?Nome
WHERE
?ID ProGov:temArea ProGov:<idArea>;
foaf:name ?Nome;
rdf:type ProGov:Projeto;
.
ORDER BY ?Nome
Figura 4.27: Página de detalhes da área "Sistema Penitenciário".
Página de Detalhes do Público-Alvo
Esta página contém uma lista com os projetos relacionados ao público-alvo selecionado.
A consulta básica segue abaixo:
83
SELECT DISTINCT ?Nome
WHERE
ProGov:<idPublicoAlvo> rdf:type ?Objeto;
foaf:name ?Nome .
ORDER BY ?ID
Figura 4.28: Página de detalhes do público-alvo "Presidiário".
84
Capítulo 5
Conclusão
A mobilização em prol da publicação de dados governamentais em formato aberto
ganha a cada dia mais adeptos no mundo inteiro. De meados de novembro de 2010 até
junho de 2011, cerca de 11 países aderiram a disponibilização de seus dados de Governo
em formato aberto.
Existe um esforço de proporções mundiais para discutir e promover padrões internacionais para a publicação destes dados. No Brasil, há algum tempo o escritório do consórcio
W3C promove padrões da Web Semântica e de Dados Governamentais Abertos, e agora é
possível notar o interesse e envolvimento maior de algumas agências e órgãos do Governo,
assim como de indivíduos que buscam isoladamente participar e incentivar o uso deste
novo modelo de tecnologia.
Foi observado, neste trabalho, que, predominantemente, o modelo atual de publicação
de dados governamentais ainda não é o mais adequado para o processamento automatizado. Os dados são publicados connados em documentos ou em páginas Web sem um
tratamento adequado para estruturar o tipo de informação que está sendo disponibilizada.
Desse modo, o aproveitamento dos dados em outras aplicações, quando possível, também
é predominantemente manual.
Foi criada uma ontologia, voltada para projetos de Governo, com denições de relacionamentos e propriedades de projetos. Essa ontologia possibilitou a estruturação dos
dados de forma semântica e a inferência de novas relações.
Para realizar a carga do repositório local (Sesame), foram extraídos diversos dados de
projetos de sítios de Governos brasileiros, que foram estruturados em triplas, conforme a
relação sujeito, predicado e objeto, de acordo com a ontologia, e, então, armazenados.
A partir da criação da ontologia e da instanciação dos projetos, foi possível implementar uma aplicação semântica voltada para apresentar projetos governamentais, cujos
dados estejam armazenados em um ou mais repositórios, locais ou remotos. Para tanto,
foram reutilizadas denições de outros namespaces, como foaf e DBpedia. Esses projetos
foram apresentados como mashups.
Algumas diculdades foram encontradas no decorrer do desenvolvimento deste projeto:
1 na fase de criação da ontologia, não havia padrões de dados dos projetos encontrados
nos sítios dos Governos pesquisados, o que impactou na escolha das denições criadas
para a ontologia;
85
2 ainda na fase de criação da ontologia, não houve a presença de um especialista no
domínio, papel que geralmente é desempenhado pelo gestor da informação a ser
estruturada, o que também impactou na escolha das denições da ontologia;
3 na fase de extração de dados, percebeu-se uma inconstância dos dados nas páginas
dos Governos, ou seja, links acessados na última semana estavam indisponíveis, o
que prejudicou o aproveitamentos desses dados;
4 ainda na fase de extração de dados, alguns projetos que não possuíam as informações
necessárias às denições da ontologia foram descartados. Além disso, essas informações geralmente não eram explícitas ou estavam misturadas com outros tipos de
conteúdo, como propagandas;
5 na fase de criação da aplicação, foi identicada a baixa conabilidade de informações trazidas do repositório DBpedia.
Serve como exemplo o caso do recurso
<http://dbpedia.org/resource/Brasilia>, que possui como propriedade leaderTitle
o valor Governor e como leaderName o valor PMDB. Foi feita a escolha de não
apresentar esses dados.
Com o resultado de todo o trabalho de modelagem de uma pequena parcela de dados
do Governo brasileiro, para um padrão aberto, até a codicação de uma aplicação que
apresenta estes dados, tivemos a oportunidade de experimentar o potencial da publicação
dos dados em formato aberto. Grande parte do esforço para concretização da aplicação
nal foi despendido na parte de modelagem dos dados, com a criação de ontologia e
transformação dos dados para formato RDF. Após a conversão dos dados para formato
aberto, o desenvolvimento da aplicação tornou-se muito mais simplicado, concluindo,
assim, que, se os dados estivessem disponíveis neste formato nos sítios de Governo, a
aplicação nal teria sido desenvolvida em um período de tempo bem reduzido.
Percebeu-se que a disponibilização de dados abertos possibilita o reaproveitamento
desses dados em aplicações criadas para necessidades especícas. Como as informações
relacionadas aos dados, como nome, domínio e contradomínio, já eram conhecidas, a
aplicação pôde fazer uso dos dados de forma bastante ampla, independentemente do
repositório onde estivessem armazenados.
A partir da utilização de regras de inferência, a aplicação implementada pôde melhorar
a forma de obter seus dados, ao pesquisar as instâncias pela propriedade rdf:type, ao invés
de testar a existência de relações entre as classes.
A partir das relações presentes na ontologia, a aplicação pôde usar regras de navegação
para visualizar os dados das instâncias das classes desenvolvidas. Como cada instância
era identicada por uma palavra-chave (id), a aplicação pôde recuperar as informações
relacionadas a ela de um modo bastante simples. Foi possível, também, desenvolver ltros
que possibilitaram a apresentação de diversos subconjuntos do conjunto inicial de projetos
cadastrados.
Destacam-se as principais contribuições deste trabalho:
1 a padronização de denições de propriedades e relacionamentos de algumas classes
pertinentes ao domínio de projetos governamentais, pela criação da ontologia;
2 a experimentação de benefícios da Web Semântica, tanto na visão de um usuário quanto na visão de um desenvolvedor, pela implementação de uma aplicação
semântica;
86
3 uma exploração mais completa das informações relacionadas ao domínio, em razão
de sua modelagem, o que contrasta com a situação encontrada nos sítios governamentais pesquisados.
Os seguintes trabalho futuros são sugeridos:
1 a expansão da ontologia para adicionar propriedades de projetos especícas para
cada área;
2 a criação de um módulo para cadastramento das informações de projetos governamentais. Isso permitiria que os gestores dos projetos inserissem dados estruturados
nos seus repositórios, de acordo com as denições da ontologia;
3 a criação de um módulo para permitir a participação de usuários para que eles
possam postar comentários e realizar avaliações dos projetos governamentais cadastrados.
Certamente o uso de Dados Governamentais Abertos no Brasil estimularia a produção
de aplicações avançadas tecnicamente e com funcionalidades enriquecidas para os usuários,
que experimentariam formas inovadores de visualização da grande quantidade de dados
produzida pelo Governo.
87
Referências
[1] RSS
2.0
RSS
Specication.
Board,
Março
2009.
Disponível
em:
http://www.rssboard.org/rss-specication. Acesso em: 15/01/2010. 27
[2] System documentation for Sesame. Technical report, Aduna B.V., 2010. Disponível
em: http://www.openrdf.org/doc/sesame2/system/. Acesso em: 07/04/2011.
viii,
64
[3] Javaserver
faces
(jsf )
-
Sunny
overview.
Wear,
2010.
Disponível
http://www.sunnywear.org/architecture/JavaServerFacesLecture.htm.
em:
Acesso
em:
Disponível
em:
Acesso
em:
20/05/2011. viii, 65
[4] Javaserver
pages
Oracle
overview.
Technology
Network,
http://www.oracle.com/technetwork/java/overview-138580.html.
04/05/2011. 64
[5] M.
Alonso
and
da
et
al.
Web.
Melhorando
W3C
Interest
o
Acesso
Group
ao
Note,
Governo
Maio
com
2009.
o
Me-
lhor
uso
em:
http://www.w3.org/TR/2009/NOTE-egov-improving-20090512/. Acesso em:
Disponível
25/11/2010. 20, 21
[6] W. Arms. A Spectrum of Interoperability: The Site for Science Prototype for the
NSDL. D-Lib Magazine, 8(1), Janeiro 2002. 22
[7] D.
Beckett
Mapping
World
and
Semantic
Wide
J.
Grant.
Web
Web
SWAD-Europe
Data
Consortion,
with
Janeiro
RDBMSes.
2003.
Deliverable
10.2:
W3C
Disponível
em:
http://www.w3.org/2001/sw/Europe/reports/scalable_rdbms_mapping_report/.
Acesso em: 13/03/2011. 29
[8] T. Berners-Lee.
Information Management: A Proposal.
Technical report, CERN,
1989. Março 1989, Maio 1990. 4
[9] T. Berners-Lee. Universal Resource Identiers in WWW. Technical Report RFC1630,
IETF Network Working Group, Junho 1994. 7
[10] T. Berners-Lee, J. Hendler, and O. Lassila. The Semantic Web. Scientic American,
Maio 2001. 4, 5
[11] C. Bizer, J. Lehmann, G. Kobilarov, S. Auer, C. Becker, R. Cyganiak, and S. Hellmann. Dbpedia - A Crystallization Point for the Web of Data. W3C - World Wide
Web Consortion, Maio 2009. 9, 15
88
[12] T. Bray, J. Paoli, C. M Sperberg-McQueen, E. Maler, and F. Yergeau. Extensible
Markup Language (XML) 1.0. W3C Recommendation, Novembro 2008. 7
[13] K. Breitman. Web Semântica: a Internet do Futuro. LTC, Rio de Janeiro, RJ, 2005.
11
[14] K. Breitman, M. Casanova, and W. Truszkowski. Semantic Web: Concepts, Techno-
logies and Applications. Springer-Verlag, London, UK, 2007. 4
[15] D. Brickley and R. V. Guha.
RDF Vocabulary Description Language 1.0:
RDF
W3C - World Wide Web Consortion, Fevereiro 2004. Disponível em:
Schema.
http://www.w3.org/TR/rdf-schema/. Acesso em: 17/10/2010. 6
[16] K.
Cheung,
J.
Zhao,
in
the
H.
and
Life
Frost,
A.
M.
Marshall,
Paschke.
Sciences.
A
BMC
Journey
E.
to
Prudhommeaux,
Semantic
Bioinformatics,
Web
Outubro
M.
Samwald,
Query
Federation
2009.
Disponível
em:
http://www.biomedcentral.com/1471-2105/10/S10/S10. Acesso em: 15/11/2010. 15
[17] C. Clarke.
Case Study:
A Linked Open Data Resource List Management Tool
for Undergraduate Students.
W3C - World Wide Web Consortion, Janeiro 2009.
Disponível em: http://www.w3.org/2001/sw/sweo/public/UseCases/Talis/. Acesso
em: 20/11/2010. 16
[18] R. Cyganiak and A. Jentzsch. Interlinking Methodology in The Lodd Project. HCL-
SIG, Novembro 2009. vii, 16
[19] R.
Cyganiak
and
A.
Jentzsch.
linkeddata.org,
Diagram.
Linking
Setembro
Open
2010.
Data
Cloud
Disponível
http://richard.cyganiak.de/2007/10/lod/imagemap.html. Acesso em:
em:
20/10/2010.
vii, 10
o
[20] Comitê Gestor do PAC. PAC - 10 Balanço - Janeiro a Abril de 2010, Distrito Federal.
page 5, 2010. Disponível em:
http://www.casacivil.gov.br/casa_civil/publicacoes.
Acesso em: 15/12/2010. vii, 19
[21] A. Gadelha et al.
do .gov.br.
Dimensões e Características da Web Brasileira:
um Estudo
Publicações cgi.br, http://www.cgi.br/publicacoes/pesquisas/govbr/,
Novembro 2010. Disponível em:
http://www.cgi.br/publicacoes/pesquisas/govbr/.
Acesso em: 19/12/2010. 18
[22] F. Barbosa et al. Pesquisa Sobre o Uso das Tecnologias da Informação e da Comunicação no Brasil : TIC Governo Eletrônico - 2010. Publicações cetic.br, 2010. Disponível
em: http://www.cetic.br/tic/egov/2010/index.htm. Acesso em: 10/01/2011. 1
[23] W3C OWL Working Group. OWL 2 Web Ontology Language - Document Overview.
W3C Recommendation, Outubro 2009. Disponível em: http://www.w3.org/TR/owloverview/. Acesso em: 18/10/2010. 6
[24] N. Guarino.
sources.
Some Ontological Principles for Designing Upper Level Lexical Re-
In Proc. of the First International Conference on Lexical Resources and
Evaluation, pages 527534, 1998. 6
89
[25] P. Hitzler, M. Kroetzsch, and S. Rudolph. Foundations of Semantic Web Technolo-
gies. CRC, 2009. 43
[26] J. Lacasta, J. Nogueras-Iso, and F. J. Zarazaga-Soria.
Terminological Ontologies:
Design, Management and Practical Applications, volume 9 of Semantic Web and
Beyond. Springer US, 2010. 12
[27] A. Maedche. Ontology Learning for the Semantic Web. KLuwer Academic Publishers,
Norwell, MA, 2006. 11
[28] F. Manola and E. Miller. Rdf Primer. W3C Recommendation, Fevereiro 2004. Disponível em: http://www.w3.org/TR/rdf-primer. Acesso em: 22/09/2010. 6
[29] Natalya F. Noy and Deborah L. McGuinness. Ontology Development 101: A Guide
to Creating Your First Ontology. 2001. 31
[30] Oracle. Javaserver faces technology overview. Oracle Technology Network, Disponível
em: http://www.oracle.com/technetwork/java/javaee/overview-140548.html. Acesso
em: 04/05/2011. 64
[31] M. Pirri, M. Pettenati, and D. Giuliu.
tal Libraries.
Design of a Federation Service for Digi-
Proc. Int. Conf. on Dublin Core and Metadata for e-Communities,
8(1):157162, Janeiro 2002. 21
[32] E. Prudhommeaux and A. Seaborne. Sparql Query Language for RDF. W3C Recom-
mendation, Janeiro 2008. Disponível em: http://www.w3.org/TR/rdf-sparql-query.
Acesso em: 25/10/2010. 7, 12
[33] L. Sayão and C. Marcondes. O Desao da Interoperabilidade e as Novas Perspectivas
para as Bibliotecas Digitais. TransInformação, (20(2)):133148, maio/agosto 2008.
21, 22, 23
[34] T. Segaran, C. Evans, and J. Taylor.
Programming the Semantic Web.
O'Reilly
Media, Sebastopol, CA, 2009. vii, 4, 8, 9, 13, 56
[35] J.
ces
Tauberer.
for
Open
Open
Data
Government
is
Data.
Civic
Capital:
Maio
2009.
http://razor.occams.info/pubdocs/opendataciviccapital.html.
25/11/2010. 20
90
Best
Practi-
Disponível
Acesso
em:
em:
Apêndice A
Ontologia - Código OWL
Denição de namespace.
Denição da classe Projeto e relacionamentos com as classes PublicoAlvo e Localidade.
91
Propriedades relacionadas a classe Projeto:
•
Object Property funcional :temLocalizacao
•
Object Property :temPublicoAlvo
ProjetosDeGoverno -
Subclasse de
Projeto
92
Propriedade :temGestor, associada a classe ProjetosDeGoverno, e sua propriedade
inversa :gestorDe
Subclasses de
•
.
ProjetosDeGoverno
Classe ProjetosDeGovernoEstatual
Destaque para a restrição imposta sobre a propriedade :temGestor, onde instâncias
deverão conter valores da classe OrgaoEstadual no contra-domínio da propriedade,
para pertencerem a classe ProjetosDeGovernoEstatual.
93
•
Classe ProjetosDeGovernoFederal
Destaque para a restrição imposta sobre a propriedade :temGestor, onde instâncias
deverão conter valores da classe OrgaoFederal no contra-domínio da propriedade,
para pertencerem a classe ProjetosDeGovernoFederal.
•
Classe ProjetosDeGovernoMunicipal
Destaque para a restrição imposta sobre a propriedade :temGestor, onde instâncias
deverão conter valores da classe OrgaoMunicipal no contra-domínio da propriedade,
para pertencerem a classe ProjetosDeGovernoMunicipal.
94
ProjetosPorTipo -
Subclasse de
Projeto
Exemplo de código com subclasses de ProjetosPorTipo
ProjetoDaSecretariaDeEsporte
ProjetoDoMinisterioDaEducacao
Em destaque propriedades que indicam que:
•
ProjetoDaSecretariaDeEsporte também é subclasse de ProjetoDeEsporte e ProjetoDeGovernoEstadual;
•
ProjetoDoMinisterioDaEducacao também é subclasse de ProjetoDeEducacao e ProjetoDeGovernoFederal.
As superclasses ProjetoDeEsporte, ProjetoDeGovernoEstadual, ProjetoDeEducacao
e ProjetoDeGovernoFederal mencionadas são, por sua vez, subclasses de Projetos-
PorÁrea e ProjetosDeGoverno
Restrições para valores das propriedades temGestor, temResponsavel e temArea são
denidos no código com o uso da marcação de linguagem <owl:Restriction>.
95
96
ProjetosPorÁrea -
Subclasse de
Projeto
Exemplo de código com subclasses de
ProjetosPorÁrea
ProjetoDeAgricultura
ProjetoDeSeguranca
Em destaque as restrições para cada classe, com o uso da propriedade temArea.
97
Classe
OrgaoGovernamental
Subclasses da classe
Area
Especica, em destaque, as classes Legislacao e PreSal, subclasses de Justica e Energia,
respectivamente.
98
99
Object Properties
100
101
Object Properties
com restrição funcional
102
103
Datatype Properties
104
105
106
Apêndice B
Exemplo de regra de navegação:
Implementação - Código Java
Exemplo de mapeamento de beans:
107
Hierarquia das principais classes java:
108
Denição da classe
Denição da classe
Projeto
:
.
Área
109
Denição da classe
Denição da classe
Localidade
.
.
Órgão
110
Denição da classe
Denição da classe
Público-Alvo
.
.
Pessoa
111
Denição de alguns ltros em JSF mapeados na classe
112
.
VisualizarProjeto
Denição da inicialização do mapa e da tabela de projetos, mapeada na
classe
.
VisualizarProjeto
113
Denição da classe
.
VisualizarProjeto
114
Pesquisa dos projetos a serem apresentados na classe
115
.
VisualizarProjeto
Exemplo de denição de ltro da classe
116
.
VisualizarProjeto
Exemplo de pesquisa de itens de ltro da classe
.
VisualizarProjeto
Mapeamento das informações buscadas na dbpedia para a localidade, na
classe
.
VisualizarLocalidade
117
Busca no repositório na dbpedia para a localidade, na classe
.
lidade
118
VisualizarLoca-
Exemplo de métodos úteis da classe
•
:
VisualizarProjeto
Visualizar projeto, salvar contexto do projeto e selecionar projeto
119
•
Tratamento da ativação de ltros da classe VisualizarProjeto
120
•
Restaurar contexto da classe VisualizarLocalidade
121

Documentos relacionados

Manipulação de dados abertos para construção de novas

Manipulação de dados abertos para construção de novas populares atualmente e ele permite ao usuário obter consultas acerca de todo o universo relacionado a essa indústria como os filmes lançados recentemente, os filmes clássicos, as séries de TV, as c...

Leia mais

Guia de web semÂntica

Guia de web semÂntica 5.2 As 5 Estrelas.....................................................................................72 5.3 Linked Data API............................................................................

Leia mais

dados abertos conectados

dados abertos conectados Com base nessas premissas, a equipe do Centro de Estudos sobre Tecnologias Web (Ceweb.br), do NIC.br, organizou o curso online avançado sobre publicação de dados em formato aberto1, cujo conteúdo p...

Leia mais

Publicação de Dados Ligados de Políticos Brasileiros na Web

Publicação de Dados Ligados de Políticos Brasileiros na Web O projeto Linking Open Data (LOD) tem como objetivo promover o compartilhamento livre de dados ligados na Web, através da publicação de vários data sets (conjuntos de dados) abertos e do estabeleci...

Leia mais

módulos de inferência na nuvem de dados ligados

módulos de inferência na nuvem de dados ligados efetivo quanto à aplicabilidade no mundo real. Além disso, dados de contexto devem ser representados em um formato reutilizável e interoperável que permita compartilhamento, comunicação e reuso, po...

Leia mais