32
Integrando Web Social e Web Semântica com PHP Foz do Iguaçu, 20 de Outubro de 2011 Otávio Calaça Xavier [email protected] @otaviocx

Integrando a Web Social e a Web Semântica com PHP

Embed Size (px)

DESCRIPTION

A Web Semântica (ou Web 3.0), uma extensão da Web convencional, surgiu com o propósito de suprir a necessidade de processamento e interpretação do conteúdo presente na Web por computadores, através de processos automatizados. Proposta por Berners-Lee, Hendler e Lassila em 2001, a Web Semântica possui mecanismos para tratar semanticamente a informação. Os recursos presentes na Web são ligados através de links. Com a adição de semântica nessas ligações, cada uma pode representar uma forma de relacionamento entre dados, contextualizando-os. Os relacionamentos semânticos tornam possível o processamento do significado das palavras em seu contexto. Esta palestra destinasse a apresentar as características e conceitos da Web Semântica e como utiliza-la em conjunto com aplicações da Web Social (2.0), como Redes Sociais Online, através da linguagem PHP.

Citation preview

Page 1: Integrando a Web Social e a Web Semântica com PHP

Integrando

Web Social e

Web Semânticacom PHP

Foz do Iguaçu, 20 de Outubro de 2011

Otávio Calaça Xavier

[email protected]

@otaviocx

Page 2: Integrando a Web Social e a Web Semântica com PHP

Criado em dezembro de 2007; Lista de Discussão:

− Mais de 550 membros.

Encontros:− Palestras;

− Networking.

Site:− www.gophp.com.br

Eventos:− FLISOL, FGSL, Latinoware, Conisli, CONSOFT, PHP

Conference Brasil, FISL ...

Grupo de Desenvolvedores PHP de Goiás

Page 3: Integrando a Web Social e a Web Semântica com PHP

3

Integrando Web Semântica e Web Social com PHP

Roteiro• O que é a Web Semântica?• Como garantir Semântica na Web?• Como interpretar o significado dos dados?• Serviços Web;

– Arquitetura SOAP/WSDL vs REST;

• Redes Sociais Online;– APIs e Aplicações Sociais;

• Ferramentas PHP;• Conclusão.

Page 4: Integrando a Web Social e a Web Semântica com PHP

4

Integrando Web Semântica e Web Social com PHP

O que é a Web Semântica?

• Web 1.0– Documentos ligados por Hyperlinks pela

Internet;– Sites pessoais, institucionais e

informativos;– Preocupação com o conteúdo e as

referências, não com a interface.

Page 5: Integrando a Web Social e a Web Semântica com PHP

5

Integrando Web Semântica e Web Social com PHP

O que é a Web Semântica?

• Web 2.0– O Ajax virou tendência;– Conteúdo em multimídia;– Compartilhamento de fotos e vídeos;– Redes Sociais;– Wikis;– Colaborativismo e interatividade.

Page 6: Integrando a Web Social e a Web Semântica com PHP

6

Integrando Web Semântica e Web Social com PHP

O que é a Web Semântica?

• O problema:– A Web é baseada no HTML;– O HTML define a estrutura, ou sintaxe, do

conteúdo;– Mas e a semântica?

Page 7: Integrando a Web Social e a Web Semântica com PHP

7

Integrando Web Semântica e Web Social com PHP

O que é a Web Semântica?Web 1.0

Web Sintática;

Web 2.0

Web Social;

Web 3.0

Web Semântica;

Page 8: Integrando a Web Social e a Web Semântica com PHP

8

Integrando Web Semântica e Web Social com PHP

O que é a Web Semântica?

• A Web 3.0– Se os computadores conseguirem

interpretar o significado do conteúdo, serão capazes de “entender” a informação;informação = dados contextualizados

– Buscas mais eficazes e inteligentes;– O resultado passa a ser a informação e

não um suposto local para encontrá-la

Page 9: Integrando a Web Social e a Web Semântica com PHP

9

Integrando Web Semântica e Web Social com PHP

Como garantir semântica na Web?

• De cima para baixo:– Análise da informação;– Processamento de linguagem natural;– Alta complexidade e possíveis falhas;

Page 10: Integrando a Web Social e a Web Semântica com PHP

10

Integrando Web Semântica e Web Social com PHP

Como garantir semântica na Web?

• De baixo para cima:– Encapsular semântica através de

anotações, no conteúdo;– Descrevendo cada coisa;– Relacionando coisas;– Descrevendo relacionamentos.

Page 11: Integrando a Web Social e a Web Semântica com PHP

11

Integrando Web Semântica e Web Social com PHP

Como interpretar o significado dos dados?

• Identificação (URIs)• Definição (Ontologias em OWL)• Estrutura (RDF e RDFS ou Microformatos)• Consultas (SPARQL)• Interpretação (Agentes de Software)

Page 12: Integrando a Web Social e a Web Semântica com PHP

12

Integrando Web Semântica e Web Social com PHP

Como interpretar o significado dos dados?

• Identificação– Cada coisa, recurso ou conceito deve ter um

identificador único• São usados URIs• Exemplo:

– Laranja1: http://www.exemplo.com/cor/laranja– Laranja2: http://www.exemplo.com/fruta/laranja

• Padrões: – ISBN: Livros– ISMN: Musicas– CPF: Pessoas Brasileiras

Page 13: Integrando a Web Social e a Web Semântica com PHP

13

Integrando Web Semântica e Web Social com PHP

Como interpretar o significado dos dados?

• Definição– Ontologias

• Define e descreve coisas, conceitos, recursos, propriedades e relacionamentos;

• Exemplo:– Laranja1 é uma Cor– Laranja2 é um tipo de Fruta– Fruta é uma Coisa Comestível– Uma Cor nunca poderá ser uma Coisa

Comestível

Page 14: Integrando a Web Social e a Web Semântica com PHP

14

Integrando Web Semântica e Web Social com PHP

Como interpretar o significado dos dados?

• Definição– Ontologias

• Exemplo:– Propriedades de Coisa Comestível:

» Sazonal – Sim/Não» Calorias – # (número)» Ingredientes (opcional) – outra Coisa

Comestível

Page 15: Integrando a Web Social e a Web Semântica com PHP

15

Integrando Web Semântica e Web Social com PHP

Como interpretar o significado dos dados?

• Definição– OWL: Ontology Web Language

<rdf:RDF xmlns:owl =http://www.w3.org/2002/07/owl#"xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#"xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"xmlns:xsd ="http://www.w3.org/2001/XMLSchema#">

<owl:Ontology rdf:about=""><rdfs:comment>An example OWL ontology</rdfs:comment><owl:priorVersion rdf:resource="http://www.mydomain.org/uni-ns-old"/><owl:imports

rdf:resource="http://www.mydomain.org/persons"/><rdfs:label>University Ontology</rdfs:label>

</owl:Ontology>

Page 16: Integrando a Web Social e a Web Semântica com PHP

16

Integrando Web Semântica e Web Social com PHP

Como interpretar o significado dos dados?

• Estrutura– RDF: Resource Description Framework;

• Padrão W3C para descrever recursos Web;• Identifica coisas através de URIs;• Várias implementações;• Triples: Formadas por 3 elementos:

sujeito+predicado+objeto

Page 17: Integrando a Web Social e a Web Semântica com PHP

17

Integrando Web Semântica e Web Social com PHP

Como Interpretar o significado dos dados?

@prefix : <http://www.exemplo.com/ontologias#>.@prefix f: <http://www.exemplo.com/ontologias/frutos#>.@prefix c: <http://www.exemplo.com/ontologias/cores#>.@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.

:SucoDeLaranja :hasIngredient f:laranja.f:laranja rdf:type :Fruto.f:laranja :hasColor c:laranja.f:laranjaTerra rdf:type f:laranja.

Estrutura:

Triplas RDF

Page 18: Integrando a Web Social e a Web Semântica com PHP

18

Integrando Web Semântica e Web Social com PHP

Como interpretar o significado dos dados?

• Consulta– SPARQL: Simple Protocol and RDF Query

LanguagePREFIX abc: <http://example.com/exampleOntology#>SELECT ?capital ?countryWHERE {

?x abc:cityname ?capital ; abc:isCapitalOf ?y .?y abc:countryname ?country ; abc:isInContinent abc:Africa .

}

Page 19: Integrando a Web Social e a Web Semântica com PHP

19

Integrando Web Semântica e Web Social com PHP

Serviços Web

Aplicações capazes de receber requisições e gerar respostas para outras aplicações;

Integração de Sistemas; Independência de Sistema Operacional e

Linguagem de Programação.

Page 20: Integrando a Web Social e a Web Semântica com PHP

20

Integrando Web Semântica e Web Social com PHP

Serviços WebArquiteturas

RESTArquitetura Orientada a Recursos;

Baseada no funcionamento da Web;

Descrição sintática opcional;

Utilização do protocolo padrão da Web para definição de interface uniforme.

SOAP e WSDLArquitetura Orientada a Serviços;

A Web é utilizada apenas como camada de transporte;

Maior complexidade de implementação;

Contrato formal entre as partes.

Page 21: Integrando a Web Social e a Web Semântica com PHP

21

Integrando Web Semântica e Web Social com PHP

Serviços Web Arquitetura REST

– Descrição sintática pode ser feita com WADL ou HTML;– Implementação simplificada e muito utilizada na Web Social;– Interações de estado através de hyperlinks;– Identificação de recursos através de URI;– Mensagens auto-descritivas;– Interface Uniforme.

Page 22: Integrando a Web Social e a Web Semântica com PHP

22

Integrando Web Semântica e Web Social com PHP

Redes Sociais Online Relacionamentos entre pessoas, seus interesses

e atividades em comum; Compartilhamento de conhecimento, experiência

e recursos; Comunidades Virtuais; Aplicações e Serviços Sociais; Meio de Comunicação Interativo.

Page 23: Integrando a Web Social e a Web Semântica com PHP

23

Integrando Web Semântica e Web Social com PHP

Redes Sociais Online - APIs Application Programming Interfaces

– Disponibilizam as funcionalidades de uma rede social para outras aplicações;

– São Serviços Web;– Arquitetura REST (também chamados de Serviços

RESTful);– Exemplos:

• Facebook API; • Twitter API; • Flickr API; • OpenSocial;

Page 24: Integrando a Web Social e a Web Semântica com PHP

24

Integrando Web Semântica e Web Social com PHP

Redes Sociais OnlineAplicações Sociais

Interação entre usuários; APIs de Redes Sociais Online como plataforma; Segurança com protocolos de autenticação e

autorização, como OAuth; Utilizam JSON, principalmente, e XML para a

representação dos dados;

Page 25: Integrando a Web Social e a Web Semântica com PHP

25

Integrando Web Semântica e Web Social com PHP

Ferramentas PHP• Web Semântica

– ARC• Sistema flexível para manipulação de

modelos RDF para Web Semântica, feito em PHP;

– RAP• RDF API for PHP: Sistema para análise,

consulta, manipulação e provimento de modelos RDF;

– pOWL• Editor OWL, em PHP, e API para OWL

baseada no RAP.

Page 26: Integrando a Web Social e a Web Semântica com PHP

26

Integrando Web Semântica e Web Social com PHP

Ferramentas PHP• Web Semântica

– Consulta SPARQL para Exemplos

PREFIX foaf: <http://xmlns.com/foaf/0.1/> . SELECT ?name ?age WHERE { ?person a foaf:Person ; foaf:name ?name . ?person foaf:age ?age . FILTER (?age >= 18) }

Page 27: Integrando a Web Social e a Web Semântica com PHP

27

Integrando Web Semântica e Web Social com PHP

Ferramentas PHP• Web Semântica

– ARC - Exemploinclude_once("path/to/arc/ARC2.php");$config = array( // configurações de banco de dados);$store = ARC2::getStore($config);if (!$store->isSetUp()) { $store->setUp();}$query = 'Consulta SPARQL';if ($people = $store->query($q, 'rows')) { foreach ($people as $person) { echo $person['name'] . ' - ' . $person['age']; }}

Page 28: Integrando a Web Social e a Web Semântica com PHP

28

Integrando Web Semântica e Web Social com PHP

Ferramentas PHP• Web Semântica

– RAP - Exemplorequire_once '/var/www/rap/rdfapi-php/test/config.php';$database = ModelFactory::getDbStore( // configurações de banco de dados);$strModel = "http://xmlns.com/foaf/0.1/";$dbModel = $database->getModel($strModel);

$query = 'Consulta SPARQL';

if ($result = $dbModel->sparqlQuery($query);) { foreach ($result as $person) { echo $person['?name'] . ' - ' . $person['?age']; }}

Page 29: Integrando a Web Social e a Web Semântica com PHP

29

Integrando Web Semântica e Web Social com PHP

Ferramentas PHP• APIs de Redes Sociais Online

– Existem bibliotecas em PHP para os mais diversos tipos de APIs;

– Essas bibliotecas são comumente chamadas de SDK;

– Alguns exemplos de APIs de Redes Sociais com SDK em PHP:

• Facebook Graph API;• Twitter API;• Flickr API;• OpenSocial.

Page 30: Integrando a Web Social e a Web Semântica com PHP

30

Integrando Web Semântica e Web Social com PHP

Ferramentas PHP• APIs de Redes Sociais Online

– Exemplo de Uso – Facebook: require_once('php-sdk/facebook.php'); $config = array( 'appId' => 'ID_da_App', 'secret' => 'Código_Secreto_da_App', ); $facebook = new Facebook($config); $user_id = $facebook->getUser();

if($user_id) { try { $user_profile = $facebook->api('/me','GET'); echo "Nome: " . $user_profile['name']; } catch(FacebookApiException $e) { $login_url = $facebook->getLoginUrl(); echo 'Por favor, faça <a href="' . $login_url . '">login.</a>'; error_log($e->getType()); error_log($e->getMessage()); } }

Page 31: Integrando a Web Social e a Web Semântica com PHP

31

Integrando Web Semântica e Web Social com PHP

Conclusão• Com PHP é possível manipular os padrões

fundamentais da Web Semântica;• Por meio de SDKs criados em PHP, também é

possível acessar os recursos disponibilizados por Redes Sociais Online de maneira simples;

• Através dos dados obtidos de recursos em Redes Sociais Online, é possível construir triplas RDF formando um repositório semântico;

• Desta forma, torna-se possível a realização de consultas semânticas, com SPARQL, em dados de Redes Sociais Online.

Page 32: Integrando a Web Social e a Web Semântica com PHP

32

Integrando Web Semântica e Web Social com PHP

FIM

Perguntas?

Obrigado!

Otávio Calaça Xavier – [email protected]

@otaviocx