A system allows a user to annotate documents by connecting any type of information in the document to concepts (25) and/or processes (30) making up a semantic ontology (18). The annotated information can be stored and accessed later to facilitate creation of new documents of a similar type. The system can use the information from the ontologies (18) to automatically generate new documents by knowing what type of information to include and how to get the information. The system also allows users to create and edit ontologies (18). The system is user friendly in that it can be integrated with existing software applications with which users already are familiar.