830 likes | 1.04k Views
Web Semântica e Ontologias. Camila Brito e João Santanna. Introdução. No início: Programadores → compartilhar informações → Páginas na internet Depois: Ferramentas → Usuários comuns → compartilhar informações → Páginas na internet
E N D
Web Semântica e Ontologias Camila Brito e João Santanna
Introdução • No início: • Programadores → compartilhar informações → Páginas na internet • Depois: • Ferramentas → Usuários comuns → compartilhar informações → Páginas na internet • Grande parte das páginas contém tipicamente informação direcionada para leitores humanos e não para serem processadas por programas
Introdução • Web Sintática • Computadores apenas apresentam a informação • Seres humanos a interpretam • Conteúdo semântico é codificado de maneira acessível apenas para seres humanos • Maiores problemas dos mecanismos de busca atuais • Grande número de páginas encontradas, porém com pouca precisão • Resultados são muito sensíveis ao vocabulário (e até à ordem das palavras!)
Motivação • Organizar informação na Internet • Categorizar a informação de maneira padronizada, facilitando o seu acesso
Metadados • Metadados são dados sobre dados, informações sobre um documento: data , autor , idioma, etc. • International Federation of Library Association (IFLA) : O termo se refere a qualquer informação utilizada para a identificação, descrição e localização de recursos. • W3C : informações para a web que podem ser compreendidas por máquinas. • Existem vários formatos de metadados aplicados nas mais diversas áreas , os formatos que mais influenciaram no desenvolvimento da web semântica são : Dublin Core , Framework de Warwick e o RDF.
Metadados • Dublin Core: • Outubro de 1994 – Conferencia sobre tecnologias web – cidade de Dublin , Ohio , EUA. • Proposta de um padrão para um mecanismo de semântica para recursos web ( proposta de um grupo em um workshop do evento). • Uso em áreas multidisciplinares • Rapidamente se tornou um padrão de metadados , atualmente é um padrão ANSI ( Z39.85) e norma ISO (1536 – 2003).
Metadados • Dublin Core:
Características do XML • XML é flexível • Meta linguagem • Usuários definem suas próprias marcações (tags) • Separação nítida entre conteúdo, estrutura e layout • stylesheets (XSL) p/ converter em HTML • Estrutura documentos sob forma de árvore • Estrutura pode refletir algum significado • APIs p/ parsers XML (DOM, SAX) • Um documento XML pode conter uma descrição opcional de sua gramática (DTD)
XML • Descreve conteúdo <bibliografia> <livro> <titulo> Principles of Distributed Database Systems </ titulo> <autor> Ozsu </autor> <autor> Valduriez </autor> <editor> Prentice Hall </ editor > <ano> 1999 </ ano > </ livro > < livro > < titulo > Data on the Web </ titulo > <autor> Abiteboul </autor> <autor> Buneman </autor> <autor> Vianu </autor> < editor > Morgan Kaufmann </ editor > <ano> 1999 </ ano > </livro>
XML não é suficiente • Vantagem do uso do XML: reutilização do parser e validação do documento; porém, • Diferentes possibilidades de expressar um mesmo domínio de discurso, podendo acarretar em ambiguidade de interpretação < livro lang= “Ingles” preco= “US$ 60.00” titulo= “Principles of Distributed Database Systems” autor=“Ozsu Valduriez”></livro> Livro < livro lang= “Ingles”> <preco= “US$ 70.00”> <titulo>Principles of Distributed …</titulo> </ livro > autor título preço idioma
Web Semântica - Motivação • O conceito de modelo de rede semântica já existe desde os anos 60 em artigos de Allan M. Collins, M. Ross Quillian e Elizabeth F. Loftus como maneira para representar semanticamente o conhecimento estruturado • Isso permite estender a rede de páginas lidas apenas por humanos a partir da inserção de metadados que podem ser lidos por máquinas para prover informações sobre páginas, como elas estão relacionadas e permitindo que agentes automatizados acessem a web de maneira mais inteligente e realizam tarefas em benefício dos usuários • Muitos falam que a idéia surgiu em 2001, com a publicação do artigo “The Semantic Web: a new form of Web contant that is meaningful to computers will unleash a revolution of new possibilities” na Scientific American, mas na verdade em 16 de Maio/ 2000 - Tim Berners-Lee e Ralph Swick fazem a apresentação da Web Semântica para a comunidade em uma conferência em Amsterdam
O que é Web Semântica • Exstensão da Web atual, na qual à informação é dado significado bem definido, permitindo de melhor maneira que computadores e pessoas trabalhem em cooperação • Permite novas funcionalidades para as máquinas tornarem possivel melhor processar e “entender” os dados que atualmente eles apenas mostram na tela • Deve ser tão descentralizada quanto possível • Esquecer o ideal de total consistência de todas as interconexões • Permitirá que as máquinas COMPREENDAM documentos semanticos e dados, não fala e escrita humana • Ontologias – O computador não “entende” realmente nada dessa informação, mas agora pode manipular os termos de maneira mais eficaz de maneiras que são úteis e significativas para o usuário humano
O que é Ontologia • “...É uma especificação formal e explícita de uma conceitualização compartilhada” [Gruber] • “... A definição dos termos utilizados na descrição e na representação de uma área do conhecimento” [W3C] • “... Pode assumir vários formatos, mas necessariamente deve incluir um vocabulário de termos e alguma especificação de seu significado. Esta deve abranger definições e uma indicação de como os conceitos estão inter-relacionados, o que resulta na estruturação do domínio e nas restrições de possíveis interpretações de seus temos” [Uschold e Jasper]
O que é Ontologia • Segundo o W3C, uma ontologia deve prover descrições para: • Classes (ou coisas) nos vários domínios de interesse • Relacionamentos entre essas classes • Propriedades ou atributos que elas classes devem possuir • Conceitos são categorizados em classes baseadas em características que eles têm em comum
Papel da Ontologia na Web Semântica • Ontologia • Categorização • Garantir comunicação livre de ambiguidades • A ontologia na web semântica fornece um modelo comum, que permite que agentes de software e aplicações possam trocar informações de modo significativo • Web Semântica • É um esforço colaborativo liderado pela W3C com a participação de um grande número de pesquisadores. • Disponibiliza uma ferramenta comum que permite que dados sejam compartilhados e reutilizados ultrapassando os limites de aplicativos, empresas e da comunidade • uma web com toda sua informação organizada de forma que não somente seres humanos possam entendê-la, mas principalmente máquinas.
O que não é • Ontologia não é taxonomia • Em taxonomia, a generalização é o único tipo de relacionamento que existe entre seus termos • Ontologia não é tesauro • No tesauro, os tipos de relacionamentos entre seus termos são finitos e bem definidos • Ontologia não reflete a maneira como os seres humanos pensam nem classificam • Ontologias servem para estruturar e compartilhar conhecimento, não para representar inteligência • Web Semântica não é Inteligência Artificial • Em vez de querer fazer o computadores entenderem a linguagem das pessoas, é pedido que as pessoas façam um esforço extra para ajudar os computadores a entendê-las • A web semântica não depende de inteligência superior • Se o objetivo da IA é construir um agente de software que mostre inteligência no nível humano (e superior), o objetivo da web semântica é auxiliar humanos a realizarem tarefas diárias na rede [Antoniou e Harmelen]
Quais os desafios, limitações, vantagens e desvantagens? • Ontologia • Uma ontologia única ou várias ontologias espalhadas pelo mundo? • Desenvolvimento anárquico e descentralizado • Web Semântica • Sistemas tradicionais de representação do conhecimento tem sido tipicamente centralizados requerendo que as pessoas compartilhem exatramente a mesma definição de conceitos comuns como “veículo” ou “parente”. • Em contraste, pesquisadores da web semantica aceitam paradoxos e perguntar sem resposta como um preço a se pagar para alcançar a versatilidade
Quais os desafios, limitações, vantagens e desvantagens? • Na parte de tecnologia os limites são: • Os sites se adequarem a web semântica, reformular o código das páginas. Este é um grande problema, imagine o número de sites que precisam ser praticamente refeitos para se adequarem a “nova internet”? Os grandes portais teriam este interesse em estarem aptos a esta tecnologia? • Os buscadores: As buscas por informações dentro das páginas deverão ser mais refinadas, assim como o resultado das buscas. Portanto, provavelmente mais consumo de processamento seria necessário, estariam eles dispostos e aptos a ter “hardware” e software suficiente? • Em se tratando de negócios: • O principal fator para o impedimento disto, é que empresas que são criadas como guias de algum determinado ramo, ou de “N” determinados ramos, seria praticamente descontinuado, pelo fato de que você ao invés de precisar utilizar este serviço usaria os buscadores para encontrar a informação. Portanto, este tipo de sites sairia prejudicado.
linguagens para representação de ontologias RDF e RDF-Schema SHOE OIL DAML DAML + OIL OWL
RDF – Resource Description Framework • Modelo de metadados simples e expressivo: • trata dados/metadados de forma uniforme • Provê interoperabilidade na Web (XML) • Meio de integração entre diferentes padrões de metadados • Expressa vocabulários distintos com base em um modelo de dados e sintaxe comuns (XML) • Visa processamento por máquina • Constituído de: • Modelo RDF • Sintaxe RDF • http://www.w3.org/RDF
RDF – Estrutura básica propriedade Recurso Valor Statement Representação de um documento em RDF Documento autor http://jsantanna.blogspot.com/public/metadado.html Joao Santanna Valor predicado sujeito
RDF – Estrutura básica <?xml version=“1.0”> <rdf: RDF xmlns:rdf= “http://www.w3c.org./1999/02/22/22-rdf-syntax-ns#” xmlns:dc = “http://purl.org/dc/elements/1.1”> <rdf: Description about= “http://jsantanna.blogspot.com/public/metadado.html”> <dc: creator>Joao Santanna</dc: creator> <dc: title>Tutorial sobre Metadados</dc: title> <dc:subject> metadados</dc:subject> </rdf: Description> </rdf: RDF>
RDF – Estrutura básica <?xml version=“1.0”> : versão do XML utilizada <rdf: RDF : indica que o conteúdo do arquivo é RDF xmlns:rdf= “http://www.w3c.... : Indica o namespace do RDF.. xmlns:dc = “http://purl.org/dc/elements/1.1”> : namespace criado pelo autor <rdf: Description about= “http://jsantanna.blogspot.com/public/metadado.html”> : Descrição do rescurso <dc: creator>Joao Santanna</dc: creator> : propriedades do recurso <dc: title>Tutorial sobre Metadados</dc: title> <dc:subject> metadados</dc:subject> </rdf: Description> </rdf: RDF>
RDF – Estrutura básica Documento dc:creator Joao Santana Tutorial sobre Metadados dc:title http://jsantanna.blogspot.com/public/metadado.html Metadados dc:subject
RDF & RDF Schema • RDF fornece primitivas básica para a criação de ontologias simples, incluindo relacionamentos de generalização para classes e propriedades. • No entanto RDF peca pela falta de expressividade. • Não oferece conectivos lógicos para descrever negação , disjunção e conjunção, restringindo a sua capacidade de comunicação. • Proposta e criada em 2000, RDF-Schema surgiu como extensão do RDF. • Oferece primitivas de modelagem que permitem a construção de hierarquias, classes, propriedades, subclasses e subpropriedades. • RDF e RDF-Schema são as fundações da web semântica.
RDF & RDF Schema • RDF-Schema = RDFS • Ao longo dos últimos anos foram propostas algumas linguagens para ontologias baseadas em extensões ao RDFS : • SHOE • Oil • DAML • DAML+Oil • OWL
RDF Schema (RDFS) • RDF define somente o modelo de dados • É preciso definir um vocabulário – uma linguagem que permita definir estrutura semântica! • RDF schema são recursos Web (têm uri) e podem ser descritos usando o modelo RDF • RDFS permite definir propriedades de recursos (título, autor, etc.) e relacionamentos entre essas propriedades
Primitivas básicas do RDFS • Classes básicas • Classe raiz rdfs:Resource • MetaClass rdfs:Class • Literais rdfs:Literal • Properties (herda do RDF) • rdfs:subclassOf – property • ConstraintProperty • rdfs:domain • rdfs:range • rdfs:label, rdfs:comment, etc. • rdf:type (instância de)
<rdf:RDF xmlns: rdf=“http:llwww.w3.orp,/1999/02/22 -rdf -syntax-ns#” xmlns: rdfs=“http://www.w3.org/2000/01/rdf -schema#”> <rdf:Description ID=“ ”> Veiculo -schema#Class”/> <rdf:type resource=“http://www.w3.org/2000/01/rdf <rdfs:subClassOf resource=“http://www.w3.org/TR/WD -rdf -schema#Resource”/> </rdf:Description> <rdf:Description ID=“ VeículoDePassageiro ” > <rdf:type resource=“http://www.w3.org/2000/01/rdf -schema#Class”/> <rdf:subClassOf resource=“#Veiculo”/> </rdf:Description> Caminhão ”> <rdf:Description ID=“ -schema#Class”/> <rdf:type resource=“http://www.w3.org/2000/01/rdf <rdf:subClassOf resource=“#Veiculo”/> </rdf:Description> </rdf:RDF> Exemplo de aplicação usando o RDF Schema
RDFS • Interoperabilidade de recursos a nível: • Sintático: um modo padrão para a representação e transporte de metadados • Estrutural: representação para modelo de dados distintos especificando como os recursos estão organizados, os tipos e os possíveis valores para cada tipo • Semântico: compreensão rica de conteúdo
Linguagens de Ontologias para Web:SHOE • SHOE (Simple HTML Ontology Extensions) • Projeto da Universidade de Mariland • Definição de ontologias • Provê definição de regras (cláusulas Horn) • Fazer anotações em páginas html a partir de propriedades de uma ou mais ontologias • http://www.cs.umd.edu/projects/plus/SHOE/ • Pesquisadores do projeto migraram para DAML + OIL e OWL
Linguagens de Ontologias para Web:OIL • OIL (Ontology Inference Layer) . • Criado por um consorcio da comunidade Européia através do projeto On-to-Knowledge. • Criada para permitir modelagem de ontologias na web, RDFS não prove a semântica nem formalismo suficiente para permitir suporte a mecanismos de inferência . • A Semantica e o mecanismo de inferencia do Oil se baseiam em lógica de descrição e sistemas baseados em frames e é compatível com RDFS.
Linguagens de Ontologias para Web:OIL • class-def motorista • subclass–of pessoa • slot- constraint idade • value-type (min18) • class-def homem • subclass–of pessoa • class-def mulher • subclass–of pessoa, not homem • slot-constraint tem-pai • has-value homem • max-cardinality 1 • ontology-container • title“Exemplo - Ontologia” • creator“Ana Maria Moura” • subject“exemplo OIL” • language“Português” ... • ontology-definitions • class-def pessoa classe • slot-def motorista • slot-def idade • slot-def tem-pai • inverse e-filho_de elem. DC conjs. disjuntos propriedades de Pessoa
Linguagens de Ontologias para Web:DAML • DAML (DARPA Agent Markup Language) • Iniciativa da agência DARPA (Defense Advanced Research Projects Agency): • linguagem universal de marcação p/ Web Semântica: • rica p/ representar ontologias e dar suporte a agentes. • desenvolver ferramentas gratuitas e disponibilizar conteúdo significativo a ser manipulado por essas ferramentas. • A linguagem DAML herdou muitos aspectod presentes em OIL e ambas as linguagens apresentam funcionalidades similares. • A Darpa mantém em seu site uma biblioteca pública de ontologias que contém mais de 200 entradas (http://www.daml.org/ontologies/) • DAML + OIL (embutidos em RDF/RDFS)
Linguagens de Ontologias para Web:DAML + OIL • Amplia número de propriedades aos axiomas: • intersection of • union of • disjointUnion of • same as • one of • ..... • RDF/RDFS
Ontology Web Language (OWL) • Originada da DAML+OIL • OWL faz uso de URIs para nomeação padrão recomendado pela W3C -10/03/04. • Foi projetada de modo a atender as necessidades das aplicações para web semântica , que podem ser resumidas em: • Construção de ontologias. • Criar uma ontologia. • Explicitar conceitos fornecendo informações sobre os mesmos. • Explicitar propriedades fornecendo informações sobre as mesmas. • Explicitar fatos sobre um determinado domínio. • Fornecer informações sobre indivíduos que fazem parte do domínio em questão. • Racionalizar sobre ontologias e fatos. • Determinar as consequências do que foi construído e explicitado. • De forma similar à DAML+OIL , a intenção da OWL é representar conceitos e seus relacionamentos na forma de uma ontologia.
Elementos básicos de OWL • Namespaces: • Antes de declarar um conjunto de conceitos é preciso indicar que vocabulário se está usando. • Dessa forma é padrão para todas as ontologias incluir um conjunto dessas indicações no formato XML namespaces. • O namespaces são declarações que se localizam entre etiquetas do tipo rdf:RDF. • Essas indicações permitem que os identificadores que estarão presentes na ontologias sejam interpretados sem ambiguidades. <rdf:RDF xmlns = “http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#” xmlns:vin = “http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#” xml:base = “http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#” xmlns:food = “http://www.w3.org/TR/2004/REC-owl-guide-20040210/food#” xmlns:owl = “http://www.w3.org/2002/07/owl#” xmlns:rdf = “http://www.w3.org/1999/02/22-rdf-syntax-ns#” xmlns:rdfs = “http://www.w3.org/2000/01/rdf-schema#” xmlns:xsd = “http://www.w3.org/2001/XMLSchema#” >
Elementos básicos de OWL • Cabeçalhos: • Depois de definidos os namespaces é comum incluir uma coleção de sentenças sobre a ontologia agrupadas sob a etiqueta owl:Ontology. • Essas etiquetas são responsáveis por registrar comentários , pelo controle de versão, e pela inclusão de conceitos e propriedades de outras ontologias. <owl:Ontology rdf:about=“”> <rdfs:comment> Este é um exemplo de comentario dentro de uma ontologia escrita em Owl</rdfs:comment> <owl:priorVersion rdf:resouce =“http://www.w3.org/TR/2003/PR-owl-guide-200311215/wine”/> <owl:imports rdf:resource=“http://www.w3.org/TR/2004/REC-owl-guide-20040210/food”/> <rdfs:label> Ontologia dos vinhos</rdfs:label>
Elementos básicos de OWL • Classes: • Uma classe representa um conjunto ou coleção de indivíduos(objetos, pessoas, coisas) que compartilham de um grupo de características que os distinguem dos demais. • Utilizamos classes em ontologias para descrever conceitos de um domínio, por exemplo, móveis, animais, empregados, etc. <owl:Class rdf:ID=“Moveis_de_Sala”/> <owl:Class rdf:ID=“Animal_Selvagem”/> <owl:Class rdf:ID=“Planta”/> • Depois de criar a classe temos que explicitar todas as características que as definem e seus relacionamento com outras classes <owl:Class rdf:ID=“Lobo”/> <rdf:subClassOf rdf:resourse=“#Animal_Selvagem”/> ... </owl:Class>
Elementos básicos de OWL • Indivíduos: • São instancias das classes e são relacionados a outros indivíduos( e classes) através de propriedades. <Lobo rdf:ID=“Sadam”/> <owl:Thing rdf:ID=“Sadam”/> <owl:Thing rdf:about=“#Sadam”> <rdf:type rdf:resource=“#Lobo”/> </owl:Thing>
Elementos básicos de OWL • Propriedades: • Servem para descrever fatos em geral. • Podem se referir a todos os membros de uma classe , por exemplo, todos os cachorros comem ração. • Ou se referir a um individuo especifico , o cachorro Bidu nasceu em 2001. • Propriedade em Owl são relacionamento binários. • Existem 2 tipos de propriedades: • Tipo Object – relacionamento entre duas classes • Tipo datatype – telacionamento entre instancias de classes e literais expressos em RDF e datatypes do XLM Schema. <owl:DatatypeProperty rdf:ID=“anoNascimento”> <rdfs:domain rdf:resource=“#SerVivo”/> <rdfs:range rdf:resource=“&xsd;positiveInteger”/> <owl:DatatypeProperty> <owl:ObjectProperty rdf=ID = “come_racao”> <rdfs:domain rdf:resource=“#Cachorro”/> <rdfs:range rdf:resource=“#Racao”/> <owl:ObjectProperty>
Elementos básicos de OWL • Restrições: • Em Owl propriedades são utilizadas para criar restrições • Restrições são utilizadas para definir limites para indivíduos que pertencem a uma classe. • Restrições em OWL podem ser de três tipos: • Restrições que utilizam quantificadores • Restrições de cardinalidade • Restrições do tipo hasValue ( “tem valor de”). • Restrições podem se utilizar de dois tipos de quantificadores: o quantificador existencial ( ) e o quantificador universal( ) . • O quantificador existencial indica a existência de pelo menos um elemento , em owl é representado pela expressão someValuesFrom. • O quantificador existencial pode ser interpretado como Apenas e é representado em owl pela expressão allValuesFrom.
Ontology Web Language (OWL) • Exemplos de sintaxe OWL: • http://www.w3.org/TR/owl-xmlsyntax/apd-example.html
Web Services - Definições • “Um web service é um aplicativo de software que pode ser acessado remotamente através de diferentes linguagens baseadas em XML. (...) O que distingue o web service de um site é o tipo de interação fornecida” [ Stephen Potts & Mike Kopack] • “Um web service é um sistema de software identificado através de uma URI cujas interfaces públicas e interconexões são descritas em XML. Sua definição é publicada de modo a poder ser ‘descoberta’ por outros sistemas de software. Web Services podem interagir com outros sistemas ou web services (...) utilizando mensagens baseadas no padrão XML (...)” [Glossários do W3C]
Web Services • Independente de: • Plataforma • Localidade • Linguagem • Transparente para o cliente • Permite a construção de novos serviços mais complexos • Agregação de diversos web services independentes • Reutilização de código → economia de custo de desenvolvimento • Elementos básicos: • XML (XML Schema) – troca de mensagens • WSDL – “Interface” do web service: descrição do serviços, detalhes da comunicação • UDDI – registro de web services • SOAP – protocolo XML
Web Services Registro UDDI Páginas Brancas Páginas Amarelas Páginas Verdes • Nome do Negócio • Contato • Descrição • Serviços e Produtos • Códigos • Index • Regras ebusiness • Descrição de serviços • WSDL Mensagem SOAP Envelope SOAP Cabeçalho SOAP Cabeçalhos Corpo SOAP Dados da mensagem
Web Services • Processo utilização de um web service
Web Services - críticas • Não existe mediação de informações nem de comportamento. A troca de mensagens pressupões que ambas as partes estejam utilizando a mesma semântica • Fornecer definições mais precisas para os conceitos utilizados • A qualidade dos serviços aumentaria bastante se ontologias de domínio pudessem ser adicionadas