Unidade 4: Web Semântica Prof. Cláudio Baptista Motivação • A Web atual representa informação usando: linguagem natural (e.g., English) Gráficos, multimedia Page layout • Ok para humanos • Difícil para machine processing (ambiguidade, formatos de dados sem tipos) Motivação: Web Atual Motivação: Web Semântica Motivação • Os dados na Web são organizados para serem lidos por humanos e não por programas de computador. (human versus machine understandable) • Em geral, os computadores não possuem uma forma confiável de processar semântica na Web. • Idéia: anotar elementos de páginas com instâncias de conceitos definidos em ontologias acessíveis na Web e em formato legível por máquina • Faz com que a Web possa ser lida tanto por humanos como por máquinas. Definição • "The Semantic Web is an extension of the current web in which information is given well-defined meaning, better enabling computers and people to work in cooperation." -- Tim Berners-Lee, James Hendler, Ora Lassila, The Semantic Web, Scientific American, May 2001 Definição • A Web semântica é uma visão: a idéia de se ter dados na Web definidos e interligados de modo que possam ser usados por máquinas não apemas com o propósito de apresentação (display), mas também automação, integração e reuso de dados entre diversas aplicações Definições • Ambiente onde agentes de software vagariam entre páginas, podendo realizar tarefas para os usuários; • WS não é uma outra Web e sim uma extensão da que existe; • Para o funcionamento da WS, computadores têm que ter acesso a coleções de informações estruturadas e conjuntos de regras de inferência; Definições • Vai permitir que máquinas possam compreender a semântica de documentos e dados; • Existência de diferentes formas de representar a mesma coisa na Web, então é aí que entra as ontologias; • Com ontologias, pode-se resolver ambiguidades em terminologia. ex.: Zip Code e Postal Code; Definições • Ontologias podem aumentar a funcionalidade da Web em muitos aspectos; • O poder real da WS será quando as pessoas criarem muitos programas que coletam contextos da Web, processam a informação e trocam os resultados com outros programas. Definições “Imagine um forno de microondas que, através da Internet, consulta um site de comidas congeladas para otimizar parâmetros de cozimento” Princípios básicos da WS • 1- Qualquer coisa deve ser identificável na WS (uso de URI) • 2- Informação é parcial e continuará parcial (não esperemos consistência global => erro 404 continuará a existir) • 3- Fácil Evolução • 4- Simplicidade Infra-estrutura em camadas da W3C para web semântica Arquitetura Proposta Arquitetura Proposta • Schema Layer: - Estrutura os dados e define o seu significado; - Representação do Conhecimento – dar significado aos dados, para ser possível elaborar raciocínio lógico. - Linguagem que permita expressar os dados para definir regras de raciocínio. - Uso de XML e RDF. Arquitetura Proposta • Ontology Layer: - Define as relações entre os dados; - Definição de relação entre conceitos – Ontologias; - Ontologias definem relações entre termos. Arquitetura Proposta • Logic Layer: - Define mecanismos para fazer inferência sobre os dados; - Conjunto de Regras de Inferência que os agentes utilizam para relacionar e processar informações. Metadados • Motivação – Cenário 1: busca por um livro numa biblioteca – Cenário 2: busca por um vídeo numa locadora – Cenário 3: busca por um telefone num serviço de Yellow Pages – Metadata: Data about Data • Principal uso: resource-discovery Metadados • Motivação – Ferramentas de busca, exceto Yahoo, coletam metadata de forma crua (através de web robots) sem semântica. – Isto resulta em baixa precisão e recall – Porém não existe uma instituição www.GOD.org que regulamenta e obriga o mundo usar metadados – O que fazer? Metadados – Ao invés de descartar a idéia de metadados podemos usar RDF – Como vimos nos cenários, existem muitos metadados em comum – Portanto, podemos, usando RDF, organizar estes metadados para que possam ser usados por aplicações!!! Metadados: Dublin Core • Conjunto simples de elementos de metadados para informação online • 15 elementos básicos • projetado para todos os tipos e gêneros de material • todos os elementos são opcionais • todos os elementos são repetitivos • Desenvolvido por um grupo internacional desde 1995 Elementos do Dublin Core 1. Title nome dado ao recurso pelo criador ou publisher. 2. Creator pessoa ou organização responsável pelo conteúdo intelectual do recurso. Por exemplo, autores de documents, artistas, fotógrafos, etc. 3. Subject o tópico do recurso. Tipicamente, é expressado com keywords ou frases que descrevem o assunto ou conteúdo do recurso. O uso de vocabulários controlados e classificação formal é encorajado. Dublin Core elements 4. Description uma descrição textual do conteúdo do recurso, incluindo abstracts no caso de objetos do tipo documentos ou descrição de conteúdo no caso de recursos visuais. 5. Publisher entidade responsável pela produção do recurso, por exemplo uma editora, departamento de uma universidade, ou uma entidade corporativa. 6. Contributor pessoa ou organização não especificada no elemento creator que teve contribuição na criação intelectual do recurso mas cuja contribuição é secundária. Por exemplo um editor, tradutor, e ilustrador). Dublin Core elements 7. Date data associada com a criação ou disponibilidade do recurso. 8. Type categoria do recurso, por exemplo home page, novela, poema, working paper, preprint, technical report, ensaio, dicionário. 9. Format formato de dados do recurso, usado para identificar o software e possivelmente hardware que são necessários para manipulação do recurso. 10. Identifier um string ou número usado para unicamente identificar o recurso. Examplo : URL Dublin Core elements 11. Source informação sobre um segundo recurso do qual o presente recurso é derivado. 12. Language a língua usada no recurso. 13. Relation identificador de um segundo recurso e seu relacionamento com o presente recurso. Este elemento permite links entre recursos relacionados. Examplos incluem uma edição de um trabalho (IsVersionOf), ou um capítulo de um livro (IsPartOf). Dublin Core elements 14. Coverage localizações espaciais e duração temporal do recurso. 15. Rights contém informação sobre copyright Dublin Core com Meta Tags <meta name="publisher" content="OCLC"> <meta name="creator" content="Weibel, Stuart L."> <meta name="creator" content="Miller, Eric J."> <meta name="title" content="Dublin Core Reference Page"> <meta name="date" content="1996-05-28"> <meta name="form" content="text/html"> <meta name="language" content="en"> Dublin Core com qualificadores <title>Digital Libraries and the Problem of Purpose</title> <creator>David M. Levy</creator> <publisher>Corporation for National Research Initiatives</publisher> <date date-type = "publication">January 2000</date> <type resource-type = "work">article</type> <identifier uri-type = "DOI">10.1045/january2000-levy</identifier <identifier uri-type = "URL">http://www.dlib.org/dlib/january00/01levy.html</identifier> <language>English</language> <rights>Copyright (c) David M. Levy</rights> RDF e RDFS • RDF - Resource Description Framework – Modelo para descrever recursos – É uma aplicação XML – Baseado em um modelo de grafo no lugar de árvore – Melhora a descoberta, o acesso e o gerenciamento das informações da Web RDF: 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 Exemplo de uso de RDF [Sujeito = <http://www.sinbad.dsc.ufpb.br/>, Predicado =<http://gosta.exemplo.org/termo/gosta>, Objeto = <http://www.w3c.org> ] http://www.sinbad.dsc.ufpb.br/ http://gosta.exemplo.org/termo/gosta http://www.w3c.org RDF: ressurgimento das redes semânticas • Redes semânticas – Forma de representar linguagem natural – Formato para organizar expressões numa forma fácil de ser computada • RDF é uma rede semântica para a Web Redes Semânticas spine has heart vertebrate isa isa hair mammal walk can bird isa canary freddie wings fly isa yellow doesn’t fly ostrich hugo RDF em XML • Texto tripla: [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-ofdocument”> <dc:Creator rdf:href=“#Creator_001”/> </rdf:Description> <rdf:Description rdf:ID=“Creator_001”> <card:name> Jonh Smith </card:name> <card:email> [email protected] </card:email> </rdf:Description> </rdf:rdf> RDF em XML: Grafo dc:Creator http://uri-of-document Creator_001 card:name “John Smith” card:email “[email protected]” RDF em XML: Árvore rdf:rdf rdf:Description rdf:Description rdf:ID card:name Creator_001 card:email rdf:href http://uri-of-Document dc:Creator rdf:href #Creator_001 “John Smith” “[email protected]” RDF e XMLNS <?xml version=“1.0” ?> Namespace para as especificações RDF <rdf:RDF xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#” Namespace para uma especificação xmlns:dc=“http://purl.org/DC/”> customizada <rdf:Description about=“http://rama.cpe.fr/index.html”> <dc:Creator rdf:resource=“mailto:[email protected]”/> </rdf:Description> </rdf:RDF> Predicado Objeto Sujeito RDF Schema (RDFS): definição e motivação • Provê um sistema de tipo básico • Provê mapeamento entre recursos e propriedades • Permite a construção de estruturas hierárquicas • Mesma sintaxe que RDF • Interoperabilidade de metadados de diferentes comunidades • Permite codificar, trocar e reusar estrutura de metadados RDFS: constituintes de um esquema de descrições • Classes básicas – rdfs:Resource : todas as coisas descritas são recursos (Objeto) – rdfs:Property: propriedades – rdfs:Class :similar à noção de classe em OO • Propriedades Básicas – rdf:type: indica que um recurso é membro de uma classe – rdfs:subClassOf: similar à noção de subclasse em OO – rdfs:subPropertyOf: indica que uma propriedade é especialização de outra RDFS em XML: exemplo • Exemplo de RDFS <? xml version=“1.0” ?> < rdf xmlns:rdf = “http://w3.org/TR/Prrdf-syntax#” xmlns:rdfs=“http://w3.org/TR/WDrdf-schema#” > <rdf:Description ID = “Title”> <type resource = "http://w3.org/TR/PRrdf-syntax#Property" /> <rdfs:label> Title </RDFS:label> </rdf:Description> <rdf:Description ID = "Creator" > < rdf:type resource = "http://w3.org/TR/PR-rdfsyntax#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.ht m”> <dc:Creator rdf:resource=“mailto:[email protected]”/> <dc:Title = “Report” /> </rdf:Description> </rdf:RDF> Ontologia • Permite que informações de diferentes fontes sejam integradas, para tanto requer-se um entendimento compartilhado de um dados domínio. • Associa termos de vocabulário com entidades identificadas na conceitualização e provê definições para restringir as interpretações destes termos. Ontologia • Como um XML DTD ou XML Schema, uma ontologia pode prover um vocabulário de problema. • Entretanto, uma ontologia pode também conter estruturas ou axiomas que definem as semânticas dos termos do vocabulário. • Estas semânticas são usadas para: • inferir informação baseado no conhecimento prévio do domínio • integrar fontes de dados de diferentes domínios. Ontologia • Definição: especificação (semi-)formal explícita de uma concepção compartilhada – Concepção: modelo das entidades, relações, axiomas e regras de algum domínio – Formal: • processável por máquina • permitindo raciocínio automático • com semântica lógica formal – Compartilhada: por uma comunidade, permitindo entendimento • Conceitos de computação relacionados: – Base de conhecimento reutilizável – Esquema de banco de dados Elementos de uma ontologia • Hierarquia de conceitos: – entidades • cada entidade definida por conjunto de pares atributo-valor • correspondem às classes dos modelos orientado a objetos; às entidades do modelo relacional; aos termos do modelo lógico • atributos propriedades x atributos relações – preenchidos por valores atômicos (tipos primitivos) x por outros conceitos • Status epistemológico do valor – Exatamente conhecida, default, probabilista – relações • sem hierarquia x em hierarquia paralela a hierarquia de entidades • correspondem: às associações, agregações e atributos dos modelos OO cujos valores são objetos; às relações do modelo relacional; aos predicados do modelo lógico Elementos de uma ontologia – Restrições: • sobre valores possíveis dos atributos do conceitos • correspondem: às assinaturas de classes em modelos OO; aos axiomas universalmente quantificados em modelos lógicos; às restrições de integridade nos esquema de BD – Regras dedutivas: • sobre atributos de conceitos • permitem inferência automática da existência de instâncias de conceitos a partir da existência de outras instâncias • correspondem às regras dos sistemas especialistas e programação em lógica; aos métodos dos modelos OO; às visões em BD Elementos de uma ontologia • Instâncias de conceitos: – definição de entidade e relações específicos (indivíduos) – correspondem: • aos fatos de sistemas especialistas e programação em lógica • aos objetos dos modelos OO • aos dados dos BD Serviços suportados por uma ontologia • Consultas e manipulação: – correspondem aos métodos de acesso a valor e de reflexão em linguagens OO; consultas de interrogação e manipulação em BD; ask, tell e retract das bases de conhecimento – sobre conceitos: • Quais são as entidades E relacionadas a entidade e0 via relações r1, r2? • Quais são as relações R mais gerais que r1? • Definição d de entidade E é consistente com o resto da ontologia? – sobre instâncias • um indivíduo I com propriedades P1, ..., Pn é instância de quais conceitos? • Raciocínio automático (geralmente dedutivo) Ontologias • Uma ontologia define os termos usados para descrever uma área de conhecimento. • Ontologias são usadas por pessoas, SGBD e aplicações que necessitam compartilhar informação de domínio (medicina, biologia, finanças, vendas de veículos, etc) • Ontologias incluem definições (entendidas por computador) de conceitos num domínio e os relacionamentos entre eles – Ontologias codificam conhecimento entre domínios, permitindo reusabilidade de conhecimento Ontologias • Ontologia tem sido usado com vários significados: taxonomia de vocabulários (ex. hierarquia do Yahoo), metadata schema (ex. Dublin Core) e teorias lógicas • Na Web Semântica, precisamos de ontologias que especifiquem 3 tipos de conceitos: • Classes • Relacionamentos • Propriedades Ontologias • XML e XML Schema representam apenas sintaxe • RDF e RDFs são a primeira tentativa de ser ter semântica associada. • RDFS pode ser chamada de uma linguagem de ontologia simples • Limitações: não faz inferência, não permite especificar disjunção de classes, dentre outros. Ontologia - Histórico – O trabalho em Ontologias remonta muitos anos nos campos de filosofia, IA, biblioteconomia – Representação do conhecimento na Web usando ontologias surgiu na década de 90: 1995 - SHOE (Simple HTML Ontology Extensions), Univ of Maryland. 1996/7 - Ontobroker, Univ. of Karlsruhe 1997-1999 - OIL (Ontology Interchange Level), Amsterdam led EU project – Investimento governamental em WS: 1999 - The DARPA Agent Markup Language Program 2000 - EU IST Project (Framework 5, 6) 2000 - outras propostas nos EUA, Japão e Austrália Tipos de Ontologias • Especialista: modela um domínio particular restrito • Geral: – modela o conhecimento de senso comum compartilhado por todos os seres humanos – parte de mais alto nível, reutilizável em vários domínios • Conceitual: fundamentada na capacidade de raciocinar • Lingüística: fundamenta no vocabulário de uma(s) língua(s) • De meta-dados: “especializada” na descrição de recursos online, no entanto sobre qualquer domínio • De tarefas e métodos: modela procedimentos e comportamentos abstratos no lugar de entidades ou relações Ontologias - Aplicações • 1- Web Portals: – ponto de partida para se colher uma informação específica – formam uma comunidade que interage num determinado assunto => pode-se classificar os conceitos, ex. Jornal é uma publicação – Exemplo de portal que usa WS: Open Directory Project (http://dmoz.org/) • grande diretório da Web editado manualmente. (usa RDF) Ontologias - Aplicações • 2- Coleções Multimídia – ontologias podem ser usadas para fazer anotações de imagens, vídeos, áudios e textos – MM ontologias: • Content-specific • Media-specific – Exemplo: um site de móveis antigos • usuário busca por um ‘late Georgian’ • Ontologia ajuda a inferir o período que equivale a 1760 e 1811 e que a cultura é ‘British’ • Também poder-se-ia inferir o tipo de madeira usada naquela época repassando esta informação na busca Exemplo de ontologia especialista: fragmentos de uma ontologia acadêmica em UML Exemplo de ontologia conceitual geral: fragmentos da ontologia de senso comum de Russell e Norvig em UML Anything AbstractObjects Events Sets Numbers RepresentationalObjects Intervals Categories Places PhysicalObjects Stuff Things Sentences Measurements Processes Moments Animals Agents Humans Solid Liquid Gas Exemplo de ontologia lingüística geral: fragmentos de WordNet em UML Wordnet • Princeton WordNet: • rede semântica de 70.100 significados • de 95.600 palavras (57.000 substantivos) do inglês • organizados em 4 categorias sintática: substantivos, verbos, adjetivos e advérbios, • são agrupados em conjuntos de sinônimos • disponível online: http://www.cogsci.princeton.edu/~wn/ • resulta de 15 anos de desenvolvimento manual por time de psico-lingüistas EuroWordnet • EuroWordNet: http://www.hum.uva.nl/~ewn/ • Resultado de um grande projeto da comunidade européia • Versão multi-língue adicionando e interligando WordNets do Espanhol, Francês, Italiano, Alemão, Holandês, Tcheco e Estoniano ao do Inglês Wordnet unit, social unit Person, individual, someone, human family, household, menage relative, relation Brother, blood brother Legenda: sinonímia body,organic structure sister, sis hipernímia arm meronímia leg antonímia WordNet Online Aplicações com o WordNet • • • • Extração e recuperação de informação Classificação de texto Ensino de línguas Construção de redes semânticas em outras linguagens (EuroWordnet) • Chatterbots (Geração e interpretação de texto) Linguagens de Ontologias - Requisitos de Projeto (W3C Ontology Language) – Compartilhamento de Ontologias por diversas fontes de dados – Evolução – Interoperabilidade – Detecção de inconsistência – Balanço entre expressividade e escalabilidade – Fácil de usar – Compatibilidade com outros padrões (XML, RDF, UML) – Internacionalização Exemplos: Ontobroker • inclui una linguagem de definição de ontologias, uma ling. de anotação de web page, um web crawler, interfaces de consulta e máquina de inferência • é baseado em frame-logic • é voltado para intranets Object[]. Person :: Object. Faculty :: Person. Chair :: Faculty. Student :: Person. Organization :: Object Department :: Organization. Person[ name =>> STRING; headOf =>> Organization]. Faculty[ teaches =>> Class; advises =>> Student]. FORALL X, Y X:Chair <- X:Person[headOf ->> Y] AND Y:Department ANOTAÇÃO: <a onto=" ’http://www.state.edu/users/jsmith/’:Chair"> Exemplo: RDF e RDFS • Implementa uma rede semântica • É uma aplicação de XML • Com RDFSchema permite a construção de vocabulários controlados, estensíveis e compartilhados • Uso de rdfs:Class, rdfs:Property e rdfs:subClassOf <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/TR/1999/PR-rdf-schema-19990303#"> <rdfs:Class rdf:ID="Faculty"> <rdfs:subClassOf rdf:resource= "http://schema.org/general#Person" /> </rdfs:Class> <rdfs:Class rdf:ID="Student"> <rdfs:subClassOf rdf:resource= "http://schema.org/general#Person" /> </rdfs:Class> <rdfs:Class rdf:ID="Chair"> <rdfs:subClassOf rdf:resource="#Faculty" /> </rdfs:Class> <rdfs:Property rdf:ID="advises"> <rdfs:domain rdf:resource="#Faculty" /> <rdfs:domain rdf:resource="#Student" /> </rdfs:Property> </rdf:RDF> Exemplo DAML • DARPA Agent Markup Language • Involve alto investimento da academia, governo e indústria • Hoje juntou-se a linguagem OIL (Ontology Inference Layer) formando DAML+OIL • Escrito em RDF • Baseado em Description Logic <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/TR/1999/PR-rdf-schema-19990303#" xmlns:daml="http://www.daml.org/2001/03/daml+oil#" > <daml:Ontology rdf:about=""> <daml:versionInfo>1.0</daml:versionInfo> <daml:imports rdf:resource="http://schema.org/base#" /> </daml:Ontology> <daml:Class rdf:ID="Husband"> <rdfs:subClassOf rdf:resource="#Male" /> <rdfs:subClassOf> <daml:Restriction> <daml:onProperty rdf:resource="#isMarriedTo" /> <daml:hasClass rdf:resource="#Female" /> </daml:Restriction> </rdfs:subClassOf> </daml:Class> </rdf:RDF> Futuro: W3C Web Ontology Language – The WOWG está trabalhando na criação de uma recomendação para a "Web Ontology Language": OWL 51 Membros de 30 W3C Organizations Companies: Agfa, Daimler-Chrysler, EDS, Fujitsu, Hewlett-Packard, IBM, Intel, IVIS, Lucent, Network Inference, Nisus, Nokia, Philips, Stilo, Sun, Unisys Public Sector: DISA, Electricite de France, Intelink, INTAP, MITRE, NIST Research projects/Labs: DFKI, FZI, Ibrow group, Stanford, U. Bristol, U. Maryland, U. Southhampton Invited Experts: Medical, Digital Library, Defense, Technical