A computer-implemented method of locating information in a database of electronic documents, the method comprising: defining fragments of the documents; associating the fragments with the document from which the fragments originated; associating metadata with the fragments, wherein the metadata associated with a fragment includes metadata related to one or more topics of the fragment; storing the associated metadata in a virtual document, wherein the virtual document is an XML document comprising metadata of the fragments and a reference pointer to the related document that is located in the database and wherein the virtual document is stored in a virtual document database; receiving a query for one or more documents containing information about a topic; and locating a document from the database based on a comparison of the query with the metadata associated with a fragment of the document stored in the virtual document; wherein defining fragments of the documents comprises: - monitoring a usage value of all virtual documents stored in the virtual document database; - identifying a virtual document to be updated, wherein the virtual document to be updated is identified upon determining that the virtual document has a low usage value to the user; - updating the fragments into which the document represented by the virtual document is divided by generating fragments of the document represented by the virtual document anew using a different algorithm than used previously. defining fragments of the documents; associating the fragments with the document from which the fragments originated; associating metadata with the fragments, wherein the metadata associated with a fragment includes metadata related to one or more topics of the fragment; storing the associated metadata in a virtual document, wherein the virtual document is an XML document comprising metadata of the fragments and a reference pointer to the related document that is located in the database and wherein the virtual document is stored in a virtual document database; receiving a query for one or more documents containing information about a topic; and locating a document from the database based on a comparison of the query with the metadata associated with a fragment of the document stored in the virtual document; wherein defining fragments of the documents comprises: - monitoring a usage value of all virtual documents stored in the virtual document database; - identifying a virtual document to be updated, wherein the virtual document to be updated is identified upon determining that the virtual document has a low usage value to the user; - updating the fragments into which the document represented by the virtual document is divided by generating fragments of the document represented by the virtual document anew using a different algorithm than used previously. - monitoring a usage value of all virtual documents stored in the virtual document database; - identifying a virtual document to be updated, wherein the virtual document to be updated is identified upon determining that the virtual document has a low usage value to the user; - updating the fragments into which the document represented by the virtual document is divided by generating fragments of the document represented by the virtual document anew using a different algorithm than used previously.