bancos de dados e web ( xml, ontologias) prof.: sandro rigo

Post on 18-Apr-2015

140 Views

Category:

Documents

22 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Bancos de dados e Web( XML,

Ontologias)

Prof.: Sandro Rigo

Sumário

1. Motivação para uso de XML

2. Características Gerais do XML

3. Exemplo de uso

4. Exercício: XML e BD

5. Web semântica

1. Motivação para uso de XML

Na Web:

- HTML : papel central na Web

- Esquema de marcação para as páginas

- Tempo curto de uso

- Diversidade de modos de conexão:

tv digital, handhels, telefones, carros, ...

- Diversidade de mídias

- Necessidade de custos menores

Dificuldades na Web :- número grande de tags HTML, - interpretação de tags pelo browser- uso de tags pelo criador das páginas- dificuldade de separar conteúdo e forma- pouca necessidade de clientes simples- muita necessidade de clientes complexos- melhorias nos formulários- combinações com: computação gráfica,

animação, multimídia, e-commerce, matemática, meta-dados

Com Bases de Dados:

- facilidades de exportação, validação e importação de dados

- facilidades de modelagem e integração de modelos distintos

Exemplo de ontologia

Detalhes do mapeamento

HTML XML

marcação de apresentações, orientada para visualização

marcação de conteúdo, orientada para dados

não exige validação, interpretação livre

fortemente validada, interpretação rígida

elementos pré-definidos elementos livremente definidos

uso em contextos determinados (navegador)

uso em diversos contextos de aplicações de SW

uso de gramática

acesso com DOM acesso com DOM/SAX

- independente de plataforma- dependente de conteúdo- recomendada pelo W3C em 1998

- HTML:aplicação da SGML (Standard Generalized

Markup Language ), padrão internacional para descrição de documentos eletrônicos – ISO 8879.

- XML criado como aplicação da SGML

- separação de conteúdo e estrutura do documento:

o conjunto de dados pode ser exibido (corretamente): -em um monitor de TV, -em um display de fone celular, - traduzido para voz em um dispositivo para cegos, - exibido em um monitor de computador, - recebido em um computador de bordo de carro

- tags interpretados pela aplicação/aplicativo- tags case-sensitive - inclui “end tags”: </p> , </li> - inclui “/” para tag vazios: <br />, <hr /> - indica com aspas valores atribuídos:

<img src=”teste.jpg" >

- a criação de tags não depende do W3C- é estruturado- família de tecnologias (Xlink, XSL, DOM, XML Namespaces, XML Schemas, RDF)

-XML: sucesso?

-Motivos: - documentos e dados independentes de aplicações- sintaxe padrão para metadados- estrutura padrão para documentos e dados- tecnologia antiga (SGML, TEX, ...)

- custo de processamento: suportável, atualmente

ÐÏࡱá > þÿ * , þÿÿÿ ) ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì¥Á 5@ ð¿ bjbjÏ2Ï2 . X X ÿÿ ÿÿ ÿÿ ˆ 2 2 2 2 2 2 2 F j j j j v F “ ¶ Ž Ž Ž Ž Ž Ž Ž Ž $ I R › \ 8 2 Ž Ž Ž Ž Ž 8 2 2 Ž Ž M à à à Ž 2 Ž 2 Ž à Ž à à ö 2 2 ö Ž ‚ :øÄ j ž ö c 0 “ ö ÷ ¨ � ÷ ö F F 2 2 2 2 ÷ 2 ö Ž Ž à Ž

<body lang=PT-BR style='tab-interval:35.4pt'>

<div class=Section1>

<p class=MsoNormal>Teste com xml</p>

</div>

- Dados x Metadados

Carlos Silva NomeDuque de Caxias 456 Endereço90051-102 CEPPorto Alegre Cidade

- Estrutura x Dados

\select@language {brazilian}\contentsline {chapter}{\numberline {1}Modelo Cap\IeC {\'\i }tulo SWL}{4}\contentsline {section}{\numberline {1.1.}Introdu\c c\~ao}{4}\contentsline {subsection}{\numberline {1.1.1.}Subse\c c\~ao}{4}\contentsline {subsection}{\numberline {1.1.2.}Programas e Algoritmos}{5}\contentsline {subsection}{\numberline {1.1.3.}Linha de Comando}{5}\contentsline {subsection}{\numberline {1.1.4.}Figura}{5}\contentsline {subsection}{\numberline {1.1.5.}Tabela}{6}\contentsline {section}{\numberline {1.2.}Bibliografia}{6}

- Namespaces- nomes únicos para elementos e atributos- prefixo + nome local

<xsd:string><dc:creator>

- declaração <xsd:schema xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>

- expansão<html xmlns=”http://www.w3.org/1999/xhtml”><head> <title>Teste</title> </head><body> Corpo do teste </body></html>

- Namespaces- nomes únicos para elementos e atributos- prefixo + nome local

<xsd:string><dc:creator>

- declaração <xsd:schema xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>

- expansão<html xmlns=”http://www.w3.org/1999/xhtml”><head> <title>Teste</title> </head><body> Corpo do teste </body></html>

<{http://www.w3.org/1999/xhtml}html><{http://www.w3.org/1999/xhtml}head> <{http://www.w3.org/1999/xhtml}title>Teste</{http://www.w3.org/1999/xhtml}title>

- elementos<email>

<assunto>Revisão Geral</assunto>

<autor>Carlos Silva</autor></email>

Marcador de início <autor>Marcador de fim </autor>Marcador vazio <img />

- Documento bem formado x válido

- Esquema (DTD/XMLSchema)

Estrutura de documentos XML:

Lógica:- elementos e sub-elementos, tipos de dados, atributos, restrições de cardinalidade...

Física: - descrição dos dados de acordo com a estrutura lógica definida

Documentos: - bem formados: seguem regras de sintaxe - válidos: seguem regras de sintaxe e de estrutura

Definição de estrutura:

DTD (Document Type Definition) x XML Schema

DTD: mais simples, não tem descreve tipos de dados, não é extensível,sintaxe própria.

Schema: linguagem extensível,descreve tipos de dados,descreve cardinalidade,suporta namespaces,sintaxe XML.

-usado junto com uma gramática: - DTD- XML Schema

- usado junto com uma gramática: o DTD

DTD - Document Type Definition

- definições que descrevem o uso das marcações.- indica elementos, atributos e valores- indica relacionamento entre os elementos- pode definir também entidades

- exemplo de DTD para email:

<!ELEMENT Mail (From, To, Cc?, Date?, Subject, Body)><!ELEMENT From (#PCDATA) ><!ELEMENT To (#PCDATA) ><!ELEMENT Cc (#PCDATA) ><!ELEMENT Date (#PCDATA) ><!ELEMENT Subject (#PCDATA) ><!ELEMENT Body (#PCDATA | P | Br)* ><!ELEMENT P (#PCDATA | Br)* ><!ATTLIST P align (left | right | justify) "left" ><!ELEMENT Br EMPTY >

<!ELEMENT Mail (From, To, Cc?, Date?, Subject, Body)><!ELEMENT From (#PCDATA) ><!ELEMENT To (#PCDATA) ><!ELEMENT Cc (#PCDATA) ><!ELEMENT Date (#PCDATA) ><!ELEMENT Subject (#PCDATA) ><!ELEMENT Body (#PCDATA | P | Br)* ><!ELEMENT P (#PCDATA | Br)* ><!ATTLIST P align (left | right | justify) "left" ><!ELEMENT Br EMPTY >

- apenas um: from, to, subject, body- opcional: cc, date (?)- apenas texto: from, to, cc, data. Subject.

<!ELEMENT Mail (From, To, Cc?, Date?, Subject, Body)><!ELEMENT From (#PCDATA) ><!ELEMENT To (#PCDATA) ><!ELEMENT Cc (#PCDATA) ><!ELEMENT Date (#PCDATA) ><!ELEMENT Subject (#PCDATA) ><!ELEMENT Body (#PCDATA | P | Br)* ><!ELEMENT P (#PCDATA | Br)* ><!ATTLIST P align (left | right | justify) "left" ><!ELEMENT Br EMPTY >

- campo body: texto, P, Br- Campo P: texto e zero ou mais Br e um atributo: align (valores: left/right/justify, default:left)

- SchemaSimples: <xsd:element name=”autor” type=”xsd:string” />Complexo:<xsd:element name=”livro”><xsd:complexType><xsd:attribute name=”titulo” type=”xsd:string” /><xsd:attribute name=”paginas” type = “xsd:int” /></xsd:complexType></xsd:element>

-Especificações básicas:- XML 1.0: define a sintaxe da XML

-XPointer e Xlink: define mecanismos de representação de ligações entre documentos, permitindo ligação de recursos múltiplos e em formatos diferentes.

-XSL: define a linguagem utilizada para descrever estilos para documentos XML

Browser XML:- realiza o leitura do documento e valida o mesmo junto ao DTD.- indicação da localização do DTD:

<!DOCTYPE Mail system "http://infowest.com/DTDS/mail.dtd"><Mail>.. ..</Mail>

Browser XML:- realiza o leitura do documento e valida o mesmo junto ao DTD.- indicação da localização do DTD:

<!DOCTYPE Mail system "http://infowest.com/DTDS/mail.dtd"><Mail> .. .. </Mail>

- Documento “well-formed” : dentro das regras básicas

Browser XML:- realiza o leitura do documento e valida o mesmo junto ao DTD.- indicação da localização do DTD:

<!DOCTYPE Mail system "http://infowest.com/DTDS/mail.dtd"><Mail> .. .. </Mail>

- Documento “well-formed” : dentro das regras básicas- Documento Válido: “well-formed” e dentro de uma especificação de um DTD.

Exemplo: “well-formed”<?xml version="1.0" standalone=“yes"?> <Mail> <From>Autor</From> <To>Alguém</To> <Date> Terça - 14 de agosto de 2000</Date> <Subject>Introdução ao XML </Subject> <body><p>Obrigado pela leitura<Br/> desta introdução</p> <br/> <p>Esperamos que seja proveitosa</p> </body> </Mail>

Exemplo: “well-formed” & Válido<?xml version="1.0" standalone="no"?><!DOCTYPE mail system “http://infowest.com/DTDS/mail.dtd”> <Mail> <From>Autor</From> <To>Alguém</To> <Date> Terça - 14 de agosto de 2000</Date> <Subject>Introdução ao XML </Subject> <body>Comentários:<p align=“justify”>Obrigado pela leitura<Br/></p>

<p>Esperamos que seja proveitosa</p> </body> </Mail>

Exemplo: “well-formed” & Válido<?xml version="1.0" standalone="no"?><!DOCTYPE mail system “http://infowest.com/DTDS/mail.dtd”> <Mail> <From>Autor</From> <To>Alguém</To> <Date> Terça - 14 de agosto de 2000</Date> <Subject>Introdução ao XML </Subject> <body>Comentários:<p align=“justify”>Obrigado pela leitura<Br/></p>

<p>Esperamos que seja proveitosa</p> </body> </Mail>

3. Exemplo de uso

Lista de disciplinas

Lista de disciplinas- Versão HTML

Lista de disciplinas- Versão HTML

<html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body bgcolor="#FFFFFF"><div align="center"> <p>Lista de Disciplinas</p> <table width="85%" border="1"> <tr> <td width="25%"> <b><font color="#FF3333">Nome</font></b></td> <td width="25%"><b><font color="#FF3333">Professor</font></b> </td> <td width="25%"><b><font color="#FF3333">Assunto</font></b> </td> <td width="25%"><b><font color="#FF3333">C&oacute;digo</font></b> </td> </tr> <tr> <td width="25%"><b><font color="#0000FF"><i>Redes de Computadores e Protocolo TCP/IP</i></font></b></td> <td width="25%">Valter Nunes</td> <td width="25%">TCP/IP</td> <td width="25%">PR4101</td></td></tr>......</body></html>

Lista de disciplinas- DTD

<?xml version="1.0" encoding="UTF-8"?><!ELEMENT LISTA_DISC (DISC)><!ELEMENT DISC (NOME_DISC, PROF_DISC, ASSUNTO_DISC, COD_DISC)><!ELEMENT NOME_DISC (#PCDATA)><!ELEMENT PROF_DISC (#PCDATA)><!ELEMENT ASSUNTO_DISC (#PCDATA)><!ELEMENT COD_DISC (#PCDATA)>

Lista de disciplinas- Dados

<LISTA_DISC><DISC>

<NOME_DISC>Redes de Computadores e Protocolo TCP/IP</NOME_DISC><PROF_DISC>Valter Nunes</PROF_DISC><ASSUNTO_DISC>TCP/IP</ASSUNTO_DISC><COD_DISC>PR4101</COD_DISC>

</DISC><DISC>

<NOME_DISC>Tecnologias de Transmissao</NOME_DISC><PROF_DISC>Carlos Silva</PROF_DISC><ASSUNTO_DISC>ATM</ASSUNTO_DISC><COD_DISC>PR4102</COD_DISC>

</DISC>........</LISTA_DISC>

Lista de disciplinas- Doc.XML

<?xml version='1.0'?><!DOCTYPE teste SYSTEM "listadisc.dtd"><?xml:stylesheet type="text/xsl" href="lista-disciplinas.xsl"?><LISTA_DISC><DISC>

<NOME_DISC>Redes de Computadores e Protocolo TCP/IP</NOME_DISC><PROF_DISC>Valter Nunes</PROF_DISC><ASSUNTO_DISC>TCP/IP</ASSUNTO_DISC><COD_DISC>PR4101</COD_DISC>

</DISC>

Lista de disciplinas- Estilo.XSL

<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" xmlns="http://www.w3.org/TR/REC-html40" result-ns="" default-space="strip" indent-result="yes"> <xsl:template match="/"> <HTML><HEAD><TITLE>Titulo </TITLE></HEAD> <BODY><CENTER><H3>LISTA DE DISCIPLINAS</H3>

<TABLE BORDER="1"> <TR> <TD align="center"><FONT ...>Nome</FONT></TD> <TD align="center"><FONT ...>Professor</FONT></TD> <TD align="center"><FONT ...>Assunto</FONT></TD> <TD align="center"><FONT ...>Codigo</FONT></TD>

</TR> <xsl:for-each select="/LISTA_DISC/DISC">

<TR><TD align="left"><I><B><FONT COLOR="#006400"><xsl:apply-templates select="NOME_DISC"/></FONT></B></I></TD>

Lista de disciplinas- Estilo.XSL

<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" xmlns="http://www.w3.org/TR/REC-html40" result-ns="" default-space="strip" indent-result="yes"> <xsl:template match="/"> <HTML><HEAD><TITLE>Titulo </TITLE></HEAD> <BODY><CENTER><H3>LISTA DE DISCIPLINAS</H3>

<TABLE BORDER="1"> <TR> <TD align="center"><FONT ...>Nome</FONT></TD> <TD align="center"><FONT ...>Professor</FONT></TD> <TD align="center"><FONT ...>Assunto</FONT></TD> <TD align="center"><FONT ...>Codigo</FONT></TD>

</TR> <xsl:for-each select="/LISTA_DISC/DISC">

<TR><TD align="left"><I><B><FONT COLOR="#006400"><xsl:apply-templates select="NOME_DISC"/></FONT></B></I></TD>

Lista de disciplinas- Aplicação

<HEAD> <SCRIPT FOR="window" EVENT="onload"> var xmlDso = xmldso.XMLDocument; xmlDso.load("listadisc-dados.xml"); </SCRIPT></HEAD><BODY> <OBJECT WIDTH="0" HEIGHT="0" CLASSID="clsid:550" ID="xmldso"> </OBJECT> <SPAN STYLE="font-weight:bold">Nome: </SPAN> <SPAN ID="Nome_disciplina" DATASRC=#xmldso DATAFLD="NOME_DISC" STYLE="color:blue"> </SPAN>.....<INPUT TYPE=button VALUE="Disciplina Anterior" ONCLICK="xmldso.recordset.moveprevious()"> <INPUT TYPE=button VALUE="Proxima Disciplina" ONCLICK="xmldso.recordset.movenext()"

Codificação:Diversos formatos existentes:

Latin-1 / ISSO-8859-1 (ASCII+alfabetos latinos)ISO-8859-2 (línguas da Europa central)ISO-8859-3 (esperanto, turco, maltês)ISO-8859-5 (alfabeto cirílico-russo, línguas

eslavas)

Para faciltar intercâmbio:uso do unicode (http://www.unicode.org)formatos mais usados: UTF-8, UTF-16

NAMESPACES:Definição de contextos para cada elemento descritoO mesmo marcador pode ter diversas concepçõesExemplo: <title> Em HTML: título da janela

<title> Em um livro: título do livro <title> Em uma aplicação: nome do assunto

!No W3C:

http://www.w3.org/TR/REC-xml-names/Uso:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" >

................<xsl:template ........

Atributos reservados:

xml: lang – indica a linguagem utilizada

exemplo: <quote xml:lang=“en”>......</quote> <quote

xml:lang=“pt”>......</quote>

xml:space – indicação de espaço a ser preservado na apresentação dos dados do documento

Criação de documento XSL

- O documento XSL permite aplicar formatação de estilo aos dados em documentos XML

- Possibilita a transformação de uma mesma fonte para diversos formatos finais

- Roteiro:1. analisador XML monta a estrutura dos dados2. processador XSLT aplica as instruções do

documento XSL nesta estrutura de dados. 3. o resultado é enviado para um leitor

Exemplo:a) Documento XML com dados e indicação do doc. XSL

<?xml version='1.0'?>

<!DOCTYPE teste SYSTEM "listadisc2.dtd">

<?xml:stylesheet type="text/xsl" href="lista-disciplinas2.xsl"?>

<LISTA_DISC>

<DISC>

<NOME_DISC>Redes de Computadores e Protocolo TCP/IP</NOME_DISC>

<PROF_DISC>Valter Nunes</PROF_DISC>

<ASSUNTO_DISC>TCP/IP</ASSUNTO_DISC>

<COD_DISC>PR4101</COD_DISC>

</DISC>

Exemplo:a) Documento XML com dados e indicação do doc. XSL

<?xml version='1.0'?>

<!DOCTYPE teste SYSTEM "listadisc2.dtd">

<?xml:stylesheet type="text/xsl" href="lista-disciplinas2.xsl"?>

<LISTA_DISC>

<DISC>

<NOME_DISC>Redes de Computadores e Protocolo TCP/IP</NOME_DISC>

<PROF_DISC>Valter Nunes</PROF_DISC>

<ASSUNTO_DISC>TCP/IP</ASSUNTO_DISC>

<COD_DISC>PR4101</COD_DISC>

</DISC>

Exemplo:a) Documento XML com dados e indicação do doc. XSL

<?xml version='1.0'?>

<!DOCTYPE teste SYSTEM "listadisc2.dtd">

<?xml:stylesheet type="text/xsl" href="lista-disciplinas2.xsl"?>

<LISTA_DISC>

<DISC>

<NOME_DISC>Redes de Computadores e Protocolo TCP/IP</NOME_DISC>

<PROF_DISC>Valter Nunes</PROF_DISC>

<ASSUNTO_DISC>TCP/IP</ASSUNTO_DISC>

<COD_DISC>PR4101</COD_DISC>

</DISC>

Exemplo:b) Documento XSL

<?xml:stylesheet type="text/xsl" href="lista-disciplinas2.xsl"?>

?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl=http://www.w3.org/TR/WD-xsl ...>

<xsl:template match="/"><HTML><HEAD><TITLE>Titulo </TITLE></HEAD><BODY><CENTER><H3>LISTA DE DISCIPLINAS</H3><TABLE BORDER="1"><TR><TD>Nome</TD><TD>Professor</TD></TR><xsl:for-each select="/LISTA_DISC/DISC"> <TR><TD><I><B><FONT COLOR="#006400"> <xsl:apply-templates select="NOME_DISC"/> </FONT></B></I> </TD> < TD align="center"> <xsl:apply-templates select="PROF_DISC"/> </TD> </TR>

</xsl:for-each> </TABLE></CENTER></BODY></HTML></xsl:template>

</xsl:stylesheet>

Exemplo:b) Documento XSL

<?xml:stylesheet type="text/xsl" href="lista-disciplinas2.xsl"?>

?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl=http://www.w3.org/TR/WD-xsl ...>

<xsl:template match="/"><HTML><HEAD><TITLE>Titulo </TITLE></HEAD><BODY><CENTER><H3>LISTA DE DISCIPLINAS</H3><TABLE BORDER="1"><TR><TD>Nome</TD><TD>Professor</TD></TR><xsl:for-each select="/LISTA_DISC/DISC"> <TR><TD><I><B><FONT COLOR="#006400"> <xsl:apply-templates select="NOME_DISC"/> </FONT></B></I> </TD> < TD align="center"> <xsl:apply-templates select="PROF_DISC"/> </TD> </TR>

</xsl:for-each> </TABLE></CENTER></BODY></HTML></xsl:template>

</xsl:stylesheet>

Exemplo:b) Documento XSL

<?xml:stylesheet type="text/xsl" href="lista-disciplinas2.xsl"?>

?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl=http://www.w3.org/TR/WD-xsl ...>

<xsl:template match="/"><HTML><HEAD><TITLE>Titulo </TITLE></HEAD><BODY><CENTER><H3>LISTA DE DISCIPLINAS</H3><TABLE BORDER="1"><TR><TD>Nome</TD><TD>Professor</TD></TR><xsl:for-each select="/LISTA_DISC/DISC"> <TR><TD><I><B><FONT COLOR="#006400"> <xsl:apply-templates select="NOME_DISC"/> </FONT></B></I> </TD> < TD align="center"> <xsl:apply-templates select="PROF_DISC"/> </TD> </TR>

</xsl:for-each> </TABLE></CENTER></BODY></HTML></xsl:template>

</xsl:stylesheet>

Exemplo:b) Documento XSL

<?xml:stylesheet type="text/xsl" href="lista-disciplinas2.xsl"?>

?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl=http://www.w3.org/TR/WD-xsl ...>

<xsl:template match="/"><HTML><HEAD><TITLE>Titulo </TITLE></HEAD><BODY><CENTER><H3>LISTA DE DISCIPLINAS</H3><TABLE BORDER="1"><TR><TD>Nome</TD><TD>Professor</TD></TR><xsl:for-each select="/LISTA_DISC/DISC"> <TR><TD><I><B><FONT COLOR="#006400"> <xsl:apply-templates select="NOME_DISC"/> </FONT></B></I> </TD> < TD align="center"> <xsl:apply-templates select="PROF_DISC"/> </TD> </TR>

</xsl:for-each> </TABLE></CENTER></BODY></HTML></xsl:template>

</xsl:stylesheet>

Exemplo:b) Documento XSL

<?xml:stylesheet type="text/xsl" href="lista-disciplinas2.xsl"?>

?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl=http://www.w3.org/TR/WD-xsl ...>

<xsl:template match="/"><HTML><HEAD><TITLE>Titulo </TITLE></HEAD><BODY><CENTER><H3>LISTA DE DISCIPLINAS</H3><TABLE BORDER="1"><TR><TD>Nome</TD><TD>Professor</TD></TR><xsl:for-each select="/LISTA_DISC/DISC"> <TR><TD><I><B><FONT COLOR="#006400"> <xsl:apply-templates select="NOME_DISC"/> </FONT></B></I> </TD> < TD align="center"> <xsl:apply-templates select="PROF_DISC"/> </TD> </TR>

</xsl:for-each> </TABLE></CENTER></BODY></HTML></xsl:template>

</xsl:stylesheet>

Exemplo:b) Documento XSL

<?xml:stylesheet type="text/xsl" href="lista-disciplinas2.xsl"?>

?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl=http://www.w3.org/TR/WD-xsl ...>

<xsl:template match="/"><HTML><HEAD><TITLE>Titulo </TITLE></HEAD><BODY><CENTER><H3>LISTA DE DISCIPLINAS</H3><TABLE BORDER="1"><TR><TD>Nome</TD><TD>Professor</TD></TR><xsl:for-each select="/LISTA_DISC/DISC"> <TR><TD><I><B><FONT COLOR="#006400"> <xsl:apply-templates select="NOME_DISC"/> </FONT></B></I> </TD> < TD align="center"> <xsl:apply-templates select="PROF_DISC"/> </TD> </TR>

</xsl:for-each> </TABLE></CENTER></BODY></HTML></xsl:template>

</xsl:stylesheet>

Exemplo:b) Documento XSL

<?xml:stylesheet type="text/xsl" href="lista-disciplinas2.xsl"?>

?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl=http://www.w3.org/TR/WD-xsl ...>

<xsl:template match="/"><HTML><HEAD><TITLE>Titulo </TITLE></HEAD><BODY><CENTER><H3>LISTA DE DISCIPLINAS</H3><TABLE BORDER="1"><TR><TD>Nome</TD><TD>Professor</TD></TR><xsl:for-each select="/LISTA_DISC/DISC"> <TR><TD><I><B><FONT COLOR="#006400"> <xsl:apply-templates select="NOME_DISC"/> </FONT></B></I> </TD> < TD align="center"> <xsl:apply-templates select="PROF_DISC"/> </TD> </TR>

</xsl:for-each> </TABLE></CENTER></BODY></HTML></xsl:template>

</xsl:stylesheet>

Exemplo:b) Documento XSL

<?xml:stylesheet type="text/xsl" href="lista-disciplinas2.xsl"?>

?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl=http://www.w3.org/TR/WD-xsl ...>

<xsl:template match="/"><HTML><HEAD><TITLE>Titulo </TITLE></HEAD><BODY><CENTER><H3>LISTA DE DISCIPLINAS</H3><TABLE BORDER="1"><TR><TD>Nome</TD><TD>Professor</TD></TR><xsl:for-each select="/LISTA_DISC/DISC"> <TR><TD><I><B><FONT COLOR="#006400"> <xsl:apply-templates select="NOME_DISC"/> </FONT></B></I> </TD> < TD align="center"> <xsl:apply-templates select="PROF_DISC"/> </TD> </TR>

</xsl:for-each> </TABLE></CENTER></BODY></HTML></xsl:template>

</xsl:stylesheet>

Exemplo:b) Documento XSL

<?xml:stylesheet type="text/xsl" href="lista-disciplinas2.xsl"?>

?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl=http://www.w3.org/TR/WD-xsl ...>

<xsl:template match="/"><HTML><HEAD><TITLE>Titulo </TITLE></HEAD><BODY><CENTER><H3>LISTA DE DISCIPLINAS</H3><TABLE BORDER="1"><TR><TD>Nome</TD><TD>Professor</TD></TR><xsl:for-each select="/LISTA_DISC/DISC"> <TR><TD><I><B><FONT COLOR="#006400"> <xsl:apply-templates select="NOME_DISC"/> </FONT></B></I> </TD> < TD align="center"> <xsl:apply-templates select="PROF_DISC"/> </TD> </TR>

</xsl:for-each> </TABLE></CENTER></BODY></HTML></xsl:template>

</xsl:stylesheet>

Exemplo:b) Documento XSL

<xsl:template match="/">

<HTML><HEAD><TITLE>Titulo </TITLE></HEAD>

<BODY><CENTER><H3>LISTA DE DISCIPLINAS</H3>

<TABLE BORDER="1">

<TR><TD>Nome</TD><TD>Professor</TD></TR>

Exemplo:b) Documento XSL

<xsl:template match="/">

<HTML><HEAD><TITLE>Titulo </TITLE></HEAD>

<BODY><CENTER><H3>LISTA DE DISCIPLINAS</H3>

<TABLE BORDER="1">

<TR><TD>Nome</TD><TD>Professor</TD></TR>

<TR><TD><I><B><FONT COLOR="#006400"><xsl:for-each select="/LISTA_DISC/DISC">

Exemplo:b) Documento XSL

<xsl:template match="/">

<HTML><HEAD><TITLE>Titulo </TITLE></HEAD>

<BODY><CENTER><H3>LISTA DE DISCIPLINAS</H3>

<TABLE BORDER="1">

<TR><TD>Nome</TD><TD>Professor</TD></TR>

Redes de Computadores e Protocolo TCP/IP

<TR><TD><I><B><FONT COLOR="#006400"><xsl:for-each select="/LISTA_DISC/DISC">

<NOME_DISC>Redes de Computadores e Protocolo TCP/IP</NOME_DISC>

<xsl:apply-templates select="NOME_DISC"/>

Exemplo:b) Documento XSL

<xsl:template match="/">

<HTML><HEAD><TITLE>Titulo </TITLE></HEAD>

<BODY><CENTER><H3>LISTA DE DISCIPLINAS</H3>

<TABLE BORDER="1">

<TR><TD>Nome</TD><TD>Professor</TD></TR>

Redes de Computadores e Protocolo TCP/IP

<TR><TD><I><B><FONT COLOR="#006400"><xsl:for-each select="/LISTA_DISC/DISC">

<NOME_DISC>Redes de Computadores e Protocolo TCP/IP</NOME_DISC>

<xsl:apply-templates select="NOME_DISC"/>

</FONT></B></I></TD>< TD align="center">

Exemplo:b) Documento XSL

<HTL><HEAD><TITLE>Titulo </TITLE></HEAD>

<BODY><CENTER><H3>LISTA DE DISCIPLINAS</H3>

<TABLE BORDER="1">

<TR><TD>Nome</TD><TD>Professor</TD></TR>

<TR><TD><I><B><FONT COLOR="#006400">

Redes de Computadores e Protocolo TCP/IP</FONT></B></I></TD>< TD align="center">Valter Nunes</TD></TR>.......

</TABLE></CENTER>

</BODY>

</HTML>

Publicação de dados com XML/XSL

Roteiro:- criação dos documentos- uso de parser (nos navegadores)- visualização dos resultados (em navegadores)

- elementos<email>

<assunto>Revisão Geral</assunto>

<autor>Carlos Silva</autor></email>

Marcador de início <autor>Marcador de fim </autor>Marcador vazio <img />

- Documento bem formado x válido

- Esquema (DTD/XMLSchema)

DOM / SAX

- DOM- Estrutura de nodos- documento, elemento, atributo, texto, comentário-Manipulação em memória

- SAX - Estrutura de eventos- início, texto, fim- manipulação em trechos

DOM: (segundo o W3C)

“O modelo de objetos para documentos (DOM) é uma API padrão para a estrutura de documentos e tem por objetivo facilitar o acesso de programadores aos seus conteúdos, para tarefas como apagar, acrescentar ou editar conteúdos, atributos ou estilos.”

“...Interface neutra com relação à plataformas e linguagens...”

http://www.w3.org/DOM

Exemplos - DOM:

Tipo de nodo Exemplo

Tipo de documento <!DOCTYPE mail SYSTEM “mail.dtd">

Instrução de processamento

<?xml version="1.0"?>

Elemento <from >rigo@exatas</from>

Atributo ordem=“left"

Conteúdo/Texto rigo@exatas

SAX: (segundo o SaxProject)

“SAX (Simple Api for Xml) teve seu início em 1997 e implementa uma interface padrão para análise de documentos XML. Diferencia-se do DOM por ser baseada em eventos e não baseada em árvores.”

“Apresenta melhor desempenho em determinadas situações pois não existe a necessidade de percorrer todo o documento e montar uma estrutura em árvore para somente depois iniciar a sua manipulação.”

http://www.saxproject.org

Exemplo:

Documento:<?xml version=“1.0”>

<mail>

<to>destino@host.br</to>

</mail>

Resultado da análise:start document

start element: mail

start element: to

characters: destino@host.br

end element: to

end element: mail

Ferramentas:

PARSERS - SAX

SAXPROJECT.ORG:

•The GNU Compiler for Java (GCJ) has for some time derived C++ bindings ("CNI" versus "JNI") directly from the Java interfaces. These allow C++ programs to use SAX2 Java parsers compiled to native code just like C++ classes, with only the overhead of a C++ virtual method invocation, not the significantly larger overhead of JNI. •Microsoft's MSXML 3.0 parser defines a COM binding, accessible from C, C++, Visual Basic, and more. •Pascal, with a Delphi focus. Version 1.1 is done, supports SAX2r2. •Perl (also check CPAN). •Python 2.0 and later bundles several SAX packages (xml.sax and so on) as part of its markup processing support. •SAX in C++, provides another C++ binding, using standard features of C++ such as namespaces, std::string, and templates. •Xerces-C, part of the Apache XML project, defines its own C and C++ bindings. This C++ binding makes minimal use of C++ features. •Curl Corporation defines its own web content language, and includes SAX2 support in its runtime environment. •ElCel Corporation provides a C++ XML toolkit with a SAX 2.0 binding.

Ferramentas:

PARSERS - DOM

W3C + GOOGLE:

– XP - www.jclark.com/xml/xp/

– Microsoft - Microsoft's MSXML 3.0

– Alphaworks - www.alphaworks.ibm.com/tech/xml4j

– Expat - expat.sourceforge.net/

– Apache – Xerces - xml.apache.org/xerces-j/

DOM / SAX - Uso

- Parser XML com Javascript: carga de arquivo

<script type="text/javascript">

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")

xmlDoc.async="false"

xmlDoc.load(“mail.xml")

// ....... processamento

</script>

- Parser XML com Javascript: escrita de arquivo

<script type="text/javascript"> var text="<nota>“text=text+"<para>Carlos</para><de>Silvia</de>" text=text+"<titulo>Lembrete!</titulo>" text=text+"<texto>Não se esqueça ...</texto>" text=text+"</nota>" var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") xmlDoc.async="false" xmlDoc.loadXML(text) // ....... processamento</script>

DOM / SAX - Uso

DOM/nodos: propriedades, métodos

DOM / SAX - Uso

nodeType nodeTypeString nodeName nodeValue Constante

1 element tagName Nulo ELEMENT_NODE

2 attribute name valor ATTRIBUTE_NODE

3 text #text Conteúdo do nodo TEXT_NODE

4 cdatasection #cdata-section

Conteúdo do nodo CDATA_SECTION_NODE

5 entityreference entity reference name

Nulo ENTITY_REFERENCE_NODE

6 entity entity name

Nulo ENTITY_NODE

7 processinginstruction

target Conteúdo do nodo PROCESSING_INSTRUCTION_NODE

8 comment #comment Texto do comentário COMMENT_NODE

9 document #document Nulo DOCUMENT_NODE

10 documenttype doctype name

Nulo DOCUMENT_TYPE_NODE

11 documentfragment #document fragment

Nulo DOCUMENT_FRAGMENT_NODE

12 notation notation name

Nulo NOTATION_NODE

DOM/nodos: propriedades, métodos

DOM / SAX - Uso

Propriedade Descrição

Attributes Retorna um mapa de nodos (NamedNodeMap)com todos os atributos deste nodo

ChildNodes Retorna uma lista de nodos (NodeList) com todos os nodos filho

FirstChild Retorna o primeiro filho deste nodo

LastChild Retorna o último filho deste nodo

NextSibling Retorna o próximo nodo irmão (filho do mesmo pai)

NodeName Retorna o nome do nodo

NodeType Retorna o tipo do nodo

NodeValue Retorna o valor do nodo

ownerDocument

Retorna o nodo raiz do documento

parentNode Retorna o nodo pai do nodo atual

previousSibling Retorna o nodo irmão (filho do mesmo pai) anterior ao nodo atual

DOM/nodos: propriedades, métodos

DOM / SAX - Uso

Métodos Descrição

appendChild(novo) Insere nodo filho

cloneNode(boolean) Retorna um clone do nodo atual. Se o valor nooleano for verdadeiro clona os filhos também

hasChildNodes() Retorna verdadeiro se o nodo tem filhos

insertBefore(novo,referência)

Insere um novo nodo antes do nodo referência

removeChild(nome) Remove o nodo especificado pelo nome

replaceChild(novo, antigo)

Substitui

Recursos para ligação

XML: especificação XLink

Elementos:- link (simplelink, extendedlink)- “participantes” do link

- documento XML ou não (texto, vídeo, .....)- parte de documento (identificada c/ XPointer)- locais ou remotos (locator = URI)

- metadados sobre os participantes

Recursos para ligação

Exemplo:.......<prod num="23">XMLDecl :...&gt;'</prod>

<prod num="22">prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?</prod>.......<para>Referências para o documento: veja <simplelink xlink:type="simple" xlink:href="#xpointer(//prod[@num='22'])" xlink:show="replace" xlink:actuate="onRequest">regra 22</simplelink>. </para>

LINK LOCATION: file:///E:/sandro/...../AULA05/xlink01.xml#xpointer(//prod[@num='22'])

Recursos para ligação

Exemplo:.......<prod num="23">XMLDecl :...&gt;'</prod>

<prod num="22">prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?</prod>.......<para>Referências para o documento: veja <simplelink xlink:type="simple" xlink:href="#xpointer(//prod[@num='22'])" xlink:show="replace" xlink:actuate="onRequest">regra 22</simplelink>. </para>

LINK LOCATION: file:///E:/sandro/...../AULA05/xlink01.xml#xpointer(//prod[@num='22'])

Recursos para ligação

XML: especificação XLink

Elementos:- link (simplelink, extendedlink)- “participantes” do link

- documento XML ou não (texto, vídeo, .....)- parte de documento (identificada c/ XPointer)- locais ou remotos (locator = URI)

- metadados sobre os participantes- “arcos” – início e fim de uma ligação

Recursos para ligação

Exemplo:.......<extendedlink xlink:type="extended">

<loc xlink:type="locator" xlink:label="prolog-ref" xlink:href="#xpointer(string-range(//text(),'prolog'))" /> <loc xlink:type="locator" xlink:label="prolog" xlink:href="#/1/2/5" /> <arc xlink:type="arc" xlink:from="prolog-ref" xlink:to="prolog" xlink:show="new" xlink:actuate="onRequest" />

</extendedlink>

Recursos para ligação

Exemplo:.......<extendedlink xlink:type="extended">

<loc xlink:type="locator" xlink:label="prolog-ref" xlink:href="#xpointer(string-range(//text(),'prolog'))" /> <loc xlink:type="locator" xlink:label="prolog" xlink:href="#/1/2/5" /> <arc xlink:type="arc" xlink:from="prolog-ref" xlink:to="prolog" xlink:show="new" xlink:actuate="onRequest" />

</extendedlink>

Recursos para ligação

Exemplo:.......<extendedlink xlink:type="extended">

<loc xlink:type="locator" xlink:label="prolog-ref" xlink:href="#xpointer(string-range(//text(),'prolog'))" /> <loc xlink:type="locator" xlink:label="prolog" xlink:href="#/1/2/5" /> <arc xlink:type="arc" <arc xlink:type="arc" xlink:from="prolog-ref" xlink:from="prolog" xlink:to="prolog" xlink:to="prolog-ref" xlink:show="new" xlink:show="new" xlink:actuate="onRequest" xlink:actuate="onRequest" xlink:title=“Ref. -> Prolog” Xlink:title=“Prolog -> Ref.”/> />

</extendedlink>

AB

XML: especificação Xlink

- criação de elemento xlink simples

<xlink:simple href=“autor.xml” role=“lista de autores” title=“Lista de Autores” show=“replace” actuate=“onRequest”> Lista de autores</xlink:simple>

XML: especificação Xlink

- role: string definindo o conteúdo do link; pode ser usada na renderização.

XML: especificação Xlink

- role: string definindo o conteúdo do link; pode ser usada na renderização.- title: string contendo a descrição do link (alt)

XML: especificação Xlink

- role: string definindo o conteúdo do link; pode ser usada na renderização.- title: string contendo a descrição do link (alt)- show: forma de renderização

- new: conteúdo exibido em novo contexto- replace: substituição de contexto- embedded: conteúdo misturado com o contexto atual

XML: especificação Xlink

- role: string definindo o conteúdo do link; pode ser usada na renderização.- title: string contendo a descrição do link (alt)- show: forma de renderização

- new: conteúdo exibido em novo contexto- replace: substituição de contexto- embedded: conteúdo misturado com o contexto atual

-actuate: forma de atuação do link- onRequest : quando o usuário solicitar- onLoad: quando o documento é carregado

XML: especificação Xlink XML: especificação Xlink : Links Extendidos

- permitem mais de um recurso ser indicado- devem ser descritos em documento separado

Atributos:- type : extended- role, title: idem link simples- locator: indica os recursos a serem linkados- arc: indica conexões entre recursos- from: origem do link extendido- to: destino do link extendido- resource: definem sub-elementos do link

Recursos para ligação

XML: especificação Xlink: Links Extendidos

<xlink:extended role=“xlink:external-linkset” <xlink:locator

href=“...” role=“linkdatabase”title=“Catalogo de links”/>

</xlink:extended>

XML: especificação Xlink

XML: especificação Xlink: Links Extendidos

<xlink:extended role=“xlink:external-linkset” <xlink:locator

href=“...” role=“linkdatabase”title=“Catalogo de links”/>

</xlink:extended>

Recurso 1<local>

Recurso 2<local>

Recurso 3<local>Recurso 4

<local>

biblioteca de links

XML: especificação Xlink

XML: especificação Xlink: Links Extendidos

<xlink:extended role=“xlink:external-linkset” <xlink:locator

href=“...” role=“linkdatabase”title=“Catalogo de links”/>

</xlink:extended>

Recurso 1<local>

Recurso 2<local>

Recurso 3<local>Recurso 4

<local>

biblioteca de links

XML: especificação XPointer

- Identificação de fragmentos de documentos XML

- Sintaxe simples:- documento#identificador- documento#esquema

XML: especificação XPointer

- Identificação de fragmentos de documentos XML- Sintaxe simples:

- documento#identificador- documento#esquema

Exemplo:XML: XPointer:<lista> documento#d1 <disc id=“d1” /> documento#element(/1/1) <disc id=“d2” /></lista>

XML: especificação XPointer Exemplos:Documento XML:<lista> <disc id=“d1” >.....</disc><disc id=“d2” ><nome>redes...</nome><horario>...</horario></disc><disc id=“d3” ><nome>...</nome><horario>...</horario><sala>....</sala></disc></lista>

Descrições:a) <link xmlns:xlink="http://www.w3.org/2000/xlink" xlink:type="simple“

xlink:href="documento.xml#xpointer(//LISTA/DISC[1])"> </link> b) #xpointer(/1/3/3) -> sala da disciplina “d3”c) #xpointer(id(“d3”/[3]) -> sala da disciplina “d3”d) #xpointer(start-point(//lista)) -> início da listae) #xpointer(start-point(string-range(/*,’redes’,1,0)) -> início do nome de “d2”

Aplicações

- Uso de DOM/SAX como bibliotecas

- Disponibilidade em diversas linguagens

- Uso em diversos contextos

- Maior flexibilidade

XPATH

- biblioteca de funções padrão para acesso aos elementos de documento XML

- Objetivo: suportar XLink/XPointer/XSLT- Sintaxe simplificada para identificação de elementos- Possibilidades de indicações relativas

- W3C Recommendation 16 November 1999

http://www.w3.org/xpath

XPATH

- Uso no XSL:

<xsl:template match="/">

............

<xsl:for-each select="/LISTA_DISC/DISC">

XPATH - Sintaxe

Localização de nodos:

/ - caminho absoluto (/disc -> indica elem. pelo nome)

// - critério (//cod_disc -> qualquer caminho até o elemento cod_disc)

/* - “curinga” ( /disc/*/nome_prof)

[ ] – posição ( /disc[2] – terceira disciplina na lista)

[last()] – última posição (/disc[last()] )

[nome] – existência de elemento (/disc[horas_aula])

[nome=valor] – existência de elemento com valor (/disc[horas_aula=50])

XPATH - exemplo

Com XSLT (aula 3)

<xsl:if test="TURNO_DISC > 1">

....<DISC> 

<NOME_DISC>Redes de ...TCP/IP</NOME_DISC>

<PROF_DISC>ValterNunes</PROF_DISC>  

<ASSUNTO_DISC>TCP/IP</ASSUNTO_DISC>  

<COD_DISC>PR4101</COD_DISC>  

<TURNO_DISC>2</TURNO_DISC>  

</DISC>

XPATH - exemplo

Com Xpath: xmlDoc.load("http://www..../aula04/lista.xml")

path="/LISTA_DISC/DISC[TURNO_DISC>1]"

set nodos=xmlDoc.selectNodes(path)

document.write("Lista ...com turno > 1:")

for each x in nodos

document.write("<xmp>")

document.write(x.xml)

document.write("</xmp>")

next

EXERCÍCIODescreva um arquivo xml para uso em uma agenda de

telefones

Elementos mínimos:

nome, email, fone, endereço, data de nascimento

Permitir:

dois tipos de fone e email (residencial e comercial)

Após:

Implemente uma tabela para comportar estes dados.

Roteiro:

- Cronograma, trabalhos, material

- Recursos Tecnológicos

- Interação por voz

- Indexação – web semântica

Indexação - Web Semântica

• Semântica– Sintaxe: forma de expressão– Semântica: conteúdo (significado)– Web semântica

• organização explícita da informação

• compartilhamento de terminologia

• informação disponível para programas

Indexação - Web Semântica• Tarefa: procurar pela homepage do Sr. e a Sra.

Chaves, que são professores universitários• Procurando em ferramentas de busca por Chaves,

você encontrará várias páginas sobre chaveiros, e procurando por universidade também retornará várias páginas de universidades. Pesquisar os dois termos juntos modifica pouco o resultado.

Indexação - Web Semântica• Seria interessante poder consultar da seguinte forma:

Encontre páginas para todo x, y, and z tal que x é uma pessoa, y é uma pessoa, z é uma universidade nome( x,"Chaves") e nome( y,"Chaves") e trabalha_em( z, x) e trabalha_em( z, y) e casado_com( x, y)

Indexação - Web Semântica

• Tecnologias– XML (eXtensible Markup language)

– RDF (Resource Description Framework)

– Ontologia (RDFS, DAMIL+OIL, SHOE, OWL)– Lógicas (Description Logics)– Inferência (Prova)

Indexação - Web Semântica

Indexação - Web Semântica

Sintaxe bem definida: conjunto de caracteres interoperabilidade entre plataformas distintas descrição correta da estrutura da informação identificação correta da informação

Indexação - Web Semântica

Sintaxe bem definida: exemplos:

xml descrevendo disciplina professor ministrante anotação em texto

Web Semântica

{

Sintaxe bem definida: exemplo:

xml p/ disciplina, página de professor anotação em texto

Indexação - Web Semântica

Sintaxe bem definida: exemplos:

xml descrevendo disciplina professor ministrante anotação em texto

Indexação - Web Semântica

Sintaxe bem definida: exemplo contrário :

dados similares em HTML

<html><head><title>Untitled Document</title> </head><body bgcolor="#FFFFFF"> <p>Lista de Disciplinas</p> <table width="85%" border="1"> <tr> <td > <b><font color="#FF3333">Nome</font></b></td> <td ><b><font color="#FF3333">Professor</font></b> </td> <td ><b><font color="#FF3333">Assunto</font></b> </td> <td ><b><font color="#FF3333">C&oacute;digo</font></b> </td> </tr> <tr> <td ><b><font color="#0000FF"><i>Redes de Computadores </i></font></b></td> <td >Valter Nunes</td> <td >TCP/IP</td> <td >PR4101</td> </tr>..... </table></body></html>

<html><head><title>Untitled Document</title> </head><body bgcolor="#FFFFFF"> <p>Lista de Disciplinas</p> <table width="85%" border="1"> <tr> <td > <b><font color="#FF3333">Nome</font></b></td> <td ><b><font color="#FF3333">Professor</font></b> </td> <td ><b><font color="#FF3333">Assunto</font></b> </td> <td ><b><font color="#FF3333">C&oacute;digo</font></b> </td> </tr> <tr> <td ><b><font color="#0000FF"><i>Redes de Computadores </i></font></b></td> <td >Valter Nunes</td> <td >TCP/IP</td> <td >PR4101</td> </tr>..... </table></body></html>

<html><head><title>Untitled Document</title> </head><body bgcolor="#FFFFFF"> <p>Lista de Disciplinas</p> <table width="85%" border="1"> <tr> <td > <b><font color="#FF3333">Nome</font></b></td> <td ><b><font color="#FF3333">Professor</font></b> </td> <td ><b><font color="#FF3333">Assunto</font></b> </td> <td ><b><font color="#FF3333">C&oacute;digo</font></b> </td> </tr> <tr> <td ><b><font color="#0000FF"><i>Redes de Computadores </i></font></b></td> <td >Valter Nunes</td> <td >TCP/IP</td> <td >PR4101</td> </tr>..... </table></body></html>

Indexação - Web Semântica

Semântica bem definida: compartilhamento de terminologia descrição de relações descrição de atributos

Indexação - Web Semântica

Semântica bem definida: linguagens para descrever ontologias:

RDFS DAML+OIL OWL

UNIVERSIDADE

Administração Superior Administração Geral Centros

C 1 C 2 C 3- Centro de Ciências da Comunicação C 4 C 5 C 6

Conselho de Centro Curso Áreas de Conhecimento

Professor Aluno

MERONÍMIA

HIPONÍMIA

Letras

Habilitações

Inglês

Currículo

Disciplina

Sintaxe da Língua Portuguesa

Ementa

HIPONÍMIA

MERONÍMIA

HIPONÍMIA

MERONÍMIA

HIPONÍMIA

MERONÍMIA

MERONÍMIA

Rove Lílian

MINISTRA CURSA

MERONÍMIA

Corpo Docente Corpo Discente

UNISINOS

Pós-Graduação Graduação Extensão

Indexação - Web Semântica

Semântica bem definida: linguagens para descrever (na web) ontologias:

RDFS DAML+OIL OWL

Indexação - Web Semântica

Uso dos recursos descritos: recuperação de informações validação de informações obtidas aplicações de software

Ontologias

• Em Filosofia:– estudo do que existe no mundo

• Em IA:– especificação das classes, objetos e relações de

um domínio

• “Especificação explícita de uma conceitualização” [GUA97]

Ontologias

• Conjuntos de asserções:– relações entre conceitos – regras de raciocínio

• Possibilitam a interpretação do significado das informações

Ontologias

• Domínio– ontologias gerais

– ontologias específicas • exemplos: universidade, impressora,

geográfica,...

Ontologia na web semântica

• Integração de informações– compartilhamento de termos(conceitos)– definição de atributos– descrição de relações

• construção de conhecimento– manutenção de ontologias

• inferência– recuperação de informações e relações

OWL (Ontology Web Language)

• W3C: candidate recommendation (8/2003)

• Extende RDFS• Experiências: DAML, OIL, RDFS• Vocabulário, em XML, para descrição de classes e

relações• Suporte para inferência• APIs para manipulação (Jena)

• Suporte em editores (Protege)

OWL (Ontology Web Language)

DAML

DAML+OIL

OWL: http://w3.org/WebOnt

OIL

OWL

RDF

DAML = DARPA Agent Markup LanguageOIL = Ontology Inference Layer

Inferência

• Objetivos da Web semântica – informação “inteligível” para a máquina– “raciocínio”: validação, descoberta

• Possibilidades, com inferência– verificação de consistência (ontologias)– hierarquia de classes (ontologias)– integração entre ontologias distintas– consultas: classes, instâncias

Inferência

• Dada uma ontologia– conceitos– Relações

• Dada uma sentença– relação específica– conceito específico

• Usando-se regras de inferência– validação ou descoberta

Inferência

Ontologia: -conceitos -relações

Sentença: -relação específica -conceito específico

regras de inferênciavalidação ou descoberta

UsuárioAplicações

OWL (Ontology Web Language)

a) Identificação de um suspeito

<Assalto rdf:ID=“rep-13-10-2003-XT74”>

<descricao>…</descricao>

<suspeito>

<Pessoa rdf:about=“http://www.pessoa.org#Joao_da_Silva”/>

</suspeito>

</Assalto>

Exemplos de uso (1):

OWL (Ontology Web Language)

b) Notificação por excesso de velocidade

<Notificacao rdf:ID=“rep-13-10-2003-WQ464”>

<descricao>…</descricao>

<motorista>

<Pessoa rdf:about=“http://www.pessoa.org#Carlos_Silva”/>

</motorista>

</Assalto>

Exemplos de uso (1):

OWL (Ontology Web Language)

c) No BD da polícia

<Pessoa rdf:about=http://www.pessoa.org#Carlos_Silva>

<owl:sameIndividualAs rdf:about=http://www.pessoa.org#Joao_da_Silva>

</Pessoa>

Exemplos de uso (1):

OWL (Ontology Web Language)

d) Relacionando:

Exemplos de uso (1):

Assalto Joao_da_Silva

Notificacao Carlos_Silva

owl:sameIndividualAs

OWL (Ontology Web Language)

d) Relacionando:

Exemplos de uso (1):

Assalto Joao_da_Silva

Notificacao Carlos_Silva

owl:sameIndividualAs

Inferência possível:Joao_da_Silva e Carlos_Silva são a mesma pessoa!

OWL (Ontology Web Language)

a) Pesquisa: orçamento de câmera

Exemplos de uso (2):

Agente de software

WebSite

Catálogo solicitado

Envie catálogo

<SLR rdf:ID=“Olympus-OM10”> <lentes>300mm zoom</lentes> <custo>$2500 USD</custo></SLR>

1

Pesquise câmeras 2

3

45

“SLR” é uma câmera??

OWL (Ontology Web Language)

b) Consulta ontologia sobre câmeras

Exemplos de uso (2):

camera

DigitalSLR

Relações de subclasse na ontologia Sobre cameras indicamque SLR é um tipo de camera.Inferência possível:“SLR é um tipo de Câmera”

top related