Padrões da W3C para representação
de conhecimento distribuída na web
Luciano Barbosa e Jacques Robin
CIn-UFPE
Roteiro
1.
2.
3.
4.
5.
6.
7.
Infra-estrutura da W3C
Namespaces
para web semântica
CSS
DTDs
XSLT
XML
FRODO
Stylesheets
XML Namespaces
Agents
Ontobroker
Transformations
Estruturas de
documentos e esquema
HornML
XML
XQL
Rules
de dados XML
Queries
RFML
RDF
XML-QL
SHOE
Linguagens de consultas
Frames RDF[S] Acquisition
para
XML e RDF
XOL
Máquinas de inferência
Protégé
para XML e RDF
Infra-estrutura em camadas da W3C
para web semântica
XML: padrão versátil
de codificação de informação
 eXtensible Markup Language
 Inicialmente


Linguagem de codificação de documentos web
Simples alternativa para o HTML:
permitindo usuário definir suas próprias tags
 separando tags marcando conteúdo de tags especificando
apresentação


Versão aumentada para web de um sub-conjunto de SGML
 Atualmente


Padrão universal para representação, integração e transmissão
de documentos, dados, informação, conhecimento e software !
Versatilidade total, invadiu a computação inteira
XML é texto:
constituintes de um documento XML
 Sintaxe básica

Prólogo: cabeçalho do documento

Declaração XML


Comentários



Exemplo: <!--Comentário-->
Informações sobre esquemas (DTDs ou XMLS, opcional)
Informações sobre apresentação (opcional)


Exemplo: <?xml version=“1.0”?>
Exemplo: <?Xml-stylesheet type=“text/CSS” href=“modelo.css” ?>
Conteúdo: árvore de elementos
Elemento raiz: único
 Demais Elementos: representam os nós da árvore
 Exemplo: <exemplo> e </exemplo>


Atributos

Interno ao tags, conjunto não ordenado
XML é texto e é árvore:
exemplo de documento
<Cliente>
<Nome> Luciano </Nome>
<Endereço>
<Rua> Agamenon </Rua>
<Bairro> Centro </Bairro>
<Cep> 12345-000 </Cep>
<Estado> PE </Estado>
</Endereço>
<Mail> [email protected] </Mail>
</Cliente>
Cliente
Nome
Mail
Endereço
[email protected]
Luciano
Rua
Bairro
Cep
Agamenon Centro 12345-000
Estado
PE
XML: elementos ou atributos?
<Cliente Nome = Luciano,
Mail = [email protected]>
<Endereço
Rua = Agamenon,
Bairro = Centro,
Cep = 12345-000,
Estado = PE>
</Endereco>
</Cliente>
Cliente
Nome
Mail
Luciano
[email protected]
Endereço
Rua
Bairro
Cep
Estado
Agamenon
Centro
12345-000
PE
As dualidades de XML
1. codificação para usuários humanos ou para software
de processamento?
2. codificação de documentos ou de dados?
3. codificação de dados ou de meta-dados?
4. codificação para interoperabilidade ou para
desenvolvimento de aplicações?
5. codificação para comunicação ou para armazenamento?
Padrões e tecnologias baseadas em XML
 XML namespace: distrbuição na web
 DTD e XML schema: especificação de esquema de








dados e validação de documentos segundo
especificação
XHTML: HTML em sintaxe XML
CSS: provê informações de apresentação dos dados
XSLT: gramáticas de transformação para XML
XSL-FO: bibliotecas de objetos para layout gráficos
XPath: caminhos em documentos XML como árvores
Xpointer: referências a fragmentos de documentos
Xlink: laço web entre documentos e fragmentos XML
Sax e DOM: definem interfaces para ler e manipular
documentos XML
Onipresença atual de XML
 XML e sistemas distribuídos



WWW – Web Server
Intranets – gerenciamento de conhecimento
Middleware – protocolo de comunicação
 XML e inteligência artificial


Ontologias
Comunicação entres agentes
 XML e bancos de dados:



Integração de dados
Data warehousing
Sistemas de informação heterogêneos
XML: should I believe the hype?
 Pontos fortes de XML







Formato estruturado
Tecnologia disponível e
barata
Flexibilidade
Padrão aberto
Human-readable e machinereadable
Dados separado de
apresentação
Grande base de usuários e
software reutilizáveis
 Pontos fracos de XML



Ocupa muito espaço
Especificações não estão
completas
Não otimizado para nada
(já que pretende resolver
tudo )
XML namespaces (XMLNS):
definição e motivação
 Motivação



Identificar unicamente os elementos (recursos)
Reuso dos elementos
Semelhantes a pacotes de linguagens de programação
 Definição



Coleção de nomes, identificado por uma referência URI
Seu escopo vai além do conteúdo de um documento
Declaração: xmlns=“URI”
XMLNS: URI e URL
 URI (Unified Resource Identifier)

Características
Identifica recursos por um nome garantidamente único
 Garantia de unicidade através de um órgão, que pode ou não estar
na web, ou através de URL


Problemas

Múltiplos URIs podem significar a mesma coisa
 URL (Unified Resource Location)


Subconjunto de URI
Além de identificar, localiza o recurso
XMLNS:
abreviação e default
 Abreviação: alias para uma URI
<h:table xmlns:h="http://www.w3.org/TR/html4/">
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
 Default Namespaces: não é necessário prefixar os
elementos filhos
<table xmlns="http://www.w3.org/TR/html4/">
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
Exemplo de documento XML
usando XMLNS
<?xml version=“1.0”?>
<book:library xmlns:book=“http://www.library.com/spec”>
<book:book>
< book: title>
Machine Learning
</ book: title>
</ book: book>
</ book:library>
Tipos de documentos
e esquema de dados XML
 DTD



Herança de SGML quando XML era só para documentos
Expressividade adequada apenas para documentos, insuficiente
para dados e meta-dados
Sintaxe diferente de XML
 XML Schema (XMLS)



Novo padrão, na visão moderna de XML para codificar qualquer
coisa
Superar limitações de DTD
No entanto atualmente DTD permanecem o formalismo mais
utilizado
DTD: constituintes e características
 Especifica a estrutura e a sintaxe do documento XML
 Sintaxe:
<!DOCTYPE elemento-raiz [declaração-dos-elementos]>
<!ELEMENT nome-do-elemento tipo-do-elemento>
<!ATTLIST nome-do-elemento nome-atrib tipo-atrib valordefault>
DTD: exemplo
 Exemplo de DTD
<!DOCTYPE Book [
<!ELEMENT Book (Book*)>
<!ELEMENT Book (Title, Author)>
<!ELEMENT Title (#PCDATA)>
<!ELEMENT Author (#PCDATA)>
]>
 Exemplo de documento válido
<book>
<Title> Machine Learning </Title>
<Author> Tom M. Mitchell </Author>
</book>
DTD: limitações







Não usa sintaxe XML
Qualquer caracter é permitido
Nenhum suporte para Namespaces
Limitado suporte para reusabilidade e modularidade
Nenhum suporte para evolução do esquema, extensão
ou herança de declarações
Valor default para atributos e não para elementos
Limitada capacidade para especificar tipos


Intervalos
Suporta 10 tipos de dados
XML Schema (XMLS):
constituintes e características
 Características



Sintaxe em XML
Usa e suporta Namespaces
Sistema de tipo parecido com OO








Herança, tipos abstratos
Modularidade: inclusão e redefinição de esquema
Documentação estruturada
Restrição de cardinalidade para elementos
Valores nulos
Atributo e elemento defaults
Não especifica um elemento raiz
Grande e complicado
XML Schema (XMLS):
constituintes e características
 Constituintes

Declaração de elemento: associa um elemento a um tipo


Definição de tipos complexos


Exemplo: <element name=“Title” type=“xsd:string”/>
Exemplo: <complexType name=“book”>
Definição de tipos simples

Exemplo: <simpleType name=“book”>
XMLS: exemplo
 Exemplo de XMLS
 Exemplo de documento válido
<?xml version=“1.0”?>
<xsd:schema
xmlns:xsd=“http://www.w3.org/2001/
XMLSChema”
xmlns=“http://www.books.org”
targetNamespace=“http://www.books.org”>
<xsd:elment name=“book”>
<xsd:complexType>
<xsd:sequence>
<xsd:element ref= “Title” minOccurs=“1”
maxOccurs=“1”/>
<xsd:element ref= “Author” minOccurs=“1”
maxOccurs=“1”/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name=“Title” type=“xsd:string”/>
<xsd:element name=“Author” type=“xsd:string”/>
</xsd:schema>
<?xml version=“1.0”?>
<book xmlns=“http://www.books.org”
xmlns:xsi=“http://www.w3.org/2001/
XMLSChema-instance”
xsi:schemaLocation=“http://www.books.org
book.xsd”>
<book>
<Title> Machine Learning </Title>
<Author> Tom M. Mitchell </Author>
</book>
Processamento de XML
 Verificação: bem formado independentemente do conjunto de tags






utilizado, de DTD ou de XMLS
Validação: verifica conformidade ao conjunto de tags e suas
retrições de ordenamento e aninhamento especificado em uma
DTD ou XMLS
Parsing: gerar árvore a partir do texto
Transformação: XSLT regras de reescrituras baseadas no
casamento de padrão com documento de entrada e copiando e
reestruturando material que casou em um documento de saída
Consultas: enxergando documentos XML como BD, recuperar
documentos, elementos, atributos etc. Ex.: XQuery, XSLT,
Armazenamento persistente: SGBD nativo XML usando árvores no
lugar de tabela como modelo físico e XMLS como modelo lógico,
API de transformação de XML de e para modelos de dados
relacionais e O-R
Raciocínio automático: LoPiX, máquina de inferência aceitando
XML com variáveis lógica na conclusão e premissas das suas regras
Ontologia acadêmica abaixo da
ontologia geral do AIMA em XMLS
Exemplo de ontologia em XMLS
<complexType name=“Person”>
<sequence>
<element name=“name” type=“string”/>
<element name=“address” type=“string”/>
<element name=“email” type=“string”/>
<element name=“publication” type=“Publication” minOccurs=“0”
maxOccurs=“unbounded”/>
</sequence>
</complexType>
<complexType name=“Employee”>
<complexContent>
<extension base=“Person”>
<element name=“affiliation” type=“Organization”/>
</complexContent>
</complexType>
Exemplo de ontologia em XMLS
<complexType name=“Student”>
<complexContent>
<extension base=“Person”>
<element name=“studiesAt” type=“University”/>
</complexContent>
</complexType>
<complexType name=“PhDStudent”>
<complexContent>
<extension base=“Student”>
<extension base=“Researcher”>
<element name=“supervisor” type=“AcademicStaff”/>
</complexContent>
</complexType>
RDF: definição e motivação
 Limitações de XML Schema para representação de:



Estabelece ordem de elementos (não natural para metadados)
Problema de escalabilidade: manter a ordem de dados
Estrutura de árvore força ordem nos elementos, o que limita
versatilidade de uso para um determinado conhecimento ou
meta-dado
 Resource Definition Framework




Modelo para descrever recursos
Usa XML como sintaxe
Baseado em um modelo de grafo no lugar de árvore
Melhora a descoberta, o acesso e o gerenciamento das
informações da Web
RDF é texto: constituintes
de uma descrição RDF
 Formas de representação

Tripla:
Sujeito: recurso
 Objeto: outro recurso
 Predicado: relação que associa vários recursos


Como grafo:
Sujeitos são nós
 Objetos também são nós ou literais (átomos)
 Predicados são os arcos que ligam os nós

 Recursos são unicamente identificados por URI
RDF é texto: exemplo
[Sujeito = <http://www.cin.ufpe.br/~lab>,
Predicado =<http://gosta.exemplo.org/termo/gosta>,
Objeto =
http://www.cmu.edu/Mitchell/Machine_Learning ]
http://www.cin.ufpe.br/~lab
http://gosta.exemplo.org/termo/gosta
http://www.cmu.edu/Mitchell/Machine_Learning
RDF é grafo: ¼ de século depois
a volta das redes semânticas 
 Redes semânticas


Forma de representar linguagem natural
Formato para organizar expressões numa forma fácil de ser
computada
 RDF é uma rede semântica para a Web
Redes Semânticas
spine has
heart
vertebrate
isa
isa
hair
mammal
walk can
bird
isa
canary
freddie
wings
fly
isa
yellow
doesn’t fly
ostrich
hugo
RDF em XML
 Texto tripla:
 XML
[Sujeito=<http://uri-of-document>,
Predicado=<dc:Creator>,
Objeto=<Creator_001>]
[Sujeito=<Creator_001>,
Predicado=<card:name>,
Objeto=<Jonh Smith>]
[Sujeito=<Creator_001>,
Predicado=<card:email>,
Objeto=<[email protected]>]
<rdf:rdf>
<rdf:Description rdf:href=“http://uri-ofdocument”>
<dc:Creator rdf:href=“#Creator_001”/>
</rdf:Description>
<rdf:Description rdf:ID=“Creator_001”>
<card:name>
Jonh Smith
</card:name>
<card:email>
[email protected]
</card:email>
</rdf:Description>
</rdf:rdf>
RDF em XML: Grafo
dc:Creator
http://uri-of-document
Creator_001
card:name
“John Smith”
card:email
“[email protected]”
RDF em XML: Árvore
rdf:rdf
rdf:Description
rdf:Description
rdf:ID
card:name
Creator_001
card:email
rdf:href http://uri-of-Document
dc:Creator
rdf:href #Creator_001
“John Smith”
“[email protected]”
RDF e XMLNS
<?xml version=“1.0” ?>
<rdf:RDF
xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntaxns#”
Namespace para as especificações RDF
Namespace para uma especificação
xmlns:dc=“http://purl.org/DC/”>
customizada
<rdf:Description about=“http://rama.cpe.fr/index.html”>
<dc:Creator rdf:resource=“mailto:[email protected]”/>
</rdf:Description>
</rdf:RDF>
Predicado
Objeto
Sujeito
RDF Schema (RDFS):
definição e motivação






Provê um sistema de tipo básico
Provê mapeamento entre recursos e propriedades
Permite a construção de estruturas hierárquicas
Mesma sintaxe que RDF
Interoperabilidade de metadados de diferentes
comunidades
Permite codificar, trocar e reusar estrutura de
metadados
RDFS: constituintes
de um esquema de descrições
 Classes básicas



rdfs:Resource : todas as coisas descritas são recursos
(Objeto)
rdfs:Property: propriedades
rdfs:Class :similar à noção de classe em OO
 Propriedades Básicas



rdf:type: indica que um recurso é membro de uma classe
rdfs:subClassOf: similar à noção de subclasse em OO
rdfs:subPropertyOf: indica que uma propriedade é
especialização de outra
RDFS em XML: exemplo
 Exemplo de RDFS
 Exemplo de descrição RDF
<? xml version=“1.0” ?>
<?xml version=“1.0” ?>
< rdf xmlns:rdf = “http://w3.org/TR/Pr<rdf:RDF
rdf-syntax#”
xmlns:rdf=“http://www.w3.org/1999/0
xmlns:rdfs=“http://w3.org/TR/WD2/22-rdf-syntax-ns#”>
rdf-schema#” >
xmlns:dc=“http://purl.org/DC/”>
<rdf:Description ID = “Title”>
<type resource = "http://w3.org/TR/PR- <rdf:Description
rdf-syntax#Property" />
about=“http://dstc.com.au/report.htm”>
<rdfs:label> Title </RDFS:label>
<dc:Creator
</rdf:Description>
rdf:resource=“mailto:[email protected]”/>
<rdf:Description ID = "Creator" >
<dc:Title = “Report” />
< rdf:type resource =
</rdf:Description>
"http://w3.org/TR/PR-rdf</rdf:RDF>
syntax#Property" />
<rdfs:label> Author or Creator
</rdfds:label>
</rdf:Description>
</rdf>
Ontologia acadêmica abaixo da
ontologia geral do AIMA em RDFS
Exemplo de ontologia em RDFS:
versão triplos











[Sujeito=Person, Predicado=subClassOf, Objeto=
Resource]
[Sujeito=Employee, Predicado=subClassOf, Objeto=Person]
[Sujeito=Student, Predicado=subClassOf, Objeto=Person]
[Sujeito=PhDStudent, Predicado=subClassOf, Objeto=Student]
[Sujeito= PhDStudent, Predicado=subClassOf,
Objeto=Researcher]
[Sujeito=Person, Predicado=type, Objeto=Class]
[Sujeito=Employee, Predicado=type, Objeto=Class]
[Sujeito=Student, Predicado=type, Objeto=Class]
[Sujeito=PhDStudent, Predicado=type, Objeto=Class]
[Sujeito=Researcher, Predicado=type, Objeto=Class]
Exemplo de ontologia em RDFS:
versão grafo
s = rdfs:subClassOf
t = rdf:type
rdfs:Resource
t
s
rdfs:Class
t
Person
s
t
s
Employee
t
t
t
Student
s
s
Researcher
PhDStudent
Exemplo de ontologia em RDFS:
versão XML
<rdf:RDF xml:lang="en" xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#
RDF Schema Namespace
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<rdf:Description ID=“Person">
<rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
</rdf:Description>
Um atributo “ID” define um novo
<rdf:Description ID=“Employee">
recurso
<rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
Person herda de Employee
<rdfs:subClassOf rdf:resource="#Person"/>
</rdf:Description>
<rdf:Description ID=“Student">
<rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:subClassOf rdf:resource="#Person"/>
</rdf:Description>
<rdf:Description ID=“PhDStudent">
<rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
Herança múltipla
<rdfs:subClassOf rdf:resource="#Student"/>
<rdfs:subClassOf rdf:resource="#Researcher"/>
</rdf:Description>
</rdf:RDF>
XQuery: linguagem de consulta
para BD XML
 Baseada na sintaxe XML
 Derivada de uma linguagem de consulta XML chamada





Quilt
Projetada para ser pequena
Consultas são concisas e de fácil compreensão
Pode ser usada em qualquer fonte de dados em XML
Linguagem fortemente tipada
Sistema de tipo baseado em XML Schema
Exemplo de uso de XQuery para
consultar ontologia em XML(S)
 XML - artists.xml
<artists>
<artist>
<name> Cash </name>
<album live=“no”>
<name> Live and on the Air </name>
<year> 1997 </year>
</artist>
<artist>
<name> Denver </name>
<album live=“yes”>
<name> Denver </name>
<year> 1979 </year>
</artist>
</artists>
 consulta:
document(“artists.xml”)/artists/
artist/album[year=“1997”]
 Resultado da consulta
<album live=“no”>
<name> Live and on the Air </name>
<year> 1997 </year>
<album>
RDQL: linguagem de consulta
para BD RDF
 Implementação de um linguagem de consulta SQL para
RDF
 Linguagem derivada do SquishQL
 Trata RDF como dados
 Provê uma forma de escrever expressões mais
declarativas, para que um sistema a utilize
Exemplo de uso de RDQL para consultar
ontologia em RDF(S)
 Exemplo 1: Recuperar o valor de uma dada propriedade
de um dado recurso
SELECT ?x WHERE (<http://somewhere/res1>, <http://somewhere/pred1>, ?x)
 Exemplo 2: Restrições
SELECT ?a, ?b WHERE (?a, <http://somewhere/pred1>, ?b) AND
?b < 5
TRIPLE: uma máquina de inferência
dedutiva para RDF(S)
 Linguagem de consulta, inferência e transformação
para RDF
 Permite a manipulação de RDF sobre semânticas
diferentes
 Interessante para integração de dados
Exemplo de regras dedutiva TRIPLE
completando ontologia em RDF(S)
// RDFS cars example
@cars {
// xyz := "http://www.w3.org/2000/03/example/vehicles#".
xyz:MotorVehicle[rdfs:subClassOf -> rdfs:Resource].
xyz:PassengerVehicle[rdfs:subClassOf ->
xyz:MotorVehicle].
xyz:Truck[rdfs:subClassOf -> xyz:MotorVehicle].
xyz:Van[rdfs:subClassOf -> xyz:MotorVehicle].
xyz:MiniVan[
rdfs:subClassOf -> xyz:Van;
rdfs:subClassOf -> xyz:PassengerVehicle].
} // query
FORALL X,Y <- X[rdfs:subClassOf->Y]@rdfschema(cars).
Recapitulação
 Infra-estrutura da W3C para web semântica:






URI fornece a forma de identificar unicamente os elementos
XML fornece a sintaxe básica
XML Namespace provê uma forma de disponibilizar para a Web
Apesar de XMLS ser uma melhoria em relação à DTD ainda
possui restrições de expressibilidade
RDF: rede semântica para Web
RDF Schema: uso de ontologias
Download

OntoW3C - Centro de Informática da UFPE