3

I am working on a web site that has products information. Products, let's say consumer electronics, are represented by classes which describe different properties or groups of properties. Some classes can be same as categories, e.g. "smartphones".

Now let's say we have "Samsung Galaxy S II" as one of the items under "smartphones" class. This item, although it exists in physical world, is still abstract to our users - they can't touch it, they don't own it. It exists somewhere in a store or a warehouse. And it really doesn't matter that it exists at all unless it exists in user's posession. So, "Samsung Galaxy S II" is a representation of real actual physical Galaxies II.

And finally there's Jill, a user, and she owns a "Samsung Galaxy S II". I want to represent her Galaxy II as an object inheriting attributes of the class "Samsung Galaxy S II" and from another class, which has attributes that make this an actual thing that exists somewhere and may be in someone's possession.

All attributes I can think of are these:

  • Geolocation (the thing has specific coordinates)
  • Condition (in most cases, once the thing has been purchased, it's become used)
  • Posessor (although products in a warehouse or on Amazon.com also technically have an owner, this is not something we people have intuition about - to us they are still abstract products)

I also considered the following attributes:

  • Existence - but that's incorrect as once manufactured, products exist somewhere
  • Related events - but even non-existing things can have related events

Any help would be appreciated.

6
  • 1
    Can you tell us a bit more about the specifically philosophical concern here? (Why is this not a webapps.SE or programmers.SE question?) Telling us a little more about what sort of explanation you might be expecting could help clarify this point
    – Joseph Weissman
    Commented Jun 30, 2012 at 17:29
  • Because this has to do more with ontology thus philosophy than with programming. In fact, it has nothing to do with programming at all.
    – mvbl fst
    Commented Jun 30, 2012 at 21:14
  • 1
    @mvblfst: It is typically considered bad practice to remove a question with an upvoted answer. I encourage you to edit your question so that it's clearer what you're after. Commented Jul 1, 2012 at 7:03
  • 1
    This question is completely fine. It's not about a specific author or paper in the history of philosophy per se, but it's clearly related to a philosophical topic (ontology/classification), even if it's not 100% on mark, and the question is given ample context. This makes it a good subjective question that deserves an honest answer. I will try to provide one before the day is out, but I'm a bit busy. This wikipedia article is a good start though: https://en.wikipedia.org/wiki/Category_of_being#Categories_of_being
    – stoicfury
    Commented Jul 1, 2012 at 19:22
  • There is a lot I don't understand above. For one - why should Smartphone not be a category in the Aristotle sense?
    – user5447
    Commented Feb 8, 2014 at 19:31

3 Answers 3

8

Any help would be appreciated.

I have some help for you, but it's probably not the help you are looking for.

My advice is this: stop thinking of your problem as a philosophical one. It has nothing at all to do with ontology or metaphysics-- it is a problem of applied computer programming. The fact that certain groups within CS have adopted the terminology of a philosophical tradition is unfortunate, because it leads to confusions of this type.

Objects in an object-oriented system are just containers for behaviors (methods) and system state (properties). They have very little to do with ontology. and reading Heidegger or Husserl isn't going to help.

Take your problem to StackOverflow, and describe the actual problem in detail-- not the abstractions, but the concrete problem you are trying to solve. I'm sure they will be able to help you out.

I tell you this as one who has both an academic background in philosophy and more than 20 years of professional experience in software development.

EDIT: As the questioner has complained that I have not properly engaged with the philosophical content of the question, I will attempt here to recast the question in a philosophical light, and answer in that form. I apologize in advance for the length of this.

Products, let's say consumer electronics, are represented by classes which describe different properties or groups of properties. Some classes can be same as categories, e.g. "smartphones".

Already, we are in a bit of trouble here. "Category" is a philosophical term, dating back to Aristotle, and "smartphone" is not a category in this sense. "Class" used in this manner is not; it is a software engineering term. Since we are speaking of groups of properties, let us propose "entity" as a philosophical replacement.

Now let's say we have "Samsung Galaxy S II" as one of the items under "smartphones" class. This item, although it exists in physical world, is still abstract to our users - they can't touch it, they don't own it.

This is a mistake. The fact that the item is outside of the reach of our users does not make it abstract. The Eiffel Tower is real, even though I cannot (at present) lay my hands on it.

It exists somewhere in a store or a warehouse. And it really doesn't matter that it exists at all unless it exists in user's posession.

Again, this is a mistake from a philosophical perspective. Whether or not an item exists matters. Whether or not a particular individual can touch it, by and large, doesn't.

So, "Samsung Galaxy S II" is a representation of real actual physical Galaxies II.

It is not clear what you are after here. Are you pointing out the commonplace notion that the words "Samsung Galaxy S II" represent an actual Samsung Galaxy S II?

And finally there's Jill, a user, and she owns a "Samsung Galaxy S II".

OK, now I'm confused. A minute ago we said that the phrase "Samsung Galaxy S II" was just a representation of an actual Samsung Galaxy S II. does she own a Samsung Galaxy S II, or a "Samsung Galaxy S II"?

I want to represent her Galaxy II as an object inheriting attributes of the class "Samsung Galaxy S II" and from another class, which has attributes that make this an actual thing that exists somewhere and may be in someone's possession.

This is purely a software engineering concept. We don't speak of object inheritance in this manner in the philosophical context. We can say that Jill's Samsung Galaxy S II partakes of the Platonic Ideal of a Samsung Galaxy S II, and thus has certain essential qualities that constitute its Samsung Galaxy S II-ness; and we can also stipulate that it has certain accidental qualities, such as a serial number, that are purely aleatory or contingent, and are thus time-dependent. Is that what you are after?

All attributes I can think of are these:

Geolocation (the thing has specific coordinates)

From a philosophical perspective, we would say "Location"-- but yes, every physical object exists at a particular location at a particular point in time.

Condition (in most cases, once the thing has been purchased, it's become used) We can certainly stipulate such a quality, of "degree-of-usedness" which changes over time.

Posessor (although products in a warehouse or on Amazon.com also technically have an owner, this is not something we people have intuition about - to us they are still abstract products)

They are not abstract products, as we have seen; they are actual. We can definitely stipulate a "posessor", and talk about which person (or corporate entity) "possesses" the phone at any point in time.

I also considered the following attributes:

Existence - but that's incorrect as once manufactured, products exist somewhere

Most philosophers will tell you that existence is not a property, but there are large bodies of philosophical debate on this point. In any event, as you point out, it is not useful here as we are only dealing with phones that actually exist.

Related events - but even non-existing things can have related events

I can't even begin to fathom what this would mean. How can a non-existing thing partake of an event? And how are we to conceptualize an event as a quality?

Any help would be appreciated.

And here's the crux of the problem: we still don't know, from a philosophical perspective, what you are trying to do? I mean, it's clear from a software engineering perspective what you are after, but in philosophical terms, your project is not clear. Are you attempting to catalog all of the accidental and contingent properties that could possibly be applied to a Samsung Galaxy S II (or a "Samsung Galaxy S II")?

If so, I'd suggest you take a look at the famous description of Borges's Chinese Encyclopedia, and see if you can figure out the problem you face.

To summarize: your problem is a practical one, not a philosophical one. Ontology is not of any help to you.

12
  • 2
    Plus, my question is directly related to issues of ontology and semantics, and your answer clearly not.
    – mvbl fst
    Commented Jul 1, 2012 at 2:38
  • 1
    @mvblfst: If you hadn't mentioned this was for a web site, I still would have been able to guess, because you are using the language of software development, and not the language of ontology. Your question is not in philosophical terms, and as it stands, is not a philosophical one. We can try to translate it into one, but I'm not sure the answer will prove useful for you. You think the issue is related to ontology and semantics, but it really doesn't appear to be, at all. Commented Jul 1, 2012 at 10:25
  • 1
    I mentioned it to give a context to where it will be used but this is irrelevant to a question. I may not be well versed in ontology language (in fact, I would not use it on purpose as this has nothing to do with ontology syntax as well). No need to translate anything into any specific language, that's also the reason why I post it here. I do not expect an answer in OWL or RDF. I expect a general, language independent answer.
    – mvbl fst
    Commented Jul 1, 2012 at 17:13
  • 2
    "Ontology" is a philosophical discipline; software engineering has borrowed the term for things like OWL and RDF. You can find a general, language independent answer to your problem at StackOverflow; here, we could speak about the philosophical aspects of the question, if there were any-- but there don't seem to be any. Commented Jul 1, 2012 at 18:41
  • 1
    @mvblfst who's ignoring you? I see people asking you to clarify your question, and in particular, to describe what you see as the philosophical concern you'd like someone from this community to provide an explanation about for you.
    – Joseph Weissman
    Commented Jul 3, 2012 at 1:45
0

I do not agree with you that a product is abstract when in stock - most people may not care about it, but e.g. its location and possessor certainly are far from being incomprehensible. The scenario you describe would, however, arise when the products being sold have not yet been produced. In that case, one would first describe a future object, which only begins to exist at a later point in time. The future object can, by definition, only describe our knowledge of the future object and not its actual properties and will therefore not be entirely describable, which leads to the problem you are facing.

To answer your initial question in a general fashion: a category (or class, in software development terms) is simply a set of properties that belongs to all of its instances (i.e. in common use — some philosophers may define it differently within their theories). In no way does this mean that its instances need to be or represent actual objects or even be conceivable by humans.

That said, how to solve the problem of describing physically nonexistent and existent objects is entirely up to you. Defining one category for the kind of the product and another one for physically existent/nonexistent objects is certainly one way. You will, however, also have to take into account the design and performance limitations of your development environment — factors that will probably matter more to you in practice than philosophical concerns.

1
  • You're making a good point about not yet produced product, and I thought about it as well, and the idea is that you want to completely abstract from whether product exists somewhere or does not exist yet, as long as it is not in user's possession. That's why I decided to describe such product as a product which ownership has been transferred to the end user (without regard to how it was transferred, e.g. via act of sale or gift etc, and to where that user is first in the chain of possible end users, or not).
    – mvbl fst
    Commented Jul 3, 2012 at 1:24
-1

Going by the title in your question, I suspect that the entity whose ontological state is under question is Samsung Galaxy S II (hereafter SGSII). I suspect that what you're asking is whether SGSII is a class/category or an instance. The confusion is not baseless since, on one hand, this thing, whatever its kind, seems to be acting like a category since there are (or may be) entities which can be said to belong to this class (Jill's SGSII in particular). On the other hand that very sort of, type-instance relationship seems to apply to the smartphone/SGSII tuple as well. In other words, one could say that SGSII is an instance of a smartphone. Or no? That rings false; and that should be a hint that SGSII isn't really an instance of a smartphone but rather another category of smartphones which happens to be a subcategory of that other category, Smartphones.

Think about it this way. We define the category Smartphones to contain all things which are smartphone-like according to some collection of properties which define what it means to be a smartphone (touchscreen, internet access and so forth). Now along comes the entity SGSII. We look it up and down and ask ourselves: Is this a smartphone? It's clearly not a smartphone since it, as an abstract entity, has none of the qualities by which we defined our category Smartphones. So SGSII is not an instance of Smartphones. In fact, the way in which other things can be said to be instances of it is reminiscent of the category Smartphones itself–We can say "X is a an instance of SGSII" the same way we can say "X is an instance of smartphone." And so, SGSII, too, is a category.

Note that it shouldn't bother us one bit that one category can contain another as a subcategory. The category of Living Things includes the category of Birds, which includes the category of Parrots, which has as an instance Flaubert's Parrot (whether real or fictional).

Ok, fine, but can't it be said, isn't it the case, kinda, sorta in some vague gut instinct type of way, that the category of SGSII is an instance of something the same way that Jill's phone is an instance of SGSII? Sure. SGSII, as a category, is an instance of the category of categories of smarphones. Notice, however, that this places SGSII on the same footing as the category Smartphones itself, since the category Smartphones, too, is a mere instance in this higher-order category.

It might help if you think of categories as sets of like things–the set of all Smartphones, the set of all SGSII phones, etc. Since SGSII is a set, and Smartphones is the set of all smartphones, then Smartphones doesn't contain SGSII as a member (the set of smartphones contains smartphones, damn it, not sets of smartphones). True, SGSII is a subset of Smartphones, but the subset relation is one between two sets, whereas the set membership relation is between a set and a non-set entity. Not always, I guess, but this was all very hand-wavy from the get-go, so don't take this reasoning too far (sets of all sets, etc). Anyway, I hope this helped.

n.b.: this contribution made by a fellow novice.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .