U.S. patent application number 15/198236 was filed with the patent office on 2017-05-18 for collaboration database service in conjunction with productivity applications.
This patent application is currently assigned to MICROSOFT TECHNOLOGY LICENSING, LLC. The applicant listed for this patent is MICROSOFT TECHNOLOGY LICENSING, LLC. Invention is credited to Krista Bendig, Caoimhe Grace Dowling, Travis Eby, Joe Filcik, Gabriel Hall, Brian Jones, Mauricio Ordonez, Mark Peterson, Krunal Sheth, James Sturms, Kyle Zhang.
Application Number | 20170140047 15/198236 |
Document ID | / |
Family ID | 58690050 |
Filed Date | 2017-05-18 |
United States Patent
Application |
20170140047 |
Kind Code |
A1 |
Bendig; Krista ; et
al. |
May 18, 2017 |
COLLABORATION DATABASE SERVICE IN CONJUNCTION WITH PRODUCTIVITY
APPLICATIONS
Abstract
A collaboration database service allows end users to create and
collaborate on custom databases as any other type of productivity
content (presentations, word processing documents, spreadsheets,
etc.). Providing a more data centric experience rather than
formatting centric may allow for a malleable experience. The custom
entities the user defines may indicate how to best display the data
on various devices, what rules should be enforced, and what actions
need to be taken on behalf of the user. A collaboration database
service according to embodiments may not only provide easy creation
and sharing of various databases across devices, but also integrate
and interoperate with various productivity application workloads.
Each productivity application may play a unique role, and those
individual strengths may be highlighted in an example service to
bring the system together.
Inventors: |
Bendig; Krista; (Redmond,
WA) ; Hall; Gabriel; (Seattle, WA) ; Sturms;
James; (Redmond, WA) ; Ordonez; Mauricio;
(Redmond, WA) ; Peterson; Mark; (Redmond, WA)
; Jones; Brian; (Redmond, WA) ; Filcik; Joe;
(Redmond, WA) ; Eby; Travis; (Redmond, WA)
; Dowling; Caoimhe Grace; (Redmond, WA) ; Zhang;
Kyle; (Redmond, WA) ; Sheth; Krunal; (Redmond,
WA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
MICROSOFT TECHNOLOGY LICENSING, LLC |
Redmond |
WA |
US |
|
|
Assignee: |
MICROSOFT TECHNOLOGY LICENSING,
LLC
Redmond
WA
|
Family ID: |
58690050 |
Appl. No.: |
15/198236 |
Filed: |
June 30, 2016 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
62255515 |
Nov 15, 2015 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06F 16/176 20190101;
G06Q 10/101 20130101; G06F 3/0482 20130101; G06F 16/93 20190101;
G06F 40/177 20200101; G06F 40/18 20200101; G06F 16/252 20190101;
G06F 16/23 20190101; G06F 16/3322 20190101; G06F 16/951
20190101 |
International
Class: |
G06F 17/30 20060101
G06F017/30; H04L 29/06 20060101 H04L029/06; G06F 9/44 20060101
G06F009/44; H04L 29/08 20060101 H04L029/08; H04L 12/58 20060101
H04L012/58 |
Claims
1. A method to provide a collaboration database service, the method
comprising: receiving a request to create or edit data managed by
the collaboration database service through a table; providing a
suggestion to be displayed for entry into the table based on one or
more of existing data, a user context, and a device context;
storing the created or edited data in a collaboration database and
sharing the created or edited data with one or more applications to
be processed and displayed; and enabling rich data types to be used
in cells of the table and associated presentation formats to allow
optimized presentation and interactivity through the table.
2. The method of claim 1, further comprising: allowing definition
of a custom entity and integration of the custom entity into the
one or more applications such that interoperability with the one or
more applications is anchored around the custom entity.
3. The method of claim 1, further comprising: allowing
specification of a column type that joins into a productivity
workload.
4. The method of claim 1, further comprising: providing a public
application programming interface (API) to enable custom
applications to be built over the collaboration database
service.
5. The method of claim 1, further comprising: searching and
retrieving data external to the collaboration database for
automatic inclusion in the table based on data types.
6. The method of claim 1, further comprising: providing an option
to present the data in a card or stacked view format instead of the
table.
7. The method of claim 6, further comprising: receiving an input
indicating a current column and a target column are related; and
automatically stacking the current column and the target column in
the stacked view format.
8. The method of claim 1, further comprising: employing one or more
of column size optimization, column selection to present, and
visualizations to provide consistent presentation of data across
multiple platforms and multiple devices.
9. The method of claim 1, further comprising: enabling one or more
of linking of two tables, automatic roll-up, and summarization and
visualization of data from one table to another table.
10. The method of claim 1, further comprising: enabling roll-back
of changes to the data to a previous version at one or more of a
table level, a record level, and a field level.
11. The method of claim 10, further comprising: enabling roll-back
of changes made to the data by one or more collaborators to a
previous version through an activity feed.
12. A server to provide a collaboration database service, the
server comprising: a communication interface configured to
facilitate communication between the collaboration database service
and one or more other services; a memory configured to store
instructions; and one or more processors coupled to the memory, the
one or more processors configured to execute, in conjunction with
the instructions stored in the memory, a collaboration database
engine integrated with the collaboration database service, wherein
the collaboration database engine is configured to: receive a
request to create or edit data managed by the collaboration
database service through a table; provide a suggestion to be
displayed for entry into the table based on one or more of existing
data, a user context, a device context, and data retrieved from an
external source to a collaboration database; store the created or
edited data in the collaboration database such that the stored data
is shared with one or more applications to be processed and
displayed; enable sharing of the stored data with one or more users
through the displayed table; and enable rich data types to be used
in cells of the table and associated presentation formats to allow
optimized presentation and interactivity through the table.
13. The server of claim 12, wherein the collaboration database
engine is configured to enable sharing of the stored data with the
one or more users by allowing selection or input of the one or more
users in a sharing user interface, enabling insertion of a message,
and enabling selection of one or more limits on the shared
data.
14. The server of claim 12, wherein the collaboration database
engine is further configured to: enable simultaneous editing of the
stored data by multiple users.
15. The server of claim 14, wherein the collaboration database
engine is further configured to: provide a visualization of the
multiple users editing the stored data through the displayed
table.
16. The server of claim 15, wherein the collaboration database
engine is further configured to: enable initiation of a
communication with one or more of the multiple users through the
visualization.
17. The server of claim 16, wherein the collaboration database
engine is further configured to: enable commenting on each record
by the multiple users and maintain a threaded conversation.
18. A system to provide a collaboration database service in
conjunction with a productivity service, the system comprising: a
plurality of servers configured to execute one or more productivity
applications within the productivity service; and a database
management server configured to execute the collaboration database
service, wherein the database management server is configured to:
receive a request to create or edit data managed by the
collaboration database service through a table presented by one of
the one or more productivity applications; provide a suggestion to
be displayed for entry into the table based on one or more of
existing data, a user context, a device context, and data retrieved
from an external source to a collaboration database; store the
created or edited data in the collaboration database such that the
stored data is shared with the one or more productivity
applications to be processed and displayed; and enable rich data
types to be used in cells of the table and associated presentation
formats to allow optimized presentation and interactivity through
the table.
19. The system of claim 18, wherein the database management server
is further configured to: provide one or more of change
highlighting and an activity feed to enable keeping track of
changes to the stored date since a last time a user viewed the
collaboration database.
20. The system of claim 18, wherein the one or more productivity
applications include a word-processing application, a spreadsheet
application, a presentation application, and a notebook
application.
Description
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application is a non-provisional application under 35
U.S.C .sctn.119(e) of U.S. Provisional Application No. 62/255,515
filed on Nov. 15, 2015. The U.S. Provisional Application is herein
incorporated by reference in its entirety.
BACKGROUND
[0002] The nature of a database is unlike any other content in a
productivity environment. It is a collection of custom entities,
where rather than using formatting to conveying meaning, the user
can configure the actual semantics of the content. Databases are
typically not approachable to the average end user. Databases tend
not to be optimized for editing and sharing structured data at an
end user level.
SUMMARY
[0003] This summary is provided to introduce a selection of
concepts in a simplified form that are further described below in
the Detailed Description. This summary is not intended to
exclusively identify key features or essential features of the
claimed subject matter, nor is it intended as an aid in determining
the scope of the claimed subject matter.
[0004] Embodiments are directed to a collaboration database service
that may allow end users to create, edit, and share collaborative
content on custom databases. The collaboration database service may
receive a request to create or edit data managed by the
collaboration database service through a table. A suggestion may be
provided to be displayed for entry into the table based on one or
more of existing data, a user context, and a device context. The
created or edited data may be stored in a collaboration database
and shared with one or more applications to be processed and
displayed. The collaboration database service may also allow rich
data types to be used in cells of the table and associated
presentation formats to allow optimized presentation and
interactivity through the table.
[0005] These and other features and advantages will be apparent
from a reading of the following detailed description and a review
of the associated drawings. It is to be understood that both the
foregoing general description and the following detailed
description are explanatory and do not restrict aspects as
claimed.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] FIG. 1 includes an example network environment where a
collaboration database service in conjunction with productivity
applications may be implemented;
[0007] FIG. 2 includes an example infrastructure implemented for a
collaboration database service in conjunction with productivity
applications;
[0008] FIGS. 3A-C include user experiences illustrating addition of
a column to an example table and creation of links to a
corresponding data source in a collaboration database service;
[0009] FIG. 4 includes an example user experience illustrating
various data presentations on a table supported by a collaboration
database service;
[0010] FIGS. 5A-B include example user experiences for
collaboration features through a table presenting data associated
with a collaboration database service;
[0011] FIG. 6 includes an example user experience for presenting
underlying data in a card form;
[0012] FIGS. 7A-C include example user experiences displayed by a
mobile device illustrating table and card form presentation of data
associated with a collaboration database service;
[0013] FIG. 8 is a networked environment, where a system according
to embodiments may be implemented;
[0014] FIG. 9 is a block diagram of an example general purpose
computing device, which may be used to provide a collaboration
database service; and
[0015] FIG. 10 illustrates a logic flow diagram of a method to
provide a collaboration database service, according to
embodiments.
DETAILED DESCRIPTION
[0016] As briefly described above, a collaboration database service
that may allow end users to create and collaborate on custom
databases as any other type of productivity content (presentations,
word processing documents, spreadsheets, etc.). Providing a more
data centric experience rather than formatting centric may allow
for a malleable experience. The custom entities the user defines
may indicate how to best display the data on various devices, what
rules should be enforced, and what actions need to be taken on
behalf of the user. A collaboration database service according to
embodiments may not only provide easy creation and sharing of
various databases across devices, but also integrate and
interoperate with various productivity application workloads. Each
productivity application may play a unique role, and those
individual strengths may be highlighted in an example service to
bring the system together.
[0017] In the following detailed description, references are made
to the accompanying drawings that form a part hereof, and in which
are shown by way of illustrations, specific embodiments, or
examples. These aspects may be combined, other aspects may be
utilized, and structural changes may be made without departing from
the spirit or scope of the present disclosure. The following
detailed description is therefore not to be taken in a limiting
sense, and the scope of the present invention is defined by the
appended claims and their equivalents.
[0018] While some embodiments will be described in the general
context of program modules that execute in conjunction with an
application program that runs on an operating system on a personal
computer, those skilled in the art will recognize that aspects may
also be implemented in combination with other program modules.
[0019] Generally, program modules include routines, programs,
components, data structures, and other types of structures that
perform particular tasks or implement particular abstract data
types. Moreover, those skilled in the art will appreciate that
embodiments may be practiced with other computer system
configurations, including hand-held devices, multiprocessor
systems, microprocessor-based or programmable consumer electronics,
minicomputers, mainframe computers, and comparable computing
devices. Embodiments may also be practiced in distributed computing
environments where tasks are performed by remote processing devices
that are linked through a communications network. In a distributed
computing environment, program modules may be located in both local
and remote memory storage devices. Some embodiments may be
implemented as a computer-implemented process (method), a computing
system, or as an article of manufacture, such as a computer program
product or computer readable media. The computer program product
may be a computer storage medium readable by a computer system and
encoding a computer program that comprises instructions for causing
a computer or computing system to perform example process(es). The
computer-readable storage medium is a computer-readable memory
device. The computer-readable storage medium can for example be
implemented via one or more of a volatile computer memory, a
non-volatile memory, a hard drive, a flash drive, a floppy disk, or
a compact disk, and comparable hardware media.
[0020] Throughout this specification, the term "platform" may be a
combination of software and hardware components for a collaboration
database service. Examples of platforms include, but are not
limited to, a hosted service executed over a plurality of servers,
an application executed on a single computing device, and
comparable systems. The term "server" generally refers to a
computing device executing one or more software programs typically
in a networked environment. However, a server may also be
implemented as a virtual server (software programs) executed on one
or more computing devices viewed as a server on the network. More
detail on these technologies and example operations is provided
below.
[0021] The technical advantages of providing a collaboration
database service may include, among others, increased security and
efficiency in user interaction and data management, reduced
processing and network bandwidth usage, and improved user
interaction by allowing users to create, edit, and view richer,
faster, and more secure data without having to learn or work with
complex database systems in addition to other aspects described
herein.
[0022] FIG. 1 includes an example network environment where a
collaboration database service in conjunction with productivity
applications may be implemented.
[0023] As illustrated in diagram 100, an example system may include
a datacenter 112 hosting a collaboration database service 114
configured to enable creation and collaboration of content on
custom databases. The datacenter 112 may include one or more
processing servers 116, of which, at least one may be operable to
execute a collaboration database engine 118 of the collaboration
database service 114, among other components. The datacenter 112
may also include one or more storage servers 120 configured to
manage one or more data stores comprising data associated with the
collaboration database engine 118. As described herein, the
collaboration database engine 118 may be implemented as software,
hardware, or combinations thereof.
[0024] In some embodiments, the collaboration database service 114
may be configured to integrate and interoperate with various
applications. For example, as illustrated in the diagram 100, a
customer 104 may execute a thin (e.g., a web browser) or a thick
(e.g., a locally installed client application) version of an
application 106 through a device 102 with which the collaboration
database service 114 may be configured to integrate and
interoperate with over one or more networks, such as network 110.
The application 106 may be a productivity application, such as a
word-processing application, a spreadsheet application, a
presentation application, or a notebook application, for example,
such that collaborative content created through the productivity
application may be shared, presented, and edited through the
collaboration database service 114. Alternatively, the application
106 may be an application hosted by the collaboration database
service (a collaboration database application, for example). The
device 102 may include a desktop computer, a laptop computer, a
tablet computer, a vehicle mount computer, a smart phone, or a
wearable computing device, among other similar devices. A
communication interface may facilitate communication between the
collaboration database service 114 and the application 106 over the
network 110.
[0025] In one embodiment, the collaboration database engine 118 may
be configured to detect creation of a new table through the
application 106. In another embodiment, the collaboration database
engine 118 may be configured to detect modification of an existing
table through the application 106, where the application 106 may
have retrieved the existing table from local storage 108 of the
device 102, from the data stores managed by the storage servers
120, and/or from third party storage services. The table may
include one or more rows and columns producing a plurality of cells
within the table, where the rows and columns may be entities of the
table. The customer 104 may be enabled to easily add new columns
(or rows), select data types for the newly created columns, and
populate new cells. Table data may be presented through a number of
user-friendly approaches and interactivity may be provided through
use of rich data types. Furthermore, table based or card based data
presentation may be maintained consistently across platforms and
devices. Embodiments are not limited to table or card based views.
Other views that may be used to present underlying collaboration
database data consistently across platforms and devices may include
carousel view, map view, and comparable ones.
[0026] According to other embodiments, the collaboration database
service 114 may allow end users to create and collaborate on custom
databases as any other type of productivity content (presentations,
word processing documents, spreadsheets, etc.). The nature of a
database is unlike any other content in a productivity environment.
It is a collection of custom entities, where rather than using
formatting to conveying meaning, the user can configure the actual
semantics of the content. Databases are typically not approachable
to the average end user. Databases tend not to be optimized for
editing and sharing structured data at an end user level. Providing
a more data centric experience rather than formatting centric may
allow for a desirable experience. The custom entities the user
defines may indicate how to optimally gather, enter, and display
the data on various devices, what rules should be enforced, and
what actions need to be taken on behalf of the user. The custom
entities may further define how the underlying data may relate to
other similar entities to allow such things as autofill,
suggestions, and autocomplete.
[0027] In some examples, the collaboration database engine 118 may
be configured to retrieve data associated with the fields from
other services associated with the collaboration database service
114 through the communication interface in order to automatically
populate each cell. The other services may include a database
service, a Global Positioning Service (GPS), a scheduling service,
and a presence service, for example. In an example scenario, the
table may represent travel data associated with employees of a
company attending a client conference. The table may include, among
other columns associated with accommodations and travel details, a
column regarding a status of each employee's flight, where the data
may be represented by a set of symbols and associated text
including "at starting location," "in route", and "at destination
location," for example. The collaboration database engine 118 may
be configured to retrieve data from a GPS coupled to each
employees' device in order to populate each cell with a status of
the respective employee's flight.
[0028] Once the collaboration database engine 118 has provided a
table for display and/or following a modification of the table, the
table may be stored locally at local storage 108 of the device 102
and/or remotely at the data stores managed by the storage servers
120, or by third party storage services. The collaboration database
engine 118 may also be configured to share a copy of the table with
other customers 122 who may be collaborating on the content of the
table with the customer 104 through various devices 124 associated
with the other customers 122.
[0029] The collaboration database service according to embodiments
may not only provide easy creation and sharing of content across
devices, but may also integrate and interoperate with various
productivity application workloads such that collaborative content
created through the productivity application may be shared,
presented, and edited through the collaboration database service.
Each productivity application may play a unique role, and those
individual strengths may be highlighted in an example service to
bring the system together. For example, databases are typically not
approachable to an average user, however the average user may
already be familiar and comfortable interacting with a productivity
application to create, edit, and share data. Therefore, the
collaboration database service may improve user interactivity by
allowing users to create, edit, and view richer, faster, and more
secure data without having to learn or work with complex database
systems.
[0030] Embodiments, as described herein, address a need that arises
from very large scale of operations created by software-based
services that cannot be managed by humans. The actions/operations
described herein are not a mere use of a computer, but address
results of a system that is a direct consequence of software used
as a service offered in conjunction with large numbers of
applications to enable creating, editing, and sharing content among
customers in collaborative environments.
[0031] FIG. 2 includes an example infrastructure implemented for a
collaboration database service in conjunction with productivity
applications.
[0032] As shown in a diagram 200, a collaboration database service
202 may be provided to enable creation and collaboration of content
on custom databases. The collaboration database service 202 may
also integrate and/or interoperate with a productivity application
214 such that collaborative content created through the
productivity application 214 may be shared, presented, and edited
through the collaboration database service 202. The integration
and/or interoperation between the collaboration database service
202 and the productivity application 214 may be enabled through a
client software development kit (SDK) 206. In one example, the
client SDK 206 may implement one or more application programming
interfaces (APIs) 204 of the collaboration database service 202 to
communicate with the productivity application 214 to achieve
integration and/or interoperation.
[0033] In an example scenario, the collaboration database engine
205 of the collaboration database service 202 may detect creation
and/or modification of a table 208 through the productivity
application 214. For example, a user may be creating a new table to
be shared and/or edited in a collaborative environment or the user
may be modifying an already existing table. The table 208 may
include one or more columns and rows, where the columns and rows
may be configured as entities 210 of the table. The collaboration
database engine 205 may also be configured to share a copy of the
table 208 with other customers who may be collaborating on the
content of the table 208 with the customer through various devices
associated with the other customers.
[0034] An aspect of databases is that each row in the database may
have its own lifecycle, version history, and permissions. In an
example scenario, candidates coming through an interview management
system may be tracked at a company. The information for each
candidate may be accessible to and managed by different groups of
people. While the database may contain thousands of candidates who
have come through the pipeline, it may be unlikely that anyone
would view all of the data at once. Instead, properties like "team"
and "interview date" may determine which recruits an individual may
want to see when they open the table, and the "status" property may
define who should be notified when the "status" changes. For
typical users interacting with the database, each row or entity may
be of greater meaning to them than the database as a whole. This is
not typically the case with cells in a spreadsheet, paragraphs in a
document, or even slides in a presentation.
[0035] One example capability of a collaboration database service
according to embodiments may include highlighting the workloads,
where the system may allow users to define custom entities, and
work with each productivity application on how these entities may
integrate with their product to highlight their core strengths.
Interoperability may be anchored around these custom entities
rather than formatted text (e.g., a list of interview candidates
may be a table in a spreadsheet application, but presented as a
collection of slides in a presentation application). Another
example capability may include joining the workloads. The key to
any database is the type of columns one can define, and the
capabilities that come with those columns. An example collaboration
database service may allow the user to specify column types that
are essentially joins or look-ups into other productivity workloads
(e.g., a list of candidates with a network storage column to store
their resumes, or a calendar column to schedule the
interviews).
[0036] A collaboration database service according to embodiments
may allow end users to quickly define and adapt their schemas to
match their business process. A client application of the
collaboration database service may be available across multiple
devices and may include integrated custom forms and logic
experiences over that data. The client application, the custom
forms, and other productivity integrations may go through publicly
documented APIs, and an array of SDKs and open source projects may
enable an ecosystem to build other custom applications on top of
the collaboration database service.
[0037] The prioritization around public APIs for interoperability
may allow a rich ecosystem, as well as help take advantage of the
other productivity workloads. A lightweight form building
experience and custom logic may be provided at both the transaction
layer as well as the orchestration layer with connections to
productivity applications, so that a business analyst, for example,
can build custom mobile applications and logic applications on top
of that data.
[0038] The following scenarios are illustrative examples: (1) Asset
Tracking--People may want to quickly define a table for what they
are tracking, and send it out to one or more people to help fill in
the data. It may be like a survey where one designates a group of
people to each provide an answer, or it may be longer running,
where people are constantly adding new entries and editing
existing. Examples: tree inventory; t-shirt sizes of everyone on
the team; team hardware tracking; travel preferences; product
sign-off for public release, etc. (2) Knowledge base--A table to
capture interesting information and have discussions around the
information. The table may be viewed as a long running collection
of content, and discovery is highly valued. Many users may just
consume, and not contribute content. Social features like
commenting and "likes"/voting may be highly valuable. "Ownership"
and "status" of a row in the table is common, where someone is
tasked with completing the fields for that row, and signs off when
done. Examples: FAQ; Best Practices; Code Samples; API
Documentation; Talking Points; Product Descriptions; places to
visit; reading list; conferences to attend; cool tech; compete
investigations; hardware recommendations (laptops; pcs; phones);
reading lists; favorite authors; great mentors; inspirational
quotes, etc. (3) Decision Making--The data may be much more
ephemeral. A table to capture interesting information and have
discussions around the information. Everyone may be encouraged to
participate, at a minimum contributing feedback via social features
like commenting and "likes"/voting. Examples: Ideation/product
ideas; classroom survey; where do we want to go for lunch; morale
event ideas; demo day signup, etc. (4) People Centric Processes--a
table centered around people. The people often may not be in the
organization (or directory service), but knowledge that they are a
person with contact info, etc. may be of value. A status may be
assigned to the person depending on where they are in the process,
and smart rules may be applied based on updates to the status
(notifications, etc.). Examples: university recruiting; managing
who goes where for a re-org; performance reviews; team ownership
areas; partner contact (who owns which partner relationship);
region ownership (who owns which region); patterns & practice
owner; etc. (5) Document-centric processes--Similar to people
centric process, but a document may be the focus. The value of
using a table may be that fields common across the collection of
documents (like status), can be tracked and used to better organize
and route the documents through workflows. Examples: spec library;
patent applications; legal case management; drug applications;
RFPs; sales proposals; etc.
[0039] FIGS. 3A-C include user experiences illustrating addition of
a column to an example table and creation of links to a
corresponding data source in a collaboration database service.
[0040] As previously discussed, a collaboration database service
may be provided to enable creation and collaboration of content on
custom databases, where the collaboration database service may
include a collaboration database engine. The content may be
displayed through an application associated with the collaboration
database service that is executed on a user device to enable
interactivity with the content. The user device may have one or
more input device(s) such that the user may interact with the
content through a keyboard input, a mouse input, a pen input, a
touch, an optically captured gesture, a voice input, a gyroscopic
input, and/or an eye-tracking input, for example.
[0041] As shown in diagram 300A of FIG. 3A, the collaboration
database service may allow creation and modification of tables such
as table 302 (Sales Leads) with the data being stored and managed
by the collaboration database. The original table may include a
single column 304 (companies). A user may be enabled to add another
column with a single click or gesture by activating the add column
control 306. Upon activation of the add column control 306, a
pop-up menu 308 may be displayed allowing the user to select among
available data types such as checkboxes, dates, numbers, text,
people, etc. The new column's data types may be provided through
other means too such as a radial menu, a drop-down menu, or a
fly-out menu etc. By allowing the user to select the data type for
the new column, the collaboration database service may undertake a
number of tasks in preparing enhanced interaction for the user.
[0042] For example, the user may select "people" data type for the
new column 310 as shown in diagram 300B of FIG. 3B. A system
according to embodiments may enable use of rich data to enhance
data presentation, entry, and interaction. Thus, the user may be
provided with tools to enter the data for the individual cells
easily such as pop-up contact cards or lists based on detection of
first few letters of names in the cells. In addition, the
collaboration database engine may contact local or external sources
and retrieve information associated with the people whose names are
entered in the cells.
[0043] As shown in diagram 300C of FIG. 3C, images of the people in
the cells of the filled out new column 312 (Account
Representatives) may be displayed based on data retrieved by the
collaboration database engine. Other information (e.g., email
addresses, phone numbers, mailing addresses, and comparable ones)
may also be provided depending on space availability, user
configuration, inference based prioritization, etc.
[0044] Data associated with the new column 312 may be retrieved
from one or more local and external data stores such as directory
server 320. The user may enter the data by typing into the cells
(with the aid of autocomplete or suggestion lists) or inputting
through other means such as drag and drop operations. Each new
column type may also introduce new features around these new
semantics, like smarter sorting/filtering, new views, smart layout,
automatic logic and workflows, etc. Other types of data such as
trends, choices, text, Boolean parameters, etc. may be presented
with corresponding functionality for data entry and
interactivity.
[0045] FIG. 4 includes an example user experience illustrating
various data presentations on a table supported by a collaboration
database service.
[0046] A range of smart visualizations of data may be provided to
increase readability and user engagement. For example, users may be
given a wide range of icons or similar graphics to increase the
readability and polish of their data. Symbols may also allow the
data to present on small screens, for example. The symbols may be
glyphs and/or emojis of varying shapes, sizes, colors, patterns,
and types, as illustrated in diagram 400.
[0047] Diagram 400 includes an example table for sales leads with
column 402 listing the customers, column 404 listing the account
representatives, column 406 listing the status of each account,
column 408 listing a size of each account, column 410 including
attachment or a link to sales pitch presentations for each account,
and a column listing comments associated with each account. The
collaboration database service may interact with and employ
different applications for the different data types displayed. For
example, the presentations may activate a presentation application
upon selection and comments may be retrieved from a communication
application. The smart visualizations of data to increase
readability and user engagement may include symbols 414 and 416
representing account status and account size data (along with
textual qualifiers), images 412 of people in column 404, and
similar ones. Various coloring, graphical, shading, and other
schemes may be used in conjunction with the symbols. In some
embodiments, the symbols may be animated.
[0048] FIGS. 5A-B include example user experiences for
collaboration features through a table presenting data associated
with a collaboration database service.
[0049] In a system according to embodiments, users may be able to
easily share the database with others either via individual
addressing or by addressing to the various people columns in the
table. For example, in diagram 500A, the user may be able to
address the table 502 to the people in the Account Rep people
column 504. By activating a share or collaboration control (that
may be part of the user interface or a particular touch/gesture
action), a share user interface 506 may be displayed allowing the
user to select among groups (e.g., the Account Rep people column
504, a list of people, or another column), add a message 510, and
select options associated with sharing such as sending the sharing
invite as an email.
[0050] Users may also be able to simultaneously edit the database.
This may include multiple users being able to edit a single
database record at once. The location of each user may be
visualized in the database as shown in diagram 500B. An indicator
522 may display how many people are currently editing the database.
In some examples, representations (e.g., icons or images) of the
people editing the database may be interactive. For example,
hovering on or clicking on the representations may result in
displaying information associated with the corresponding people or
initiating communication (e.g., email, audio/video call, instant
messaging, etc.) with them.
[0051] In addition, records that are currently being edited may be
indicated as such on the table. For example, records 524 are
indicated as being currently edited by three different people. In
yet other examples, past edit information may also be visually
provided. For example, the comments record shown as being edited by
user Jane Doe includes an indicator 526, which may indicate that
there are four other edits on that record (i.e., four other
comments). Change highlighting and an activity feed may make it
easy to keep track of what has changed since the last time a user
viewed the database. Notifications sent to phone and email may make
it easy to keep track of updates when the user is not looking at
the database.
[0052] Moreover, users may be able to comment on each record
individually and have threaded conversations. Presence of comments
may be visualized in the top level of the table. In addition to
offering real-time collaboration, the collaboration database
service may also enable social interaction through @ mentions of
people, hashtags for subjects, and/or conversations about a row.
The collaboration database service may leverage a productivity
suite's diverse reporting capabilities. Client applications that
may access collaboration database service data may include
spreadsheet applications, word processing applications, database
applications, and presentation applications.
[0053] Other aspects of a collaboration database service may
include richer data types in spreadsheets. Any collaboration
database service table may be able to serve as an addressable rich
data type in a spreadsheet application, where one can point a
column in a spreadsheet to collaboration database service, fill out
the name of the collaboration database service item, and then
address any of the custom data types through spreadsheet formulas.
Smart tags may be used in word processing. Any collaboration
database service table may be able to serve as a collection of
terms to be recognized using the smart tag technology. Hovering
over a term may show a card view for the details of that row in the
collaboration database service. Surveys and forms of communication
applications may also be supported. A custom survey or a form that
is part of a business process where the data is defined and stored
in the collaboration database service, and as part of the workflow,
may result in people being notified via email. People may also
directly fill out the form and submit the results without leaving a
communication application.
[0054] In addition to the collaboration database service serving as
a universal currency across productivity workloads, it may also
allow users to bring data from those workloads as custom column
types, allowing a "join" across the different productivity
datatypes. This may work both for productivity data like mail,
calendar, files, and tasks, as well as external data like business,
CRM, professional networking data, etc. Following are a few example
scenarios.
[0055] Network storage--Tree Inventory Scenario--Each tree may have
a picture uploaded, so the field worker using a collaboration
database service mobile app can take a picture of each tree they
add. The collaboration database service "image" column type may
actually store pictures in the network storage for the user or
group. Tasks--Ideation Scenario--Each idea that is deemed worth
deeper investigation may be assigned to an owner. That owner may
have a task assigned to them that is linked with the row in the
collaboration database service representing that idea. Directory
Service--University Recruiting--Each candidate has a recruiter
assigned to them, which is specified in a "person" column. That
column may be tied into a directory and leverage the existing
productivity controls to help pick the right user/group to assign
to that candidate. Planner--Spec Library--The team may want to flip
into an experience where they can better manage the various stages
each spec goes through.
[0056] FIG. 6 includes an example user experience for presenting
underlying data in a card form.
[0057] A series of smart visualizations may be provided including a
grid that is auto sized to maximize read-ability of content as well
as alternatives to grid view such as card layouts, Kanban view,
carousel view, map view, and comparable ones. Going beyond just
simply linking to related documents, the documents may be shown
directly inline in the interface for easy in place viewing and
reading. For example, in diagram 600, the user can see the sales
pitch presentation 606 associated with the Margie's Travel record
602 while viewing the other details of the record such as simple
data fields 604 and comments list 608. Next and previous buttons
may allow the user to navigate the presentation 606 directly from
the record browser. Thus, the card view as shown in diagram 600 may
allow user friendly presentation of subsets of underlying data
(e.g., rows), where data fields of different data types may be
presented accordingly.
[0058] According to some embodiments, users may be able to link two
tables together as well as automatically roll-up, summarize and
visualize data from one table to another. For example, a "Current"
column may summarize the score values of the usability tasks table.
Records may be correlated based on primary key.
[0059] Internally, the collaboration database service may offer
logic in the form of rich column types that handle common logic
scenarios such as status column and rules around it. Additional
internal capabilities may include logic such as validation rules.
Other, flexible and scalable, logic external to the collaboration
database service may also be used. Spreadsheet surveys may be
expanded into a lightweight, declarative forms story that may run
anywhere. Access to diverse external data sources and joining
between them may be offered on the client application. On the
collaboration database service, data may surface in a structured
format (e.g., Microsoft Graph by Microsoft Corp. of Redmond,
Wash.), allowing relationships to be expressed between it and other
content in the graph, including users, files, mail and
calendar.
[0060] In further embodiments, capabilities may be offered through
a rich set of APIs, empowering developers. Both first and third
parties may use the same collaboration database service APIs, which
may encompass defining tables, reading and updating data,
permissions, real-time notifications and more. The collaboration
database service APIs may be presented through structured format,
which may handle unifying security across productivity workloads
and allow expressing relationships between them. A client toolkit
may simplify authoring clients that talk to the collaboration
database service for non-trivial tasks such as buffering reads and
updates in a local view and auto-merging real-time changes into
it.
[0061] In yet other embodiments, a web control may offer the
capabilities of the collaboration database service grid for
embedding in other web pages. Other controls may be used to
implement the client application, such as the People and Files
controls, which may be made available for use in other applications
and general web development scenarios. Data may be indexed for
search. Since the data used by the collaboration database service
may have schema with relationships, data analysis applications and
services may draw inferences from that data that are not expressed
in any other way in a productivity suite, making the analysis
services more relevant. Users may further be provided with the
ability to roll back their data to previous versions. This may be
possible with at the table, record, and field level. Users may be
able to undo the changes of others via the activity feed.
[0062] FIGS. 7A-C include example user experiences displayed by a
mobile device illustrating table and card form presentation of data
associated with a collaboration database service.
[0063] A collaboration database service comprising a collaboration
database engine may be provided to enable creation and
collaboration of content on custom databases. The content may be
displayed through an application associated with the collaboration
database service that is executed on a user device, such as a
mobile device as shown in diagrams 700A-C, to enable interactivity
with the content. The mobile device may have one or more input
device(s) such that the user may interact with the content through
a pen input, a touch, an optically captured gesture, a voice input,
a gyroscopic input, and/or an eye-tracking input, for example.
[0064] According to some embodiments, column optimization
techniques may be employed to optimize content and size of
displayed columns. For example, the customer column 702 may be
selected as default to provide the list of customers. The next
column to display (status column 704) may be selected based on user
or data context (e.g., if the user is looking for summary
information or based on user credentials and/or changes in the
underlying data the status column 704 may be deemed the appropriate
one to display). Other techniques may include data enriching
techniques such as use of symbols, coloring or graphics schemes,
text shrinking and comparable ones.
[0065] As described above, a card format may also be used to
display a subset of the data along with a table view. Thus, a
control 706 for selecting between table (or grid) view and a card
view may be provided. Upon selection of the card view (708) as
shown in diagram 700A, the card view of a subset of the data in the
table may be displayed as shown in diagram 700B. The subset (or
row) may be selected based on a user selection or in order of
appearance. The example card view 712 is for the first row of data
in the table of diagram 700A. Card views of other rows may be
presented in response to a user action such as a swipe action 720.
The card view may display individual fields with simple data 714,
while fields containing more complex data such as a presentation
attachment may be displayed with a preview 716. Yet other fields
such as comments 718 may be presented in a list form, where the
user may be able to scroll through the data (i.e., comments).
[0066] Diagram 700C shows another subset of the data in card view
corresponding to the second row of the table in diagram 700A in
response to the swipe action 720. The card view includes the simple
data fields 724, the preview of pitch presentation 726, and the
list of comments 728.
[0067] The examples provided in FIGS. 1 through 7C are illustrated
with specific systems, services, applications, engines, and user
experience configurations. Embodiments are not limited to
environments according to these examples. A collaboration database
service may be implemented in environments employing fewer or
additional systems, services, applications, engines, and user
experience configurations. Furthermore, the example systems,
services, applications, engines, and user experience configurations
shown in FIG. 1 through 7C may be implemented in a similar manner
with other values using the principles described herein.
[0068] FIG. 8 is a networked environment, where a system according
to embodiments may be implemented. In addition to locally installed
applications (for example, application 106), a collaboration
database engine may also be employed in conjunction with hosted
applications and services (for example, a productivity or
collaboration database application and/or a collaboration database
service) that may be implemented via software executed over one or
more servers 806 or individual server 808, as illustrated in
diagram 800. A hosted service or application may communicate with
client applications on individual computing devices such as a
handheld computer 801, a desktop computer 802, a laptop computer
803, a smart phone 804, a tablet computer (or slate), 805 (`client
devices`) through network(s) 810 and control a user interface
presented to users.
[0069] Client devices 801-805 are used to access the functionality
provided by the hosted service or application. One or more of the
servers 806 or server 808 may be used to provide a variety of
services as discussed above. Relevant data may be stored in one or
more data stores (e.g. data store 814), which may be managed by any
one of the servers 806 or by database server 812.
[0070] Network(s) 810 may comprise any topology of servers,
clients, Internet service providers, and communication media. A
system according to embodiments may have a static or dynamic
topology. Network(s) 810 may include a secure network such as an
enterprise network, an unsecure network such as a wireless open
network, or the Internet. Network(s) 810 may also coordinate
communication over other networks such as PSTN or cellular
networks. Network(s) 810 provides communication between the nodes
described herein. By way of example, and not limitation, network(s)
810 may include wireless media such as acoustic, RF, infrared and
other wireless media.
[0071] Many other configurations of computing devices,
applications, engines, data sources, and data distribution systems
may be employed for a collaboration database service. Furthermore,
the networked environments discussed in FIG. 8 are for illustration
purposes only. Embodiments are not limited to the example
applications, engines, or processes.
[0072] FIG. 9 is a block diagram of an example general purpose
computing device, which may be used to provide a collaboration
database service.
[0073] For example, computing device 900 may be used as a server,
desktop computer, portable computer, smart phone, special purpose
computer, or similar device. In an example basic configuration 902,
the computing device 900 may include one or more processors 904 and
a system memory 906. A memory bus 908 may be used for communicating
between the processor 904 and the system memory 906. The basic
configuration 902 is illustrated in FIG. 9 by those components
within the inner dashed line.
[0074] Depending on the desired configuration, the processor 904
may be of any type, including but not limited to a microprocessor
(ftP), a microcontroller (ftC), a digital signal processor (DSP),
or any combination thereof. The processor 904 may include one more
levels of caching, such as a level cache memory 912, one or more
processor cores 914, and registers 916. The example processor cores
914 may (each) include an arithmetic logic unit (ALU), a floating
point unit (FPU), a digital signal processing core (DSP Core), or
any combination thereof. An example memory controller 918 may also
be used with the processor 904, or in some implementations the
memory controller 918 may be an internal part of the processor
904.
[0075] Depending on the desired configuration, the system memory
906 may be of any type including but not limited to volatile memory
(such as RAM), non-volatile memory (such as ROM, flash memory,
etc.) or any combination thereof. The system memory 906 may include
an operating system 920, a collaboration database service 922, and
program data 924. The collaboration database service 922 may
include a collaboration database engine 926, which may be an
integrated module of the collaboration database service 922. The
collaboration database engine 926 may be configured to detect
creation or modification of a table through an application
associated with the collaboration database service 922, where the
table may be comprised of columns and rows that may be entities of
the table. The program data 924 may include, among other data,
process data 928, such as the content contained within entities and
sub-entities of the table, as described herein.
[0076] The computing device 900 may have additional features or
functionality, and additional interfaces to facilitate
communications between the basic configuration 902 and any desired
devices and interfaces. For example, a bus/interface controller 930
may be used to facilitate communications between the basic
configuration 902 and one or more data storage devices 932 via a
storage interface bus 934. The data storage devices 932 may be one
or more removable storage devices 936, one or more non-removable
storage devices 938, or a combination thereof. Examples of the
removable storage and the non-removable storage devices include
magnetic disk devices such as flexible disk drives and hard-disk
drives (HDDs), optical disk drives such as compact disk (CD) drives
or digital versatile disk (DVD) drives, solid state drives (SSD),
and tape drives to name a few. Example computer storage media may
include volatile and nonvolatile, removable and non-removable media
implemented in any method or technology for storage of information,
such as computer readable instructions, data structures, program
modules, or other data.
[0077] The system memory 906, the removable storage devices 936 and
the non-removable storage devices 938 are examples of computer
storage media. Computer storage media includes, but is not limited
to, RAM, ROM, EEPROM, flash memory or other memory technology,
CD-ROM, digital versatile disks (DVDs), solid state drives, or
other optical storage, magnetic cassettes, magnetic tape, magnetic
disk storage or other magnetic storage devices, or any other medium
which may be used to store the desired information and which may be
accessed by the computing device 900. Any such computer storage
media may be part of the computing device 900.
[0078] The computing device 900 may also include an interface bus
940 for facilitating communication from various interface devices
(for example, one or more output devices 942, one or more
peripheral interfaces 944, and one or more communication devices
946) to the basic configuration 902 via the bus/interface
controller 930. Some of the example output devices 942 include a
graphics processing unit 948 and an audio processing unit 950,
which may be configured to communicate to various external devices
such as a display or speakers via one or more A/V ports 952. One or
more example peripheral interfaces 944 may include a serial
interface controller 954 or a parallel interface controller 956,
which may be configured to communicate with external devices such
as input devices (for example, keyboard, mouse, pen, voice input
device, touch input device, etc.) or other peripheral devices (for
example, printer, scanner, etc.) via one or more I/O ports 958. An
example communication device 946 includes a network controller 960,
which may be arranged to facilitate communications with one or more
other computing devices 962 over a network communication link via
one or more communication ports 964. The one or more other
computing devices 962 may include servers, computing devices, and
comparable devices.
[0079] The network communication link may be one example of a
communication media. Communication media may typically be embodied
by computer readable instructions, data structures, program
modules, or other data in a modulated data signal, such as a
carrier wave or other transport mechanism, and may include any
information delivery media. A "modulated data signal" may be a
signal that has one or more of its characteristics set or changed
in such a manner as to encode information in the signal. By way of
example, and not limitation, communication media may include wired
media such as a wired network or direct-wired connection, and
wireless media such as acoustic, radio frequency (RF), microwave,
infrared (IR) and other wireless media. The term computer readable
media as used herein may include both storage media and
communication media.
[0080] The computing device 900 may be implemented as a part of a
general purpose or specialized server, mainframe, or similar
computer that includes any of the above functions. The computing
device 900 may also be implemented as a personal computer including
both laptop computer and non-laptop computer configurations.
[0081] Example embodiments may also include methods to provide a
collaboration database service. These methods can be implemented in
any number of ways, including the structures described herein. One
such way may be by machine operations, of devices of the type
described in the present disclosure. Another optional way may be
for one or more of the individual operations of the methods to be
performed in conjunction with one or more human operators
performing some of the operations while other operations may be
performed by machines. These human operators need not be collocated
with each other, but each can be only with a machine that performs
a portion of the program. In other embodiments, the human
interaction can be automated such as by pre-selected criteria that
may be machine automated.
[0082] FIG. 10 illustrates a logic flow diagram of a method to
provide a collaboration database service, according to
embodiments.
[0083] Process 1000 may be implemented on a computing device,
server, or other system. An example system may include a server
configured to execute a collaboration database service provided to
enable creation and collaboration of content on custom databases.
The server may include, among other components, one or more
processors configured to execute a collaboration database engine of
the collaboration database service. The collaboration database
service may also integrate and/or interoperate with a productivity
application that is being executed on a device associated with a
customer such that the customer may create collaborative content
through the productivity application that may be shared and edited
through the collaboration database service.
[0084] Process 1000 begins with operation 1010, where a user action
to create or edit data in a table associated with a collaboration
database service may be detected. At operation 1020, suggestions
may be provided for content in the table based on existing data,
user context, and/or device context. The updated or created data
may be stored in a collaboration database and shared with
productivity applications at operation 1030 for further processing
and presentation of the underlying data. At operation 1040, rich
data types may be allowed to be used in columns/rows and associated
user interface entities such as card view presentations to provide
an enhanced and interactive user experience.
[0085] The operations included in process 1000 are for illustration
purposes. A collaboration database service may be implemented by
similar processes with fewer or additional steps, as well as in
different order of operations using the principles described
herein. The operations described herein may be executed by one or
more processors operated on one or more computing devices, one or
more processor cores, specialized processing devices, and/or
general purpose processors, among other examples.
[0086] According to examples, a means for providing a collaboration
database service is described. The means may include a means for
receiving a request to create or edit data managed by the
collaboration database service through a table; a means for
providing a suggestion to be displayed for entry into the table
based on one or more of existing data, a user context, and a device
context; a means for storing the created or edited data in a
collaboration database and sharing the created or edited data with
one or more applications to be processed and displayed; and a means
for enabling rich data types to be used in cells of the table and
associated presentation formats to allow optimized presentation and
interactivity through the table.
[0087] According to some examples, a method to provide a
collaboration database service is described. The method may include
receiving a request to create or edit data managed by the
collaboration database service through a table; providing a
suggestion to be displayed for entry into the table based on one or
more of existing data, a user context, and a device context;
storing the created or edited data in a collaboration database and
sharing the created or edited data with one or more applications to
be processed and displayed; and enabling rich data types to be used
in cells of the table and associated presentation formats to allow
optimized presentation and interactivity through the table.
[0088] According to other examples, the method may also include one
or more of: allowing definition of a custom entity and integration
of the custom entity into the one or more applications such that
interoperability with the one or more applications is anchored
around the custom entity; allowing specification of a column type
that joins into a productivity workload; providing a public
application programming interface (API) to enable custom
applications to be built over the collaboration database service;
searching and retrieving data external to the collaboration
database for automatic inclusion in the table based on data types;
and/or providing an option to present the data in a card or stacked
view format instead of the table.
[0089] According to further examples, the method may also include
receiving an input indicating a current column and a target column
are related; and automatically stacking the current column and the
target column in the stacked view format. The method may further
include employing one or more of column size optimization, column
selection to present, and visualizations to provide consistent
presentation of data across multiple platforms and multiple
devices. The method may yet include enabling one or more of linking
of two tables, automatic roll-up, and summarization and
visualization of data from one table to another table; enabling
roll-back of changes to the data to a previous version at one or
more of a table level, a record level, and a field level; and/or
enabling roll-back of changes made to the data by one or more
collaborators to a previous version through an activity feed.
[0090] According to other examples, a server to provide a
collaboration database service is described. The server may include
a communication interface configured to facilitate communication
between the collaboration database service and one or more other
services; a memory configured to store instructions; and one or
more processors coupled to the memory, the one or more processors
configured to execute, in conjunction with the instructions stored
in the memory, a collaboration database engine integrated with the
collaboration database service. The collaboration database engine
may be configured to receive a request to create or edit data
managed by the collaboration database service through a table;
provide a suggestion to be displayed for entry into the table based
on one or more of existing data, a user context, a device context,
and data retrieved from an external source to a collaboration
database; store the created or edited data in the collaboration
database such that the stored data is shared with one or more
applications to be processed and displayed; enable sharing of the
stored data with one or more users through the displayed table; and
enable rich data types to be used in cells of the table and
associated presentation formats to allow optimized presentation and
interactivity through the table.
[0091] According to some examples, the collaboration database
engine may be configured to enable sharing of the stored data with
the one or more users by allowing selection or input of the one or
more users in a sharing user interface, enabling insertion of a
message, and enabling selection of one or more limits on the shared
data. The collaboration database engine may also be configured to
enable simultaneous editing of the stored data by multiple users;
provide a visualization of the multiple users editing the stored
data through the displayed table; enable initiation of a
communication with one or more of the multiple users through the
visualization; and/or enable commenting on each record by the
multiple users and maintain a threaded conversation.
[0092] According to further examples, a system to provide a
collaboration database service in conjunction with a productivity
service is described. The system may include a plurality of servers
configured to execute one or more productivity applications within
the productivity service and a database management server
configured to execute the collaboration database service. The
database management server may be configured to receive a request
to create or edit data managed by the collaboration database
service through a table presented by one of the one or more
productivity applications; provide a suggestion to be displayed for
entry into the table based on one or more of existing data, a user
context, a device context, and data retrieved from an external
source to a collaboration database; store the created or edited
data in the collaboration database such that the stored data is
shared with the one or more productivity applications to be
processed and displayed; and enable rich data types to be used in
cells of the table and associated presentation formats to allow
optimized presentation and interactivity through the table.
[0093] According to yet other examples, the database management
server may be further configured to provide one or more of change
highlighting and an activity feed to enable keeping track of
changes to the stored date since a last time a user viewed the
collaboration database. The one or more productivity applications
may include a word-processing application, a spreadsheet
application, a presentation application, and a notebook
application.
[0094] The above specification, examples and data provide a
complete description of the manufacture and use of the composition
of the embodiments. Although the subject matter has been described
in language specific to structural features andior methodological
acts, it is to be understood that the subject matter defined in the
appended claims is not necessarily limited to the specific features
or acts described above. Rather, the specific features and acts
described above are disclosed as example forms of implementing the
claims and embodiments.
* * * * *