# RDF Schema

RDF Schema (do inglês, "Resource Description Framework Schema", às vezes abreviado para RDFS, RDF (S), RDF-S ou RDF / S ) é um conjunto de classes e propriedades RDF que formam uma extensão do vocabulário básico de RDF. RDFS é usado para estruturar vocabulários RDF.
A primeira versão foi publicada pelo World Wide Web Consortium (W3C) em abril de 1998, e a recomendação final do W3C foi publicada em fevereiro de 2004. Vários componentes RDFS estão incluídos na linguagem mais expressiva OWL .

## Construções principais

As principais construções RDFS são classes e propriedades. Depois, há outras construções, definidas como "propriedade de utilidade", que são instâncias particulares de rdf:Property.

### Classes

* rdfs:Resource é a classe que contém tudo. Tudo o que é descrito em RDF é um recurso.
* rdfs:Classe indica que um recurso é uma classe que contém outros recursos.
Um exemplo típico de rdfs:Class is foaf:Person, no vocabulário FOAF. Uma instância de foaf:Person é um recurso conectado à classe foaf:Person por meio das propriedades rdf:type, que indica o tipo (ou, na verdade, a classe) de um elemento específico. Por exemplo, a frase em linguagem natural "Mario é uma pessoa" é formalizada da seguinte forma:
A definição de rdfs:Class é recursiva: rdfs: Class é uma classe de classes, portanto, é uma instância de si mesma:
As outras classes descritas na especificação RDF (S) são:
* rdfs:Literal - valores literais, como strings ou números. Os literais podem ser simples ou digitados, ou seja, ter ou não um tipo associado.
* rdfs:Datatype - a classe do tipo de dados . rdfs: Datatype é uma instância e uma subclasse de rdfs: Class. Cada instância de rdfs: Datatype é uma subclasse de rdfs: Literal.
* rdf:XMLLiteral - a classe de literais XML. rdf: XMLLiteral é uma instância de rdfs: Datatype (e, portanto, uma subclasse de rdfs: Literal).
* rdf:Property - a classe da propriedade.

### Propriedade

Propriedades são instâncias de rdf:Property e descrevem uma relação entre recursos de assunto e recursos de objeto. Uma propriedade, quando usada como tal, é chamada de "predicado".
* rdfs:domain define o domínio de outra propriedade, que é a classe do sujeito da qual essa propriedade é predicado.
* rdfs:range define o contradomínio de outra propriedade, que é a classe do objeto ao qual essa propriedade é predicada.
Por exemplo, as seguintes declarações são utilizadas para expressar a propriedade ex:empregadotendo como sujeito um recurso do tipo foaf:Person e como objeto um recurso do tipo foaf:Organization
O seguinte triplo exige que ex:Mario seja necessariamente do tipo foaf:Person e ex: AziendaX do tipo foaf:Organization :
* rdf:type é uma propriedade usada para afirmar que um recurso é uma instância de uma classe. Um qname comumente aceito para esta propriedade é "a".
* rdfs:subClassOf é uma propriedade usada para afirmar que um recurso do tipo rdfs:Class é uma subclasse de outra classe; permite, portanto, declarar hierarquias entre classes.
* rdfs:subPropertyOf é usado para afirmar que todos os recursos relacionados por uma propriedade específica também são relacionados por outra propriedade.
* rdfs:label é usado para fornecer uma versão do nome do recurso que pode ser lida por humanos.
* rdfs:comment é usado para fornecer uma descrição de um recurso legível por humanos.

### Propriedade de utilidade

* rdfs:seeAlso indica um recurso que pode fornecer informações adicionais sobre o recurso do assunto.
* rdfs:isDefinedBy indica um recurso que define o recurso do objeto. Esta propriedade pode ser usada para indicar um vocabulário RDF no qual o recurso é descrito.

## Exemplos de vocabulários RDF

Entre os vocabulários RDF mais conhecidos representados em RDFS encontramos:
* FOAF : com fonte http://xmlns.com/foaf/spec/, é escrito em RDFS com sintaxe RDFa .
* Dublin Core : fonte RDFS disponível em sintaxe diferente.
* Schema.org : com fonte https://schema.org/docs/schema_org_rdfa.html, é escrito em RDFS com sintaxe RDFa.
* SKOS