Wednesday, May 26, 2010

Language and the Mind Revisited - The Rest of the World

Influential linguist and political Activist Noam Chomsky discusses the properties, design and theories of language in this Hitchcock lecture presented at UC Berkeley. Series: "UC Berkeley Graduate Council Lectures" [7/2003] 

Monday, May 24, 2010

This paper is to clarify ontologies in knowledge base compare with object models in object oriented software engineering

Ontologies and Object models in Object Oriented Software Engineering

OOPS and Ontology...

While moving on to C++ programming and thereby OOPS concepts in my latest learning programming spree, just want to make some humble observations. I am not sure to what extent these are valid or correct observations, let me just share it... I feel there is a striking similarity between OOPS and Ontology. At conceptual level, both have shared basic foundation. Like in both OOPS and Ontology, classes and objects play an imporatnt role. Class in OOPS can be defined as organization of data and functions which operate on it and Objects are consisted of combination of data members and member functions. So class is a collection of similar objects containing a set of shared characteristics. A class is simply a template for holding objects, class is abstract while objects are real. Objects are instances of classes, each with a unique identity. Similarly in Ontology too Class is the concept of the domain which are in a hiearchical relationship (sub class & superclass) and every class has its instance or indiviual like objects in OOPS. OOPS Objects only speak to each other by method or function calls. They never directly access each other’s attributes. In Ontology, instances of a class is related to each other via SLOTS (i.e, properties) and FACETS (constraints) on the properties.


Then look at the other concepts of OOPS: for example, Inheritance. Inheritance is implied by (some, but not all) is-a or is-a-kind-of relationships, a process by which objects of one class acquire the properties of objects of another class. Inheritance is a way of describing a class by saying how it differs from another class. Exactly the same thing is happening in Ontology. A subclass inherits all the slots from the superclass. If a wine has a name and flavor, a red wine also has a name and flavor. If a class has multiple superclasses, it inherits slots from all of them. Port is both a dessert wine and a red wine. It inherits “sugar content: high” from the former and “color:red” from the latter.


OOPS in a nutshell (Look at a domain and identify the objects and classes)
  • Objects are often the first to be identified
  • Classes are found by grouping objects
  • Identify the relationships between the objects and between the classes (Structural relationships & Collaborative relationships)
  • Assign responsibilities based on collaborative relationships
  • Iterate, iterate, iterate, iterate, iterate, iterate, iterate, iterate, iterate....
  • Begin by modeling the domain, not the solution!
Ontology in a nutshell
  • Defining concepts in the domain (classes)
  • Arranging the concepts in a hierarchy (subclass-superclass hierarchy)
  • Defining which attributes and properties (slots) classes can have 
  • Constraints on properties and attributes
  • Defining individuals and filling in slot values

Thursday, May 13, 2010

In the whirlpool of liberalism or the lack of it, how free are you personally????