At what point do you stop searching for an Ontology/Vocabulary and start developing your own?

I am mainly working on representing biological data in RDF. So far I have only worked with existing vocabularies. Sometimes I fail in finding a proper one (See this question). Given the large number of existing resources, this could be because of poor searching (ie. incorrect keywords in bioportal). This made me wonder at what point you stop searching and start making your own?

This is a really awesome question and one I ask myself on many occasion. If you take a look at how others approach this, it seems some are content to plough on without even considering other vocabularies and ontologies (Facebook graph used it's own vocabularies where something like FOAF would have sufficed / aside from GoodRelations, create new terms for things that already existed). Also, on many occasions I also find myself toying with the idea of using fairly arbitrary terms in an upper ontology (or something like Dublin Core) to describe data in a very generic way, when really I should be creating a middle or lower ontology and publishing it. Sometimes also you can find 95% of the terms in one and then resort to using more generalised ones in other, when what you should be doing is extending the former. However publishing extension ontologies can feel like an overkill if you can use slightly more generic terms there and then (that might be more familiar to others). In conclusion my advice would be to always document and publish new terms when you can't find more specific one there and then and then find ways of aligning or faceting at a later date if you discover them elsewhere.

I don't spend a lot of time looking for ontologies, unless those ontologies are populated with large amounts of A-Box data.

On some level, a crummy ontology with 20,000,000 instance populated in it is worth a lot more than something well designed with no instance data. If you've got a lot of data you can often do data mining to make the discriminations that matter to you and populate your own classes and properties.

The quality of an ontology is highly dependent on what you're doing with the ontology. If you've got a bad data model, you've got a "broken window" which can keep the accuracy of your system below a useful level no matter what you do at the instance level. You can write papers about a system with an 80% accurate data model for a lifetime, but you'll never get a system that is commercially useful.

Another issue is that the quality of many published ontologies is poor.

Dublin Core is the poster child for this. The people who made Dublin Core sling around MARC records for a living, but rather than giving us a system that's a technological advance, they built a system that's suitable (at best) for an elementary school library that doesn't touch what MARC was able to do in 1969. Unfortunately Dublin Core still has credibility, so the mailing list gets a steady stream of people asking questions who never get any help because Dublin Core has been abandonware for about a decade.

To step back I think it is useful to re-use certain broadly useful properties, such as those defined in FOAF, but overall I'm disappointed with the quality of published RDF ontologies.

To build on what William wrote, if you find something in an existing vocabulary like Dublin Core that roughly meets your needs but is a little too vague, and you decide to define your own properties, it's a good idea to define them as subproperties of the more general, well-known ones to give people and applications some context about the role that your properties play.

If you invest enough effort in a competent vocabulary search and do not find what you are looking for, then the chances of other parties having similar problems, and thus the chances of there being any form of agreement on that vocabulary, and thus the whole point of re-using vocabularies, becomes undermined.

In other words, if a vocabulary is so obscure so as to be that difficult to find, re-using it is not that important.

On the flip side, if you do create a vocabulary, do your best to publicise it.

( any case, good search engines for vocabularies are becoming increasingly important.)