In the document of RDF Semantics, the term “universal class” appears only once in the discussion on membership loop.
When classes are introduced in RDFS, they may contain themselves. … In particular, this use of a class extension mapping allows classes to contain themselves. For example, it is quite OK for (the extension of) a ‘universal‘ class to contain the class itself as a member, a convention that is often adopted at the top of a classification hierarchy.
However, there is no explanation of what is the universal class in the document. It seems to be assumed that readers know about it, but what is the universal class? Is it rdfs:Resource, or rdfs:Class, or something else?
Pat Hayes mentioned it in his reply email to Tim Berners-Lee, responding to a query by TBL irritated at Pat’s wording of ‘
The class of which all classes are subclasses is the universal class, which contains everything. Also called the ‘universe’, also sometimes called the ‘domain of discourse’, which draws attention to the fact that ‘anything’ here means anything that can be referred to or talked about, whether it is real or imaginary: any possible topic of any kind of meaningful discourse.
So, it is obvious that the universal class is rdfs:Resource, which is a superclass of every class in the universe of discourse and the class of every individual in the universe of discourse at RDF Semantics. As I mentioned at my previous blog page, Tarski said,
…, it is sometimes more convenient to specify exactly what is considered an individual thing within the framework of this theory; the class of all those things will then be denoted again by RI and will be called the universe of discourse of the theory.
This class of all those things IS the universal class.
Still, I would like to emphasize that RDF Semantics discriminates a word, which is a URL reference in RDF, from what a word denotes, as denotational semantics does. Thus, rdfs:Resource or http://www.w3.org/2000/01/rdf-schema#Resource denotes a node named rdfs:Resource (I symbolize it as rdfs:ResourceI) in RDF graph. Furthermore, the class extension of rdfs:ResourceI (a set of individuals that classified to rdfs:ResourceI) is RI or the universe of discourse, all of things in RDF graph.
You should notice that rdfs:ResourceI exists in the RDF graph of RI or the universe of discourse. Namely, rdfs:ResourceI exists in the extension of itself. Oops! Isn’t it notorious vicious circle that causes many paradoxes that are raised from the Ancient Greek era. Pat and Brian say that “it is quite OK”, because “Such ‘membership loops’ might seem to violate the axiom of foundation, one of the axioms of standard (Zermelo-Fraenkel) set theory, which forbids infinitely descending chains of membership. However, the semantic model given here distinguishes … classes considered as objects from their extensions – … things that are ‘in’ the class – thereby allowing the extension of a … class to contain the … class itself without violating the axiom of foundation.”
Zermelo-Fraenkel set theory? Axiom of foundation? You need some basic knowledge about set theory in order to understand what they mean. I will put forward this discussion, but I would like to enlighten the framework in some object oriented programming languages that allow us meta-programming, e.g., Common Lisp Object System and Python3.0. They have the same framework of RDF(S).