At work, during preperation of a conference paper related to semantic web, i luckily had a chance to use protege for ontology development.. Protege (http://protege.stanford.edu/) is an ontology editor and knowledge acquisition system. In this series of posts, i write down my experience of using protege as an ontology editor..
The paper at http://protege.stanford.edu/publications/ontology_development/ontology101.html proposes a methodology for developing an ontology. According to that paper, the domain and scope of the ontology should be defined properly before the design phase. After that, ontologies that have been developed so far in that domain should be checked. Using previous ontologies provides compatibility with applications using that ontology. Then the next step is writing down all the terms you can think of related to the concerned domain. Those terms are than examined and determined if they are classes or not. The terms that are decided to be classes are organized in a hierarchy with one of top-down, bottom-up approaches or a combination of them. Then, the slots are determined by using the generated class hierarchy and previously written and marked as not-class terms. The slots have domains and ranges and facets(restriction) can be defined on them. Afterwards, instances are created and the knowledge base is so close to be complete. However, ontology development is an iterative work and some of these steps should be carried out over and over in order to catch the balance: the developed ontology should be neither too generic nor too specific.
I will continue with new posts focusing on more specific issues and usage of protege.