Today I listened to the workshop "Democratize the Knowledge Graph and Concrete Tooling Requirements" by Adam Keresztes at the 2023 Knowledge Graph Conference in NYC.
Different people there emphasized the difficulty of explaining the difference between classes and instances to non-ontologists.
Which had me reflecting on how I work with this terminology, and I found that I tend to use 'set' instead of 'class'.
In my experience, 'class' is a very ambiguous concept for most people. Some have experience with class-based programming and thinks "I know what classes are", but OO classes have not much in common with OWL classes.
OWL classes are nothing more than sets: an agglomeration of unique things. No more, no less. And I can illustrate set theory, i.e. union and intersection of sets easily graphically, thereby explaining the OWL unionOf and intersectionOf simply and graphically in a way everyone can understand.
So I can draw "bubbles" for gist:requirement and gist:restriction and then draw a bubble exactly around both to explain the gist:commitment, which is gist:restriction and gist:requirement or the unionOf both.
It''s as simple as it gets, in my experience everyone will understand it and there is no more magic "class" left, just instances and a grouping of these, sets of instances, called classes. But they are not more than sets of instances, just a bucket of all unique instances this 'class' describes.
Deciding between classes and instances
I can also illustrate some border cases easily with sets.
Let's say we want to model endangered species. Do we model e.g. the bald eagle as class or instance?
Using sets, it's easy for most to see that we cannot say "the set of bald eagles is an endangered specie" since that set is no 'thing' but a set. So we need to model endangered specie as an instance if we want to state this kind of fact.
If, on the other hand, we want to say things about individual bald eagles, e.g. count them, track their location or whatever, then we need the individual eagle as instance and immediat4ely we need aa class bald eagle to talk about all individual bald eagles.
This is a problematic modelling task in OWL, and we have to decide for one or the other, or we have to flee into constructs where we have an instance "bald eagles species" and a class "bald eagle" and need to relate both somehow (lot's of fun with that)
I do use 'class'
That's why I love such conferences, I start to reflect on my own behavior. I never thought about this consciously, and I think that I die use 'class' more often than I should have.
OTOH, because 'class' is just in the spec and in so many other places I will still need to use it in many discussion. Having the 'set' concept in the back of my mind will still enable me to more easily detect misinterpretation in my and others contributions and to more easily explain and hopefully correct them.