1. A computer-implemented method of annotating software objects, comprising: providing a software object, wherein the software object is an instance of a class in an object-oriented computing environment, and wherein the software object is generated by a software component executed by an application server; determining a plurality of rules based on the class, wherein the plurality of rules define how to annotate the software object; processing, by an annotation engine component executed by the application server, the software object according to the plurality of rules; generating, by the annotation engine component, an annotation document based on the software object having been processed according to the plurality of rules; and generating, by an application programming interface component executed by the application server, an annotated software object based on the software object and the annotation document, wherein the annotated software object corresponds to the software object as annotated by the annotation document; wherein the annotation engine component is configured to process the software object in a non-intrusive manner with regard to the software component such that the software component is not modified; and wherein the plurality of rules define how to create the annotation document, wherein the plurality of rules includes a plurality of categories and a plurality of relations, and wherein the plurality of categories and the plurality of relations relate to a domain ontology.