Thursday, August 16, 2007

Mandatory and Essential

Last night when I logged onto yahoo messenger, I saw this message as one of my friends status message "What is the difference between Mandatory and Essential". At first I thought what's big deal? Are they different? Are they not same? At one point I went to an extreme thinking that his Phd course has taken its toll and he is about to get into second phase of PhD degree where one becomes grumpy, tired and insane :) But the more I started to think on this the more it became evident that Mandatory and Essential are NOT the same thing. They are two very-very different words when it comes to their real meaning.

I remember doing a post earlier this year on Atomicity and Knowledge Representation, I discussed about Mandatory, Additional and Optional Attributes of an object. While I am not going to go deep into philosophical aspect of it, I would rather stay in context of Software Engineering and Semantic Web.

Mandatory Attributes signifies the bare minimum required for existence. It is the basic definition of any thing(object) in this world. In reference to my earlier post on Atomicity it is the Mandatory Attributes of an object. The bare minimum requirement for any object which exists in any space is Type and a unique attribute (most of the time it is Name) which distinguishes the object from others of its kind in the same space or for any other space where the object is likely to be found.

Essential attributes of an entity (object) is the must have attributes for an object in any context or where it has to be used or play an important role. More often than not it is also the mandatory attribute of the object. Referring back to the post I did earlier this year, I see Essential Attributes are nothing else but the Additional Attributes of an object which is required for an object to participate in certain activity or to be used in a context.

In context of Knowledge Representation we can always rely on Mandatory Attributes to be present where Essential Attributes are (due to their contextual nature) guaranteed to be available only if we are considering object in a given context.

Would love to hear your thoughts on this as what you think the Mandatory and Additional attributes are. Whether you see them being same or different, if yes then why?

Until Next Time... :)