Post on 24-Jun-2015
description
Integrando
Web Social e
Web Semânticacom PHP
Foz do Iguaçu, 20 de Outubro de 2011
Otávio Calaça Xavier
otaviocx@gmail.com
@otaviocx
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
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.
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.
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.
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?
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;
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
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;
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.
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)
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
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
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
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>
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
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
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 .
}
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.
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.
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.
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.
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;
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;
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.
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) }
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']; }}
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']; }}
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.
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()); } }
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.
32
Integrando Web Semântica e Web Social com PHP
FIM
Perguntas?
Obrigado!
Otávio Calaça Xavier – otaviocx@gmail.com
@otaviocx