Baixe o app para aproveitar ainda mais
Prévia do material em texto
Brasília-DF. Descoberta De conhecimento com big Data analytics Elaboração Bruno Iran Ferreira Maciel Produção Equipe Técnica de Avaliação, Revisão Linguística e Editoração Sumário APrESEntAção ................................................................................................................................. 5 orgAnizAção do CAdErno dE EStudoS E PESquiSA .................................................................... 6 introdução.................................................................................................................................... 8 unidAdE i INTRODUÇÃO ..................................................................................................................................... 11 CAPítulo 1 VIsÃO GeRal ......................................................................................................................... 11 unidAdE ii aNálIse De DaDOs e Web ................................................................................................................... 14 CAPítulo 1 Web semâNTIca .................................................................................................................... 14 CAPítulo 2 TécNIcas De exTRaÇÃO De DaDOs ...................................................................................... 38 CAPítulo 3 aPIs e ReDes sOcIaIs ............................................................................................................ 44 CAPítulo 4 mINeRaÇÃO De OPINIÃO/aNálIse De seNTImeNTO ................................................................ 51 unidAdE iii VIsUalIzaÇÃO De DaDOs e bIG DaTa sTORyTellING ........................................................................... 56 CAPítulo 1 VIsUalIzaÇÃO De DaDOs ...................................................................................................... 56 CAPítulo 2 bIG DaTa e sTORyTellING ...................................................................................................... 83 unidAdE iV RecURsOs PaRa aNálIse De DaDOs ................................................................................................... 92 CAPítulo 1 PRINcIPaIs feRRameNTas ...................................................................................................... 93 CAPítulo 2 lINGUaGeNs De PROGRamaÇÃO ......................................................................................... 98 CAPítulo 3 esTUDO De casO PRáTIcO .................................................................................................. 103 rEfErênCiAS ................................................................................................................................ 119 5 Apresentação Caro aluno A proposta editorial deste Caderno de Estudos e Pesquisa reúne elementos que se entendem necessários para o desenvolvimento do estudo com segurança e qualidade. Caracteriza-se pela atualidade, dinâmica e pertinência de seu conteúdo, bem como pela interatividade e modernidade de sua estrutura formal, adequadas à metodologia da Educação a Distância – EaD. Pretende-se, com este material, levá-lo à reflexão e à compreensão da pluralidade dos conhecimentos a serem oferecidos, possibilitando-lhe ampliar conceitos específicos da área e atuar de forma competente e conscienciosa, como convém ao profissional que busca a formação continuada para vencer os desafios que a evolução científico-tecnológica impõe ao mundo contemporâneo. Elaborou-se a presente publicação com a intenção de torná-la subsídio valioso, de modo a facilitar sua caminhada na trajetória a ser percorrida tanto na vida pessoal quanto na profissional. Utilize-a como instrumento para seu sucesso na carreira. Conselho Editorial 6 organização do Caderno de Estudos e Pesquisa Para facilitar seu estudo, os conteúdos são organizados em unidades, subdivididas em capítulos, de forma didática, objetiva e coerente. Eles serão abordados por meio de textos básicos, com questões para reflexão, entre outros recursos editoriais que visam tornar sua leitura mais agradável. Ao final, serão indicadas, também, fontes de consulta para aprofundar seus estudos com leituras e pesquisas complementares. A seguir, apresentamos uma breve descrição dos ícones utilizados na organização dos Cadernos de Estudos e Pesquisa. Provocação Textos que buscam instigar o aluno a refletir sobre determinado assunto antes mesmo de iniciar sua leitura ou após algum trecho pertinente para o autor conteudista. Para refletir Questões inseridas no decorrer do estudo a fim de que o aluno faça uma pausa e reflita sobre o conteúdo estudado ou temas que o ajudem em seu raciocínio. É importante que ele verifique seus conhecimentos, suas experiências e seus sentimentos. As reflexões são o ponto de partida para a construção de suas conclusões. Sugestão de estudo complementar Sugestões de leituras adicionais, filmes e sites para aprofundamento do estudo, discussões em fóruns ou encontros presenciais quando for o caso. Atenção Chamadas para alertar detalhes/tópicos importantes que contribuam para a síntese/conclusão do assunto abordado. 7 Saiba mais Informações complementares para elucidar a construção das sínteses/conclusões sobre o assunto abordado. Sintetizando Trecho que busca resumir informações relevantes do conteúdo, facilitando o entendimento pelo aluno sobre trechos mais complexos. Para (não) finalizar Texto integrador, ao final do módulo, que motiva o aluno a continuar a aprendizagem ou estimula ponderações complementares sobre o módulo estudado. 8 introdução A informação é algo vital para o mundo dos negócios, tornou-se matéria-prima para ganho de mercado (competitividade) entre as empresas, independente do número de funcionários ou faturamento. Cada vez mais, as instituições procuram adotar estratégias de ganho que se baseiam em informações, visando reduzir erros na tomada de decisões por parte dos gestores. Os avanços tecnológicos facilitaram a obtenção dessas informações por meio de processos de descoberta de conhecimento, principalmente em banco de dados com elevado número de registros. Esse processo procura por padrões e tendências analisando conjuntos de dados, e, tem como principal fase o processo de mineração, no qual são executadas técnicas de análise, produzindo como resultado relações de particularidades entre os padrões. O volume de dados cresceu rapidamente com o passar dos anos, exigindo que gestores busquem mais informações e desenvolvam habilidades para lidar com grandes volumes de dados. Dessa maneira, o valor de uma ótima decisão estratégica para o negócio em questão é dependente das informações, experiência e habilidades que dispõe o gestor, de tal forma que ele seja capaz de obtê-las, interpretá-las e associá-las de maneira adequada à necessidade do negócio. Entretanto, ainda é carente o número de profissionais que atendem a essas necessidades de negócios e vislumbram essa realidade, formando uma lacuna de negócios (VASKYS, 2012). Para que seja possível entender melhor o processo de descoberta de conhecimento com Big Data é necessário compreender os conceitos de envolvidos na descoberta de conhecimento e Big Data. Em suma, com essas informações será possível compreender e avaliar se o suporte à tomada de decisão no contexto tradicional atende às necessidades de um tomador de decisão no contexto do Big Data, bem como avaliar os impactos da mudança de paradigma para tomada de decisão. No momento em que as organizações começam a juntar, usar e reutilizar informações, de acordo com suas metas, a capacidade delas aumenta na perspectiva de conseguir analisar e descobrir o sentido dessas informações. Portanto, essas organizações podem melhor e mais rapidamente responder as necessidades de mercado, fazendo com que seja possível manter sua posição de liderança ou reinventando-se, de tal forma que seja possível melhorar sua posição em relaçãoaos concorrentes. Dessa forma, essas organizações poderão interagir melhor com seus clientes e explorar novas oportunidades de investimento e crescimento. 9 objetivos O objetivo geral é apresentar os conceitos e noções básicas para descoberta de conhecimento com Big Data. A finalidade principal do trabalho é desdobrada em objetivos específicos - metas menores, que facilitam a manutenção do foco do material. Os objetivos específicos são desdobrados a seguir: » Web Semântica. › Técnicas de Extração de Dados. › APIs para Mineração de Dados. › Análise de Sentimentos. › Visualização de Dados. › Big Data e Storytelling. › Recursos para Análise de Dados. 10 11 unidAdE iintrodução CAPítulo 1 Visão geral As evoluções dos meios computacionais juntamente com os preços, proporcionaram o aumento da capacidade de processamento, armazenamento e conectividade provocando um crescimento exponencial no volume de informação. Estima-se que até 2020, o volume de informação, em nível mundial, cresça em 35 trilhões de gigabytes (GANTZ, 2010). A maior parte destas informações produzidas encontra-se em formato textual (RÊGO, 2013). Este cenário promove desafios quanto à coleta, armazenamento, recuperação e análise de informação não estruturada a ponto de gerar conhecimento, com o intuito de servir como uma fonte de vantagem competitiva para as organizações. Para suprir as necessidades, tornam-se necessários modelos, processos, metodologias, entre outros, para identificar e reaproveitar conhecimentos. Entre estes, encontramos o processo de Descoberta de Conhecimento em Texto (KDT, do inglês, Knowledge Discovery in Text) entendido como uma versão da Descoberta de Conhecimento em Bases de Dados (KDD, do inglês, Knowledge Discovery in Database) voltada à manipulação de informação não estruturada. Este processo tem como objetivo desvendar padrões e tendências, classificando e comparando os mais variados documentos. A mineração de dados (do inglês, Data Mining) surgiu da intersecção de duas grandes áreas: estatística e inteligência artificial, sendo a primeira a mais antiga delas. É importante lembrar que o Data Mining está contido dentro do processo de descoberta de conhecimento, permitindo a extração de conhecimento previamente desconhecido e potencialmente útil. O processo de descoberta do conhecimento constitui de várias etapas, que são executadas de forma dependente ou independente. São dependentes porque envolve o resultado de outras análises de dados, cujo resultado necessita de algum especialista do domínio para orientar a execução do processo ou necessita de outros conjuntos de dados ou de 12 UNIDADE I │ INTRODUÇÃO outras análises. Por sua vez, independente, quando o processo é executado de forma sequencial, autônomo, pode até envolver repetidas seleções de parâmetros e posterior análise dos resultados obtidos, a fim de refinar os conhecimentos extraídos. É importante deixar claro que cada técnica de Data Mining contribui para conduzir as operações de modo a adaptá-las da melhor maneira para alguns problemas do que a outros, deixando evidente que não existe um método de Data Mining globalmente melhor. Para cada particularidade de problema, tem-se uma técnica ou conjunto de técnicas que podem ser melhor empregadas em várias situações. Portanto, o sucesso de uma tarefa de Data Mining está atribuído também à experiência e à intuição do analista. Devido o grande valor, no qual pode ser explorado, torna-se essencial o desenvolvimento de modelos embasados em técnicas que possibilitem simplificar o processo de descoberta de padrões em bases dessa natureza. As principais técnicas encontradas na literatura são Correlação e Associação. A Correlação determina o grau de relação entre duas variáveis, enquanto que a Associação se encarrega de evidenciar relacionamentos indiretos, procurando explicitar conexões potencialmente úteis entre os termos. A fim de descobrir padrões ocultos em grandes coleções de dados que estejam disponíveis no meio da Web ou em organizações ao mesmo passo que os envolvidos em um determinado período temporal, o desenvolvimento deste material se dá por meio da motivação para prover conceitos e definições para os desafios de produzir conhecimento útil ao processo de tomada de decisão pelas organizações com base em Big Data. Principais conceitos, técnicas e algoritmos provenientes de diferentes áreas que promovam suporte à Descoberta de Conhecimento são fundamentais para o desenvolvimento de sistemas capazes de lidar com tais demandas. O processo de descoberta de conhecimento em Big Data compreende as etapas de seleção dos dados, transformações, pré-processamento que adequa os dados aos algoritmos, mineração com uso de técnicas geralmente baseadas na Inteligência Artificial ou Estatística, validação dos resultados e a análise e interpretação dos resultados para aquisição do conhecimento. O principal objetivo deste processo é a tradução de dados brutos em informações relevantes para posterior utilização e descoberta. De acordo com Figueira (1998), pode-se dividir as etapas da KDD da seguinte forma: » Seleção: é a etapa de agrupamento (organização) dos dados. » Pré-processamento: são realizadas adequações aos dados. Ao final do processo, devem possuir o formato correto e não apresentar duplicidade, além de outras checagens. 13 INTRODUÇÃO │ UNIDADE I » Transformação: é responsável por converter caracteres e armazenar os dados de forma a facilitar o uso das técnicas de Data Mining. » Data Mining: principal atividade da descoberta de conhecimento, na qual são aplicados algoritmos de descoberta de padrões. » Interpretação e avaliação: consiste em interpretar os dados gerados e verificar se possuem alguma importância/validade para o problema. 14 unidAdE iiAnáliSE dE dAdoS E WEb CAPítulo 1 Web Semântica A pluralidade de padrões adotados para compartilhamento de dados não estruturados implica em novas demandas de soluções, pois dificulta a interoperabilidade e interpretação automática dos dados, principalmente pela falta de expressividade e/ou documentação, de tal forma que os impactos podem ser observados no domínio da recuperação da informação. Os modos de organizar e extrair dados estão relacionados às tecnologias em uso (dependem da fonte de dados), de forma que a constante evolução das tecnologias e avanços na quantidade de dados disponíveis, principalmente no meio digital, vem produzindo um estágio em que os modelos clássicos de organização e recuperação de informações precisam ser pensados sob diferentes perspectivas. Como resposta destas novas demandas, o ambiente digital passou a requerer métodos mais eficientes, principalmente no que diz respeito à maneira de representação e organização de recursos. Neste contexto, encontra-se a Web Semântica, título genérico que representa várias frentes de estudos e pesquisas, mas possui como principal objetivo, apresentar avanços para potencializar e melhorar o aproveitamento do ambiente Web, a partir do desenvolvimento de meios de organização de conjuntos de informação e instrumentos capazes de aumentar a representatividade da informação. Nesse pensamento, este capítulo apresenta elementos da literatura sobre os conceitos e tecnologias existentes na Web Semântica, procurando identificar sua fundamentação teórica a partir da apresentação dos conceitos necessários para sua existência, contextualizando as ontologias como uma das principais formas de modelagem semântica de coisas e conceitos, assim como também descrevendo as principais linguagens e notações de documentos recomendadas pelo World Wide Web Consortium (W3C) (W3C, 2018). 15 Análise de dAdos e Web │ UnidAde ii definições Em outubro de 1994, no Massachusetts Institute of Technology (MIT) (MIT, 2018), foi fundado o W3C, um consórcio mundial liderado por Tim Berners-Lee (considerado o pai da Web) que conseguiu aproximar instituições acadêmicas, cientistas, empresase profissionais liberais com o intuito de padronizar novas tecnologias que possibilitem expandir gradualmente os recursos do ambiente Web. Dessa forma, a partir dessa aproximação e de pesquisadores parceiros ao W3C, em meados de 1998 começaram a formalizarem-se pesquisas relacionadas ao desenvolvimento de uma nova Web, com o objetivo de proporcionar a incorporação de ligações semânticas aos recursos informacionais, de modo que os computadores fossem capazes de “compreendê-las”. “Machine understandable information” (Informação compreensível por máquina - ao invés de pensar na informação para os humanos, a ideia é pensar na máquina), esta expressão feita por Berners-Lee (1998) alavancou os primeiros estudos em direção a Web Semântica também conhecida como “Web dos dados”. De acordo com Berners-Lee et al. (2001), o primeiro passo para o desenvolvimento da Web Semântica foi a inclusão de dados em um formato que os sistemas computacionais possam compreender de forma direta ou indireta. A expressão “Web Semântica” inicialmente foi disseminada como algo genérico que representa vários trabalhos de pesquisas que têm como principal objetivo alcançar um melhor aproveitamento do ambiente Web por meio de padrões computacionais e elementos de metadados que se espera obter o acesso automatizado às informações de maneira mais precisa, utilizando-se para isso processamentos semânticos de dados e de heurísticas automáticas. Entretanto, o objetivo final é atender às pessoas e não aos computadores, mas para isso é preciso construir categorias e uma linguagem que façam sentido para a máquina. Segundo Berners-Lee et al. (2001), a Web Semântica pode ser entendida como uma extensão da Web atual, na qual a informação possui um significado claro e bem definido, possibilitando uma melhor interação entre computadores e pessoas. Nesse sentido, o objetivo final da Web Semântica é suprir as pessoas e não os computadores, porém para isso é necessário construir componentes que forneçam sentido lógico e semântico para as máquinas. Portanto, pode-se entender que a Web Semântica procura disponibilizar recursos não apenas pensando no ser humano, mas principalmente na formalização para que as máquinas interajam entre si e possam prover aos seres humanos recursos de maneira mais eficiente. A Web atual, também conhecida como “Web de documentos”, pode ser vista como uma biblioteca de documentos de escala mundial. Constitui, atualmente, o maior repositório de informação, disponibilizando conteúdos em diferentes formatos e 16 UNIDADE II │ ANálIsE DE DADos E WEb idiomas, contudo sua localização não é fácil, devido essencialmente ao fato da sua semântica ou significado ser direcionado para dentro de um contexto e na perspectiva dos seres humanos. Existem muitos desafios atrelados à recuperação de informações na Web atual, por exemplo, ao analisar os resultados de uma busca realizada por meio dos tradicionais “motores de busca” (search engines), a busca contempla trabalhos científicos de autoria de uma pessoa específica. Deseja-se buscar por documentos que contenham o autor “Gregório de Matos” como expressão de busca, e são encontrados vários tipos de documentos contendo a expressão de busca que faça parte do texto do seu documento. Caso esta mesma busca seja realizada utilizando-se apenas o sobrenome deste autor o problema se agravaria ainda mais, pois “Matos” pode igualmente se referir ao sobrenome de uma pessoa, como também a um campo não cultivado, pois a Web atual não disponibiliza de recursos que permitam aos tradicionais “motores de busca” distinguir diretamente entre os vários significados semânticos que um termo pode comportar, o que favorece a recuperação de uma grande quantidade de documentos irrelevantes ou não relacionados com a busca realizada, tornando muitas vezes complexa a tarefa de localizar uma informação específica no ambiente Web. De acordo com Koivunen e Miller (2001), um dos princípios básicos que constituem a Web dos dados está no princípio de que os recursos precisam ser identificados de modo único por meio de um Uniform Resource Identifier (URI – Identificador Uniforme de Recursos). O termo recurso pode ser entendido por coisas, pessoas, lugares e elementos do mundo físico que possam ser referenciados utilizando-se vários identificadores. Desta maneira, pode-se identificar um lugar referindo-se ao URI de uma página Web, além disso, também é possível fazer referência a entidades físicas de modo indireto. A Web Semântica permite que recursos possam ter notações diferentes para escrita dos documentos, de modo que seja possível definir conceitos úteis para as máquinas. A Web de documentos consiste de recursos e links, porém estes links geralmente são projetos pensando no uso por seres humanos, de modo que seja relativamente simples para um ser humano identificar se um link contido em um determinado recurso faz referência para um artigo de jornal, livro de romance ou um trabalho científico, entretanto, tais informações não estão acessíveis para as máquinas, pois os links não indicam quais são os tipos de relações existentes entre os recursos referenciados. A Figura 1 ilustra como são referenciados os links na Web de documentos e alguns tipos de relacionamentos encontrados na Web Semântica. 17 Análise de dAdos e Web │ UnidAde ii figura 1. estruturação dos recursos e links na Web atual e na Web semântica. fonte: mIlleR, 2004. Na Figura 1, os tipos de recursos não estão rotulados de maneira apropriada, pois existem vários recursos do tipo “resource” (recurso) - lado esquerdo da figura -, se dois recursos distintos estão ligados a um terceiro recurso a partir de um mesmo tipo de relacionamento “linksTo” (conectado à), cada um deles deve ser identificado de maneira única, de modo a melhorar a semântica e evitar ambiguidades. Na proposta original do World Wide Web, apresentado por Berners-lee (1989), estavam presentes tipos diferentes de relacionamentos entre recursos e links, porém tal característica não foi desenvolvida na Web de documentos, de modo que esperamos que a concretização da Web Semântica possa finalmente ser implementada. Nessa perspectiva, alguns dos principais pilares da Web Semântica estão na formalização e desenvolvimento de ontologias formais para que seja possível descrever as informações semânticas dos recursos Web, possibilitando o compartilhamento e manipulação de informações capazes de ser diretamente interpretadas por máquinas, a partir do uso das especificações de ontologias e lógica de simbólica. A figura 2 apresenta o esquema utilizado para recuperação de informações na Web Semântica a partir de “motores de busca” mais eficientes, baseados em ontologias. 18 UNIDADE II │ ANálIsE DE DADos E WEb figura 2. estrutura de recuperação de informações na Web semântica. fonte: berners-lee, 2000. Para a concretização da Web de dados é necessário padronizar a maneira pelo qual os diferentes sistemas utilizados no ambiente Web manipulam as informações. A padronização possibilitará unificar a forma utilizada para descrever a lógica e as semânticas de cada recurso, de modo que possa haver compartilhamento de informações de maneira padronizada e independente da tecnologia por trás do provedor do recurso. Deste modo, a interoperabilidade e semântica dos dados melhora à medida que as aplicações forem desenvolvidas na perspectiva dos padrões da Web semântica, conforme observamos na figura 3. figura 3. estrutura para o desenvolvimento de nova s aplicações no âmbito da Web semântica. fonte: berners-lee, 2005. 19 Análise de dAdos e Web │ UnidAde ii Na perspectiva do acesso automática por máquina, é importante lembrar o conceito de agentes de software inteligentes. Popularmente, os agentes são facilmente confundidos com programas que se assemelham à forma humana de resolver problemas. Os agentes são capazes de fazer muita coisa, mas ainda estão longe de conseguirem fazer tudo pelaspessoas. Por exemplo, um agente é capaz de buscar informações na rede, negociar ações, influenciar pessoas, entre outros. Entretanto, o desenvolvimento deles é complexo e exige muitas vezes conhecimento multidisciplinar. Segundo Russell e Norvig (1995), um agente é como qualquer coisa que seja capaz de perceber o seu ambiente por meio dos seus sensores e agir sobre seus “efetores”, em analogia a um agente humano que tem olhos, ouvidos e outros órgãos como sensores e mãos, braços, pernas, etc. Segundo Berner-Lee et al. (2001), a Web Semântica será melhor explorada quando os agentes puderem extrair informações provenientes de diferentes fontes de dados, combiná-las automaticamente e como resultado apresentar o conteúdo de maneira mais amigável e organizada aos usuários (seres humanos ou máquinas). A Web de dados possui várias camadas que cooperam e se complementam, de maneira que para a sua concretização torna-se necessária a criação de um ambiente ideal, no qual tais tecnologias adotadas utilizem prioritariamente os padrões recomendados pelo W3C de modo integral ou parcial. As camadas visam fornecer estruturas e significados semânticos ao conteúdo das páginas Web, construindo um ambiente no qual softwares e pessoas possam trabalhar de forma cooperativa. Nessa perspectiva, muitos esforços são empregados no desenvolvimento de padrões e tecnologias para suportar as novas demandas necessárias ao bom funcionamento da Web Semântica. Por fim, nas próximas seções serão apresentados os fundamentos da Web Semântica e algumas das tecnologias propostas. Arquitetura da Web Semântica O amadurecimento da Internet proporcionou um aumento na quantidade de dispositivos ligados à rede e executando tarefas mais complexas na busca por informações. O World Wide Web (WWW), frequentemente chamada de Web, guarda um enorme volume de informações e também dispõe de uma variedade de serviços que facilitam a vida. Devido a isso, muitos desafios surgem, um deles é tornar possível que agentes de software possam vincular dados com ajuda da Web semântica. Tornar a Web compreensível por máquina faz parte do objetivo da Web Semântica, de modo que seja possível automatizar a vinculação de dados extraídos em rede com base em descrições semânticas definidas por meio de ontologias e regras de inferências, fazendo com que seja possível encontrar respostas mais precisas. 20 UNIDADE II │ ANálIsE DE DADos E WEb O W3C desempenha um papel crítico na elaboração, especificação e padronização de novas tecnologias baseadas no ambiente Web, de modo que ela desenvolve e padroniza soluções relacionadas à Web Semântica. No ano de 2000, a W3C publicou a primeira proposta de arquitetura da Web Semântica, apresentada na figura 4. Ela possui uma série de camadas sobrepostas, na qual cada camada obrigatoriamente é complementar e compatível com as camadas inferiores, ao mesmo tempo em que não deveria depender das camadas superiores, possibilitando assim uma estrutura escalonável. Portanto, tal arquitetura almeja indicar os passos e as soluções tecnológicas necessárias para a concretização da Web Semântica, apresentando soluções implícitas e como estas se relacionam. figura 4. arquitetura da Web semântica proposta em 2000. fonte: berners-lee, 2000. Trabalhos relacionados com a Web Semântica tinham como enfoque estudos sobre a linguagem XML (do inglês, eXtensible Markup Language) e como relacionar com o Framework para descrição de recursos (RDF, do ingês, Resource Description Framework) (MILLER, 1998; BROWN et al., 2001). Talvez a resposta esteja relacionada à falta de informações na época, a respeito da forma como as camadas superiores seriam desenvolvidas, pois era necessário padronizar as camadas mais básicas (as que se localizam mais abaixo). É por este motivo que na primeira proposta foram apresentadas apenas recomendações de tecnologias até a camada “RDF + rdfschema”, de maneira que a partir da camada “Ontology vocabulary” foram sugeridos títulos genéricos de qual seria a função básica de cada camada, porém não apresentando soluções tecnológicas recomendadas para o seu desenvolvimento, como feito nas camadas anteriores. Entretanto, devido ao engajamento dos pesquisadores no projeto da Web Semântica, logo após sua divulgação inicial, não demorou para que as camadas iniciais fossem completamente desenvolvidas e padronizadas, iniciando assim a segunda proposta publicada pelo W3C em 2002, conforme apresentado na figura 5. 21 Análise de dAdos e Web │ UnidAde ii figura 5. arquitetura da Web semântica proposta em 2002. fonte: berners-lee, 2002. A especificação da arquitetura publicada em 2002 manteve a essência da arquitetura anterior. A principal diferença entre ambas está no detalhamento das tecnologias e agrupamento de outras, como por exemplo, nas especificações XML e xmlschema. Em relação à camada RDF, ela foi particionada em uma camada contendo o Modelo e Sintaxe RDF e uma camada superior contendo especificamente o padrão RDF Schema. Além disso, também foi acrescentada a camada de criptografia, em paralelo à assinatura digital, com o intuito de garantir a confidencialidade das informações na Web Semântica. Ao especificar e formalizar a padronização das camadas mais básicas, foi publicada a arquitetura apresentada em 2002. As pesquisas relacionadas a Web Semântica concentraram-se preferencialmente na implementação de soluções tecnológicas e linguagens computacionais que permitissem o desenvolvimento de ontologias. Tais iniciativas priorizaram o desenvolvimento de linguagens, bibliotecas, editores e sistemas que possibilitassem a integração de ontologias. Como resultado das iniciativas, vários avanços foram alcançados, especificamente para o desenvolvimento de ontologias, por exemplo: Ontology eXange Language (XOL), Ontology Markup Language (OML), Ontology Inference Layer (OIL) e Darpa Agent Markup Language (DAML). Em 2004, como resultado do trabalho do Web-Ontology (WebOnt) Working Group <https://www.w3.org/2001/sw/WebOnt/>, foi publicada a recomendação do W3C para a utilização da linguagem para definir e instanciar ontologias na Web (OWL, do inglês, Ontology Web Language) para o desenvolvimento de ontologias <https://www. w3.org/TR/owl-features/>. A OWL foi criada a partir da combinação das especificações das linguagens DAML e OIL, também recomendadas pelo W3C. 22 UNIDADE II │ ANálIsE DE DADos E WEb Mesmo com a padronização da linguagem OWL para ontologias, verificou-se que uma das principais dificuldades para concretização do projeto Web Semântica situava-se justamente na integração e compatibilidade da camada de ontologias com as demais camadas da arquitetura, fato que levou a uma nova proposta do W3C publicada em 2005. Nessa proposta de arquitetura, a linguagem OWL aparece como recomendação para o desenvolvimento de ontologias e foram incorporadas tecnologias como “SparQL” e “DLP”, com o intuito de possibilitar a integração da camada de ontologias com as demais camadas e de facilitar a realização de consultas semânticas. Isso pode ser verificado na figura 6. figura 6. arquitetura da Web semântica proposta em 2005. fonte. berners-lee, 2005. Assim, baseando-se nesta proposta de arquitetura, pode-se descrever as principais tecnologias e camadas inerentes ao projeto Web Semântica, resumidamente, da seguinte maneira: » Uniform Resource Identifiers (URI - Identificador Único de Recursos) (RFC2396, 1998): consiste de uma cadeia de caracteres para identificar um recurso, possibilita a nomeação de maneira única na Web e possui expressividade semântica para ser interpretável por humanos e máquinas. » UNICODE: capaz de fornecer interoperabilidade em relação à codificação de caracteres para os dados e ao endereçamento e nomeação de recursos da Web Semântica. O Unicode é um padrão de codificação para fornecer uma representação numérica universal e sem ambiguidade para cada caractere de modo independente de plataforma de software e idioma.23 Análise de dAdos e Web │ UnidAde ii » Signature (assinatura): garantia e autenticidade das fontes. Conjunto de tecnologias desenvolvidas com o intuito de substituir em ambiente computacional a função exercida pela assinatura formal de ser humano ou máquina. » Encryption (criptografia): possibilita que informações sejam cifradas, tornando-as ininteligível para os que não tenham acesso às convenções combinadas de modo a dificultar a interpretação por qualquer pessoa ou sistema computacional, contribuindo para a confidencialidade das informações. » XML: linguagem computacional que possibilita a estruturação de dados por meio da definição de elementos e atributos, permitindo também a especificação de regras sintáticas para a análise e validação dos recursos. » Namespace: coleção de nomes, identificados por URI, que são utilizados em documentos XML para validar elementos e atributos. » RDF Core: especificações do modelo e a sintaxe RDF, possibilitando a descrição dos recursos por meio de suas propriedades e valores. » RDF Schema: fornece descrição ao vocabulário RDF, possibilitando a definição de taxonomias de recursos em termos de uma hierarquia de classes. » SparQL: linguagem computacional utilizada para realizar consultas a partir de estruturas RDF, favorecendo a recuperação de informações de maneira mais eficaz. » DLP: constitui a intersecção entre os dois principais paradigmas utilizados, atualmente, para desenvolver computacionalmente sistemas baseados em representação do conhecimento, Lógica Descritiva (OWL DL) e Programação Lógica (F-Logic), fornecendo uma estrutura extremamente flexível. » OWL: linguagem computacional recomendada pelo W3C para o desenvolvimento de ontologias. Permite descrever formalmente, de modo mais eficiente, os aspectos semânticos dos termos utilizados e seus respectivos relacionamentos, possibilitando representações mais abrangentes das linguagens RDF e RDF Schema e favorecendo uma maior interoperabilidade. » Rules (regras): permite especificar regras lógicas relacionadas aos recursos. 24 UNIDADE II │ ANálIsE DE DADos E WEb » Logic Framework (Framework de lógica): definição de regras mais abrangentes para o tratamento das informações descritas nos níveis inferiores, possibilitando que agentes possam realizar inferências automáticas a partir das relações existentes entre os recursos. » Proof (prova): possibilita a verificação/validação da coerência lógica dos recursos, de modo que a semântica das informações seja descrita de maneira coerente, atendendo aos requisitos das camadas inferiores. » Trust (confiança): espera-se garantir que as informações estejam representadas de modo correto, possibilitando um certo grau de confiabilidade. Até o momento é possível perceber que a Web Semântica encontra-se em constante desenvolvimento, de modo que as tecnologias propostas ainda estão em fase de avaliação e de verificação de seus resultados. Nesta perspectiva, até mesmo a proposta de arquitetura publicada em 2005 recebeu críticas e sugestões. Segundo Ian et al. (2005), algumas das linguagens apresentadas nesta arquitetura não são semanticamente compatíveis de forma direta, como a descrição lógica de programas (DLP, do inglês, Description Logic Programs) e a linguagem de desenvolvimento de ontologias OWL, deste modo, tais pesquisadores propõem que estas tecnologias deveriam ser apresentadas paralelamente ao invés de sobrepostas, formando duas torres em uma parte da arquitetura, conforme figura 7, a seguir. As principais diferenças entre as arquiteturas propostas para Web Semântica são apresentadas em Ian et al. (2005). figura 7. sugestão de alteração na arquitetura proposta para Web semântica (adaptado). fonte: berners-lee, 2005 e Horrocks et al., 2005. Portanto, é provável que a arquitetura da Web Semântica sofrerá modificações, para comprovar esta tendência basta verificar que as camadas “Logic Framework” e 25 Análise de dAdos e Web │ UnidAde ii “Proof”, por exemplo, ainda não possuem sequer tecnologias recomendadas para suas implementações. Nesta perspectiva, é importante ressaltar que apesar das novas tecnologias incorporadas à última proposta de arquitetura publicada pelo W3C e das recentes críticas e sugestões de alterações de tal arquitetura, é possível identificar aspectos que não devem ser alterados no projeto da Web Semântica, pois mesmo considerando que novas tecnologias estarão em constante desenvolvimento, os conceitos básicos que norteiam o desenvolvimento do projeto da Web Semântica tendem a permanecer estáveis. Nesse contexto, destaca-se, atualmente, uma forte tendência no desenvolvimento de pesquisas relacionadas à representação de informações, referindo-se a instrumentos de modelagem cognitiva de objetos digitais por meio da utilização do termo ontologia, conforme será apresentado na seção seguinte. ontologia na Web Semântica O uso de ontologia na Web Semântica viabiliza a formalização da expressividade do conteúdo, sua relação e contextualização com um conjunto de documentos. Ao implementar as tecnologias apresentadas nas camadas inferiores, documentos podem ser escritos com sintaxe XML e conteúdos representados de acordo com as recomendações RDF e seu RDFS. A partir dessa construção, pode adotar ontologias para agregar semântica ao conjunto de dados utilizados na representação de conteúdos, de modo a especificar formalmente seu significado. Dessa forma, poderá haver um melhor consenso e aproveitamento de conceitos relacionados ao documento e inferências semânticas poderão ser feitas pelas aplicações. Apesar do termo “ontologia” significar uma teoria sobre a natureza do ser ou existência, em Inteligência Artificial ela pode ser entendida como o conjunto de entidades com suas relações, restrições, axiomas e vocabulário. Para Gruber (1995), uma ontologia é capaz de definir um domínio, ou, mais formalmente, especificar uma conceitualização acerca dele. Geralmente, uma ontologia organiza seus conceitos e/ou axiomas de modo hierárquico. Por fim, podemos considerar as ontologias como a materialização do nível de conhecimento. Entretanto, a utilização do termo ontologia no âmbito da representação do conhecimento remete aos estudos apresentados no início da década de 1990 na área de Ciência da Computação, mais especificamente na subárea de Inteligência Artificial (IA), em projetos voltados para a organização de conhecimento. Nesta perspectiva, Guarino e Giaretta (1995) apresentam no artigo intitulado ‘Ontologies and Knowledge Bases’, 26 UNIDADE II │ ANálIsE DE DADos E WEb uma compilação de sete possíveis interpretações para o termo ontologia, limitando o escopo às definições mais comuns, conforme apresentadas a seguir: 1. Ontologia como uma disciplina da Filosofia; 2. Ontologia como um sistema conceitual informal; 3. Ontologia como uma proposta semântica formal; 4. Ontologia como uma especificação de uma conceitualização; 5. Ontologia como uma representação de um sistema conceitual por meio de uma teoria lógica: › Caracterizada por propriedades formais; ou › Caracterizada apenas para propósitos específicos; 6. Ontologia como um vocabulário usado por uma teoria lógica; 7. Ontologia como um metanível de especificação de uma teoria lógica. De acordo com tais definições, com exceção da primeira que se refere ao sentido filosófico do termo, podemos identificar duas grandes correntes teóricas: a. Que concebem ontologia como uma entidade conceitual semântica, formal ou informal, (definições 2 e 3); b. Que concebem como um objeto concreto em nível sintático, que tem seu desenvolvimento e sua utilização guiados por um propósito específico, (definições de 4 a 7). Nessa perspectiva, a definição 4, que define uma ontologia como uma especificação de uma conceitualização, é a mais frequentemente identificada no domínio da representação do conhecimento (GRUBER, 1993), que define uma ontologia como: “uma especificação explícita de umaconceitualização”, considerando que o nível simbólico deve ser expresso formalmente e de maneira clara, e uma “conceitualização” será composta por objetos, conceitos e as relações existentes em um determinado domínio. O termo ontologia pode ser empregado a partir dos requisitos para possibilitar sua aplicação em informática. Para Studer et al (1998), uma ontologia pode ser entendida como uma especificação explícita e formal de uma conceitualização compartilhada. Esclarecendo os requisitos desta definição: » Por especificação explícita - pode-se entender como as definições de conceitos, instâncias, relações, restrições e axiomas. 27 Análise de dAdos e Web │ UnidAde ii » Por formal - linguagem compreensível para agentes e sistemas. » Por conceitualização – trata-se de um modelo abstrato de uma área de conhecimento ou caso particular. » Por compartilhada – refere-se a um conhecimento comum (consensual), seja no uso da terminologia da área modelada, ou definida entre membros que farão uso. Desta maneira, é possível entender as ontologias no contexto da Ciência da Computação e no âmbito da Web Semântica como recurso que são utilizados com o intuito de criar modelos formais para a representação do conhecimento, dentro de um determinado domínio restrito, objetivando o registro de informações por meio de linguagens que possam ser processadas automaticamente. tipos e características das ontologias As ontologias podem apresentar estruturas diferentes, entretanto, sua essência estará presente em boa parte delas, a saber, são: » Classes de representação dos conceitos e organizadas hierarquicamente. » Relações que representam as interações entre os conceitos de um domínio. » Axiomas utilizados para modelar sentenças consideradas verdadeiras. » Instâncias, representativas dos objetos que pertencem a uma classe. As ontologias podem ser classificadas em tipos com base em diferentes critérios, por exemplo: grau de formalidade, tipo da estrutura, assunto da conceitualização, função específica, entre outros. Uschold e Jasper (1996) classificam a ontologia, de acordo com o grau de formalidade utilizado para especificar o vocabulário de termos e seus significados, em: » Ontologia altamente informal, em que o vocabulário é expresso em linguagem natural; » Ontologia semi-informal, em que o vocabulário é expresso em uma linguagem natural de forma restrita e estruturada; » Ontologia semiformal, cujo vocabulário é expresso em linguagem artificial definida formalmente. 28 UNIDADE II │ ANálIsE DE DADos E WEb Ontologia rigorosamente formal, em que os termos são definidos com semântica formal, teoremas e provas. As ontologias podem ser classificadas quanto ao tipo de estrutura e ao assunto da conceitualização, por exemplo: » Ontologias terminológicas - especificam termos adotados para representar o conhecimento em um domínio; » Ontologias de informação - especificam uma estrutura de registros, por exemplo, os esquemas de bancos de dados; » Ontologias de modelagem do conhecimento - especificam conceitualizações do conhecimento; » Ontologias de aplicação – apresentam as definições necessárias para modelar o conhecimento em um sistema (software); » Ontologias de domínio - expressam conceitualizações específicas para um domínio; » Ontologias genéricas - similares às ontologias de domínio, mas com conceitos considerados genéricos e comuns a outras áreas. Ontologias de representação, as quais explicam as conceitualizações que suportam os formalismos de representação do conhecimento. É possível distinguem tipos de ontologias, de acordo com sua conceitualização: » Ontologias de domínio, que são reutilizáveis em um domínio e fornecem um vocabulário sobre conceitos desse domínio, sobre seus relacionamentos, sobre as atividades e sobre os princípios que governam essas atividades. » Ontologias de tarefa, que fornecem um vocabulário sistematizado de termos utilizados na solução de problemas, especificando tarefas que podem ou não estar no mesmo domínio; Ontologias genéricas, que incluem um vocabulário relacionado a coisas, eventos, tempo, espaço, casualidade, comportamento, funções, entre outros. Haav e Lubi (2001) classificam as ontologias, quanto aos tipos de classes presentes, em: » Ontologias de alto nível, que descrevem conceitos gerais como espaço, objeto, tempo, matéria, evento etc. » Ontologias de domínio, que descrevem o vocabulário de um domínio, por exemplo, física. 29 Análise de dAdos e Web │ UnidAde ii Ontologias de tarefa, que descrevem uma tarefa ou atividade. Classificando de acordo com sua função no processo de desenvolvimento de sistemas: » Ontologia de “autoria neutra”, que enfatiza a reutilização de dados, possibilitando que um aplicativo seja escrito em uma única linguagem e, depois, convertido para uso em diversos sistemas. » Ontologia de especificação, uma ontologia de domínio usada para descrever doenças. » Ontologia de acesso comum à informação, que torna a informação inteligível quando o domínio é expresso em um vocabulário inacessível. Observa-se que não existe consenso na classificação de tipos de ontologias. As categorias propostas pelos autores citados muitas vezes se sobrepõem. Em alguns casos, um mesmo nome de categoria é utilizado por mais de um autor, como significados distintos. Em outros, nomes diferentes se referem ao mesmo tipo de ontologia. Uma das principais características dos estudos relacionados ao projeto Web Semântica refere-se à preocupação em desenvolver linguagens computacionais que possibilitem estruturar os recursos informacionais de maneira adequada e descrever os aspectos semânticos inerentes a tais recursos. Nesta perspectiva, logo após a padronização da linguagem computacional XML, os engenheiros de softwares descobriram que não era suficiente apenas descrever os recursos informacionais sintaticamente para que os sistemas colaborassem, verificando que tão importante quanto a sintaxe seria o desenvolvimento de tecnologias que permitissem descrever o significado das informações. Dentro deste contexto, na próxima seção serão apresentadas algumas considerações acerca das principais linguagens padronizadas pelo W3C para o desenvolvimento da Web Semântica, a saber, são: XML, RDF e OWL. linguagens de representação de recursos A recomendação XML foi divulgada em 1998 pelo W3C, baseando-se também no padrão SGML, assim como a linguagem HTML. Porém, a XML foi criada não como uma linguagem de uso especial, mas sim, como metalinguagem genérica, constituindo uma tecnologia básica capaz de possibilitar o desenvolvimento de outras linguagens computacionais. Segundo documento do W3C, os objetivos iniciais do XML foram: 1. XML deve ser utilizada de forma direta e objetiva; 2. XML deve suportar diferentes aplicativos; 3. XML deve ser compatível com SGML; 30 UNIDADE II │ ANálIsE DE DADos E WEb 4. Deve ser fácil desenvolver programas que processem documentos XML; 5. Os documentos XML precisam ser legíveis e relativamente claros; 6. O design XML deve ser formal e conciso; 7. Os documentos XML devem ser fáceis de serem criados. Um dos fatores que complicaram inicialmente a disseminação da XML foi uma concepção equivocada de que esta se apresentava como uma linguagem sucessora da HTML, pois embora a XML resolva alguns dos problemas da HTML, ela foi desenvolvida com um propósito diferente: enquanto a linguagem HTML tem como função principal formatar e exibir o conteúdo de um documento, a linguagem XML possui a função específica de apenas estruturar as informações, não se preocupando com a maneira como estas serão exibidas. Para Castro (2001), a especificação XML é simples, mas o que a torna poderosa são as tecnologias que ela possibilita utilizar, tais tecnologias também são desenvolvidas a partir de padrões apresentados pelo W3C, constituindo o que se denomina como padrões companheiros. Existem dois padrões para a construção de esquemas em XML, o primeirodestes é denominado Document Type Definition (DTD) e o segundo XML Schema Definition (XSD), também conhecido simplesmente como XML Schema. Deste modo, durante o processo de análise de um documento XML, o processador XML, verifica se o documento possui regras e definições associadas a ele, que conduzam a sua interpretação de modo correto, e também se o documento está de acordo com tais regras. Quando um documento atende a esses requisitos diz-se que é um documento XML válido, sendo possível organizá-lo segundo uma estrutura de árvore e representá-lo via XML no ambiente Web. A figura 8, a seguir, ilustra tal processo. figura 8. Processo de análise de um Documento xml adaptado. fonte: Tesch Jr., 2002. 31 Análise de dAdos e Web │ UnidAde ii O componente básico de um código XML é denominado “elemento”, que pode ser entendido como uma entidade utilizada para representar tanto a estrutura quanto os dados contidos em um documento. Um “elemento” em XML possui uma finalidade diferente de uma marcação, tag, utilizada em HTML. Para exemplificar tal afirmação pode-se analisar a marcação <b> em HTML, a qual indica apenas que um texto deve ser apresentado em negrito, em XML, porém, um “elemento” é utilizado para armazenar conteúdo representado no documento. Um “elemento” em XML é delimitado por duas marcações, por exemplo, <veiculo>bicicleta</veiculo>, possui duas tags denominadas “marcação inicial” e “marcação final”, respectivamente. O dado entre tais marcações é denominado “conteúdo”, assim, um “elemento” compreende o conjunto de dados existentes entre as marcações inicial e final, inclusive as mesmas, conforme ilustrado na figura 9, a seguir. figura 9. estrutura de um “elemento simples” em xml. fonte: o autor. Na figura 9, também possível encontrar outro termo empregado na nomenclatura da linguagem XML, o “atributo”, ele é descrito dentro da marcação inicial de um “elemento”. Os “atributos” são fontes de informação adicionais sobre um “elemento” e sempre possuem um “valor” que deve ser delimitado por aspas. Ele é utilizado para declarar propriedades ou características do elemento. Os “elementos” declarados em XML podem ser do tipo simples ou complexo, a diferença básica entre estes é que os “elementos simples” não contêm outros “elementos”, enquanto que os “elementos complexos” contêm. Nessa linha de interpretação, é utilizado o termo “subelemento” para descrever a relação entre um “elemento” e os “subelementos”. Basicamente, a ideia do elemento complexo é semelhante à ideia de array utilizado em linguagens de programação. Em relação ao RDF, o W3C descrever como uma linguagem de propósito geral para representação de informações contidas nos recursos Web. Ele pode ser visto como uma 32 UNIDADE II │ ANálIsE DE DADos E WEb tecnologia capaz de fornecer modelagem semântica, mas de modo genérico, podendo ser utilizada para criar linguagens específicas do domínio. O modelo e a especificação da sintaxe RDF foram propostos em fevereiro de 1999 pelo W3C, visando uma maior interoperabilidade no ambiente Web por meio de um padrão aberto para a descrição de recursos. Deste modo, o padrão RDF é versátil, permite que sejam feitas declarações a respeito de praticamente qualquer tipo de objeto, desde que este possa ser identificado por um URI. O RDF permite descrever declarações a respeito de recursos, não exigindo modificações , de modo que uma declaração RDF é uma entidade separada do recurso ao qual ela se refere, podendo inclusive constituir outro recurso. Nesta perspectiva, pode haver muitas declarações RDF distribuídas pela Web referindo-se ao mesmo recurso, descrevendo diferentes propriedades, ou mesmo contextualizando-o a partir de domínios diferentes. O padrão RDF baseia-se no conceito de tripla “subject, predicate e object” (sujeito, predicado e objeto), no qual o “Sujeito” é o recurso de uma sentença está se referindo, “Predicado” descreve uma característica, propriedade, ou relacionamento adotado para descrever algo sobre este recurso e “Objeto” é o valor de uma determinada característica do recurso referenciado, podendo inclusive ser outro recurso. Assim, em RDF toda sentença é formada por um Sujeito que está relacionado a um Predicado que possui um valor indicado a partir de um Objeto, sendo esta sentença denominada como Declaração. Nesta perspectiva, pode-se apresentar graficamente uma declaração RDF a partir de um grafo rotulado direcionado, também denominado como “diagramas de nós e arcos”, conforme figura 10. Tais grafos representam os recursos como elipses, os valores literais das propriedades como retângulos e os predicados utilizando arcos direcionados do recurso (sujeito) para o valor (objeto). figura 10. Grafo de uma declaração RDf. http://facebook.com/brunom4ciel Possui_pessoa Bruno Maciel Sujeito (recurso) Predicado (propriedade) Objeto (valor) fonte: o autor. Nesse contexto, a figura 10 apresenta o sujeito referenciado a partir do URI “http:// facebook.com/brunom4ciel” correspondente a um recurso Web, o predicado “Possui_ pessoa” indicando uma propriedade deste mesmo recurso e o objeto “Bruno Maciel” que consiste em uma sentença literal que representa o valor específico da propriedade. 33 Análise de dAdos e Web │ UnidAde ii Em RDF os recursos e os predicados devem ser identificados utilizando-se URIs, possibilitando uma maneira global e única de nomear itens. Deste modo, considerando-se o exemplo anterior, o predicado “Possui_pessoa” também deve ser descrito de maneira formal em algum local que possa ser referenciado por um URI, assim como o sujeito, para que os computadores possam analisá-lo e “compreender” o seu significado. Quanto aos objetos que representam os valores dos predicados, estes podem constituir apenas sentenças literais, como o objeto “Bruno Maciel” apresentado na figura 10, porém quando estes referenciam outro recurso também devem ser identificados a partir de um URI. Assim, pode-se verificar que em uma declaração RDF tanto o sujeito quanto o valor das propriedades do sujeito podem ser considerados como objetos, ligados por um certo tipo de relacionamento. Deste modo, outra maneira que pode ser utilizada para descrever uma declaração RDF, considerando-se a tripla Sujeito “s”, Predicado “P” e Objeto “o”, é utilizando-se um enunciado Lógico no qual o predicado binário “P” relaciona o objeto “s” ao objeto “o”, originando a sentença lógica “P(s,o)”. Nesta perspectiva, é possível estender o exemplo anterior representando o objeto “Graciliano Ramos”, a partir do URI do site oficial deste autor, possibilitando inclusive considerá-lo como sujeito de uma outra declaração RDF, relacionando-o com outros predicados e valores, originando uma declaração RDF composta, conforme apresentado na figura 10. Assim, verifica-se que o padrão RDF permite o desenvolvimento de declarações recursivas, declarações sobre declarações. figura 11. Grafo de uma declaração RDf composta. http://facebook.com/brunom4ciel http://brunomaciel.com contato@brunomaciel.com Possui_pessoa Email_contato fonte: o autor. Nesse contexto, verifica-se que os grafos apresentam-se como excelentes instrumentos para transmitir informações entre seres humanos, porém no âmbito da Web Semântica torna-se necessário representar as informações em um formato que possa ser processado por máquinas. Deste modo, é possível representar as declarações RDF por meio da linguagem XML. Uma declaração RDF pode ser representada em linguagem XML a partir de um elemento com a etiqueta rdf:RDF , no qual o conteúdo desse elemento é identificado utilizando-se a etiqueta rdf:Description . 34 UNIDADE II │ ANálIsE DE DADos E WEb Nesta perspectiva cada descrição refere-se a um recurso, que pode ser identificado utilizando-se atributos dos seguintes tipos: » about - Faz a referência a um recurso existente. » ID – Cria um novo recurso. » “Sem nome” – Cria um atributo anônimo. Deste modo, é possível descrever o exemplo apresentadona figura 11, página anterior, utilizando-se a sintaxe XML, da seguinte forma: figura 12. Representação de uma declaração RDf utilizando a sintaxe xml. fonte: o autor. Assim, verifica-se que o padrão RDF fornece mecanismos que possibilitam descrever recursos e seus relacionamentos de modo independente de qualquer implementação e sintaxe, a partir de uma semântica simplificada que pode ser representada utilizando-se a linguagem XML, porém o RDF possibilita apenas a descrição de recursos individuais, ou coleções de recursos individuais, limitando-se ao nível de instância. Nesta perspectiva, com o intuito de complementar o padrão RDF e fornecer a este um maior nível de abstração, possibilitando a definição de conceitos primitivos e tipos de objetos, foi desenvolvido o RDF-Schema (RDFS), uma linguagem de descrição de vocabulários que objetiva descrever propriedades e classes para os recursos RDF. O RDFS possibilita que as comunidades possam desenvolver vocabulários particulares, de maneira independente, de acordo com seus domínios de aplicação. De modo que o RDFS não fornece classes e propriedades propriamente ditas, mas sim uma estrutura a partir da qual é possível descrevê-las. Assim, o RDFS possibilita definir uma terminologia para representar conceitos como recurso, classe (tipos de recursos), subclasse e propriedade (atributos de classes), que podem ser utilizados para expressar taxonomias de conceitos e suas relações. 35 Análise de dAdos e Web │ UnidAde ii Dentro deste contexto, com o intuito de exemplificar a utilização do RDFS, a figura 13, apresenta um trecho de código baseado no padrão RDFS, o qual indica que “professor” e “aluno” são SubClasses da classe “pessoa”. figura 13. Trecho de código baseado em RDfs. fonte: o autor. Deste modo, verifica-se que o padrão RDFS permite a modelagem de ontologias simples, porém deve-se ressaltar que o RDFS não foi concebido com o propósito de ser uma linguagem para construção de ontologias e, desta forma, apresenta limitações, pois os conectivos lógicos de negação, disjunção e conjunção não existem em RDFS, limitando a sua expressividade, assim para atingir melhores níveis de expressividade é necessária a utilização de linguagens criadas especificamente para o desenvolvimento de ontologias. Assim, a linguagem mais utilizada atualmente e recomendada para o desenvolvimento de ontologias é denominada OWL. A OWL é uma linguagem computacional utilizada para o desenvolvimento de ontologias, a qual se originou a partir da junção das especificações das linguagens DAML e OIL, sendo denominada inicialmente como DAML+OIL. Assim, desde fevereiro de 2004 a OWL é recomenda pelo W3C como linguagem padrão para o desenvolvimento de ontologias. Segundo recomendação do W3C, a OWL é indicada para ser utilizada em situações em que as informações contidas em documentos necessitem ser processadas de forma automatizada, e não apenas apresentadas para seres humanos, pois a OWL permite descrever formalmente o significado dos termos utilizados em um documento e seus respectivos relacionamentos, possibilitando representações mais abrangentes que as linguagens RDF e RDF Schema, favorecendo uma maior interoperabilidade. Nesse contexto, pode-se considerar OWL como um padrão que na realidade abarca três tipos de linguagens com diferentes níveis de expressividade, conforme apresentado a seguir: » OWL Lite – permitir uma fácil implementação, fornece um subconjunto funcional baseado em classificações hierárquicas e restrições simples, 36 UNIDADE II │ ANálIsE DE DADos E WEb possibilitando inclusive a migração de sistemas baseados em tesauros e taxonomias para o formato de ontologias. » OWL DL – suportar implementações baseadas em Lógica Descritiva, fornecendo um subconjunto que possua propriedades desejáveis em sistemas que necessitem ontologias com um maior nível de detalhamento e restrições. » OWL Full – possibilitar o máximo de expressividade enquanto mantém completude computacional, de modo que, diferentemente da OWL DL, pode violar restrições da Lógica Descritiva com o objetivo de ser compatível com o maior número possível de bancos de dados e sistemas de representação do conhecimento. Cabe ressaltar que a OWL Lite possibilita apenas a definição de cardinalidades binárias, contendo os valores “0” ou “1”. Outro esclarecimento importante é que utilizando a OWL DL é possível considerar as mesmas construções que a OWL Full oferece, porém a OWL DL não permite que uma classe possa ser considerada um indivíduo ou uma propriedade e também não permite que uma propriedade possa ser considerada como um indivíduo ou uma classe. Já a OWL Full permite essas construções, pois considera uma classe como um conjunto de indivíduos, assim como um próprio indivíduo, de forma simultânea. Nesta perspectiva, pode-se dividir a estrutura de um documento OWL nos seguintes elementos básicos: » namespaces; » cabeçalhos; » classes; » indivíduos; » propriedades; » restrições. Os namespaces são definidos a partir de declarações XML, permitindo identificar sem ambiguidades a localização dos vocabulários correspondentes ao conjunto de conceitos utilizados na ontologia. Os namespaces são declarados entre etiquetas do tipo rdf:RDF, conforme apresentado na figura 14. 37 Análise de dAdos e Web │ UnidAde ii figura 14. Trecho de código OWl indicando os Namespaces utilizados. 1 <rdf:RDF 2 xmlns =”http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#” 3 xmlns:vin =”http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#” 4 xml:base =”http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#” 5 xmlns:food =”http://www.w3.org/TR/2004/REC-owl-guide-20040210/food#” 6 xmlns:owl =”http://www.w3.org/2002/07/owl#” 7 xmlns:rdf =”http://www.w3.org/1999/02/22-rdf-syntax-ns#” 8 xmlns:rdfs =”http://www.w3.org/2000/01/rdf-schema#” 9 xmlns:xsd =”http://www.w3.org/2001/XMLSchema#”> fonte: smith et al., 2004. Neste exemplo, a linha 1 contém apenas a etiqueta rdf:RDF, indicando que as próximas declarações apontam os namespace da ontologia. A linha 2 indica o namespace padrão da ontologia, de modo que qualquer termo utilizado dentro desta ontologia que não contenha nenhum prefixo se refere à própria ontologia; na linha 3 é apresentado um nome, “vin” para a ontologia. A linha 4 identifica a URI base para esta ontologia e a linha 5 referencia uma outra ontologia, a de comida (food), da qual alguns conceitos foram incorporados. As demais linhas: 6, 7, 8 e 9 indicam a localização dos vocabulários suportados pelas linguagens: OWL, RDF,RDFS e XSD, respectivamente, pois é necessário indicar não apenas o vocabulário convencional OWL, como também, das primitivas definidas nas camadas inferiores, tipos de dados nativos de RDF, RDFS e do XML Schema. Após a definição dos namespaces é comum incluir uma coleção de sentenças comumente denominadas como cabeçalhos, utilizadas para registrar comentários, controlar a versão da ontologia e a inclusão de conceitos e propriedades de outras ontologias. Tais informações são agrupadas sob a etiqueta owl:Ontology. 38 CAPítulo 2 técnicas de extração de dados Diariamente são processados e armazenados grandes volumes de dados provenientes de interações entre seres humanos e/ou máquinas. Os avanços tecnológicos facilitam cada vez mais o armazenamento e recuperação dos dados. Como exemplo de interação, é possível citar uma compra realizada em um estabelecimento comercial próximo a sua casa ou até uma postagem em redes sociais - uma rede social pode ser entendida como um conjunto de atores que pode possuir relacionamentos uns com os outros (WASSERMAN; FAUSE; 1994). Nessa perspectiva, existe a necessidade de analisar o volume de dados para que seja possível explorá-los e extrair informação. Governos, instituições privadas e indivíduos de uma forma geral estão tomando cada vez interesse pelo tema. O processo decisório das instituições baseia-se cada vez mais em análise de dados proveniente da exploraçãode fontes de dados por seres humanos ou máquinas. Existe disponível uma variedade de técnicas e soluções para análise de dados estruturados, por exemplo, a chamada Data Mining (mineração de dados) para descoberta de conhecimento a partir de dados numéricos. Porém, segundo Tan (1999), estima-se que aproximadamente mais da metade da informação que uma organização dispõe está armazenada de forma não estruturada, ou seja, em formato de texto, fato que dificulta o processamento dos dados para obter informação. Como solução ao problema da análise de texto livre, surgiu a técnica derivada do Data Mining, chamada Text Mining, que procura extrair de conteúdos e textos, informações úteis sem precisar de leitura prévia. Por meio do Text Mining, é possível extrair informação desconhecida de grandes coleções de textos sem que haja necessidade da leitura humana. Com uso de técnicas para reconhecimento de padrões, podem ser descobertos padrões e relações entre os textos que seriam muito difíceis, ou quase impossíveis, encontrar lendo o conteúdo manualmente por um ser humano (TAN, 1999). A popularidade do uso da Internet impulsionou a técnica de Text Mining, sendo possível extrair informação valiosa dela para companhias e até mesmo para o governo. É possível extrair das páginas de redes sociais os dados das pessoas, bem como suas postagens e suas ações no ambiente virtual, e gerar informação a partir disso. Assim, pode-se, por exemplo, conhecer melhor as pessoas e oferecer produtos e serviços específicos de acordo com seu perfil de consumo e hábitos. Empresa que oferece para seus clientes aquilo que eles gostam e querem, possuem mais chance de sucesso em seus negócios. 39 Análise de dAdos e Web │ UnidAde ii Nesse sentido, o objetivo desse capítulo é apresentar a abordagem de Text Mining e Data Mining com as fases que compõem o processo, desde a extração até a análise dos dados. Além desse objetivo geral, como objetivo específico, é feita aplicação de técnicas e algoritmos, apresentando exemplos práticos. descoberta de Conhecimento em texto A Knowledge Discovery in Text (KDT - Descoberta de Conhecimento em Texto) e Text Mining são os nomes usados para descrever o conjunto de técnicas para extrair informação potencialmente relevante com base em textuais não estruturadas. É um esforço em conjunto para combinar técnicas e conhecimentos multidisciplinares de área como computação, Estatística, Linguística, Matemática e outras. A KDT é derivada da Knowledge Discovery in Databases (KDD – Descoberta de Conhecimento em Bancos de Dados), também conhecido como Data Mining, porém no KDD a fonte usada para a exploração é estruturada. As técnicas utilizadas na KDT objetivam estruturar os dados com origem em fontes de dados textuais, para que depois seja possível a mineração. As etapas do processo de KDT podem ser resumidas em quatro, a saber: 1. Recuperação da Informação - são encontrados os textos que possuem informação relevante de acordo com o critério de busca. 2. Extração da Informação - extrair informação dos documentos selecionados. Nesta fase o usuário indica itens relevantes para a construção do leiaute – dados estruturados que podem ser usados em métodos de KDD tradicionais. 3. Mineração – após a definição do conteúdo, ou seja, feita a conversão dos textos em dados estruturados, pode-se aplicar técnicas de Data Mining. Nesta fase procura-se padrões e relacionamentos nos dados. 4. Interpretação - interpretar os padrões descobertos na fase anterior. É feita a análise do conteúdo e gerada as saídas, no formato de língua natural, do processo de mineração. A segunda etapa é essencial para o sucesso das demais, ela é responsável por organizar todo o conteúdo dos dados. Os dados precisam estar disponíveis de modo estruturado para realização da descoberta de conhecimento. É preciso modelar cuidadosamente a estrutura construída que será preenchida com os dados extraídos, levado em consideração futuras automatizações nos processos de extração e carga. 40 UNIDADE II │ ANálIsE DE DADos E WEb text Mining e data Mining O Data Mining é conhecido como o processo de exploração de grandes volumes de dados com o intuito de descobrir padrões para formulação de um conhecimento até então não exposto de maneira explícita. O Text Mining, inspirado no Data Mining, refere-se ao processo de Descoberta de Conhecimento com base em fontes de dados de textos, consiste na obtenção de informação a partir de texto em linguagem natural ou passível de interpretação, o Text Mining extrai informação de dados estruturados ou semiestruturados, enquanto o Data Mining extrai informação de dados estruturados. Os tipos de técnicas de Text Mining comumente encontrados na literatura são: » Sumarização - consiste em extrair do texto um número pequeno de frases que possam resumir o assunto do documento original. São selecionadas as palavras e frases mais importantes do texto, ou conjunto de textos, a fim de não ser necessária a leitura prévia, e mesmo assim, obter a essência da mensagem. Para facilitar a definição das regras de extração para sumarizar os documentos, é importante que os textos sejam semelhantes entre si. Por exemplo, se um conjunto de textos trata sobre um assunto específico, é mais fácil estipular os critérios de extração. » Classificação/categorização – a classificação serve para identificar qual família de características um documento pertence, de acordo com os atributos definidos previamente para cada classe. Enquanto a Categorização indica quais assuntos e temas estão contidos em um documento. As principais técnicas de classificação são Regras de Inferência, Redes Neurais Artificiais, Método de Similaridade de Vetores ou Centroides, Árvores de Decisão e Classificadores de Naive Bayes. » Clustering (agrupamento) - esta técnica basicamente agrupa textos em classes de acordo com as características de cada documento, sem necessidade de alguma definição pelo usuário. O Clustering identifica correlacionamentos e associações entre objetos para facilitar a identificação das classes. Assim, esta técnica é muito útil para criar conjuntos de texto pelo assunto, sem precisar ter conhecimento prévio dos textos. A figura 15 apresenta um exemplo para ilustrar a técnica de agrupamento de dados, no qual os símbolos lua e coração, no primeiro quadro, chamado de original encontram-se misturados. No segundo quadro, chamado de agrupados, após aplicação da técnica, os símbolos 41 Análise de dAdos e Web │ UnidAde ii foram separados em dois grupos, lua – contendo todos os símbolos lua e coração com os corações agrupados. figura 15. clusters - agrupamento de dados. fonte: o autor. Principais técnicas de Pré-processamento de textos A preparação dos dados é a primeira tarefa do processo de Text Mining, e, envolve a seleção dos dados que constituem a base de textos de interesse e o trabalho inicial para tentar selecionar o modelo que melhor expressa o conteúdo destes textos. O esperado dessa etapa é a identificação das similaridades em função da morfologia ou do significado dos termos nos textos, bem como prover uma redução dimensional do texto analisado. Algumas das principais técnicas de pré-processamento de textos, sendo elas: Filtering, Tokenization, Stemming, Stopword removal, Pruning, Thesaurus serão melhor explicar a seguir. 1. Filtering - a primeira etapa para o processamento é a remoção dos caracteres de pontuação, esse caracteres de maneira geral não alteram o significado do documento, todavia sua remoção pode alterar o significado das frases, em geral o mais comum é o significa do documento fica inalterado, o viés do documento é definido pelas palavras mais relevantes no texto e os caracteres de pontuação tem baixo valor semântico em relação ao geral. 2. Tokenization - depois de removida a pontuação do documento, o processamento de linguagem natural é usado para identificar as palavras e identificar o significado das frases.A estrutura das frases tem significado 42 UNIDADE II │ ANálIsE DE DADos E WEb que pode ser expresso em termos das relações com suas palavras. Durante o processo as palavras usadas no corpo do texto são classificadas para posterior uso. 3. Stemming – com as palavras separadas e classificadas, agora é preciso reduzi-las para sua forma mais básica, ou seja, seus radicais. O objetivo é remover/reduzir os estilos de escrita entre documentos e deixar o significado dos documentos de modo consistente deixando-os comparáveis. 4. Stopword Removal – é comum que os textos possuam muitos caracteres, porém o tempo de análise de vários documentos de textos pode crescer rapidamente, como solução para esta situação foi pensando numa maneira de amenizar o tempo de processamento encurtando o volume de dados. Portanto, é necessário diminuir do total de dados que serão processados removendo os dados que possuem menor valor para o contexto. Funciona da seguinte maneira, as palavras que frequentemente utilizadas no texto e que não trazem significado direto a uma frase são removidas, tanto para diminuir o corpo do texto como para limitar o conjunto as que são mais importantes em termos de significado ao corpo de texto, desta forma as palavras mais frequentes são consideradas como de pouco valor e na etapa de Stopword Removal são removidas, tudo aquilo que não é substantivo, adjetivo ou verbo é removido. 5. Pruning - mesmo depois da tarefa de ‘Stopword removal’, ainda existem palavras que não agregam valor ao texto, por terem muito ou pouca frequência. Palavras muito frequentes também serão frequentes em outros textos, de modo que não acrescentam valor às análises, no mesmo raciocínio as palavras que aparecem pouco possuem baixo percentual de reaparecer em outros textos, portanto na etapa de pruning as palavras que aparecem com muita e pouca frequência são removidas do texto. 6. Thesaurus - palavras diferentes podem ter o mesmo significado, são normalizadas, nessa etapa um dicionários de thesaurus, que relacionam palavras com o mesmo significado, são usados para normalizar o texto em um modelo padronizado. Aplicações de text Mining Para extrair dados na Web, alguns passos precisam ser levados em conta, começando em definir as sementes, ou seja, um conjunto de URLs como ponto de partida para alcançar a navegação nas páginas Web. A navegação entre páginas da Web acontece por 43 Análise de dAdos e Web │ UnidAde ii meio da exploração de hiperlinks encontrados em hipertextos, avançando (acessando) em profundidade (link a link) na Web para alcançar novos conteúdos. Nas práticas tradicionais adotadas em Data Mining, os dados de entrada que serão minerados precisam estar em formato estruturado. Todavia, frequentemente os dados presentes na Web estão disponíveis em formato conhecido como “texto livre”, notações HTML dentre outros, e geralmente estão escritos em linguagem natural e não estruturados, ou seja, dados com pouca ou nenhuma semântica em relação ao conteúdo. Esta situação impossibilita a aplicação direta de Data Mining. As técnicas de Extração de Informação localizam dados específicos dentro de um documento textual não estruturado, para depois estruturá-los em formatos processáveis por máquinas, por exemplo, banco de dados relacional, arquivos contendo notação simples de armazenamento (CSV, do ingês, Comma-Separated Values) (RFC4180, 2005), XML, RDF e etc. Duas técnicas de Text Mining serão apresentadas a seguir: 1. Web Crawler - pode ser entendido com um agente de software que navega de forma autônoma, sistematicamente em conteúdos provenientes da Web. O Crawler inicia-se com uma listagem de URLs também chamada de sementes. À medida que o Crawler evolui (acessa novos endereços) são filtrados todos os hiperlinks contidos nas páginas Web, e acrescenta- os à lista de URLs, e esta por sua vez, será visitada recursivamente. 2. Web Spider –é responsável por visitar as URLs nas páginas web e criar uma lista de URLs, sendo este processo feito em simultâneo até visitar todos os URLs, de forma a criar uma teia. 3. Web Scraping – técnica de extração de informação de páginas Web que utiliza um Web Crawler para transformar dados não estruturados na web em dados estruturados. A extração de dados Web poderá ser feita adotando algumas das seguintes ferramentas: Link Web Extractor, Web- Harvest e Jsoup. 44 CAPítulo 3 APis e redes Sociais Atualmente, é possível perceber a integração de comunidades físicas e comunidades virtuais. As pessoas utilizam cada vez mais a Internet para se comunicar e encontrar novos amigos ou relacionamentos afetivos por meio de sites que promovem a formação de grupos sociais. Um exemplo é o Facebook, que possui mais de 1,9 bilhão de usuários e está disponível em vários idiomas. Em paralelo às redes sociais, os avanços tecnológicos dos smartphones (dispositivos móveis) levaram ao aumento de sua capacidade de hardware, para processar, armazenar, dentre outros recursos, potencializaram esse mesmo movimento para o ambiente móvel. Acompanhando a alta da capacidade tecnológica dos dispositivos móveis, várias aplicações móveis exploram tal fatia de mercado, estimulando o crescimento dessa tendência, disponibilizando soluções capazes de interagir com diversas redes sociais, produzindo um efeito em cadeia. Tais aplicações contribuem para auxiliar as pessoas comunicarem-se em qualquer lugar e a qualquer momento. Outro ponto importante dessas aplicações está na capacidade de melhorar as recomendações em tempo real sobre produtos, lugares, eventos ou algo personalizado em função da localização. Como exemplo de conteúdo personalizado, pode ser uma oferta de loja próxima ao local em que o usuário está e que não seria veiculada se o usuário estivesse em outro local. As informações do usuário na rede social podem dizer muito sobre o ambiente em que ele se encontra e são definidas como o seu contexto social. Além disso, as informações extraídas dos sensores de seu dispositivo móvel, como a localização pode ajudar os desenvolvedores a propor soluções mais eficazes aos usuários, entregando maior valor agregado ao utilizador com base nos dados extraídos. É comum as aplicações modernas fornecerem API (Application Programming Interface – Interface de Aplicação Programável), não sendo diferente com as redes sociais, as APIs fornecem padrões diferentes para acessos aos dados. Conceitos fundamentais No contexto da Web, redes sociais podem ser entendidas como locais nos quais pessoas conectam-se umas as outras, por meio de laços sociais baseados em afinidades, interesses em comum ou relacionamento existente no mundo real. É comum os indivíduos descrevem seus interesses, sendo acessíveis no perfil do usuário que podem 45 Análise de dAdos e Web │ UnidAde ii ter as informações disponibilizadas de modo público, ou com restrições definidas pelo usuário, dependendo do grau de privacidade escolhido. As redes sociais são essencialmente focadas em interações de indivíduos e possuem um enorme potencial de agir como plataformas para o compartilhamento de dados pelos usuários, possibilitando assim a criação de classificações sociais de usuários e de seus contatos na rede social. São exemplos bem sucedidos de redes sociais: Facebook, Twitter, WhatsApp e Google Plus. As siglas APIs, SDKs (Software development kit - kit de desenvolvimento de software) e REST (Representational State Transfer - Transferência de Estado Representacional) são comuns no cenário atual de uso das redes sociais, principalmente para os desenvolvimentos de software. Será dada uma breve explicação sobre cada uma delas. Começando por API, entende-se com um conjunto de rotinas e padrões de programação para acesso a um aplicativo de software ou plataforma. As APIs são criadas quando uma empresa de software tem intenção que outros criadores de software desenvolvam produtos associados. Existem vários deles que disponibilizam seus códigos e instruções
Compartilhar