Serviços Web Semânticos Baseados em RESTful - PDF
Download "Serviços Web Semânticos Baseados em RESTful"
Paulo da Cunha Ferrão
1 UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA OTÁVIO CALAÇA XAVIER Serviços Web Semânticos Baseados em RESTful Um Estudo de Caso em Redes Sociais Online Goiânia 2011
2 UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA AUTORIZAÇÃO PARA PUBLICAÇÃO DE DISSERTAÇÃO EM FORMATO ELETRÔNICO Na qualidade de titular dos direitos de autor, AUTORIZO o Instituto de Informática da Universidade Federal de Goiás UFG a reproduzir, inclusive em outro formato ou mídia e através de armazenamento permanente ou temporário, bem como a publicar na rede mundial de computadores (Internet) e na biblioteca virtual da UFG, entendendo-se os termos reproduzir e publicar conforme definições dos incisos VI e I, respectivamente, do artigo 5 o da Lei n o 9610/98 de 10/02/1998, a obra abaixo especificada, sem que me seja devido pagamento a título de direitos autorais, desde que a reprodução e/ou publicação tenham a finalidade exclusiva de uso por quem a consulta, e a título de divulgação da produção acadêmica gerada pela Universidade, a partir desta data. Título: Serviços Web Semânticos Baseados em RESTful Um Estudo de Caso em Redes Sociais Online Autor(a): Otávio Calaça Xavier Goiânia, 26 de Setembro de Otávio Calaça Xavier Autor Cedric Luiz de Carvalho Orientador
3 OTÁVIO CALAÇA XAVIER Serviços Web Semânticos Baseados em RESTful Um Estudo de Caso em Redes Sociais Online Dissertação apresentada ao Programa de Pós Graduação do Instituto de Informática da Universidade Federal de Goiás, como requisito parcial para obtenção do título de Mestre em Ciência da Computação. Área de concentração: Sistemas de Informação. Orientador: Prof. Cedric Luiz de Carvalho Goiânia 2011
4 OTÁVIO CALAÇA XAVIER Serviços Web Semânticos Baseados em RESTful Um Estudo de Caso em Redes Sociais Online Dissertação defendida no Programa de Pós Graduação do Instituto de Informática da Universidade Federal de Goiás como requisito parcial para obtenção do título de Mestre em Ciência da Computação, aprovada em 26 de Setembro de 2011, pela Banca Examinadora constituída pelos professores: Prof. Cedric Luiz de Carvalho Instituto de Informática UFG Presidente da Banca Prof. Frederico Luiz Gonçalves de Freitas Centro de Informática UFPE Prof. Ricardo Couto Antunes da Rocha Instituto de Informática UFG
5 Todos os direitos reservados. É proibida a reprodução total ou parcial do trabalho sem autorização da universidade, do autor e do orientador(a). Otávio Calaça Xavier Graduou-se em Redes de Comunicação pelo Instituto Federal de Educação, Ciência e Tecnologia de Goiás - IFG. Durante sua graduação, desenvolveu o ClasseV, uma ferramenta livre para videoconferência no Moodle, para EaD. Mestre em Ciência da Computação, com linha de pesquisa em Web Semântica, pela Universidade Federal de Goiás - UFG. Possui experiência com desenvolvimento Web desde Professor e Consultor principalmente nos seguintes temas: Inteligência Artificial, Desenvolvimento Web, Orientação a Objetos, AJAX, PHP e MVC. Ministrou palestras em mais de 20 eventos nacionais e internacionais e é entusiasta do Software Livre e da Web 2.0. Atualmente é pesquisador em Tecnologia da Informação, na Requisito Tecnologia.
6 Dedico este trabalho à minha família, em especial meus pais, Maria Vitória e Waldir, que sempre preocuparam-se com minha educação e me fizeram ser a pessoa que sou.
7 Agradecimentos A realização deste trabalho contou com a colaboração e apoio de algumas pessoas. Para estas, deixo os meus sinceros agradecimentos: Ao professor Cedric L. de Carvalho, pela orientação, conselhos, sugestões, atenção e críticas construtivas. Ao amigo chileno Jair Abú Bechir Láscar Alarcón por ter sido como um coorientador para mim e pelo desenvolvimento do Airetama. Ao pesquisador Otávio Freitas Ferreira Filho, pelo desenvolvimento da ontologia RESTfulGrounding e pela atenção em responder meus s. Ao pesquisador Thorsten Möller, principal mantenedor da OWL-S API, pelas dicas, informações, sugestões e atenção dispensados na elaboração deste trabalho. À todos os amigos e parentes que colaboraram de alguma forma para a concretização deste trabalho.
8 A coisa mais bela que podemos experimentar é o mistério. Essa é a fonte de toda a arte e ciências verdadeiras. Albert Einstein, Físico criador da teoria da relatividade e eleito, em 2009, o mais memorável físico de todos os tempos.
9 Resumo Xavier, Otávio C.. Serviços Web Semânticos Baseados em RESTful. Goiânia, p. Dissertação de Mestrado. Instituto de Informática, Universidade Federal de Goiás. As pesquisas acerca de Serviços Web Semânticos são voltadas, em sua grande maioria, à arquitetura SOAP. Esta arquitetura é pouco utilizada na Web 2.0 e, logo, em Redes Sociais Online. Este trabalho apresenta uma abordagem para implementação prática de descrição semântica em Serviços Web, baseados na arquitetura REST. Trata-se de uma arquitetura simplificada e que ganhou muito enfoque na Web 2.0, substituindo cada vez mais a arquitetura SOAP. O desenvolvimento da ferramenta, apresentada aqui, poderá preencher uma lacuna no processo de implantação da Web Semântica. As soluções existentes expõem uma visão teórica do assunto e não possuem implementações práticas. A solução proposta neste trabalho, relaciona padrões e tecnologias já existentes para o desenvolvimento de uma ferramenta livre e integrada. A partir dela, serviços de uma Rede Social Online popular são descritos. Por fim, é mostrado como realizar a descoberta, composição e invocação automatizada de tais serviços. Palavras chave Web Semântica, Redes Sociais Online, Serviços Web, Ontologias, Serviços Semânticos, RESTful.
10 Abstract Xavier, Otávio C.. Semantic Web Services based on RESTful: A Case Study in Online Social Networks.. Goiânia, p. MSc. Dissertation. Instituto de Informática, Universidade Federal de Goiás. The researches on Semantic Web Services are aimed, mostly, the SOAP architecture. This architecture is rarely used in Web 2.0 and therefore in Online Social Networks. This dissertation presents an approach for practical implementation of semantic descriptions in RESTful Web Services. It is a simplified architecture that gained much focus on Web 2.0, increasingly replacing the SOAP architecture. The development of the tool, presented here, will fill a gap in the process of implanting the Semantic Web. Existing solutions expose a theoretical view and have no practical implementations. The solution proposed in this paper, relates existing standards and technologies to develop an integrated and free tool. From which, services of a popular Online Social Network are described. Finally, the automatic discovery, composition and invocation of such services are made. Keywords Semantic Web, Online Social Networks, Web Services, Ontologies, Semantic Services, RESTful.
11 Sumário Lista de Figuras 12 Lista de Abreviaturas e Siglas 15 1 Introdução Motivação e Justificativas Objetivos Metodologia Organização da Dissertação 21 2 Web Semântica Histórico da Web Linguagens e Formatos da Web Semântica XML e JSON RDF, RDFS e OWL Microformatos Ontologias Consultas Semânticas com SPARQL Jena Sistemas Multiagentes 36 3 Serviços Web Semânticos Histórico de Serviços Web Principais Arquitetura de Serviços Web Arquitetura SOAP e WSDL Arquitetura REST Comparação entre Arquiteturas METEOR-S Descoberta de Serviços Interoperabilidade Composição Invocação WSMO Descoberta de Serviços Interoperabilidade Composição Invocação OWL-S Descoberta de Serviços 50
12 3.5.2 Interoperabilidade Composição Invocação Ontologia RESTfulGrouding Descrição Semântica de Serviços RESTful hrests MicroWSMO SA-REST Discussão Discussão em Implementação de Serviços Web Semânticos 65 4 Trabalhos Relacionados EXPRESS ReLL SEREDASj Discussão 70 5 Implementação de Serviços Semânticos Descrição Sintática de Serviços RESTful com WADL Descrição Semântica com RESTfulGrounding Implementação de Serviços Semânticos com OWL-S API Invocação Composição Descoberta Discussão 83 6 Projeto do Módulo RESTful Para OWL-S API Levantamento de Requisitos Requisitos Funcionais Requisitos Não Funcionais Construção da Modelagem e Arquitetura Arquitetura Modelagem Desenvolvimento do Módulo Exemplo de Utilização Discussão Descrevendo Semanticamente APIs de Redes Sociais Online Redes Sociais Online Histórico O Arcabouço Airetama Descrição Sintática e Semântica de um Recurso da API do Facebook Transformação de Representações em JSON para Formatos Semânticos Descrição e Requisição de Outros Recursos Realizando Consultas Semânticas em Dados Extraídos do Facebook 115
13 8 Considerações Finais Contribuições Limitações e Trabalhos Futuros 119 Referências Bibliográficas 120 A Aplicações Sociais 128 A.1 APIs das Principais Redes Sociais Online 130
14 Lista de Figuras 2.1 (a) e (b) representam os mesmos conceitos. Entretanto, (a) é mais expressiva por ser uma rede semântica. 27 (a) Exemplo de Rede Semântica 27 (b) Exemplo de grafo conceitual convencional Grafo do conceito de tripla, presente na RDF Exemplo de documento RDF em notação N-TRIPLES Exemplo de documento RDF em notação N-TRIPLES, utilizando QNames Exemplo de documento RDF em notação Turtle/N3, utilizando QNames Exemplo de documento RDF em notação RDF/XML Exemplo de documento RDF em notação RDF/JSON Exemplo de utilização de OWL para implementação de restrições Exemplo de microformato para descrição pessoal (hcard) Exemplo de consulta em RDF com SPARQL Exemplo de inserção em RDF com SPARQL/Update Classes principais da ontologia WSMO, e seus relacionamentos Classe Service da ontologia WSMO, e seus relacionamentos Classe Interface da ontologia WSMO, e seus relacionamentos Estrutura da ontologia Service presente na OWL-S Classe Profile da ontologia de mesmo nome, e seus relacionamentos, na OWL-S Classe Process da ontologia de mesmo nome, e seus relacionamentos, na OWL-S Service model do hrests, implementado em RDFS/N Exemplo de descrição de um serviço Web RESTful em HTML Exemplo de Utilização de hrests em HTML Exemplo de RDF em notação N3, extraido da implementação de hrests da Figura Implementação de MicroWSMO em hrests, de acordo com a Figura RDF extraido do exemplo de MicroWSMO apresentado na Figura Implementação da primeira versão do SA-REST Implementação da segunda proposta apresentada para o SA-REST, utilizando RDFa Implementação da última proposta apresentada para o SA-REST, utilizando POSHformat Service model para SA-REST Exemplo de arquivo WADL para o serviço de busca de notícias do Yahoo! [51]. 72
15 5.2 Diagrama com principais elementos do padrão WADL e seus relacionamentos Diagrama com principais classes e propriedades da ontologia RESTful- Grounding Relação entre o padrão WADL e a ontologia OWL-S RESTfulGrounding Fragmento do código OWL para ontologia que descreve semanticamente o serviço de busca de notícias do Yahoo! (adaptado de [41]) Exemplo de código Java para requisição e execução de um serviço semântico através da OWL-S API Exemplo de ontologia que descreve um processo composto na OWL-S Exemplo de código Java para criar processo composto com a OWL-S API Exemplo de consulta SPARQL para descoberta de serviços descritos semanticamente em OWL-S Arquitetura do Módulo RESTful para OWL-S API Diagrama de Sequência para requisição de ontologias que descrevem serviços Diagrama de Sequência para descoberta, fundamentação e invocação de serviços RESTful Diagrama de Classes da parte de fundamentação do Módulo RESTful para a OWL-S API Diagrama de Classes para invocação do serviço RESTful Versão simplificada do código fonte da classe OWLSRestful Classe WADLAtomicGroundingImpl com seus métodos principais Versão simplificada do código fonte do método registerconverters da classe WADLGroundingProviderImpl Interface WADLGroundingProvider Classe WADLParameter Classe WADLApplication Classe WADLResource Interface WADLRequest Arquitetura em camadas do Módulo desenvolvido Exemplo de código Java para requisição e execução de um Serviço Semântico através da OWL-S API, utilizando o Módulo RESTful Exemplo de código Java para realização da descoberta de Serviços Semânticos RESTful através da OWL-S API, utilizando o Módulo RESTful Fragmento da representação do recurso requisitado nos testes Linha do tempo do surgimento dos principais sites de rede social até [19] Arquitetura do Arcabouço Airetama [1] Partes da definição da ontologia FBUserResource com classe FBUser Exemplo de representação de um usuário do Facebook em JSON Documento XML correspondente ao exemplo na Figura 7.4, transformado através da JSON API Parte do documento XSLT para transformação do XML da Figura 7.5 em RDF/XML. 111
16 7.7 Representação em RDF de um usuário do Facebook requisitado em JSON, conforme Figura Processo de Transformação de Representação em JSON para Triplas RDF Nova classe TransformationFileMap para a ontologia RESTfulGrounding e seu relacionamento com WadlMessageParamMap Trecho de código RDF/XML que representa o relacionamento entre amigos com FOAF Trecho de código RDF/XML que representa um tópico de interesse de um usuário Exemplo de Tela do Facebook para Requisição de Autorização de Acesso Consulta SPARQL que retorna o número de coisas em comum entre dois usuários À esqueda, um grafo com os relacionamentos entre pessoas e seus interesses. À direita, uma tabela com o resultado da SPARQL (Figura 7.13) aplicada no grafo. 116 A.1 Requisitando Lista de Amigos do Facebook com JavaScript SDK 132 A.2 Exemplo de uso da FQL na API do Facebook. 132 A.3 Exemplo de uso da biblioteca Twitter4J para acesso à API do Twitter. 133 A.4 Exemplo de URI, no Flickr, para o método flickr.photos.search. 134 A.5 Sintaxe de URI para requisição de fotos do Flickr. 134 A.6 Exemplo de tag do XML de retorno e URI para foto. 135 A.7 Exemplo de aplicação básica em OpenSocial. 135
17 Lista de Abreviaturas e Siglas API - Application Programming Interface BPEL4WS - Business Process Execution Language for Web Services CERN - Conseil Européen pour la Recherche Nucléaire (Organização Europeia para a Pesquisa Nuclear) DAML - DARPA Agent Markup Language EXPRESS - EXPressing REstful Semantic Services FBML - FaceBook Markup Language FOAF - The Friend of a Friend FQL - Facebook Query Language GRDDL - Gleaning Resource Descriptions from Dialects of Languages hrests - HTML for RESTful Services HTML - HyperText Markup Language HTTP - Hypertext Transfer Protocol HTTPS - Hypertext Transfer Protocol Secure IETF - Internet Engineering Task Force IOPE - Inputs, Outputs, Preconditions and Effects JADE - Java Agent DEvelopment Framework JAX-RS - Java API for RESTful Web Services JAXB - Java Architecture for XML Binding JPEG - Joint Photographic Experts Group JSON - JavaScript Object Notation LSDIS - Large Scale Distributed Information Systems MD5 - Message-Digest Algorithm 5 METEOR-S - Managing End-To-End OpeRations Services MIME - Multipurpose Internet Mail Extensions MWSDI - METEOR-S Web Services Discovery Infrastructure NCSA - National Center for Supercomputing Applications OIL - Ontology Inference Layer OWL - Web Ontology Language OWL-S - Web Ontology Language for Services
18 16 PDF - Portable Document Format PHP - PHP: Hypertext Preprocessor RDF - Resource Description Framework RDFa - RDF in attributes RDFS - RDF Schema ReLL - Resource Linking Language REST - Representational State Transfer RPC - Remote Procedure Call SA-REST - Semantic Annotation of Web Resources SAWSDL - Semantic Annotations for WSDL SDK - Software Development Kit SEREDASj - Semantic REstful DAta Services with JSON SGML - Standard Generalized Markup Language SHOE - Simple HTML Ontology Extensions SIOC - Semantically-Interlinked Online Communities SOA - Service-Oriented Architecture SOAP - Simple Object Access Protocol SPARQL - SPARQL Protocol and RDF Query Language SQL - Structured Query Language SWS - Semantic Web Services UDDI - Universal Description, Discovery and Integration UFG - Universidade Federal de Goiás UIUC - Universidade de Illinois em Urbana e Champaign URI - Uniform Resource Identifier URL - Uniform Resource Locator USP - Universidade de São Paulo W3C - World Wide Web Consortium WADL - Web Application Description Language WSDL - Web Services Description Language WSDL-S - Web Services Description Language with Semantics WSMO - Web Service Modeling Ontology WWW - World Wide Web XHTML - extensible HyperText Markup Language XML - extensible Markup Language XOL - XML-based Ontology-exchange Language XSD - XML Schema Definition XSL - extensible Stylesheet Language XSLT - extensible Stylesheet Language for Transformation
19 Introdução CAPÍTULO 1 A Web foi construída com o objetivo de ser um mecanismo para indexação e relacionamento entre documentos. Desta forma, possuía o propósito de funcionar como uma ferramenta em que pessoas de todo o mundo pudessem compartilhar documentos, de forma independente de tipos de máquinas ou sistemas [12]. Notoriamente, a Web tornouse algo maior que a proposta inicial. Ela tem sido um importante meio de comunicação e a principal fonte de informação da última década. A linha evolutiva da Web pode ser dividida em três gerações, marcadas por evoluções conceituais e não tanto tecnológicas. A primeira fase da Web (chamada de Web 1.0 ou Web Sintática) trata-se da versão proposta inicialmente por seu idealizador, Tim Berners-Lee. Os documentos eram indexados, endereçados e acessados de qualquer computador ligado à Internet a partir de um navegador. Entretanto, não havia interação entre os usuários. Existiam dois tipos de usuários, os escritores, que disponibilizavam os documentos, e os leitores, estes apenas liam o conteúdo disponibilizado. Com o crescimento do número de documentos e usuários, tornou-se cada vez mais necessária a possibilidade de interação entre eles. Com isso, a Web iniciou uma nova geração. A Web Social é a segunda geração da Web (também chamada de Web 2.0). Nesta geração, a Web não disponibilizava apenas documentos e sim aplicações. Utilizando as mesmas tecnologias da Web Sintática, os documentos ganharam cada vez mais funcionalidades e passaram a ser considerados serviços ou aplicações. Nesta geração, o enfoque não é mais em documentos mas, em pessoas. Ela possui os princípios de garantir a interatividade e a colaboração entre usuários. Neste contexto surgiram as Redes Sociais Online, entre outros serviços sociais. Com as vantagens propostas inicialmente pela Web Sintática (independência de sistemas e endereçabilidade) e a característica social, esta geração da Web transformou-a em um importante meio de comunicação. O crescimento da Web, como um meio de comunicação em que todos os usuários podem gerar e consumir informações, levou à necessidade cada vez maior da utilização de Serviços Web. As Redes Sociais Online começaram a disponibilizar Serviços Web que fornecem suas funcionalidades para outras aplicações. Entretanto, a arquitetura utilizada pelos serviços da Web Social difere daquela consolidada na primeira geração da Web.
20 1.1 Motivação e Justificativas 18 Trata-se de uma arquitetura simplificada e baseada em recursos, chamada REST 1 [40]. Com os Serviços Web, as Redes Sociais Online possibilitaram a construção de Aplicações Sociais. Trata-se de aplicações com enfoque no relacionamento e colaboração entre pessoas. Concomitante à popularização da Web Social, uma nova abordagem começou a ser conceitualizada. Trata-se da terceira geração da Web, a Web Semântica. Esta geração propõe que os dados e documentos presentes na Web sejam descritos semanticamente, e não apenas sintaticamente. Com isso, os relacionamentos semânticos entre os recursos da Web possibilitariam uma série de novas possibilidades. Uma vez que os dados estejam descritos de forma semântica, eles poderão ser interpretados através de processos automatizados. Com os dados contextualizados, torna-se possível a realização de inferências acerca do que é cada recurso e como ele pode interagir com outros recursos da Web. Logo, os recursos não seriam apenas documentos mas, a representação de qualquer entidade do mundo real (pessoas, musicas e organizações, por exemplo). 1.1 Motivação e Justificativas A Web, em seus dias atuais, vivencia a sua segunda geração. Um dos principais adventos dessa geração (a Web Social), foram as Redes Sociais Online. Elas garantem interação e colaboracionismo contínuo entre seus usuários. Por si só, uma Rede Social Online não fornece conteúdo algum. Todo o conteúdo é criado e manipulado pelos seus usuários. Com isso, as Redes Sociais Online são grandes fontes de informações sobre o que as pessoas procuram e desejam saber. Tais informações podem ser sociais, como a situação e notícias sobre uma determinada pessoa. Também podem ser de âmbito educacional, como manuais, apostilas, tutoriais, aulas e comentários acerca de um determinado tema. Podem ser científicas, como discussões e proposições de comunidades acadêmicas, e de muitos outros propósitos. A grande massa de dados e informações geradas em Redes Sociais Online têm tornado-se cada vez mais difícil de ser gerenciada. É um desafio, na geração atual da Web, garantir que a informação adequada chegue ao destino correto. Entretanto, esta geração da Web possui alguns problemas, como a baixa precisão nas buscas. Ferramentas de busca não interagem entre si, mas apenas exibem uma possível localização de onde encontrar a informação procurada. As buscas são baseadas em palavras chaves e dependem do vocabulário utilizado. Esses problemas ocorrem porque os dados, na Web atual, estão descritos apenas sintaticamente. O significado do conteúdo não é acessível por máquinas. 1 Representational State Transfer - Transferência de Estado Representacional
21 1.1 Motivação e Justificativas 19 A Web Semântica visa sanar estes problemas, descrevendo os dados de maneira que o computador consiga interpretar. Descrever os dados semanticamente é apenas uma etapa para solução dos problemas de requisição da informação apontados. Mesmo que todos os dados estejam descritos semanticamente, se eles não forem acessíveis pelo mecanismo de busca, de nada adiantará. Nesse contexto, são utilizados os Serviços Web. Um Serviço Web é uma aplicação que consegue receber requisições Web de outras aplicações, e gerar respostas que possam ser interpretadas por elas. Serviços Web podem ser considerados uma poderosa ferramenta de integração entre diferentes aplicações e ferramentas. Entretanto, os Serviços Web, como são implementados, não garantem a interação automatizada entre aplicações Web. Uma aplicação, ao disponibilizar um Serviço Web, fornece apenas sua descrição sintática. Novamente, é gerado o problema da incapacidade da interpretação de tais serviços por máquinas. Logo, uma aplicação que necessite de tal serviço, deverá ser adaptada para consumi-lo. Notoriamente, essa adaptação não é automatizada e deverá ser realizada por uma pessoa. Uma proposta para automatização da descoberta e invocação de serviços Web é descrevê-los semanticamente. Uma vez que os serviços Web estejam descritos semanticamente, torna-se possível, para máquinas, a interpretação de suas funcionalidades. Esta característica permite às aplicações identificarem automaticamente os serviços Web mais adequados em um determinado processo. Em Redes Sociais Online os Serviços Web são utilizados para muitos outros propósitos além da realização de buscas. Elas também os utilizam para disponibilizar a manipulação dos dados dos usuários e para criação de Aplicações Sociais. Tais aplicações utilizam uma Rede Social Online como plataforma. Fornecer a descrição semântica de tais serviços permitirá novas possibilidades para tais aplicações. A integração entre Redes Sociais Online e a otimização em buscas são algumas delas. Entretanto, as Redes Sociais Online utilizam uma nova arquitetura de Serviços Web, a arquitetura REST [89]. Esta arquitetura é orientada a recursos e baseada no funcionamento da Web, garantindo vantagens para aplicações interativas como Redes Sociais Online. A utilização da arquitetura REST, em Serviços Web de Redes Sociais Online, gera um novo desafio. As pesquisas em Serviços Web Semânticos tem sido maiores na arquitetura já consolidada na primeira geração da Web. Trata-se da arquitetura orientada ao serviço, utilizando SOAP 2 e WSDL 3 [50]. Logo, existem poucas soluções para a abordagem voltada às Redes Sociais Online. O presente trabalho tem como principal motivação diminuir a carência de soluções para descrição de Serviços Semânticos na 2 Simple Object Access Protocol - Protocolo Simples de Acesso a Objetos 3 Web Services Description Language - Linguagem de Descrição de Serviços Web
22 1.2 Objetivos 20 arquitetura REST. Com a construção de uma solução para tal arquitetura, será possível garantir as vantagens da descrição semântica de Serviços Web em Redes Sociais Online, já mencionadas. 1.2 Objetivos O principal objetivo deste trabalho é garantir a descoberta, invocação e composição automatizadas de Serviços Web em arquitetura REST, através da implementação de descrição semântica nestes serviços, tendo como caso de uso Redes Sociais Online. Para atingir este objetivo, é prioritária a utilização de padrões preestabelecidos e formalizados pelas entidades competentes. São focos adicionais deste trabalho, transformar os dados disponibilizados por Redes Sociais Online em conceitos semânticos e utilizar sistemas multiagentes, visando um maior paralelismo e escalabilidade do processo. Por fim, para validar o projeto desenvolvido, consultas semânticas devem ser realizadas nos dados obtidos de uma Rede Social Online de maneira automatizada. Para atingir o objetivo principal, os seguintes objetivos específicos foram realizados: Apresentar uma visão geral sobre Web Semântica, Redes Sociais Online e Serviços Web, descrevendo as principais tecnologias e conceitos presentes nessas áreas do conhecimento. Realizar uma comparação entre diferentes arquiteturas de Serviços Web, apontando vantagens e desvantagens de cada arquitetura, expondo os pontos fortes na utilização da arquitetura REST em Redes Sociais Online. Apresentar as metodologias disponíveis para a construção de Serviços Web Semânticos, identificando o estado da arte para a descrição Semântica de Serviços Web, especificamente seguindo a arquitetura REST. Definir uma abordagem para implementação de Serviços Web Semânticos na arquitetura REST. Tal abordagem deverá utilizar padrões já estabelecidos para descrição semântica de serviços Web em outas arquiteturas. Adicionalmente, poderá ser investigada a possibilidade de integração entre serviços de diferentes arquiteturas. Projetar e desenvolver uma ferramenta que permita a implementação de serviços semânticos na arquitetura REST. Esta ferramenta deverá utilizar ferramentas previamente desenvolvidas e conceitos preestabelecidos, evitando retrabalho. Utilizar a ferramenta desenvolvida para descoberta e invocação de Serviços Web em Redes Sociais Online. Viabilizar mecanismos de conversão entre os dados disponibilizados por Redes Sociais Online em formatos semânticos, propiciando consultas semânticas em dados de Redes Sociais Online.
23 1.3 Metodologia Metodologia A metodologia para realização deste projeto compreendeu as seguintes etapas: Estudo e Fundamentação Teórica. Nesta etapa foi realizada a pesquisa acerca dos fundamentos teóricos do trabalho. Foram estudadas as três áreas do conhecimento em que este trabalho está submetido: Redes Sociais Online, Serviços Web e Web Semântica. Com isso, foram selecionadas as referências bibliográficas para obtenção de informações correlatas à pesquisa. Pesquisa Acerca de Serviços Semânticos. Esta etapa completa o estudo teórico realizado na primeira etapa. Os conceitos estudados naquela etapa são utilizados para o estudo específico acerca de Serviços Web Semânticos. Estado da Arte e Análise de Trabalhos Correlatos. Nessa etapa, foi feito um estudo acerca do estado da arte para descrição Semântica de serviços Web seguindo a arquitetura REST. Foram levantados alguns trabalhos com objetivos semelhantes ao desta pesquisa. Implementação de Descrição Sintática e Semântica. Nesta etapa, foi realizada a implementação da descrição sintática em serviços Web da arquitetura REST, com padrões estabelecidos pelas entidades competentes. Em seguida, foi realizada a descrição semântica de serviços Web convencionais, seguindo os padrões já formalizados para tal arquitetura. Também foi estudada uma solução teórica para a descrição semântica de Serviços Web na arquitetura REST. Projeto e Desenvolvimento. Nesta etapa, foi projetada e desenvolvida uma ferramenta para implementação de Serviços Web Semânticos na arquitetura REST. Foram utilizados os formatos já preestabelecidos para outras arquiteturas. Implementação em Redes Sociais Online. Nesta etapa, foi realizada uma implementação de Serviços Web Semânticos em uma Rede Social Online. Para isso, foi utilizada a ferramenta desenvolvida na etapa anterior. Documentação. Esta etapa consiste na documentação de todas as etapas e tem como produto esta dissertação. 1.4 Organização da Dissertação Este trabalho encontra-se organizado em 7 capítulos, além desta introdução. O Capítulo 2 destina-se a apresentar os fundamentos teóricos acerca da Web Semântica. Para isso, é realizado um histórico da Web. São expostos os principais conceitos e tecnologias da Web Semântica, como ontologias e sistemas multiagentes. Tecnologias como XML, JSON, RDF, OWL e SPARQL também são abordadas.