On Jan 18, 2011, at 10:06 PM, Tara Athan wrote:
Let me preface this by saying that I am willing to be convinced I am
wrong about most everything I think I understand about ontologies. I
would also like to say that I have put a lot of effort into trying to
understand, not over two days, but over nearly two years now. Maybe I'm
slow, but I managed to earn a PhD in something, just not set theory or
Nothing in my post was intended to cast aspersions on anyone's intelligence.
The part of John's definition that I am questioning is the phrase "a
class is a set that ...".
John was careful to note (a) that he preferred to avoid the term "class" altogether and that (b) he was defining it in a particular way for his purposes.
I've spent two years coming to the
realization that a class is not a set,
One of the points I tried to make is that assertions like this have no meaning apart from a framework in which "class" and "set" are defined or axiomatized. There are theories where some classes are sets and some are not; and others where there are no classes at all (or equivalently, where there is no distinction between classes and sets).
and that this idea is extremely
important for ontologies,
Perhaps it is for certain approaches. Perhaps it isn't for others.
so if you want me to return to my starting
point and throw out everything I thought I had understood, I'm going to
raise a few objections and demand evidence.
Well, I don't want you to do anything whatever, but I assuredly did not advocate for the position that classes are sets. I didn't advocate any position at all. Once again, I only noted that assertions about sets and classes must be made relative to a reasonably rigorous theoretical background to have any purchase.
Christopher Menzel wrote:
On Jan 18, 2011, at 4:36 PM, Tara Athan wrote:
In mathematical set theory, a
class is a collection of sets but is not itself a set.
That's not quite what the
article says. In Von Neumann-Bernays-Gödel set theory (VNBG) — the
theory on which the entry is based — it is true that all classes are
collections of sets, but the same is true of sets, as every set is a
class. Sets are simply those classes that are members of some other
class. Those classes that are not sets — and, hence, not members of
any class — are known as proper classes.
Note also that whether there is
a set/class distinction depends on the theory. In Zermelo-Fraenkel set
theory, there is no such distinction; everything is a set.
Thanks for the clarification. The reference says a class is a
That's a less than ideal way of putting it, as in VNBG set theory, the word "set" is reserved solely for a type of class.
and I didn't realize that meant "sets plus other
things", although now that you tell me it makes sense.
Well, no, since that suggests that classes are sets (in VNBG) and that is not so in general; rather, it is the other way round. It would therefore be more accurate to say that a set is a "class plus other things" (namely, membership in some further class).
This is how I've always
interpreted "class" as used in OWL, but I can't
speak for other users.
This is not a matter that is open to interpretation (and your
interpretation is incorrect). In the semantics of
Thanks for this link, I think ... that's some pretty heavy going.
It is, unfortunately, a very technical, very compressed document.
what I read leads me to believe that it is open to
That might depend on exactly what "it" is here, but there is certainly no way (correctly) to interpret of the OWL semantics such that OWL classes are collections of sets.
DL, the extension of a OWL class consists of OWL individuals;
in the semantics of OWL Full, there are OWL classes whose extensions
include other OWL classes.
I looked at every occurrence of the word "class" at this link, and I
don't see anywhere that it says that a class is a set, or not a set, or
a collection, or a ....
That's correct. This is not specified in the semantics.
The extension of a class consists of
individuals, fine ... so the extension is a set, but that doesn't make
the class a set.
They do say "the class extension" several times,
suggesting there is only one extension, but only in cases where, if I
understand it correctly, the extension is expected to be unique
No. The extension of every class is given by a function (CEXT). It follows simply by the definition of the notion of a function that every class is assigned a unique extension.
So a class has an extension
in a particular situation, and that
extension is a set, but the extension (of the same class) can be a
different set in a different situation. The class is the collection of
all of its extensions, unified by its definition/description.
The semantics of OWL per se does not accommodate the
idea of a class's extension changing over time, although one could
presumably capture the idea formally by means of a series of
interpretations (thought of as temporally ordered) that assign
different extensions to the same class. (This is possible because
classes are not defined to be identical to their extensions in the
I don't see anything in the OWL semantics that would prohibit multiple
Right, I just mentioned the idea of representing change by means of "a series of interpretations". (Just to sure: I assume that by "interpretation" here you mean the model theoretic 6-tuples defined in the W3C document, not the informal notion of "a way of understanding something").
indexed however one cares to do so, so it seems to me
that it will just happen, or not, as a matter of implementation.
Well, sure, minus any mention of how it might actually come about in practice, that was pretty much exactly what I was suggesting.
Note that it is a recipe for confusion to suppose that the
properties of classes according to some mathematical theory of classes
transfer unproblematically over to OWL (or any other representation
language). If you want to know what a primitive term means according to
a language, the only reliable guide is the model theory of the
But the guide does not specifically say what a class is, other than
"part of the 'OWL universe'", has an extension and a member of the
extension of owl:Class. Do any of these things tell us what a class is
What more do you want to know? Whether a class can be in its own extension? In OWL DL, the answer is no, since only individuals are in class extensions and no classes are individuals. In OWL Full, it is possible. Whether OWL classes are sets? Not as a requirement of the semantics. At most, there are interpretations in which owl:Class is defined to be a set of sets. (I haven't verified this in excruciating detail, but it certainly appears to be the case.) Are classes identical with their extensions? Classes are distinguished from their extensions in the semantics but one can construct interpretations in which they are identical. (In the case of OWL Full in which there can be self-membered classes, this could require the use of a non-well-founded set theory.)
Perhaps you are looking for something deeper, something that reveals more of what classes are really. Granted, the notion of an OWL class is much more meager than the supercharged notion found in VNBG. But OWL's notion is all we need for OWL to do the work it is designed to do.
And they are careful to say things like
extension of all datatypes must be subsets of LVI"
so only extensions are referred to as subsets. It suggests to me that a
class is something other than a set.
As noted, it is not a part of the OWL semantics that OWL classes are sets.
And a logical place to look for
what a class actually is, would be in a mathematical theory that
introduces the term, and is relevant to the issue. ZF doesn't need the
term class, so another set theory that does use the term "class" seems
But it isn't. The universe of classes according to a theory like VNBG is vastly larger and more complex than anything needed for OWL's purposes. Moreover, adding such a theory (and indeed, much weaker class theories) to OWL DL would render it undecidable. Again, OWL simply provides as much of a notion of class as is needed for its purposes.
Are there other theories that use the term class in a
Well, there are theories that are very different from VNBG that don't explicitly use the term "class" that are nonetheless typically considered to be class theories (for reasons that aren't worth spelling out here), notably W.V. Quine's theories NF and ML. (For that matter, VNBG as it is usually axiomatized doesn't use the term "class" either.)
Of course, this assumes that you are dealing with a language
that, like OWL or any Common Logic dialect, is sufficiently
well-defined that it has a model theory.
And in model theory, don't we hear over and over again that only the
extension is a set, there are multiple interpretations Or have I been
reading the wrong references?
I don't understand the question.
If it doesn't, or if it does but it is simply ignored, then the
"semantics" for the language consists of little more than a welter of
subjective preferences and vague intuitions.
This is what we must resort to when things are not precisely defined,
but I hope we can communicate about them so that misunderstandings, or
reasonable differences in interpretations, can get sorted out.
If that's what you need to do, then it is not a useful language relative the goals of the Semantic Web.
Just to note, this discussion might be approaching (indeed, might have gone past) the point where it is no longer of sufficiently general interest to warrant its continuation online. (Sorry if that looks like an attempt to get the last word; it isn't.)