|
Hi, There is a question I have been asking myself since I first got confronted with ontology modeling. My first attempt to learn OWL was through the famous Pizza tutorial and it occurred to me that there was a clear difference between the two concepts PizzaTopping and MozarellaTopping, the first one still being very generic and abstract, and the second one not so much. If I had to model this situation, I would have naturally used a class for PizzaTopping and an individual for MozarellaTopping (with a type PizzaTopping)... and yet they are both classes in the tutorial. Why ? I understand why this is correct (or valid) to do it that way, but I can't find a reason why it would be a good way of doing it. Is there any good practices that apply to most cases ? [edit] I replaced CheeseTopping by MozarellaTopping to clarify the example. |
|
Why might A better example might be the book "The Road" which we'll call ...well, not necessarily. If you were in a library (or a bookstore, etc.), you might have several copies of Conversely, if you were making an ontology for a book review site, you're indifferent to that level of granularity. Any copy of the "The Road" is the same, so you can call In other words, as per the other answers, the choice between class and individual is often contextual, and application-dependent. I was about to answer exactly the first part of your answer... Yes, excellent, concise, example. Thanks! I didn't see it that way (obviously) @Signified and @Antoine, this site should really have auto update! :-) |
|
To some degree it is just common sense where you make the distinction and where you make the distinction may vary depending on your domain. Typically if something can encompass multiple individuals with different characteristics it should be a class but YMMV In terms of your specific example cheese is still a very generic term - if I go to the supermarket to buy cheese there are hundreds of varieties to choose form (less so if you live in the US where it is all plastic and orange ;-) ) and each variety has very different characteristics in terms of color, taste, smell etc. Equally if I order pizza I can often choose pizzas with a variety of different cheeses used as toppings. So CheeseTopping IMO is most definitely a class because it encompasses a wide variety of things, whereas something like MozzarellaTopping would be an individual since it is specific enough to refer to just one thing I really didn't choose the best example... but I guess my point still stands since MozzarellaTopping is also a class in the tutorial :) You're answer confirms what I was thinking: it's a matter of common sense... Yep, @Signified kinda covers the reasons why MozzarellaTopping should also be a class |


What about BuffaloMozarellaTopping?