RDF -Resource Description Framework Recomendação do W3C para padronizar a definição e utilização de meta-dados de descrição de recursos da web. Porém, RDF são adequados para representar dados e proporcionam uma forma simples de expressar afirmações sobre estes recursos. O RDF tenta trazer interoperabilidade ante a multiplicidade de formatos incompatíveis existentes. A base do RDF é uma tripla do tipo sujeito-propriedade-objeto que representam afirmações (statements). A página http://www.inf.ufsc.br/~gauthier tem como criador Fernando Gauthier. sujeito: http://www.inf.ufsc.br/~gauthier propriedade: criador objeto: Fernando Gauthier Propriedade(sujeito, objeto) ou criador(http://www.inf.ufsc.br/~gaut hier, Fernando Gauthier) http://www.inf.ufsc.br/~gauthier criador Fernando Gauthier RDF permite que sujeitos e objetos troquem de posição: criador(http://www.inf.ufsc.br/~gauthier, Fernando Gauthier) cargo(Fernando Gauthier, Professor Adjunto) Conceitos básicos usados em RDF RDF utiliza o seguintes conceitos: Grafo de Modelo de Dados (Graph data model); Vocabulário baseado em URIs (URI-based vocabulary); Tipos de dados (Datatypes) Literais (Literals) Sintaxe de serialização XML (XML serialization syntax) Expressão de Fatos Simples (Expression of simple facts) Entailment Grafo de Modelo de Dados Sustentando qualquer expressão RDF existe um conjunto de triplas, cada uma composta de um sujeito, um predicado e um objeto. O conjunto destas triplas é denominado Grafo de modelo de dados. Cada tripla representa uma ligação no-arco-no. Cada tripla representa uma afirmação sobre um relacionamento entre as entidades representadas pelos nós. Vocabulário baseado em URIs Cada nó pode ser uma URI, um literal ou estar em branco (não podendo ser identificado). Os predicados são identificados por URIs e podem ser também nós em um grafo. Tipos de dados Tipos de dados são utilizados por RDF para representação de valores como números inteiros, números reais e datas. Um tipo de dados consiste de um espaço léxico, um espaço de valores e um mapeamento léxico-para-valor. Um tipo de dado é identificado por uma ou mais URI. A recomendação W3C espera que tipos de dados definidos por XMLSchema sejam utilizados (http://www.w3.org/TR/rdf-concepts/#section-Datatypes). Literais O literais são utilizados em RDF para identificar valores como números e datas por meio de uma representação léxica. Os literais podem ser o objeto de uma declaração RDF, mas não o sujeito ou o predicado. Os literais podem ser plain ou tipados. Os literais plain são strings combinadas com tag opcionais da linguagem, os tipados são strings cominadas com uma URI de tipo de dados.Exemplo de literal tipado: <xsd:boolean, "true"> Expressão de Fatos Simples (Expression of simple facts) Fatos simples indicam um relacionamento entre duas entidades e podem ser reapresentados como uma tripla RDF na qual o predicado nomeia o relacionamento e o sujeito e o objeto as duas entidades. Estes fatos podem ser equivalentes a uma linha numa tabela de uma base de dados relacional contendo duas colunas, a primeira indicando o sujeito e segunda o objeto, e o nome da tabela representa o predicado. Criador Sujeito http://www.inf.ufsc.br/~gauthier Objeto Fernando Gauthier Também podem ser equivalentes a um predicado com dois argumentos da lógica de predicados. Tanto banco de dados relacionais, como a lógica de primeira ordem permitem relações ou predicados com mais de duas entidades. Este tipo de relação ou predicado tem que ser decomposto para representa-lo como uma tripla RDF. Uma forma simples de fazer esta decomposição é introduzir um nó em branco no grafo correspondente a linha (base de dados relacional) e uma nova tripla para cada célula da linha. O sujeito da tripa é o nó em branco, o predicado e dado pelo nome da coluna e o objeto corresponde ao vlaor da célula. O mesmo se aplica para predicados da lógica de primeira ordem co mais de um argumento. Sintaxe de serialização XML (XML serialization syntax) Existe uma forma recomendada de serialização de RDF em XML de forma a facilitar a troca de modelos RDF entre aplicações. Para representar formalmente, em linguagem compreensível pela máquina, RDF utiliza o XML. Um documento RDF é uma lista de descrições de recursos em XML. Descrição propriedade com valor contendo literal: <rdf:Description about="http://www.inf.ufsc.br/~gauthier"> <criador>”Fernando Gauthier” </criador> </rdf:Description> Descrição propriedade com valor contendo outro recurso <rdf:Description about=" http://www.inf.ufsc.br/~gauthier"> <Criador rdf:resource="mailto:[email protected]"/> </rdf:Description> Descrição propriedade com valor contendo outra descrição: <rdf:Description about=" http://www.inf.ufsc.br/~gauthier"> <Criador> <rdf:Description rdf:about="mailto:[email protected]"> <TrabalhaCom rdf:resource="mailto:[email protected]"/> </rdf:Description> </Criador> </rdf:Description> Uma afirmativa sobre o atributo ”Fernando Gauthier” de que trabalhaCom mailto:[email protected] Containers rdf Algumas vezes é necessário trabalhar ou declarar fatos sobre um conjunto de entidades e com essa finalidade RDF oferece um vocabulário de recursos que contem “ coisas”, estes recursos são chamados containers. Tipos pré definidos de containers: rdf:Bag responde por um grupo de recursos ou literais onde a ordem não interessa assim como podem existir repetições rdf:Seq responde por seqüências que representam listas ordenadas. Como no anterior permite repetições rdf:Alt responde por alternativas que são listas de recursos ou literais das quais a propiedade pode usar somente um valor. RDF Collections Uma limitação dos containers é não poder fecha-los, ou seja dizer que outros membros não existem. Um Collection em RDF é um grupo de entidades representada como uma estrutura de listas no grafo RDF A estrutura é montada usando o vocabulário de collection que consiste do tipo lista (rdf:List), das propriedades primeiro (rdf:first) e resto(rdf:rest) e do recurso nulo (rdf:nil). RAP - RDF API for PHP V0.9.4 http://www.wiwiss.fuberlin.de/suhl/bizer/rdfapi/ RDFSchema (RDFS) Permitem definir um vocabulário básico para dados RDF e especificar o tipo de objetos aos quais se aplicam esses atributos. Introduze primitivas básicas que permitem falar de classes, subclasses, domínio e restrições de valores das propriedades no contexto da web. Proporciona um mecanismo de tipagem básica para modelos RDF, utilizando termos definidos como: Class, subPropertyof e subclassof. Os objetos RDF podem ser definidos como instâncias de uma ou mais classes usando a propriedade type. rdfs:Resource Todas as coisas descritas por RDF são recursos (resources) e são instâncias da classe rdfs:resource. Esta é a classe raiz de todas as outras que são subclasses desta rdfs:Class Esta é a classe dos recursos que são Classes RDF rdfs:Literal Esta é a classe dos valores literais (strings e inteiros são exemplos de rdfs:literals e podem se tipados ou não.) Os valores tipados são instancias da classe datatype. rdfs:Literal é uma instancia de rdfs:Classe é uma sublcasse de rdfs:Resource. rdf:Property É a classe das propriedades herdada de RDF e uma instância de rdfs:class. rdfs:subClassOf Usada para declarar que todas as instâncias de uma classe são instâncias de oura. http://www.w3.org/TR/rdf-schema/. Exemplo RDFS pode ser vista como uma linguagem para descrever conhecimento bem simples Existem muitos tipos de conhecimentos que não podem ser expressos nesta linguagem. afirmar que cada livro tem um único título e pelo menos um autor afirmar que um livro tem que ter capa dura ou capa “normal”