Data Warehousing para Mineração de Dados Jacques Robin CIn-UFPE.
Padrões da W3C para representação de conhecimento distribuída na web Luciano Barbosa e Jacques...
-
Upload
davi-barreira -
Category
Documents
-
view
214 -
download
0
Transcript of Padrões da W3C para representação de conhecimento distribuída na web Luciano Barbosa e Jacques...
Padrões da W3C para representaçãode conhecimento distribuída na web
Luciano Barbosa e Jacques RobinCIn-UFPE
Roteiro
1. Infra-estrutura da W3C para web semântica
2. XML3. XML Namespaces4. Estruturas de
documentos e esquema de dados XML
5. RDF6. Linguagens de
consultas paraXML e RDF
7. Máquinas de inferência para XML e RDF
DTDs
XML
RDF[S]
Namespaces
Stylesheets
CSS
XSLT
XQLQueries
XML-QL
Transformations
Acquisition
Protégé
Agents
Frames
Rules
XOL
SHOE
HornML
RFML
Ontobroker
FRODO
Infra-estrutura em camadas da W3C para web semântica
XML: padrão versátil de codificação de informação
eXtensible Markup LanguageInicialmente
Linguagem de codificação de documentosdocumentos 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
SGMLAtualmente
Padrão universal para representação, integração e transmissão de documentos, dados, informação, documentos, dados, informação, conhecimento e softwareconhecimento 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 Exemplo: <?xml version=“1.0”?>
Comentários Exemplo: <!--Comentário-->
Informações sobre esquemas (DTDs ou XMLS, opcional) Informações sobre apresentação (opcional)
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>
Nome Endereço Mail
Cliente
Bairro Cep EstadoRua
Luciano
Agamenon PE12345-000Centro
XML: elementos ou atributos?
<Cliente Nome = Luciano, Mail = [email protected]> <Endereço Rua = Agamenon, Bairro = Centro, Cep = 12345-000, Estado = PE> </Endereco></Cliente>
Endereço
Rua AgamenonBairro CentroCep 12345-000Estado PE
Cliente
Nome LucianoMail [email protected]
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 webDTD e XML schema: especificação de esquema de
dados e validação de documentos segundo especificação
XHTML: HTML em sintaxe XMLCSS: provê informações de apresentação dos dadosXSLT: gramáticas de transformação para XMLXSL-FO: bibliotecas de objetos para layout gráficosXPath: caminhos em documentos XML como árvoresXpointer: referências a fragmentos de documentosXlink: laço web entre documentos e fragmentos XMLSax 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
machine-readable 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 coisaURL (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 valor-
default>
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 XMLQualquer caracter é permitidoNenhum suporte para NamespacesLimitado suporte para reusabilidade e
modularidadeNenhum suporte para evolução do esquema,
extensão ou herança de declaraçõesValor default para atributos e não para elementosLimitada 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
Exemplo: <element name=“Title” type=“xsd:string”/> Definição de tipos complexos
Exemplo: <complexType name=“book”> Definição de tipos simples
Exemplo: <simpleType name=“book”>
XMLS: exemplo Exemplo de XMLS<?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>
Exemplo de documento válido
<?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://www.cmu.edu/Mitchell/Machine_Learning
http://gosta.exemplo.org/termo/gosta
RDF é grafo: ¼ de século depoisa volta das redes semânticas
Redes semânticas Forma de representar linguagem natural Formato para organizar expressões numa forma fácil de
ser computadaRDF é uma rede semântica para a Web
Redes Semânticas
spine has
vertebrate
mammal bird
canary ostrich
heart
hair
fly
wings
walkdoesn’t fly
yellow
isa
isa
isa
can
freddie hugo
isa
RDF em XML
Texto tripla:[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]>]
XML<rdf:rdf> <rdf:Description rdf:href=“http://uri-of-
document”> <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>
http://uri-of-document Creator_001
dc:Creator
card:name card:email
“John Smith”
RDF em XML: Grafo
RDF em XML: Árvore
card:name
rdf:Description
rdf:ID Creator_001
card:email
rdf:Description
rdf:href http://uri-of-Document
dc:Creator
rdf:href #Creator_001
“John Smith” “[email protected]”
rdf:rdf
RDF e XMLNS
<?xml version=“1.0” ?><rdf:RDF xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-
ns#” xmlns:dc=“http://purl.org/DC/”>
<rdf:Description about=“http://rama.cpe.fr/index.html”> <dc:Creator rdf:resource=“mailto:[email protected]”/> </rdf:Description></rdf:RDF>
Namespace para as especificações RDF
Namespace para uma especificação customizada
Sujeito
ObjetoPredicado
RDF Schema (RDFS): definição e motivação
Provê um sistema de tipo básicoProvê mapeamento entre recursos e propriedadesPermite a construção de estruturas hierárquicasMesma sintaxe que RDFInteroperabilidade de metadados de diferentes
comunidadesPermite 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<? xml version=“1.0” ?>< rdf xmlns:rdf = “http://w3.org/TR/Pr-
rdf-syntax#” xmlns:rdfs=“http://w3.org/TR/WD-rdf-schema#” >
<rdf:Description ID = “Title”> <type resource =
"http://w3.org/TR/PR-rdf-syntax#Property" />
<rdfs:label> Title </RDFS:label></rdf:Description> <rdf:Description ID = "Creator" > < rdf:type resource =
"http://w3.org/TR/PR-rdf-syntax#Property" />
<rdfs:label> Author or Creator </rdfds:label>
</rdf:Description> </rdf>
Exemplo de descrição RDF<?xml version=“1.0” ?><rdf:RDF
xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#”> xmlns:dc=“http://purl.org/DC/”>
<rdf:Description
about=“http://dstc.com.au/report.htm”>
<dc:Creator
rdf:resource=“mailto:[email protected]”/> <dc:Title = “Report” /> </rdf:Description></rdf: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:subClassOft = rdf:type
Person
Employee
Student
PhDStudentResearcher
ss
ss
rdfs:Resource
srdfs:Class
t
t
t
t
tt
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# 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> <rdf:Description ID=“Employee"> <rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/> <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"/> <rdfs:subClassOf rdf:resource="#Student"/> <rdfs:subClassOf rdf:resource="#Researcher"/> </rdf:Description> </rdf:RDF>
Herança múltipla
Person herda de Employee
Um atributo “ID” define um novo recurso
RDF Schema Namespace
XQuery: linguagem de consulta para BD XML
Baseada na sintaxe XMLDerivada de uma linguagem de consulta XML
chamada QuiltProjetada para ser pequenaConsultas são concisas e de fácil compreensãoPode ser usada em qualquer fonte de dados em
XMLLinguagem fortemente tipadaSistema 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 SquishQLTrata RDF como dadosProvê 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 recursoSELECT ?x WHERE (<http://somewhere/res1>, <http://somewhere/pred1>, ?x)
Exemplo 2: RestriçõesSELECT ?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].} // queryFORALL 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