Linux Foundation Wiki

project collaboration site

User Tools

Site Tools


osapa:example_prior_art_search

<< back

Copyright (c) 2006 Jan O. Kechel
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free
Documentation License, Version 1.2 or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A link to the license is included at the end of this document.

Here we try to verify our HowTo by using it ourself on real patent-applications.

Contents

Example Prior Art search for Patent WO2004097666

  • Title
  • METHOD FOR ADAPTING A DATABASE DISPLAYED ON A CLIENT DATA PROCESSING UNIT TO A SOURCE DATABASE STORED ON A SERVER DATA PROCESSING UNIT
  • Applicant
  • SIEMENS AG (DE)

Abstract

Abstract of WO2004097666

Disclosed is a method for adapting a database provided on a client data processing unit to a source database stored on a server data processing unit. In order to further develop said method in such a way that only comparatively small amounts of data have to be transmitted, the following steps are carried out: - a comparative characteristic value (KV) indicating the time status of the momentary database of the client data processing unit (6a) is transmitted from the client data processing unit (6a) to the server data processing unit (4); - a part of the source database of the server data processing unit (4), which has a more recent time status than the time status of the momentary database of the client data processing unit (6a) indicated by the comparative characteristic value (KV), is determined; - the determined part of the source database is transmitted to the client data processing unit (6a); the part of the source database, which has been transmitted from the server data processing unit (4), is received in the database of the client data processing unit (6a) so as to form an updated database of the client data processing unit (6a).

Basic Steps

Identify the Patent Priority Date

Priority date for this patent is 25-APR-2003

Try to Understand the Patent (find the nut of the invention)

Replace Unnecessary Complex Terms

Disclosed is a method for adapting a database provided on a client to a source database stored on a server. In order to further develop said method in such a way that only comparatively small amounts of data have to be transmitted, the following steps are carried out: - a value (KV) indicating the time status of the momentary database of the client is transmitted from the client to the server; - a part of the source database of the server, which has a more recent time status than the time status of the momentary database of the client indicated by the value (KV), is determined; - the determined part of the source database is transmitted to the client; the part of the source database, which has been transmitted from the server, is received in the database of the client so as to form an updated database of the client.

  • I replaced 'client data processing unit' with 'client' and 'server data processing unit' with 'server'
  • I also removed the references to the (useless) diagram included in this invention

Remove Descriptions That do not Describe the Invention Itself

Method for adapting a database provided on a client to a source database stored on a server. - a value (KV) indicating the time status of the momentary database of the client is transmitted from the client to the server; - a part of the source database of the server, which has a more recent time status than the time status of the momentary database of the client indicated by the value (KV), is determined; - the determined part of the source database is transmitted to the client; the part of the source database, which has been transmitted from the server, is received in the database of the client so as to form an updated database of the client.

  • In order to further develop said method in such a way that only comparatively small amounts of data have to be transmitted, the following steps are carried out:
  • this is just a description of what the invention is intended do, but not part of the invention itself, so I removed it.

Structure

Method for adapting a database provided on a client to a source database stored on a server.

  1. a value (KV) indicating the time status of the momentary database of the client is transmitted from the client to the server;
  2. a part of the source database of the server, which has a more recent time status than the time status of the momentary database of the client indicated by the value (KV), is determined;
  3. the determined part of the source database is transmitted to the client;
  4. the part of the source database, which has been transmitted from the server, is received in the database of the client so as to form an updated database of the client.

Pseudo-Code

Method for adapting a database provided on a client to a source database stored on a server.

  1. KV = timestamp(client_database) must be done on the client - part = identify_newer_parts(KV, server_database) must be done on the server
  2. send_to_client(part) client ↔ server - update_client_database(part) must be done on the client

Summarize With Own Words (the point of novelty)

This invention compares server data to client data using timestamps and updates the client data with any newer data from the server.

Try to find out which kinds of systems might use similar methods

ftp-clients, http-clients, gopher-clients, ways-clients, mail-clients, irc-clients, version control systems, instant-messengers, but also each application that can just copy files in combination with network-filesystems and also systems that can open files from network-drives or backup-systems

Create a List With All Programs/Projects That Might Use Similar Methods

Actually I just try to find categories of software here. I'll select specific projects later.

  • ftp-clients
  • http-clients
  • gopher-clients
  • ways-clients
  • mail-clients
  • irc-clients
  • version control systems
  • instant-messengers
  • icq, aim and msn and many many more
  • applications that can just copy files in combination with network-filesystems
  • MS-Explorer, cp, copy, mv, move, xcopy and many many more
  • programs that can open files from network-drives and save those on a local drive
  • cat, Gimp, Word, OpenOffice, type and many many more
  • backup programs
  • mirror software

Select Those That You Expect to Fit Best

To rate my expectation of a successful Prior Art I use marks from 1 (very good chance) to 10 (no chance). I made heavy use of Google and Wikipedia (searching for 'ftp client list' etc.)

  • ways-clients
  • - chance 9
  • I'm actually not even sure what those did, I just remembered em from the old days (well I'm only 26 yet ;-)
  • instant-messengers
  • - chance 5 ( same as on irc-clients)
  • icq, aim and msn and many many more
  • applications that can just copy files in combination with network-filesystems
  • - chance 2 (i know that e.g. xcopy can use archive-bits, probably some of them can use timestamps)
  • MS-Explorer, cp, copy, mv, move, xcopy and many many more
  • programs that can open files from network-drives and save those on a local drive
  • - chance 5 ( some of those warn you if you overwrite a file, maybe do some check if the file is newer ..)
  • cat, Gimp, Word, OpenOffice, type and many many more
  • backup programs
  • - chance 3 (most will be able to do backups newer than some date, but i don't know any backup-program that does backups from one computer to another but i'm sure there are some)
  • installation software
  • - chance 3 ( I know that many say 'This system already has a newer DLL, do you want to overwrite?)
  • Many Microsoft Windows Installation Routines, I'm sure many did it even back on Win 3.1

Determine in a first step from which date those (best rated) programs are

ftp-clients - chance 1

http://de.wikipedia.org/wiki/Kategorie:FTP-Client - A list of FTP-Clients on Wikipedia


This list of ftp-clients took me about half an hour:

# 13:55, 15. Mär 2006 Kechel (→ftp-clients)
# 13:53, 15. Mär 2006 Kechel (→ftp-clients)
# 13:28, 15. Mär 2006 Kechel (→Determine in a first step from which date those (best rated) programs are)
# 13:27, 15. Mär 2006 Kechel (→Determine in a first step from which date those (best rated) programs are)

version control systems - chance 1

http://en.wikipedia.org/wiki/Revision_control

http://en.wikipedia.org/wiki/List_of_revision_control_software

http://en.wikipedia.org/wiki/Source_Code_Control_System

As above links contain hundreds of Links I only take one example which (hopefully) can be used as Prior Art, but which is really very old:

  • This Paper also contains some references which might also be useful as Prior Art, remember to come back to those if we can't find anything here
  • CiteSeer is very helpful in finding Documents that refer to this one, so remember to come back to those if we can't find anything here: http://citeseer.ist.psu.edu/context/7732/0

mirror software - chance 1

  • http://lftp.yar.ru/ - this is actually an ftp-client, but it has also mirror-capabilities
  • Version 0.10.7 - 1997-03-09 (cited)

Verify selected Projects

We now have 13 Projects that were (yet only probably) published prior to the Priority Date and which might be used as Prior Art.

I just start with one of the remaining projects I really like. But it actually doesn't matter at all, you will be finished as soon as you found one single Prior Art and you must not finish without a single Prior Art before you verified all of them!

Verify SCCS

Is the description older than the Priority-Date?

This is fairly easy here, because we found this tiny nice and shiny paper that was actually printed in 1975: The Source Code Control System

As I couldn't find any digital text of this document, I'm going to transcribe interesting passages:

  • Page 1
  • Abstract - The Source Code Control System (SCCS) is a software tool designed to help programming projects control changes to source code. It provides facilities for storing, updating, and retrieving all versions of modules, for controlling updating privileges, for identifyeing load modules by version number, and for recording who made each software change, when and where it was made, and why. This paper discusses the SCCS approach to source code control, shows how it is used and explains how it is imlemented.
  • […]
  • Identification: The system automatically stamps load modules with information such as version number, date, time, etc. The source code that was used to make the load module may later be retrieved from this information alone.
  • […]
  • Each time the module is changed ([…]) the change is stored as a discrete delta.
  • […]
  • Each delta is applied to the source code as it existed just prior to that delta. Similarly, the source code as it was just before the last change is accessed by applying only the first three deltas, ans so on.
  • Page 3
  • […]
  • SCCS incorporates the delta documentation into several reports. The most common is issued whenever a module is accessed. It is a chart giving, for each delta, the release, level, option letter (if any), date and time of
  • Page 4
  • creation, who added it, why it was added, whether it was applied in this particular access, and why it was or was not applied ([…]).

Does it really implement or describe the patent?

To answer this question we start with our own summarization of the patent, and work upwards until we compare it to the original claim:

verify the summarization
  • This invention compares Server-Data to Client-Data using timestamps and updates the Client-Data with newer data from the server.

I here noticed that I used timestamp in my summarization, but the original claim used time status. Yes, now we have to pay attention to such small differences. So I correct the summary as follows:

  • This invention compares Server-Data to Client-Data using time status and updates the Client-Data with newer data from the server.

I use the following notation for my verification:


  • patent citations (actually summary citations yet)
  • SCCS Paper citations

some comments


And here we go:


  • updates data
  • It provides facilities for storing, updating, and retrieving all versions of modules

this clearly describes about the same thing


  • compares data using time status
  • get modx causes SCCS to generate the source code corresponding to the very end of the delta chain.

As the end of the delta chain is definitely a time status (which is also written somewhere else in the paper) and get modx generates the appropriate file, it updates the Client-Data using a time status.

Attention: So far we don't have hints about using Clients and Servers here.


  • conclusion
  • So far, knowing about SCCS my summarization makes the invention obvious if using Clients and Servers is obvious too.
verify the original claim
  • Disclosed is a method for adapting a database provided on a client data processing unit to a source database stored on a server data processing unit. In order to further develop said method in such a way that only comparatively small amounts of data have to be transmitted, the following steps are carried out: - a comparative characteristic value (KV) indicating the time status of the momentary database of the client data processing unit (6a) is transmitted from the client data processing unit (6a) to the server data processing unit (4); - a part of the source database of the server data processing unit (4), which has a more recent time status than the time status of the momentary database of the client data processing unit (6a) indicated by the comparative characteristic value (KV), is determined; - the determined part of the source database is transmitted to the client data processing unit (6a); the part of the source database, which has been transmitted from the server data processing unit (4), is received in the database of the client data processing unit (6a) so as to form an updated database of the client data processing unit (6a).

  • Disclosed is a method for adapting a database provided on a client data processing unit to a source database stored on a server data processing unit.
  • It provides facilities for storing, updating, and retrieving

  • In order to further develop said method in such a way that only comparatively small amounts of data have to be transmitted, the following steps are carried out
  • accessing algorithm that allowed many deltas to be kept at a reasonable cost in terms of disk space and processing time. SCCS meets both of these criteria. The space required to store a delta is only slightly greater than the amount of text inserted by that delta.

So we even have the same goals here


  • - a comparative characteristic value (KV) indicating the time status of the momentary database of the client data processing unit (6a) is transmitted from the client data processing unit (6a) to the server data processing unit (4);
  • with information such as version number, date, time, etc. The source code that was used to make the load module may later be retrieved from this information alone.

This says that the number, date, time can be used to retrieve the information. This includes sending this data to the server if a server is used.


  • - a part of the source database of the server data processing unit (4), which has a more recent time status than the time status of the momentary database of the client data processing unit (6a) indicated by the comparative characteristic value (KV), is determined;
  • Each delta is applied to the source code as it existed just prior to that delta.

  • - the determined part of the source database is transmitted to the client data processing unit (6a);
  • Each delta is applied to the source code

This includes transmitting, there is no other way of doing this (with and without using a server)


  • the part of the source database, which has been transmitted from the server data processing unit (4), is received in the database of the client data processing unit (6a) so as to form an updated database of the client data processing unit (6a).
  • Each delta is applied to the source code

This is the update of the client database


  • conclusion
  • If you know SCCS, then the invention is obvious if using Clients and Servers is obvious too.

This might be enough to proof for Prior Art, it might not.

In this case it is good to look for other Prior Arts.

Taking into account that SCCS got really very close, I suggest continuing with work that is derived from SCCS, such as RCS:

  • RCS
  • Revision Control System tells us, that later it was replaced by CVS, which firstly enhanced RCS with networking capabilities
  • CVS
  • So we should check if CVS is also prior the Priority Date, because then we surely have Prior Art for the Client/Server part.

Verify CVS

We know that CVS is based upon RCS, which is based upon SCCS and that CVS enhanced RCS with networking capabilities. So i give this a chance of 1+. We'll see how it works out:

Is CVS older than the Priority-Date?

Publication: The code was publicly released to mod.sources on June 23, 1986 (cited / original usenet post)

I also found a book about CVS prior to the Priority Date (using http://amazon.com):

  • Open Source Development with CVS
  • ISBN: 1576104907, year 2000

Another good ressource to look for Prior Art are Universities:

  • University Munich WS 02/03 “Programmierpraktikum”, CVS is part of the lecture
  • University Oldenburg, WS 01/02 “Modul Softwareprojekt incl. Proseminar”:
  • University Karlsruhe, WS 01/02 “Softwareengineering“, contains slides on CVS und RCS
  • University Bonn, SS 99 “Softwaretechnologie”, contains in homework 3 extra homework on CVS, especially for the commands checkout, update und commit

So I see it as defenitely proofed, that CVS was published prior the Priority Date of the Invention.

  • And if you find sth. like Der „MetaCodeGenerator“ arbeitet mit allen markt-üblichen CM-Systemen wie Visual SourceSafe, ClearCase, CVS, …., where the patentee itself says that CVS is one of the major source control systems and which was published prior to the Priority Date, then it even starts to make fun searching for Prior Art ;-) (link to prospect)

Does CVS really implement or describe the patent?

verify the summarization
  • This invention compares Server-Data to Client-Data using time status and updates the Client-Data with newer data from the server.

[…]

verify the original claim

… and so on.

Conclusion

I hope this gave you an overview on how such a search for Prior Art can be accomplished!

This example was made by Kechel 18:30, 16 March 2006 (PST)

Accordingly, a "closest prior art" standard will work for now.
Once we get everything up and running, we can address the nuances,
if there is a need.

changelog

31-MAR-2006

19-MAR-2006

osapa/example_prior_art_search.txt · Last modified: 2016/07/19 01:22 (external edit)