A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Resource Description Framework (RDF) Mark Douglas de Azevedo Jacyntho.

Apresentações semelhantes


Apresentação em tema: "Resource Description Framework (RDF) Mark Douglas de Azevedo Jacyntho."— Transcrição da apresentação:

1 Resource Description Framework (RDF) Mark Douglas de Azevedo Jacyntho

2 Tópicos  Introdução  URIref  Qname  Modelo RDF  RDF/XML  Containeres e Coleções RDF  Reificação  RDF Schema  Comparação entre RDF/OWL e orientação a objetos

3 Introdução  RDF é uma linguagem para descrever recursos na web por meio de declarações processáveis por máquina Recurso é qualquer “coisa” que possa ser identificada na web, mesmo que não possa ser recuperada pela web Ex: página web, pessoa, produto, etc. Recurso são descritos por meio de propriedades e valores.  RDF permite intercâmbio de informações, entre aplicações de software, sem perda de significado.

4 URIref  URI reference (URIref): URI com identificador de fragmento opcional.  Exemplo: http://www.example.org/index.html#section2, onde: http://www.example.org/index.html é a URI; section2 é o identificador de fragmento.  Em RDF, recurso é qualquer “coisa” que pode ser identificada por uma URIref.

5 Qname  XML Qualified Name (QName): uma abreviação para uma URIref  QName prefix: uma abreviação para um URI namespace  Exemplo: foo é um QName prefix abreviando o URI namespace http://example.org/somewhere/ foo:bar é um QName abreviando a URIref http://example.org/somewhere/bar

6 Modelo RDF  Recurso são descritos por meio de declarações RDF que são triplas (S, P, O): Sujeito: recurso. Predicado: propriedade do recurso. Objeto: valor da propriedade (pode ser um literal ou outro recurso)  Recursos e propriedades são identificados por URIrefs.

7 RDF Model  RDF é um modelo em grafo, onde cada declaração é representada por: um nó para o sujeito; um nó para o objeto; um arco para o predicado, direcionado do nó do sujeito para o nó do objeto.  Há duas notações para o grafo: gráfica; em triplas.

8 RDF Model  Exemplo em notação gráfica:  Mesmo exemplo em triplas:

9 RDF Model  Um conjunto de termos (URIrefs) definido para um propósito específico é chamado de vocabulário. P. ex: vocabulário Dublin Core prefix dc:, namespace URI: http://purl.org/dc/elements/1.1/  RDF é apenas uma linguagem e não define o significado de termos de um vocabulário particular. Cabe a cada aplicação conhecer o significado de cada termo; RDF somente define o significado de termos do vocabulário RDF.

10 RDF Model  Nós em Branco Artifício para: modelar valores estruturados (de propriedades) mais complexos do que um tipo primitivo.  similar a value objects em orientação a objetos. reduzir relacionamentos n-ários a n relacionamentos binários.

11 RDF Model  Exemplo de valor estruturado e nó em branco:

12 RDF Model  Literais tipados Associar um tipo ao valor literal para evitar interpretações erradas. Um literal tipado é definido por um par (string, URIref), onde URIref identifica o tipo. RDF não oferece tipos nativos, somente permite referenciar tipo definidos externamente Os tipos mais usados são os do XMLSchema (xsd).

13 RDF Model  Exemplo de valor tipado:

14 RDF/XML  Sintaxe XML para intercâmbio de grafos RDF.  Exemplo:

15 RDF/XML  rdf:RDF elemento de inicial do documento RDF/XML;  rdf:Description elemento de descrição de recurso  rdf:about atributo cujo valor é a URIref do recurso;

16 RDF/XML  exterms:creation-date propriedade “creation-date” do vocabulário “exterms”; anhinado dentro de rdf:Description e se refere ao recurso em rdf:about

17 RDF/XML  rdf:Resource atributo usado quando o valor da propriedade é outro recurso; o valor do atributo é a URIref do recurso  valor literal de propriedade em geral é usado texto entre as tags do elemento.

18 RDF/XML  Notas sobre Qname e URIref: Qname somente pode se usado em nomes de elementos e atributos. Em valores de atributos tem que usar URIref sem Qname. URIref absoluta ou relativa (à URI base do documento).

19 RDF/XML  Uso de rdf:nodeID para nó em branco:

20 RDF/XML  Mecanismos de abreviação e organização de URIrefs na descrição de um recurso: rdf:ID = “identificador de fragmento” URIref completa é obtida concatenando:  URI base do documento + # +valor de rdf:ID Indicado na criação de recursos novos pois evita duplicatas  Tem que ser único com relação à URI base do documento. rdf:about = “#identificador de fragmento” Equivalente, mas não evita duplicatas. Não indicado para criação de novo recursos.

21 RDF/XML  Literais tipados: rdf:datatype atributo usado em propriedade cujo valor é um literal tipado para indicar o tipo. Literal XML (único tipo nativo do RDF): rdf:parseType = “Literal” indica que o conteúdo do elemento é para ser interpretado como um fragmento XML literal.

22 RDF/XML  Exemplo de uso do rdf:ID e rdf:datatype:

23 RDF/XML  Exemplo de uso do rdf:parseType=“Literal”:

24 RDF/XML  URI base Por default, a URI base é a URI do documento no qual as URIrefs relativas são usadas. mas, pode-se explicitamente definir a URI base usando o atributo xml:base do elemento rdf:RDF desfaz ambigüidade quando o documento é disponibilizado em mais de um endereço web; ou quando há mais de um documento envolvido no conjunto de definições RDF.

25 RDF/XML  Exemplo de uso de xml:base:

26 RDF/XML  rdf:type proriedade usada para classificar recursos, ou seja, definir seu tipo. mapeia um recurso em um tipo (instância de rdfs:class, como veremos).

27 RDF/XML  Notação abreviada de rdf:type

28 Containeres RDF  Containeres são tipos que contém objetos, chamadas membros;  Um membro pode ser recurso (inclusive nós em branco) ou literais;  Há três tipos: rdf:Bag: permite duplicatas e não importa a ordem; rdf:Seq: permite duplicatas e importa a ordem; rdf:Alt: elementos são alternativas (tipicamente para um único valor de uma proprieade).

29 Containeres RDF  Notas: O tipo do container denota apenas uma intenção, podendo os elementos serem processados de forma diferente pela aplicação. Containeres não permitem definir número máximo de elementos Apenas indicam alguns membros, mas não tem como dizer que outros membros não existem. Não são estrutura de dados. São tipos usados para classificar objetos com suas características.

30 Containeres RDF  Exemplo de rdf:Bag:

31 Containeres RDF  Exemplo de rdf:Bag em RDF/XML:

32 Containeres RDF  Exemplo de rdf:Alt :

33 Containeres RDF  Outros exemplos de rdf:Bag:

34 Coleções RDF  Coleções são grupo de objeto representados com uma lista no grafo RDF.  Coleções permitem limitar os membros do grupo, dizendo que somente contém os membros especificados.  O vocabulário utilizado é o seguinte: rdf:list: tipo listas; rdf:first: propriedade “primeiro elemento da lista”; rdf:rest: propriedade “restante da lista”; rdf:nil: recurso predefinido significando “vazio”.

35 Coleções RDF  Exemplo de coleção RDF: O tipo rdf:List é opcional. Pode ser inferido dado que o sujeito de rdf:first e rdf:rest somente pode ser do tipo rdf:List.

36 Coleções RDF  Exemplo de coleção em RDF/XML:

37 Coleções RDF  Notação abreviada do exemplo de coleção em RDF/XML:

38 Reificação RDF  Reificar: Promover uma declaração RDF a recurso para que possa ser sujeito (ou objeto) de outras declarações. Similar a relacionamento envolvendo classes de relacionamento em orientação a objetos. Para tal tem que definir uma URIref para a declaração e descrevê-la usando o seguinte vocabulário: rdf:Statement: tipo declaração; rdf:subject: sujeito da declaração; rdf:predicate: predicado da declaração; rdf:object: objeto da declaração.

39 Reificação  Exemplo: declaração “criador da declaração”.

40 Reificação  Exemplo: declaração “criador da declaração”.

41 Reificação  Mesmo exemplo, gerando reificação com rdf:ID:

42 Reificação  Nota: RDF não estabelece nenhuma ligação entre a declaração de reificação e a declaração original. Isto fica a cargo da aplicação.

43 RDF Schema  RDF Schema (RDFS) é um sistema de tipos para RDF: permite definir uma vocabulário específico a ser usado na criação de documentos RDF; classes, sub-classes; propriedades e sub-propriedades de classes. um arquivo RDFS é um arquivo RDF;

44 RDF Schema  Classes: são os conceitos envolvidos no domínio Similar a tipos em orientação a objetos. são descritas usando os seguintes recursos RDFS: tipos:  rdfs:Class: meta-classe para definir classes;  rdfs:Resource: recurso. propriedades:  rdfs:type: indica que um recurso é uma instância de uma classe;  rdfs:subClassOf: indica que uma classe é subclasse de outra (propriedade transitiva).

45 RDF Schema  Exemplo esquema de veículos em triplas Nota: o prefixo ex é xml:base do documento do esquema.

46 RDF Schema  Exemplo de esquema de veículos em grafo:

47 RDF Schema  Exemplo de esquema de veículos em RDF/XML:

48 RDF Schema  Exemplo de esquema de veículos em RDF/XML abreviado com nó tipado:

49 RDF Schema  Definindo instância em um documento RDF: uso da propriedade rdf:type.  Exemplo de instância em RDF/XML, usando nó tipado:

50 RDF Schema  Propriedades: são propriedades usadas para caracterizar classes são independentes de classes e podem ser usadas em zero ou mais classes ao mesmo tempo; são descritas usando os seguintes recursos RDFS: tipo:  rdf:Property: meta-classe para definir propriedades. propriedades:  rdfs:domain: indica para qual tipo (classe) a propriedade se aplica  rdfs:range: indica o tipo (classe) dos valores (contra-domínio) da propriedade  rdfs: subproperty: indica que propriedade é sub-propriedade de outra.

51 RDF Schema  Domínio (rdfs:domain) de propriedade: indica a qual tipo (classe) a propriedade se aplica; pode haver mais de uma declaração de domínio para uma mesma propriedade indica que o sujeito da propriedade é uma instância de todos os tipos declarados como domínio. exemplo:

52 RDF Schema  Contra-domínio (rdfs:range) de propriedade indica o tipo (classe) dos valores da propriedade pode ser um tipo primitivo XML-Schema (xsd). pode haver mais de uma declaração de contra-domínio para uma mesma propriedade indica que o objeto da propriedade é uma instância de todos os tipos declarados como contra-domínio exemplo:

53 RDF Schema  Exemplo de propriedade para o esquema de veículos:

54 RDF Schema  Subpropriedade (rdfs:subproperty): uma propriedade pode ser subpropriedade de zero ou mais propriedades; uma subpopriedade herda as declarações de domínio e contra- domínio da(s) superpropriedade(s); exemplo:

55 RDF Schema  Interpretação de declarações RDFS: descrições de um esquema linguagens de programação  descrições prescritivas (restrições) RDF  descrições adicionais, mas a aplicação pode interpretá-las como quiser.  Aplicações podem ignorar declarações existentes ou assumir outras inexistentes.

56 RDF Schema  RDFS não prevê: cardinalidade em propriedades; transitividade em propriedades; propriedades candidatas à chave para uma classe; que duas classes com URIrefs diferentes, na verdade, são a mesma classe; que duas instâncias com URIrefs diferentes, na verdade, representam o mesmo indivíduo; customização de propriedades por classe; criação de novas classes por meio de combinação de outras (união e interseção); disjunção entre classes, etc.

57 RDF Schema  Para suprir as limitações de RDFS algumas linguagens de ontologia têm sido propostas a mais atual é Web Ontology Language (OWL) Em OWL classes são definidas por um conjunto de axiomas, ou seja, conjunto de instâncias com características comuns.

58 RDF Schema  Classes em OWL:

59 Comparação entre RDF/OWL e OO  Como ponto em comum, pode-se citar: modelos de domínio (domain models) consistem de classes, propriedade e instâncias; permitem definir hierarquia de classes; propriedades podem ter objetos ou primitivos como valor.

60 Comparação entre RDF/OWL e OO  Analogia entre as linguagens RDFS e UML: RDF Schema UML Metamodel Domain Schema Domain Model RDF Instances UML Instances

61 Comparação entre RDF/OWL e OO  Diferenças relativas a classes e instâncias: Orientação a ObjetosRDF e OWL Classes estão relacionadas a tipos para instâncias. Classes estão relacionadas a conjunto de indivíduos. Cada instância tem uma classe. Classes não compartilham instâncias. Cada indivíduo pode pertencer a múltiplas classes. Instâncias não podem mudar seu tipo em tempo de execução. Membros de classe podem mudar em tempo de execução.

62 Comparação entre RDF/OWL e OO  Diferenças relativas a classes e instâncias: Orientação a ObjetosRDF e OWL A lista de classes já conhecida em tempo de compilação e não pode mudar. Classes podem ser criadas e modificadas em tempo de execução. Compiladores são usados em tempo de construção. Erros de compilação indicam problemas. Raciocinadores podem ser usados para classificação e checagem de consistência em tempo de execução ou de construção.

63 Comparação entre RDF/OWL e OO  Diferenças relativas a propriedades, atributos e valores: Orientação a ObjetosRDF e OWL Propriedade são definidas localmente para uma classe (e suas subclasses, por herança). Propriedades existem independentemente de classes específicas. Instâncias somente podem ter valores para as propriedades pré-definidas. Valores tem que ter o tipo correto. Contra-domínio é usado para checagem de tipo. Instâncias podem ter valores arbitrários para qualquer propriedade. Domínio e contra-domínio podem ser usados para checagem e inferência de tipo.

64 Comparação entre RDF/OWL e OO Orientação a ObjetosRDF e OWL Classes codificam grande parte de seu significado e comportamento por meio de métodos imperativos. Classes tornam seu significado explícito em termos de declarações OWL. Código imperativo não pode ser adicionado. Classes podem encapsular seus membros com acesso privado. Todas as partes de um documento RDF/OWL são públicas e podem ser acessadas de qualquer lugar.  Diferenças relativas a propriedades, atributos e valores:

65 Comparação entre RDF/OWL e OO Orientação a ObjetosRDF e OWL Mundo fechado: se não há informação suficiente para provar se uma declaração é verdadeira, então ela é falsa. Mundo aberto: se não há informação suficiente para provar se uma declaração é verdadeira, então ela pode ser verdadeira ou falsa.  Diferenças relativas a propriedades, atributos e valores:

66 Comparação entre RDF/OWL e OO Orientação a ObjetosRDF e OWL Algumas APIs genéricas são compartilhadas entre aplicações. Poucos modelos de domínio são compartilhados. Em RDF e OWL modelos de domínio são publicados e compartilhados na web. Modelos de domínio são projetados como parte de uma arquitetura de software. Modelos de domínio são projetados para representar o conhecimento sobre o domínio e para integração de informação. Tecnologia madura com suporte de muitas ferramentas. Tecnologia emergente com pouco suporte de ferramentas.  Diferenças relativas ao design:

67 Comparação entre RDF/OWL e OO Orientação a ObjetosRDF e OWL Instâncias são anônimas dificultando acesso fora da aplicação. Com exceção de nós em branco, todo recurso tem uma URI associada. Modelos podem ser serializados em XMI, outro formato XML ou proprietário. Objetos têm uma serialização padrão baseada em XML, com URIs únicas para cada recurso no documento.  Diferenças gerais:

68 Referências  RDF Primer http://www.w3.org/TR/rdf-primer/  A Semantic Web Primer for Object-Oriented Software Developers http://www.w3.org/TR/sw-oosd-primer/


Carregar ppt "Resource Description Framework (RDF) Mark Douglas de Azevedo Jacyntho."

Apresentações semelhantes


Anúncios Google