Definição schemaless or self-describing terms that indicate that there is no separate description of type or structure of the data (Abiteboul S. et al., 1999) Dados que apresentam uma representação estrutural heterogênea Não são nem completamente não-estruurados e nem completamente tipados As instancias podem existir mesmo no caso de mudança nos esquemas O esquema também pode ser definido a posteriori, ou seja, depois que as instancias já existirem 2
Os esquemas de representação está presente (de forma explícita ou implícita) juntamente com o dado Auto-descritivo Uma análise do dado pode ser feita para que sua estrutura possa ser identificada e extraída Vantagem the ability to accommodate variations in structure (Abiteboul S. et al., 2000) Campos podem ser duplicados, dados podem estar faltando 3
Principais características (Abiteboul S., 1997) Definição a posteriori : esquemas são geralmente definidos após a existência dos dados Estrutura irregular: não existe um esquema padrão para estes tipos de dados; coleções de dados similares são organizadas de maneira diferente Estrutura implícita: uma estrutura é implicita na forma como os dados são armazenados Estrutura parcial: apenas parte dos dados disponíveis pode ter alguma estrutura; nem sempre todas as informações esperadas estão presentes Estrutura extensa: como os dados são heterogeneos, não há uma estrutura definida, uma união destes dados é muito custosa. 4
Dados Estruturados Esquema pré-definido Estrutura regular Estrutura independente dos dados Estrutura reduzida Fracamente evolutiva Prescritiva (esquemas fechados e restrições de integridade) Distinção entre estrutura e dados é clara Dados SemiEstruturados Nem sempre há um esquema Estrutura irregular Estrutura embutida nos dados Estrutura extensa (particularidades de cada dado, visto que cada um pode ter uma organização própria) Fortemente evolutiva (estrutura modifica-se com frequencia) Estrutura descritiva Distinção entre estrutura e dados não é clara 5
Sint et al, Combining Unstructured, Fully Structured and Semi-Structured Information in Semantic Wikis. SemWiki 2009 6
Um exemplo típico de dado semi-estruturado é o XML extensible Markup Language Linguagem de representação dos dados e de integração na Web XML Schema define a estrutura de um documento XML No domínio da Web Semântica, o conhecimento é representado através da RDF Resource Definition Framework RDF Schema (RDFS) define a estrutura de um documento em RDF Na WWW, a RDF é a usada como linguagem que descreve os metadados dos recursos Web 7
Antigamente... Empresa 1 Empresa 2 Confirmação do Recebimento 8
Nos dias de hoje... Empresa 1 Empresa 2 Internet 9
Camada Cliente Camada Negócio Camada de Dados Browser HTTP HTTP XML Servidor Web JDBC XML XML XML HTML, JavaScript JSP, PHP, Servlets, XML,... Banco de Dados 10
XML (extensible Markup Language Representar dados que inclui uma marcação Marcação no formato de TAGS 1 a linguagem de marcação GML (Generalized Markup Language) em 1969 Em 1974, a SGML foi criada HTML é um subconjunto da SGML Destinado à hiperlinks Mistura o conteúdo, a apresentação e o processo 11
XML Tb é um subconjunto (muitos dizem que é uma configuração) Estimula separar Conteúdo: como tipos de elementos abstratos Apresentação: objetos de formatação Processos: como folhas de estilos XML isola o conteúdo da apresentação Projetada para ser distribuída pela Web 12
Estrutura Construção fundamental de um documento XML ELEMENTO identificado por uma tag de início e tag de fim <artigos> xxxx </artigos> Elemento pode conter outros elementos Elemento complexos são construídos hierarquicamente a partir de outros elementos Elementos simples contém valores de dados XML x HTML Em XML os nomes das tags são definidas de acordo com o significado do elemento Ao invés de descrever como no HTML como o texto será exibido 13
Contém somente um elemento raiz Exemplo no formato de um grafo publicacao artigo artigo titulo autor cidade tipo Dependable Web Services Daniela e Macêdo Rio de Janeiro Full Paper 14
Além dos elementos, a XML especifica os ATRIBUTOS Um atributo de um elemento só pode aparecer uma vez em determinada tag. Acrescentar o atributo relevante= sim/nao para artigo informando se é um dos artigos mais relevantes das suas publicações 15 Q
Vantagens A presença das tags torna a mensagem autodocumentável Um esquema não precisa ser consultado para se entender o significado do texto schemeless Formato do documento não é rígido Se uma tag for acrescentada, o destinatário pode ignorar a nova tag 16
Vantagens Permite estruturas aninhadas <ordemcompra... <comprador... <item... Ferramentas disponíveis Grande variedade para auxiliar o processamento da XML Isso corresponde a múltiplas tabelas em um esquema relacional Pessoas exibem as informações da maneira que desejarem HTML, PDF, DOC etc. 17
Documento XML deve ser bem formado e válido. XML é bem formado se começar com uma declaração XML indicando a versão do documento seguir as diretrizes do modelo de árvore: um único elemento raiz Cada elemento precisa incluir um par de tags Um documento XML bem formado é sintaticamente correto 18
XML é válido se ele é bem formado elementos seguem a estrutura especificada em um esquema: DTD ou XML Schema DTD ou XML Schema são documentos opcionais de um XML Principal objetivo Restringir as informações e os tipos de informações presentes no documento 19
DTD não restringe os tipos no sentido dos tipos básicos Exemplo inteiro e string Restringe o surgimento de subelementos e atributos dentro de um elemento A ausência de uma declaração de um elemento é equivalente a declará-lo como ANY Qualquer elemento pode ocorrer como subelemento do elemento. 20 Q
Os atributos também são especificados no DTD O tipo CDATA especifica que o atributo contém dados de caracter Já o atributo do tipo ID oferece um identificador exclusivo para o elemento Não pode ocorrer em nenhum outro elemento no mesmo documento 21 Q
Embora bastante útil para especificar estrutura de árvore, tem várias limitações Não se pode restringir elementos positivos e negativos Possui sua própria sintaxe especial Requer processadores especializados Seria vantajoso validar um XML utilizando a própria sintaxe XML Os mesmos processadores da XML poderiam ser utilizado para as regras de sintaxe. 22
É um padrão para especificar a estrutura de documentos XML Utiliza as mesmas sintaxes de documentos XML Define uma série de tipos internos como string, integer, decimal, date, boolean. Permite tipos definidos por usuários As definições de esquema em XML Schema são especificadas utilizando a sintaxe XML Para diferenciar é necessário utilizar namespaces 23 Q
Chaves e referências de chaves Correspondem às definições de chaves primárias e chaves estrangeiras SELECTOR É uma expressão de caminho que define o escopo para a restrição FIELD Determina os elementos ou atributos que formam a chave 24 Q
Exemplo de XML Schemas <?xml version="1.0" encoding="utf-8"?> <Biblioteca xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation="c:\fontes\biblioteca.xsd"> <Livro> <Autor>Daniela Barreiro Claro</Autor> <Titulo>Livro B</Titulo> </Livro> <Livro> <Autor> Raimundo Macêdo</Autor> <Titulo>Livro A</Titulo> </Livro> </Biblioteca> 25
<?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema" elementformdefault="qualified" attributeformdefault="unqualified"> <xs:element name="livro" type="livrotype"/> <xs:complextype name="livrotype"> <xs:sequence minoccurs="2" maxoccurs="5"> <xs:element name="autor" type="autortype"/> <xs:element name="titulo" type="titulotype"/> </xs:sequence> </xs:complextype> <xs:simpletype name="autortype"> <xs:restriction base="xs:string"> <xs:maxlength value="30"/> </xs:restriction> </xs:simpletype> <xs:simpletype name="titulotype"> <xs:restriction base="xs:string"> <xs:minlength value="3"/> <xs:maxlength value="50"/> </xs:restriction> </xs:simpletype> </xs:schema> 26
Vantagens Permite que os valores dos elementos sejam restritos a tipos específicos: numéricos, string Permite criar tipos definidos pelo usuário Restrições de exclusividade e chave estrangeira Permite criar valores mínimos e máximos Já temos o documento e os tipos, mas como consultá-lo? 27
Ferramentas de consultas são essenciais Principalmente quando são grandes XML Saída de uma relação é uma relação Saída de um XML é um XML Várias linguagens XPATH expressões de caminho XQUERY padrão para consultar dados XML 28
Endereça partes de um documento por expressões de caminho É uma sequência de etapas separada por / /publicacao/artigo/titulo Retorna todas as tags dos títulos dos artigos do LaSiD Atributos pode ser acessados usando o simbolo @ /publicacao/artigo/@relevante 29
Predicados de seleção Localizados em qualquer etapa de um caminho Entre colchetes /publicacao/artigo/[ano>2006] Contador (count) Função interna doc(nome) doc(publicacao.xml)/artigo/titulo 30 Q
É a linguagem de consulta padrão da W3C Deriva de uma linguagem chamada QUILT Consultas Xquery são modeladas em 5 seções FOR= corresponde ao From; variáveis de XPATH LET=atribui resultados XPATH às variáveis WHERE=testa as tuplas unidas ORDER BY=ordena RETURN=constrói o resultado FLWOR 31 Q
Junção (JOIN) São especificadas da mesma maneira que na SQL Supondo que tivéssemos outro XML para as conferências com todas as informações da conferência E um artigo tivesse as informações da conferência onde ele foi publicado. 32 Q
Consultas Aninhadas Podem ser aninhadas na cláusula RETURN Embora não possua GROUP BY funções agregadas como SUM() e COUNT() podem ser escritas no caminho ou no RETURN ORDER BY FOR $c in /publicacao/artigo ORDER BY $c/ano RETURN <cliente> {$c/*} </cliente> 33
Exemplos de Xquery online http://demo.exist-db.org/exist/apps/demo/examples/basic/hello.html 34
XML puro... Folha de estilo Formatação do XML Normalmente fora do XML, separando a formatação do conteúdo CSS HTML (exemplo de CSS) XSL XML 35
XSL inclui um mecanismo de transformação XSLT (XSL Transformation) Transforma um documento XML em outro XML ou HTML As transformações podem atuar como uma linguagem de consulta Transformações são expressas como templates Template simples de XSL Parte de MATCH e parte SELECT Template permite a seleção de nós em uma árvore XML por uma expressão XPATH 36
Ferramentas para manipular XML Manipulação via programação Duas APIs que estão disponíveis em várias linguagens DOM Document Object Model SAX Simple API for XML 37
DOM Trata o conteúdo XML como uma árvore Cada elemento é representado como um nó (DOMNODE) API Java oferece interfaces Node, Element, Attribute Série de funções para atualizar documentos Acrescentando e excluindo filhos, definindo valores de um nó, etc PROBLEMA: coloca toda a árvore na memória. 38
Eventos de análise correspondem ao reconhecimento de parte do documento SAX É um modelo de eventos Corresponde às funções especificadas pelo usuário associadas a eventos de análise Exige mais esforço de programação que DOM Se baseia em eventos e não precisa colocar a estrutura de árvore na memória. Pode ser mais eficiente na extração de documentos grandes PROBLEMA: Análise baseada em eventos pode precisar de estruturas temporárias adicionais 39
Documento XML pronto... Armazenamento não-relacional ou relacional Armazenamento não-relacional Arquivo simples no Servidor Web Banco de Dados XML Nativo dbxml, excelon e TAMINO Precisam de um Servidor Web 40
Armazenamento relacional (BD bastante difundido) Uma STRING Para documentos pequenos Para documentos grandes, transformar cada elemento em uma relação ELEMENTO_ARTIGO Representação de Árvore Modelados como uma árvore e armazenados como um par de relações no(id,tipo,rotulo,valor) filho(id_filho,id_pai) Cada elemento é desmembrado em muitas partes 41
Armazenamento Relacional Publicando e Fragmentando Dados XML Um doc XML é fragmentado para o formato das relações e depois é convertido e publicado como XML BD como o Oracle já permite que este processo seja automático Armazenamento nativo do XML em BDR Como string ou representações binárias, sem converter para o formato relacional Tipo de dado XML Tipos CLOB e BLOB podem ser utilizados 42
Oracle XML como um tipo de dado nativo Armazenamento de um XML Converte automaticamente resultado de uma consulta SQL para XML IBM DB2 Rico em funções XML Tem suporte para o SQL/XML Extensão ao padrão SQL XML como grandes objetos ou como atributos fragmentados em tabelas SQL Server Também possui o tipo de dados XML nativo 43 Q
Várias são as aplicações da XML Estruturas complexas como arquivos de configuração Formato padronizado para troca de dados EDI XML para a troca de informações interempresas Utilização em aplicações científicas, ex. Produtos químicos Produtos químicos similares com fórmulas distintas não são contemplados pela XML Ontologias 44 E
Web services Aplicações trocam dados entre organizações Sites podem ser preenchidos......mas aplicações precisam enviar e receber estes dados SOAP e WSDL utilizam XML XML é essencial 45 E
<?xml version= 1.0 encoding= UTF-8 > <Biblioteca> <Livro> <Titulo> SQL 3 The Foundation </Titulo> <Autor> James Fortier </Autor> </Livro> <Livro> <Titulo> CORBA - Fundamentals </Titulo> <Autor> Jonh Currier </Autor> </Livro> </Biblioteca> Versão do XML usado no documento Elemento raiz do XML Nodos internos 46
Dado o modelo abaixo transformar em XML mes titulo ano Artigos (1,n) (1,n) Autor (1,n) url localização (1,1) Tipo Obs.: Coloquem os dados respectivamente de 2 instancias 47
<?xml version="1.0" encoding="iso-8859-1"?> <?xml-stylesheet href="papers.xsl" type="text/xsl"?> <publication> <article> <title>online Schedulability Tests for Real-Time Systems</title> <author>george Lima and Ana Carolina Sokolonski and Eduardo Camponogara</author> <proceedings>x Workshop de Tempo Real e Sistemas Embarcados</proceedings> <location>rio de Janeiro</location> <month>05</month> <year>2008</year> <urlabstract>http://www.lasid.ufba.br/publicacoes/artigos/schdtests-wtr08.pdf</urlabstract> <type>full Paper</type> </article> <article> <title>detectores Perfeitos em Sistemas Distribuídos Não Síncronos</title> <author>raimundo Macêdo and Sérgio Gorender</author> <proceedings>ix Workshop de Teste e Tolerância a Falhas (WTF 2008)</proceedings> <location>rio de Janeiro, Brasil</location> <month>05</month> <year>2008</year> <urlabstract>http://www.lasid.ufba.br/publicacoes/artigos/xxx.pdf</urlabstract> <type>full Paper</type> </article> </publication> 48
Pouca expressividade em relação aos dados Não preve muitos relacionamentos entre os dados Descreve os dados; não o conhecimento Nenhuma expressividade semântica Não permite nenhum tipo de infêrencia Muito restrito aos dados 49
Fonte: Berners-Lee T., Hendler J. et al.the Semantic Web. Scientific Ameriican, May, 2001. 50
Unicode e URI (Ribeiro, 2008) Fornece interoperabilidade em relação à codificação de caracteres e ao endereçamento e nomeação de recursos da Web Semântica. Unicode é um padrão de codificação para fornecer uma representação numérica universal e sem ambiguidade para cada caractere de maneira independente da plataforma de software e do idioma. O URI é um padrão para identificar um recurso físico ou abstrato de maneira única e global. Um identificador URL é um caso específico de URI, 51
XML + NS + XML Schema (Ribeiro, 2008) fornece a interoperabilidade em relação à sintaxe de descrição de recursos da Web XML é uma linguagem para representação sintática de recursos de maneira independente de plataforma A linguagem XMLSchema fornece elementos para descrever a estrutura e restringir o conteúdo de documentos XML. Namespaces fornecem um método para qualificar os nomes de elementos e atributos, utilizados nos documentos XML, através da associação destes nomes identificados por referências de URI. Distingue dois elementos definidos com um mesmo nome que pertencem a esquemas diferentes 52
RDF + RDF Schema (Ribeiro, 2008) É um framework para representar informação (metadados) sobre recursos. Utilizam uma sintaxe baseada em XML RDF-Schema é uma linguagem mínima para a representação de Ontologias simples. A linguagem RDF-Schema permite a construção de ontologias com expressividade e inferência limitadas, pois fornece um conjunto básico de elementos para a modelagem, e poucos desses elementos podem ser utilizados para inferência 53
Ontologia (Ribeiro, 2008) Fornece suporte para a evolução de vocabulários e para processar e integrar a informação existente sem problemas de indefinição ou conflito de terminologia. A linguagem RDF-Schema permite a construção de ontologias com expressividade e inferência limitadas, pois fornece um conjunto básico de elementos para a modelagem, e poucos desses elementos podem ser utilizados para inferência OWL estende o vocabulário da RDF Schema para a inclusão de elementos com maior poder com relação a expressividade e inferência. OWL lite, OWL DL e OWL Full 54
Lógica (Ribeiro, 2008) descrição de regras para expressar relações sobre os conceitos de uma ontologia, as quais não podem ser expressas com a linguagem de ontologia utilizada As linguagens Rule Markup Language (RuleML) e Semantic Web Rule Language (SWRL) são exemplos de linguagens propostas para a descrição de regras para a Web Semântica As camadas Prova e Confiança fornecem o suporte para a execução das regras, alem de avaliar a correção e a confiabilidade dessa execução. Ainda em desenvolvimento 55
Juntamente com XML é o fundamento da Web Semântica Provê mais mecanismos para desenvolver linguagens ontológicas RDF é um modelo formal interpretável por máquinas usado para descrever recursos Web Descreve recursos e relações entre estes recursos Um recurso é identificado por uma URI Recursos ainda têm propriedades associadas. http://www.casa.org/sala/#banco 56
Partes do RDF Sujeito É o nome que é responsável pela ação Janela da casa de Maria Todas as relações com janela fazem referências ao mesmo recurso http://www.casa.org/quarto/maria/#janela Predicado Indica a ação que modifica o sujeito e que se concretiza por um verbo Casa contém portas http://www.casa.org/#contém Objeto Indica o objeto modificado pelo predicado Portas http://www.casa.org/#portas 57
Notação N3 no RDF sujeito predicado objeto Linguagem natural Maria lê um livro O livro esta dentro do armário O armário é em madeira Notação N3 <#Maria><#lê><#livro> <#livro><#esta-dentro><#armário> <#armário><#é><#madeira> 58
Provê um sistema de tipos para o RDF Permite definir recursos com classes, propriedades e valores. RDF Class Permite que recursos sejam definidos como instâncias de classes e subclasses. Uma propriedade RDFS pode ser vista como um atributo da classe. 59
RDF não pode expressar equivalência entre conceitos, Daniela Claro é equivalente a Daniela Barreiro Claro Não expressa unicidade nem a cardinalidade das propriedades. Muitas vezes é importante dizer que um carro tem exatamente 4 rodas Não expressa disjunções, como João é homem e Maria é mulher, não há como expressar que João não é mulher Não pode expressar propriedades transitivas, João é amigo de Pedro, não há como expressar que Pedro é amigo de João Não há como expressar propriedade inversa, escrevo um livro e um livro é escrito por. 60
O reconhecimento destas limitações incentivaram o desenvolvimento de novas linguagens com mais expressividade Em relação a RDF e RDFS, as ontologias proveem novas propriedades que facilitam a descrição dos seus conceitos. Genericamente, as ontologias tem seus fundamentos nas taxonomias e no RDF e RDFS Em relação às taxonomias, as ontologias proveem um rico relacionamento entre os seus termos 61
http://www.w3.org/rdf/validator/ Valida e gera um gráfico do seu RDF http://www.rdfabout.com/demo/validator/ Gera em N3 <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:si="http://www.w3schools.com/rdf/"> <rdf:description rdf:about="http://www.w3schools.com"> <si:title>w3schools.com</si:title> <si:author>jan Egil Refsnes</si:author> </rdf:description> </rdf:rdf> 62
<?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdfsyntax-ns#" xmlns:cd="http://www.recshop.fake/cd#"> <rdf:description rdf:about="http://www.recshop.fake/cd/empire Burlesque" cd:artist="bob Dylan" cd:country="usa" cd:company="columbia" cd:price="10.90" cd:year="1985" /> </rdf:rdf> 63
<?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xml:base="http://www.animals.fake/animals#"> <rdf:description rdf:id="animal"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdfschema#class"/> </rdf:description> <rdf:description rdf:id="horse"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdfschema#class"/> <rdfs:subclassof rdf:resource="#animal"/> </rdf:description> </rdf:rdf> 64
É importante utilizar os mesmos preditados que outros já desenvolveram Isso permite que aplicaçoes também façam uso da informacao gerada, sem ter que redesenvolver, basta reconhecer a URI mencionada. Exemplos Para descrever documentos, deve-se usar os predicados definidos na Dublin Core (DC). As aplicações em RDF podem usar os predicados que desecrevem os dados Para descrever pessoas, devem ser usados os predicatos da Friend of a Friend (FOAF) 65
1.Gerar um grafo em RDF 2. Há algo a inferir? <rdf:rdf xmlns:rdf= http://www.w3.org/1999/02/22- rdf-syntax-ns# xmlns:rdfs= http://www.w3.org/2000/01/rdfschema# xmlns:u= http://www.example.org/uni# xml:base= http://www.example.org/uni > <rdfs:class rdf:id= Person /> <rdfs:class rdf:id= Student /> <rdfs:subclassof= #Person /> </rdfs:class> <rdfs:class rdf:id= Professor > <rdfs:subclassof= #Person /> </rdfs:class> <rdfs:class rdf:id= Course /> <rdf:property rdf:id= advises > <rdfs:domain rdf:resource= #Professor /> <rdfs:range rdf:resource= #Student /> <rdfs:subpropertyof= #knows > </rdf:property> <rdf:property rdf:id= takes > <rdfs:domain rdf:resource= #Student /> <rdfs:range rdf:resource= #Course /> </rdf:property> <rdf:property rdf:id= teaches > <rdfs:domain rdf:resource= #Professor /> <rdfs:range rdf:resource= #Course /> </rdf:property> <rdf:property rdf:id= knows /> <u:professor rdf:id= alan > <u:teaches rdf:resource= #cs100 /> <u:advises rdf:resource= #rob /> <u:advises rdf:resource= #sarah /> </u:professor> <u:student rdf:id= rob > <u:takes rdf:resource= #cs100 /> <u:takes rdf:resource= #cs200 /> </u:student> </rdf:rdf> 66
Utilizando FOAF, gerar um RDF com a descricao de cada aluno Verificar o site: http://www.ldodds.com/foaf/foaf-amatic.html 67