Search code examples
rdfrdfs

Is a literal an RDF resource?


Like a lot of people, I use rdf:Statements to reify triples so that I can make statements about statements, like

:S1 a rdf:Statement .
:S1 :citation :tabloid_celebrity1 .
:S1 rdf:subject :Earth . 
:S1 rdf:predicate :has_shape . 
:S1 rdf:object :flat_surface . 

One of my favorite websites, https://www.infowebml.ws/rdf-owl/, says that the rdfs:range of rdf:object is rdfs:Resource.

Are literals considered rdfs:Resources? If not, does that mean that property rdf:object shouldn't take a literal as its object? I.e., is this illegal?

:S2 a rdf:Statement .
:S2 :citation <https://en.wikipedia.org/wiki/Age_of_the_Earth> .
:S2 rdf:subject :Earth . 
:S2 rdf:predicate :has_age_years . 
:S2 rdf:object "4.54E9"^^xsd:double . 

Solution

  • Yes, rdfs:Literals are rdfs:Resources. Everything is an rdfs:Resource. You are an rdfs:Resource, section 5.3.4 of RDF Schema 1.1 is an rdfs:Resource, the number of atoms in planet Earth is an rdfs:Resource, complex numbers are rdfs:Resources, rdfs:Resource is an rdfs:Resource, and an xsd:double like "4.54E9"^^xsd:double is an rdfs:Resource. More precisely rdfs:Resource is the IRI of the rdfs:Class that has everything as its instances.

    Or, even more formally, everything in the universe is related to what rdfs:Resource denotes in the extension (IEXT) of the resource denoted by rdf:type.