enter image description here US Patent Application US20120226658: Data model versioning for document databases

Claim #1 describes an extremely simple versioning system for a document database:

  1. A method, comprising:

reading, by a processing device, a first version tag, the first version tag associated with a document database;

comparing the first version tag to a second version tag, the second version tag associated with a current document template of an application; and

if the first version tag does not match the second version tag, performing a version migration operation to update a document format of the document database.

If I am reading this correctly, it's attempting to patent a system in which one revision number is compared to the previous revision number, and if it's different do an upgrade.

Claims 8 and 15 go on to describe a "processing system" and a "machine-readable storage medium" without adding any specific details.

Surely there must be prior art for this?

  • Found this via freshpatents.com Sep 18, 2012 at 15:30
  • 1
    It's more than your rewording attempt: the version number is the version of the template, and the system updates the document to the new template version if necessary. Still something I'm sure I've used before, and that probably existed before I was born. Sep 18, 2012 at 17:15
  • Note: Final rejection mailed for this patent on 11-27-2012. Dec 18, 2012 at 19:15
  • The final rejection was based on "COMPARING AND MERGING STRUCTURED DOCUMENTS SYNTACTICALLY AND SEMANTICALLY Yu Yuan et al" google.com/patents/US20100088676 so anything not as close or detailed as that does not add much.
    – George White
    Mar 29, 2013 at 21:26

3 Answers 3


The VMS operating system - first released in 1977 - tagged each file with a version number.

Here is a script written in 1992 called COPY_IF_NEWER which does what the patent claims, using the creation date of the file as the "version tag".

The COPY command of VMS did this automatically and by default.


Microsoft Word for example, will notice that you have loaded a document using and old data format and will update that to a newer data format for you. That data format is presumably described by a format template.

The following description from the patent just isn't a true description of what numerous other applications do:

However, these applications may use a highly structured, code-defined data model for storing data (such as metadata pertaining to the software repositories). This data model may be embodied in a template used to format the data. In addition, the data model (and templates) may change over time, such as in new releases of the application. Since the document database is freely structured and schema-free, the database may contain documents having fields that do not match the data model currently used by the management application. Current systems do not include the ability to verify that that version of the data model used by the application matches the data model used in the document database. If the application attempts to read a document in the document database having a different data model than is expected, it may result in the incorrect data being read or other errors.


Python's axiom library allows migrations between different schema versions and will allow multiple different schemas to co-exist prior to upgrade.



Axiom applications can keep running while they’re being upgraded from one schema to another (with a partial dataset available). Upgrades are handled automatically, and the code for upgrading can be kept separate from your application code. You can even write upgraders which involve complex relationships between multiple rows.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .