O documento discute como integrar a Web Semântica e a Web Social usando PHP. Ele explica o que é a Web Semântica e como garantir semântica na Web, além de como interpretar o significado dos dados usando identificação, definição, estrutura e consultas. Também aborda serviços Web, redes sociais online, ferramentas PHP e conclusões sobre como manipular padrões da Web Semântica e acessar recursos de redes sociais.
Classe V: Educação à distância com Videoconferência no Moodle
Integrando a Web Social e a Web Semântica com PHP
1. Integrando
Web Social e
Web Semântica
com PHP
Otávio Calaça Xavier
otaviocx@gmail.com
@otaviocx
Foz do Iguaçu, 20 de Outubro de 2011
2. Grupo de Desenvolvedores
PHP de Goiás
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 ...
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.
3
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.
4
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.
5
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?
6
7. Integrando Web Semântica e Web Social com PHP
O que é a Web Semântica?
Web 1.0 Web 2.0 Web 3.0
Web Sintática; Web Social; Web Semântica;
7
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
8
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;
9
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.
10
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)
11
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
12
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
13
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
14
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> 15
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
16
17. Integrando Web Semântica e Web Social com PHP
Como Interpretar o significado dos
dados?
Estrutura:
@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.
Triplas RDF
17
18. Integrando Web Semântica e Web Social com PHP
Como interpretar o significado dos
dados?
• Consulta
– SPARQL: Simple Protocol and RDF Query
Language
PREFIX abc: <http://example.com/exampleOntology#>
SELECT ?capital ?country
WHERE {
?x abc:cityname ?capital ;
abc:isCapitalOf ?y .
?y abc:countryname ?country ;
abc:isInContinent abc:Africa .
}
18
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.
19
20. Integrando Web Semântica e Web Social com PHP
Serviços Web
Arquiteturas
SOAP e WSDL REST
Arquitetura Orientada a Serviços; Arquitetura Orientada a Recursos;
A Web é utilizada apenas como Baseada no funcionamento da Web;
camada de transporte; Descrição sintática opcional;
Maior complexidade de implementação; Utilização do protocolo padrão da Web
Contrato formal entre as partes. para definição de interface uniforme.
20
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.
21
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.
22
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;
23
24. Integrando Web Semântica e Web Social com PHP
Redes Sociais Online
Aplicaçõ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;
24
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. 25
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)
}
26
27. Integrando Web Semântica e Web Social com PHP
Ferramentas PHP
• Web Semântica
– ARC - Exemplo
include_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'];
}
} 27
28. Integrando Web Semântica e Web Social com PHP
Ferramentas PHP
• Web Semântica
– RAP - Exemplo
require_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'];
}
28
}
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. 29
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());
} 30
}
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.
31
32. Integrando Web Semântica e Web Social com PHP
FIM
Perguntas?
Otávio Calaça Xavier – otaviocx@gmail.com
@otaviocx
Obrigado!
32