O3L: An OWL object-oriented library for the realization of ontology based applications