In RDF 1.1 XML Syntax documentation rdf:resource is used as a shortened form when defining Empty Property Elements:
When a predicate arc in an RDF graph points to an object node which has no further predicate arcs, which appears in RDF/XML as an empty node element (or ) this form can be shortened. This is done by using the IRI of the object node as the value of an XML attribute
rdf:resourceon the containing property element and making the property element empty.
In RDF Schema 1.1 rdfs:Resource is defined as a class:
All things described by RDF are called resources, and are instances of the class
rdfs:Resource. This is the class of everything. All other classes are subclasses of this class.rdfs:Resourceis an instance ofrdfs:Class.
How are the two related? Does an rdf:resource value always belong to rdfs:Resource class and the other way around?
They are not related, at all. They just happen to share a name because they both have something to do with resources.
The term "resource" is central to the RDF data model (it's Resource Description Framework, after all). A resource in RDF is, very generally speaking, anything that can be identified by a URI (there's heaps of technical details regarding how things like blank nodes and literals fall under this definition, but for simplicity's sake we'll ignore that here).
rdf:resourceis just a syntax element in the RDF/XML syntax, namely an attribute to identify the resource that is the property value. For example, here's a simple RDF model (1 triple), in RDF/XML:Here,
http://example.org/Bobis the subject resource, andfoaf:addressis a property of that subject (used to link the subject resource to a value). The property value in this case is also a resource (http://example.org/address1), so in the RDF/XML syntax we userdf:resourceattribute to link it. If you were to write the same RDF model in a different syntax though (for example, Turtle), you wouldn't seerdf:resourceappear at all:In RDF Schema, the class
rdfs:Resourceis the class of all resources. It is a concept, not a syntax-specific mechanism. Since pretty much anything in RDF is a resource, it is the 'top-level' class of things. All things are resources, so if you introduce a new class, for example "Person", it will (automatically) be a subclass ofrdfs:Resource.Note that the second triple is a logical consequence of the first triple. Therefore, in practice, the fact that bob is a Resource is almost never explicitly written down in RDF models - if needed, it can be inferred.