U.S. patent application number 12/335755 was filed with the patent office on 2009-05-28 for method, system, and computer program product for managing data associated with a document stored in an electronic form.
This patent application is currently assigned to MEDIA CYBERNETICS, INC.. Invention is credited to Brent Birsa, Pierre Duchene, Vojin Dvorak.
Application Number | 20090138434 12/335755 |
Document ID | / |
Family ID | 34811238 |
Filed Date | 2009-05-28 |
United States Patent
Application |
20090138434 |
Kind Code |
A1 |
Birsa; Brent ; et
al. |
May 28, 2009 |
METHOD, SYSTEM, AND COMPUTER PROGRAM PRODUCT FOR MANAGING DATA
ASSOCIATED WITH A DOCUMENT STORED IN AN ELECTRONIC FORM
Abstract
A method, system, and computer program product for managing data
associated with a document stored in an electronic form. The
document can be a part of a file. Computer processed algorithms,
user-operated computer graphics tools, or both can be used to
derive data from or assign data to the document or the file. First
data is derived from the document, second data is assigned to the
document, or both. The first data, the second data, or both are
organized as attributes of an object of a first computer database.
At least one attribute is organized as a child object of the
object. The at least one attribute is associated with a feature of
the document. Optionally, an attribute is moved from the object of
the first computer database to an object of a second computer
database and an address of a location in a memory at which the
object of the second computer database is stored is added as a new
attribute of the object of the first computer database.
Inventors: |
Birsa; Brent; (Glenwood,
MD) ; Duchene; Pierre; (Silver Spring, MD) ;
Dvorak; Vojin; (Bethesda, MD) |
Correspondence
Address: |
CAESAR, RIVISE, BERNSTEIN,;COHEN & POKOTILOW, LTD.
11TH FLOOR, SEVEN PENN CENTER, 1635 MARKET STREET
PHILADELPHIA
PA
19103-2212
US
|
Assignee: |
MEDIA CYBERNETICS, INC.
Silver Spring
MD
|
Family ID: |
34811238 |
Appl. No.: |
12/335755 |
Filed: |
December 16, 2008 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10975033 |
Oct 28, 2004 |
|
|
|
12335755 |
|
|
|
|
60514601 |
Oct 28, 2003 |
|
|
|
Current U.S.
Class: |
1/1 ;
707/999.002; 707/E17.008; 715/229 |
Current CPC
Class: |
G06F 16/93 20190101 |
Class at
Publication: |
707/2 ; 715/229;
707/E17.008 |
International
Class: |
G06F 7/00 20060101
G06F007/00; G06F 17/30 20060101 G06F017/30; G06F 17/00 20060101
G06F017/00 |
Claims
1. A method for managing related data stored in a plurality of
computer databases in a computer processor system having a memory
and an output device, comprising: (1) organizing a first portion of
the related data as an attribute of an object of a first computer
database of the plurality of computer databases stored in the
memory of the computer processor system; (2) organizing a second
portion of the related data as a first attribute of an object of a
second computer database of the plurality of computer databases
stored in the memory of the computer processor system; and (3)
including as a second attribute of the object of the second
computer database, an address of a location in the memory of the
computer processor system at which the object of the first computer
database is stored; wherein the first portion of the related data
is different from the second portion of the related data and the
second computer database is configured so that a result of a query
of the object of the second computer database is produced on the
output device of the computer processor system at a higher rate
than a result of a query of the object of the first computer
database; wherein attribute of the object of the first computer
database and the first attribute of the object of the second
computer database are configured to be stored in the memory of the
computer processor system.
2. A computer processor system having a memory and an output device
for managing related data stored in a plurality of computer
databases, comprising: the memory of the computer processor system
being configured to store a first computer database and a second
computer database; and a computer database management system
coupled to the memory of the computer processor system and
configured to organize a first portion of the related data as an
attribute of an object of the first computer database, to organize
a second portion of the related data as a first attribute of an
object of the second computer database, and to include, as a second
attribute of the object of the second computer database, an address
of a location in the memory of the computer processor system at
which the object of the first computer database is stored; wherein
the first portion of the related data is different from the second
portion of the related data and the second computer database is
configured so that a result of a query of the object of the second
computer database is produced on the output device at a higher rate
than a result of a query of the object of the first computer
database.
3. A computer program product for managing related data stored in a
plurality of computer databases, the computer program product
having computer program code means embodied in a computer-readable
medium of the plurality of computer databases in a computer
processor system having a memory and an output device, the computer
program code means comprising: a first program code means for
organizing a first portion of the related data as an attribute of
an object of a first computer database stored in the memory of the
computer processor system; a second program code means for
organizing a second portion of the related data as a first
attribute of an object of a second computer database stored in the
memory of the computer processor system; and a third program code
means for including, as a second attribute of the object of the
second computer database, an address of a location in the memory of
the computer processor system at which the object of the first
computer database is stored; wherein the first portion of the
related data is different from the second portion of the related
data and the second computer database is configured so that a
result of a query of the object of the second computer database is
produced on an output device at a higher rate than a result of a
query of the object of the first computer database.
4. A method for managing data associated with a document stored in
an electronic form in a computer processor system having a memory
and an output device, comprising: (1) assigning data to the
document with at least one of a computer processed algorithm and a
user-operated computer graphics tool; (2) organizing the data as
first attributes of a parent object of a computer database stored
in the memory of the computer processor system; and (3) organizing
at least one attribute of the first attributes of the parent object
as a child object, wherein the at least one attribute is associated
with a feature of the document; wherein the computer database is
configured so that a result of a query of the child object of the
computer database is produced on the output device at a higher rate
than a result of a query of the parent object of the first computer
database.
5. A system for managing data associated with a document stored in
an electronic form in a computer processor system having a memory
and an output device, comprising: a document data interface coupled
to the memory and configured to support assigning data to the
document; a computer database management system coupled to the
memory of the computer processor system and configured to organize
the data as a plurality of attributes of a parent object of a
computer database stored in the memory of the computer processor
system, and to organize at least one attribute of the plurality of
attributes as a child object of the parent object, wherein the at
least one attribute is associated with a feature of the document;
and the memory of the computer processor system being configured to
store the document, the computer database, and the data; wherein
the computer database is configured so that a result of a query of
the child object of the computer database is produced on the output
device at a higher rate than a result of a query of the parent
object of the computer database.
6. A computer program product for managing data associated with a
document stored in an electronic form, the computer program product
having computer program code means embodied in a computer useable
medium in a computer processor system having a memory and an output
device, the computer program code means comprising: a first program
code means for assigning data to the document with at least one of
a computer processed algorithm and a user-operated computer
graphics tool; a second program code means for organizing the data
as first attributes of a parent object of a computer database
stored in the memory of the computer processor system; and a third
program code means for organizing at least one attribute of the
first attributes as a child object of the parent object, wherein
the at least one attribute is associated with a feature of the
document; wherein the first, second and third program code means
are stored in the memory of the computer processor system and the
computer database is configured so that a result of a query of the
child object of the computer database is produced on the output
device at a higher rate than a result of a query of the parent
object of the computer database.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. patent
application Ser. No. 10/975,033 filed Oct. 28, 2004 entitled
METHOD, SYSTEM AND COMPUTER PROGRAM PRODUCT FOR MANAGING DATA
ASSOCIATED WITH A DOCUMENT STORED IN ELECTRONIC FORM which claims
the priority of U.S. Provisional Application No. 60/514,601, filed
Oct. 28, 2003, which are incorporated herein in their entirety by
reference.
BACKGROUND OF THE INVENTION
[0002] 1. Field of the Invention
[0003] The present invention relates to computer databases.
[0004] 2. Related Art
[0005] Advancements in digital image processing methods have
enabled these technologies to become valuable tools for a host of
applications. These include, but are not limited to, documenting
work products in such fields as biochemistry, cell biology,
pathology, genetics, forensics, geology, metallurgy, inspections of
electron devices, quality control applications, material failure
analysis, and the like. Digital image processing methods enable
pictorial data to be manipulated in ways that enhance the means by
which humans can interpret this data. Digital image processing
methods typically use computer-processed algorithms or
user-operated computer graphics tools. With digital image
processing, a picture is not only "worth a thousand words," but
also a source of a substantial amount of data about the subject(s)
and the background in the digital image. In general, what is needed
is a computer database management system for managing data
associated with documents stored in an electronic form. Preferably,
such a computer database management system would also be configured
to support performing queries or data mining of relevant data at a
high rate.
SUMMARY OF THE INVENTION
[0006] The present invention comprises a method, system, and
computer program product for managing data associated with a
document stored in an electronic form. The document can be a part
of a file. The present invention can use computer processed
algorithms, user-operated computer graphics tools, or both to have
data derived from or assigned to the document or the file. The data
can be, but is not necessarily, metadata. Computer processed
algorithms and user-operated computer graphics tools can be thought
of as representing opposite ends of a spectrum of methods by which
data can be derived from or assigned to a document or a file. At
one end of the spectrum, the derivation or assignment of data is
performed automatically. At the other end of the spectrum, a user
manually derives or assigns data.
[0007] In the present invention, first data is derived from the
document, second data is assigned to the document, or both. The
first data, the second data, or both are organized as attributes of
an object of a first computer database. At least one attribute is
organized as a child object of the object.
[0008] The at least one attribute is associated with a feature of
the document.
[0009] Optionally, an attribute is moved from the object of the
first computer database to an object of a second computer database
and an address of a location in a memory at which the object of the
second computer database is stored is added as a new attribute of
the object of the first computer database.
[0010] Further embodiments, features, and advantages of the present
invention, as well as the structure and operation of the various
embodiments of the present invention, are described in detail below
with reference to the accompanying drawings. Each feature or
advantage is not necessarily required for all embodiments of the
present invention.
BRIEF DESCRIPTION OF THE FIGURES
[0011] The accompanying drawings, which are incorporated herein and
form part of the specification, illustrate the present invention
and, together with the description, further serve to explain the
principles of the invention and to enable a person skilled in the
pertinent art to make and use the invention.
[0012] FIG. 1 illustrates an exemplary image in which associated
data are managed in an embodiment of the present invention.
[0013] FIG. 2 illustrates exemplary data derived from and assigned
to the image.
[0014] FIG. 3 illustrates an exemplary object, in a database, in
which data derived from and assigned to the image are
organized.
[0015] FIG. 4 illustrates an alternative organization of the
object.
[0016] FIG. 5 illustrates an exemplary relationship between
databases.
[0017] FIG. 6 illustrates another exemplary relationship among
databases.
[0018] FIG. 7 illustrates exemplary query objects.
[0019] FIG. 8 is a flow chart that illustrates a method 800 for
managing data associated with a document stored in an electronic
form in an embodiment of the present invention.
[0020] FIG. 9 is a flow chart that illustrates a method 900 for
managing related data stored in a plurality of computer databases
in an embodiment of the present invention.
[0021] FIG. 10 is a block diagram of a system 1000 for managing
data associated with a document stored in an electronic form in an
embodiment of the present invention.
[0022] FIG. 11 is a block diagram of a system 1100 for managing
related data stored in a plurality of computer databases in an
embodiment of the present invention.
[0023] FIG. 12 is a block diagram of an example computer system
1200 that can support an embodiment of the present invention.
[0024] The preferred embodiments of the invention are described
with reference to the figures where like reference numbers indicate
identical or functionally similar elements. Also in the figures,
the left most digit(s) of each reference number identifies the
figure in which the reference number is first used.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
Overview
[0025] The present invention comprises a method, system, and
computer program product for managing data associated with a
document stored in an electronic form. If the document is an image,
then management of the data is also known as image informatics.
Among other attributes, the data can describe complex features
found in an image. The document can be a part of a file. The
present invention can use computer processed algorithms,
user-operated computer graphics tools, or both to have data derived
from or assigned to a document or a file.
[0026] Computer processed algorithms and user-operated computer
graphics tools can be thought of as representing opposite ends of a
spectrum of methods by which data can be derived from or assigned
to a document or a file. At one end of the spectrum, the derivation
or assignment of data is performed automatically. At the other end
of the spectrum, a user manually derives or assigns data. More
typically, data are derived or assigned by a combination of
automatic and manual processes. For example, usually, a user
initiates computer processed algorithms to derive or to assign data
automatically, or is assisted by user-operated computer graphics
tools to derive or to assign data manually. As the arts of deriving
data from and assigning data to documents and files progress, data
that are currently derived or assigned by mostly manual methods may
later be derived or assigned by predominantly automatic processes.
Accordingly, the present invention is not limited to current state
of the art computer processed algorithms and user-operated computer
graphics tools, but is also applicable to future developments in
these technologies.
[0027] Examples of data that can currently be derived from or
assigned to a document or a file with computer processed algorithms
include signatures, thumbnails, and other image related attributes;
file signatures and other file related attributes; grain sizing and
other material analyses; edge detection and analysis; image feature
counting and analysis; histograms; and line profiles. Computer
processed algorithms can be based upon, but are not limited to,
digital image processing methods such as background subtraction,
thresholding, smoothing, adaptive filtering, edge enhancements,
contrast enhancements, and histogram equalizations. Such methods
are known to those of skill in the art.
[0028] Examples of data that can currently be derived from or
assigned to a document or a file with user-operated computer
graphics tools include measurements (e.g., distances, angles, etc.)
made by a user of portions of subject(s) in an image, textual
annotations made by a user and assigned to the document or the file
via an overlay, Boolean values (e.g., true or false) assigned by
the user, an identity of the document or the file, a time at which
the document or the file was produced, and a name of an individual
associated with the document or the file. Some of these can be
obtained with the assistance of overlay templates. User-operated
computer graphics tools can be based upon, but are not limited to,
character user interfaces (e.g., keyboards) and graphical user
interfaces.
[0029] Generally, a graphical user interface is a system comprising
hardware, software, firmware, or any combination thereof that
allows a user to interface with a computer via its display system.
Characteristics of a graphical user interface can include, but are
not limited to, a bit-mapped display, an Ethernet.RTM. network for
transferring data and commands, an optical cursor control device
(e.g., mouse, trackball, stylus, touch pad, touch screen, or the
like), windowed display of operations, icon-initiated programs, and
menus for programming options. Apple.RTM. Macintosh.RTM. and
Microsoft.RTM. Windows.TM., for example, are applications of
graphical user interfaces that can provide a basis for a graphical
user interface of the present invention. The present invention is
not limited to these examples, but is applicable to other existing
and future-developed graphical user interfaces.
[0030] The data derived from or assigned to a document or a file
can include metadata. Metadata are data about the document or the
file that can be used to identify it in an index. Such metadata can
include, but are not limited to, some of the data defined by the
Dublin Core Metadata Initiative.RTM. hosted by OCLC Research of
Dublin, Ohio, U.S.A. The technical standards of the Dublin Core
Metadata Initiative.RTM. are incorporated herein in their entirety
by reference. The computer processed algorithms and user-operated
computer graphics tools used to derive data from or assign data to
documents or files are incorporated in, for example, the
Image-Pro.RTM. and IQstudio.TM. families of products offered by
Media Cybernetics Inc. of Silver Spring, Md., U.S.A.
[0031] In an application, the present invention provides a database
that allows a user to capture, store, and organize image related
data in real time as the user is looking at or analyzing images.
Later, the data can be queried, archived more permanently, analyzed
further using data mining tools, or any combination of the
foregoing. Data irrelevant to a particular analysis can be stored
in a separate database and indexed to the database of the present
invention so that queries or data mining of relevant data in the
database of the present invention can be performed at a high rate.
Because the database of the present invention can index data from
different databases, the database of the present invention can
automatically update its schema (the data structure information) as
needed as data is accessed from different databases.
[0032] Preferably, the database of the present invention is an
object oriented database. An object oriented database organizes
related data as elements in a set. The set is known as an object
and is defined by a type. The elements are known as attributes. A
first object can be an attribute of a second object. The first
object is known as a child object and the second object is known as
a parent object. The PastObjects.TM. family of products, offered by
Poet GmbH of Karlsruhe, Germany, is an example of object oriented
databases in which the present invention can be implemented.
However, the skilled artisan recognizes other database
architectures by which the present invention can be implemented.
Accordingly, the present invention is not limited to an object
oriented architecture.
[0033] For convenience, the present invention is described in the
context of images of results of DNA genotyping experiments as
displayed in microarrays. However, it should be understood that the
present invention can be adapted for use in many other applications
including, but not limited to, work products in such fields as
biochemistry, cell biology, pathology, genetics, forensics,
geology, metallurgy, inspections of devices with feature sizes
substantially at or less than a micron, quality control
applications, and material failure analysis. Furthermore, the
present invention can be used to manage data associated with
documents of all types and is not limited to managing data
associated with images.
[0034] FIG. 1 illustrates an exemplary image in which associated
data are managed in an embodiment of the present invention. An
image 100 shows a sample of results of a first DNA genotyping
experiment as displayed in a microarray. The microarray has, for
example, four result sites: A1 102a, A2 102b, B1 102c, and B2 102d.
Image 100 can be, but is not necessarily, a part of a file 104.
[0035] FIG. 2 illustrates exemplary data derived from and assigned
to the image. Data derived from image 100 are defined, for example,
by the following attributes (and associated data types): an image
size 202 (e.g., number of bytes) of image 100, a height 204 (e.g.,
number of pixels) of image 100, a width 206 (e.g., number of
pixels) of image 100, an area 208a, 208b, 208c, and 208d (e.g.,
number of pixels) of each of the four result sites, and an
intensity 210a, 210b, 210c, and 210d of each the four result sites
(e.g., average of values stored in the pixels that define the area
of a result site). Data assigned to image 100 are defined, for
example, by the following attributes (and associated types): an
identity 212 (e.g., series of ASCII characters) of the first DNA
genotyping experiment and a name 214 (e.g., series of ASCII
characters) of an individual who conducted the first DNA genotyping
experiment. If image 100 was captured (at any time), then the data
assigned to image 100 can include a time 216 (e.g., series of ASCII
characters) at which image 100 was captured. If image 100 is a part
of file 104, then the data assigned to image 100 can include data
derived from or assigned to file 104. Data derived from or assigned
to file 104 can be defined, for example, by the following attribute
(and associated data type): a file size 218 (e.g., number of bytes)
of file 104.
[0036] FIG. 3 illustrates an exemplary object, in a database, in
which data derived from and assigned to the image are organized. In
a database of the present invention 300, identity 212, for example,
defines an object 302. The remaining data are attributes of object
302. For example, each of image size 202; height 204; width 206;
areas 208a, 208b, 208c, and 208d; intensities 210a, 210b, 210c, and
210d; and name 214 is an attribute of object 302. Optionally,
object 302 can include image 100 (or a reproduction of image 100)
as an attribute. If data assigned to image 100 includes time 216,
then object 302 can include an attribute for time 216. If image 100
is a part of file 104, then object 302 can include an attribute for
file size 218, an attribute for a memory location 304 (e.g.,
address) at which file 104 is stored, or both.
[0037] FIG. 4 illustrates an alternative organization of the
object. Data related to each of result sites A1 102a, A2 102b, B1
102c, and B2 102d can be organized as a child object of object 302.
For example, attributes for area 208a and intensity 210a can be
organized as child object 402a, attributes for area 208b and
intensity 210b can be organized as child object 402b, attributes
for area 208c and intensity 210c can be organized as child object
402c, and attributes for area 208d and intensity 210d can be
organized as child object 402d.
[0038] So that queries and data mining of relevant data in object
302 can be performed at a high rate, the present invention allows
data irrelevant to a particular analysis to be stored in a separate
database and indexed to database of the present invention 300. For
example, a user may desire to perform queries or data mining of
data related to result sites A1 102a, A2 102b, B1 102c, and B2
102d, but consider the remaining data of object 302 irrelevant to a
particular analysis. In this case, the remaining data of object 302
can be stored in a separate database and indexed to database of the
present invention 300 so that queries and data mining of data
related to result sites A1 102a, A2 102b, B1 102c, and B2 102d can
be performed at a high rate.
[0039] FIG. 5 illustrates an exemplary relationship between
databases. This example relationship includes database of the
present invention 300 and a second database 502. In database of the
present invention 300, an object 504 is defined by identity 212.
Object 504 includes child objects 402a, 402b, 402c, and 402d from
object 302. In second database 502, an object 506 is also defined
by identity 212. Object 506 includes the remaining attributes from
object 302. In database of the present invention 300, object 504
also includes an attribute for a memory location 508 (e.g.,
address) at which object 506 is stored. With this relationship, a
user can perform queries or data mining data related to result
sites A1 102a, A2 102b, B1 102c, and B2 102d at a high rate.
Furthermore, access to the remaining data related to image 100 is
maintained via object 506 so that queries and data mining can also
be performed for this data.
[0040] Because database of the present invention 300 can index data
from different databases, database of the present invention 300 can
automatically update its schema (the data structure information) as
needed as data is accessed from different databases.
[0041] FIG. 6 illustrates another exemplary relationship among
databases. This example relationship includes database of the
present invention 300, a third database 602, and a fourth database
604. Third database 602 includes object 302 for data related to the
first DNA genotyping experiment as these data were originally
derived or assigned. Fourth database 604 includes an object 606 for
data related to a second DNA genotyping experiment as these data
were originally derived or assigned. The data of the second DNA
genotyping experiment is organized in object 606 in a manner that
corresponds to the organization of the data in object 302. However,
rather than having an attribute for name 214 of an individual who
conducted the second DNA genotyping experiment, object 606 has an
attribute for an overlay of textual annotations 608 (e.g., series
of ASCII characters).
[0042] Database of the present invention 300 includes a first
object 610 and a second object 612. First object 610 corresponds to
object 302 and second object 612 corresponds to object 606. First
object 610 includes an attribute for a memory location 614 (e.g.,
address) at which object 302 is stored and an attribute for an
overlay of textual annotations 616 (e.g., series of ASCII
characters). Second object 612 includes an attribute for a memory
location 618 (e.g., address) at which object 606 is stored and an
attribute for a name 620 (e.g., series of ASCII characters). With
this relationship, a user can access corresponding sets of data for
the first DNA genotyping experiment and the second DNA genotyping
experiment even though the sets of data that were originally
derived or assigned for the first DNA genotyping experiment and the
second DNA genotyping experiment are not corresponding.
Advantageously, the data related to each of the DNA genotyping
experiments are maintained in the corresponding databases as these
data were originally derived or assigned.
[0043] FIG. 7 illustrates exemplary query objects. In this example,
database of the present invention 300 includes object 302, object
606, a third object 702, a fourth object 704, and a fifth object
706. Third object 702 is a query object. Third object 702 is, for
example, defined as the results of querying object 302 and object
606 for data related to result site A1 102a for the first DNA
genotyping experiment and the second DNA genotyping experiment.
Third object 702 includes an attribute for a memory location 708
(e.g., address) at which subset 402a for the first DNA genotyping
experiment is stored and an attribute for a memory location 710
(e.g., address) at which subset 402a for the second DNA genotyping
experiment is stored. Fourth object 704 is also a query object.
Fourth object 704 is, for example, defined as the results of
querying object 302 and object 606 for data related to result site
A2 102b for the first DNA genotyping experiment and the second DNA
genotyping experiment. Fourth object 704 includes an attribute for
a memory location 712 (e.g., address) at which subset 402b for the
first DNA genotyping experiment is stored and an attribute for a
memory location 714 (e.g., address) at which subset 402b for the
second DNA genotyping experiment is stored. Third object 702 and
fourth object 704 can be child objects of fifth object 706. Fifth
object 706 is defined as the results of querying object 302 and
object 606 for data related to result site A1 102a and result site
A2 102b for the first DNA genotyping experiment and the second DNA
genotyping experiment.
Methods
[0044] FIG. 8 is a flow chart that illustrates a method 800 for
managing data associated with a document stored in an electronic
form in an embodiment of the present invention. Method 800 has
several embodiments, which are differentiated below as optional
steps.
[0045] In method 800, at a step 802, first data are derived from
the document, second data are assigned to the document, or both.
Data can be derived, assigned, or both with a computer processed
algorithm, a user-operated computer graphics tool, or both. The
first data, the second data, or both can include metadata
Optionally, the document is an image. The image can be captured
with an electronic imaging device. The first data, the second data,
or both can include a time at which the image was captured. The
image or a reproduction of the image can be included as an
attribute of the first attributes.
[0046] Optionally, the document is a part of a file. An address of
a location in a memory at which the file is stored can be included
as an attribute of the first attributes. Optionally, at a step 804,
third data are derived from the file, fourth data are assigned to
the file, or both with the computer processed algorithm, the
user-operated computer graphics tool, or both.
[0047] At a step 806, the first data, the second data, or both are
organized as first attributes of an object of a first computer
database.
[0048] Optionally, at a step 808, third data, fourth data, or both
are organized as second attributes of the object of the first
computer database.
[0049] At a step 810, at least one attribute of the first
attributes is organized as a child object of the object. The at
least one attribute is associated with a feature of the
document.
[0050] Optionally, at a step 812, an attribute of the first
attributes is moved from the object of the first computer database
to an object of a second computer database. Then, at a step 814, an
address of a location in a memory at which the object of the second
computer database is stored is added as a new attribute of the
object of the first computer database.
[0051] FIG. 9 is a flow chart that illustrates a method 900 for
managing related data stored in a plurality of computer databases
in an embodiment of the present invention. In method 900, at a step
902, a first portion of the related data is organized as an
attribute of an object of a first computer database. At a step 904,
a second portion of the related data is organized as a first
attribute of an object of a second computer database. At a step
906, an address of a location in a memory at which the object of
the first computer database is stored is included as a second
attribute of the object of the second computer database.
Systems
[0052] FIG. 10 is a block diagram of a system 1000 for managing
data associated with a document stored in an electronic form in an
embodiment of the present invention. System 1000 comprises a
document data interface 1002, a computer database management system
1004, and a memory 1006.
[0053] Document data interface 1002 is configured to support
deriving first data from the document, assigning second data to the
document, or both. The first data, the second data, or both can
include metadata. Document data interface 1002 can include a
computer processed algorithm, a user-operated computer graphics
tool, a graphical user interface, a character user interface, or
any combination of the foregoing. Optionally, document data
interface 1002 can be further configured to support deriving third
data from a file that includes the document, assigning fourth data
to the file, or both.
[0054] Computer database management system 1004 is configured to
organize the first data, the said second data, or both as first
attributes of an object of a first computer database and to
organize at least one attribute of the first attributes as a child
object of the object. The at least one attribute is associated with
a feature of the document. Preferably, computer database management
system 1004 is an object oriented computer databases management
system. Optionally, computer database management system 1004 is
further configured to organize the third data, the fourth data, or
both as second attributes of the object of the first computer
database. Optionally, computer database management system 1004 is
further configured to move an attribute of the first attributes
from the object of the first computer database to an object of a
second computer database and to add, as a new attribute of the
object of the first computer database, an address of a location in
memory 1006 at which the object of the second computer database is
stored.
[0055] Memory 1006 is configured to store the document and the
first computer database. Memory 1006 is also configured to store
the first data, the second data, or both. Memory 1006 is coupled to
document data interface 1002 and computer database management
system 1004. Optionally, memory 1006 is further configured to store
the third data, the fourth data, or both. Optionally, memory 1006
is further configured to store the second computer database.
[0056] FIG. 11 is a block diagram of a system 1100 for managing
related data stored in a plurality of computer databases in an
embodiment of the present invention. System 1100 comprises a memory
1102 and a computer database management system 1104. Memory 1102 is
configured to store a first computer database and a second computer
database. Computer database management system 1104 is configured to
organize a first portion of the related data as an attribute of an
object of the first computer database, to organize a second portion
of the related data as a first attribute of an object of the second
computer database, and to include, as a second attribute of the
object of the second computer database, an address of a location in
memory 1102 at which the object of the first computer database is
stored. Computer database management system 1104 is coupled to
memory 1102.
Computer Program Products
[0057] The present invention also comprises a computer program
product for managing data associated with a document stored in an
electronic form. The computer program product has computer program
code means embodied in a computer useable medium. The computer
program code means comprises a first computer program code means, a
second computer program code means, and a third computer program
code means.
[0058] The first program code means causes a processor, allows a
user, or both to derive first data from the document, assign second
data to the document, or both with a computer processed algorithm,
a user-operated computer graphics tool, or both. The first data,
the second data, or both can include metadata. If the document is
an image that was captured with an electronic imaging device, then
the first data, the second data, or both can include a time at
which the image was captured.
[0059] If the document is a part of a file, then the computer
program code means can further comprise a fourth program code
means. The fourth program code means causes the processor, allows
the user, or both to derive third data from the file, assign fourth
data to the file, or both with the computer processed algorithm,
the user-operated computer graphics tool, or both.
[0060] The second program code means causes the processor, allows
the user, or both to organize the first data, the second data, or
both as first attributes of an object of a first computer database.
If the document is an image, then the image or a reproduction of
the image can be included as an attribute of the first attributes.
If the document is a part of a file, then an address of a location
in a memory at which the file is stored can be included as an
attribute of the first attributes.
[0061] If the document is a part of a file, then the computer
program code means can further comprise a fifth program code means.
The fifth program code means causes the processor, allows the user,
or both to organize the third data, the fourth data, or both as
second attributes of the object of the first computer database.
[0062] The third program code means causes the processor, allows
the user, or both to organize at least one attribute of the first
attributes as a child object of the object. The at least one
attribute is associated with a feature of the document.
[0063] Optionally, the computer program code means further
comprises a sixth program code means and a seventh program code
means. The sixth program code means causes the processor, allows
the user, or both to move an attribute of the first attributes from
the object of the first computer database to an object of a second
computer database. The seventh program code means causes the
processor, allows the user, or both to add, as a new attribute of
the object of the first computer database, an address of a location
in a memory at which the object of the second computer database is
stored.
[0064] The present invention also comprises a computer program
product for managing related data stored in a plurality of computer
databases. The computer program product has computer program code
means embodied in a computer useable medium. The computer program
code means comprises a first computer program code means, a second
computer program code means, and a third computer program code
means. The first program code means causes the processor, allows
the user, or both to organize a first portion of the related data
as an attribute of an object of a first computer database. The
second program code means causes the processor, allows the user, or
both to organize a second portion of the related data as a first
attribute of an object of a second computer database. The third
program code means causes the processor, allows the user, or both
to include, as a second attribute of the object of the second
computer database, an address of a location in a memory at which
the object of the first computer database is stored.
Environment of the Present Invention
[0065] FIG. 12 is a block diagram of an example computer system
1200 that can support an embodiment of the present invention.
Computer system 1200 includes one or more processors, such as a
central processing unit (CPU) 1204. The CPU 1204 is connected to a
communications bus 1206. Various software embodiments are described
in terms of this example computer system. After reading this
description, it will be apparent to a person skilled in the
relevant art how to implement the present invention using other
computer systems, computer architectures, or both.
[0066] Computer system 1200 also includes a main memory 1208,
preferably random access memory (RAM), and can also include a
secondary memory 1210. The secondary memory 1210 can include, for
example, a hard disk drive 1212 and/or a removable storage drive
1214, representing a floppy disk drive, a magnetic tape drive, an
optical disk drive, etc. The removable storage drive 1214 reads
from and/or writes to a removable storage unit 1218 in a well-known
manner. Removable storage unit 1218 represents a floppy disk,
magnetic tape, optical disk, etc., which is read by and written to
removable storage drive 1214. As will be appreciated, the removable
storage unit 1218 includes a computer usable storage medium having
stored therein computer software, data, or both.
[0067] The computer system 1200 also includes conventional hardware
such as a display 1230, a keyboard 1232, and a pointing device
1234. A digitizer 1236 and a camera 1238 can be used for capturing
images to process according to the present invention.
Alternatively, images can be retrieved from any of the
above-mentioned memory units, or via a communications interface
1224. In alternative embodiments, secondary memory 1210 may include
other similar means for allowing computer programs or other
instructions to be loaded into computer system 1200. Such means can
include, for example, a removable storage unit 1222 and an
interface 1220. Examples can include a program cartridge and
cartridge interface (such as that found in video game devices), a
removable memory chip (such as an EPROM, or PROM) and associated
socket, and other removable storage units 1222 and interfaces 1220
which allow software and data to be transferred from the removable
storage unit 1222 to computer system 1200.
[0068] The communications interface 1224 allows software and data
to be transferred between computer system 1200 and external devices
via communications path 1226. Examples of communications interface
1224 can include a modem, a network interface (such as an Ethernet
card), a communications port (e.g., RS-232), etc. Software and data
transferred via communications interface 1224 are in the form of
signals which can be electronic, electromagnetic, optical or other
signals capable of being received by communications interface 1224
via communications path 1226. Note that communications interface
1224 provides a means by which computer system 1200 can interface
to a network such as the Internet.
[0069] The present invention is described in terms of this example
environment. Description in these terms is provided for convenience
only. It is not intended that the invention be limited to
application in this example environment. In fact, after reading the
complete description, it will become apparent to a person skilled
in the relevant art how to implement the present invention in
alternative environments.
Software and Hardware Embodiments
[0070] The present invention is preferably implemented using
software running (that is, executing) in an environment similar to
that described above with respect to FIG. 12.
[0071] Computer programs (also called computer control logic) are
stored in main memory and/or secondary memory 1210. Computer
programs can also be received via communications interface 1224.
Such computer programs, when executed, enable the computer system
1200 to perform the features of the present invention as discussed
herein. In particular, the computer programs, when executed, enable
the processor 1204 to perform the features of the present
invention. Accordingly, such computer programs represent
controllers of the computer system 1200.
[0072] In an embodiment where the present invention is implemented
using software, the software may be stored in a computer program
product and loaded into computer system 1200 using removable
storage drive 1214, hard drive 1212 or communications interface
1224. Alternatively, the computer program product may be downloaded
to computer system 1200 over communications path 1226. The control
logic (software), when executed by the processor 1204, causes the
processor 1204 to perform the functions of the present invention as
described herein.
[0073] In another embodiment, the present invention is implemented
primarily in hardware using, for example, hardware components such
as application specific integrated circuits (ASICs). Implementation
of a hardware state machine so as to perform the functions
described herein will be apparent to persons skilled in the
relevant art(s).
CONCLUSION
[0074] The embodiments of the present invention as described herein
with respect to FIGS. 1-12 can be implemented in software,
firmware, hardware or a combination thereof. While various
embodiments of the present invention have been described above, it
should be understood that they have been presented by way of
example, and not limitation. It will be apparent to persons skilled
in the relevant art that various changes in form and detail can be
made therein without departing from the spirit and scope of the
invention. Thus, the present invention should not be limited by any
of the above-described exemplary embodiments, but should be defined
only in accordance with the following claims and their
equivalents.
* * * * *