1. A method for a change oriented spreadsheet application, comprising:
storing in a spreadsheet file a sequence of valid updates to at least some cells of said change oriented spreadsheet application;
storing update times with cell positions as a primary index; and
arranging said valid updates in an order of time.
2. The method of claim 1, further comprising performing a query on said spreadsheet file for the valid updates within a given time range and within a given cell range, said query comprising:
traversing through said given cell range; and
for each cell position in said given cell range, performing:
looking up said sequence of valid updates associated with said cell in said spreadsheet file by using said primary index;
looking up each valid update with said cell’s update time falling within said given time range in said sequence of valid updates; and
adding said valid update to a query result dataset.
3. The method of claim 1, further comprising performing a query on said spreadsheet file for current values of cells at a given time point and within a given cell range, said query comprising:
traversing through said given cell range; and
for each cell position in said given cell range, performing:
looking up said sequence of valid updates associated with said cell in said spreadsheet file by using said cell position as said primary index;
looking up each valid update with said cell’s maximum update time less than or equal to said given time point in said sequence of valid updates; and
adding said valid update into a query result dataset.
4. The method of claim 1, further comprising performing a query on said spreadsheet file for time points and cell positions of a data units meeting given a query condition within a given time range and a cell range, said query comprising:
traversing through said given cell range; and
for each cell position within said given cell range, performing:
looking up said sequence of valid updates associated with said cell in said spreadsheet file by using said cell position as said primary index;
looking up each valid update with said cell’s update time falling within said given time range in said sequence of valid updates; and
on said valid update, performing:
determining whether said valid update meets said given query conditions; and
if it is determined that said valid update meets said given query conditions, adding said time point and said cell position into a query result dataset.
5. The method of claim 1, further comprising arranging said valid updates having a same valid update time point into a sequence of update tables, said update table having a same cell structure as said spreadsheet file.
6. The method of claim 1, further comprising maintaining a first data structure and a second data structure on said valid updates, wherein, in said first data structure, said valid updates to cells and said update times are stored with cell positions as a primary index, and wherein all valid updates to the same cell are arranged in order of time, and in said second data structure, valid updates to cells are stored with said update time points of said valid updates to each of said cells as a primary index, and all valid updates having a same update time point are arranged into a sequence of update tables each having the same cell structure as said spreadsheet file.
7. The method of claim 1, further comprising:
performing a data query on said spreadsheet file;
storing data units from said data query in an archival file, wherein each data unit stored in said archival file contains row and column position, update time, and update content;
generating a digital digest of said archival file;
storing said digital digest in said spreadsheet file; and
deleting data units generated by said data query from said spreadsheet file.
8. A computer readable storage medium for a change oriented spreadsheet application, the compute readable storage medium comprising programming instructions for:
storing in a spreadsheet file a sequence of valid updates to at least some cells of said change oriented spreadsheet application;
storing update times with cell positions as a primary index; and
arranging said valid updates in an order of time.
9. The computer readable storage medium of claim 8, further performing a query on said spreadsheet file for the valid updates within a given time range and within a given cell range, said query comprising:
traversing through said given cell range; and
for each cell position in said given cell range, performing:
looking up said sequence of valid updates associated with said cell in said spreadsheet file by using said primary index;
looking up each valid update with said cell’s update time falling within said given time range in said sequence of valid updates; and
adding said valid update to a query result dataset.
10. The computer readable storage medium of claim 8, further performing a query on said spreadsheet file for current values of cells at a given time point and within a given cell range, said query comprising:
traversing through said given cell range; and
for each cell position in said given cell range, performing:
looking up said sequence of valid updates associated with said cell in said spreadsheet file by using said cell position as said primary index;
looking up each valid update with said cell’s maximum update time less than or equal to said given time point in said sequence of valid updates; and
adding said valid update into a query result dataset.
11. The computer readable storage medium of claim 8, further performing a query on said spreadsheet file for time points and cell positions of a data units meeting given a query condition within a given time range and a cell range, said query comprising:
traversing through said given cell range; and
for each cell position within said given cell range, performing:
looking up said sequence of valid updates associated with said cell in said spreadsheet file by using said cell position as said primary index;
looking up each valid update with said cell’s update time falling within said given time range in said sequence of valid updates; and
on said valid update, performing:
determining whether said valid update meets said given query conditions; and
if it is determined that said valid update meets said given query conditions, adding said time point and said cell position into a query result dataset.
12. The computer readable storage medium of claim 8, further performing arranging said valid updates having the same valid update time point into a sequence of update tables, said update table having a same cell structure as said spreadsheet file.
13. The computer readable storage medium of claim 8, further comprising maintaining a first data structure and a second data structure on said valid updates, wherein, in said first data structure, said valid updates to cells and said update times are stored with cell positions as a primary index, and wherein all valid updates to the same cell are arranged in order of time, and in said second data structure, valid updates to cells are stored with said update time points of said valid updates to each of said cells as a primary index, and all valid updates having a same update time point are arranged into a sequence of update tables each having the same cell structure as said spreadsheet file.
14. The computer readable storage medium of claim 8, further comprising:
performing a data query on said spreadsheet file;
storing data units from said data query in an archival file, wherein each data unit stored in said archival file contains row and column position, update time, and update content;
generating a digital digest of said archival file;
storing said digital digest in said spreadsheet file; and
deleting data units generated by said data query from said spreadsheet file.
15. A computer system for a change oriented spreadsheet application, said system having a CPU, memory, and a storage device, and comprising:
an inputoutput device for communicating with a user; and
a machine instruction set, executable by said CPU, said instructions comprising:
storing in a spreadsheet file a sequence of valid updates to at least some cells of said change oriented spreadsheet application;
storing update times with cell positions as a primary index; and
arranging said valid updates in an order of time.
16. The computer system of claim 15, further comprising a data query apparatus for performing a query on said spreadsheet file for the valid updates within a given time range and within a given cell range, said query comprising:
traversing through said given cell range; and
for each cell position in said given cell range, performing:
looking up said sequence of valid updates associated with said cell in said spreadsheet file by using said primary index;
looking up each valid update with said cell’s update time falling within said given time range in said sequence of valid updates; and
adding said valid update to a query result dataset.
17. The computer system of claim 15, further comprising a data query apparatus for a query on said spreadsheet file for current values of cells at a given time point and within a given cell range, said query comprising:
traversing through said given cell range; and
for each cell position in said given cell range, performing:
looking up said sequence of valid updates associated with said cell in said spreadsheet file by using said cell position as said primary index;
looking up each valid update with said cell’s maximum update time less than or equal to said given time point in said sequence of valid updates; and
adding said valid update into a query result dataset.
18. The computer system of claim 15, further comprising a data query apparatus for performing a query on said spreadsheet file for time points and cell positions of a data units meeting given a query condition within a given time range and a cell range, said query comprising:
traversing through said given cell range; and
for each cell position within said given cell range, performing:
looking up said sequence of valid updates associated with said cell in said spreadsheet file by using said cell position as said primary index;
looking up each valid update with said cell’s update time falling within said given time range in said sequence of valid updates; and
on said valid update, performing:
determining whether said valid update meets said given query conditions; and
if it is determined that said valid update meets said given query conditions, adding said time point and said cell position into a query result dataset.
19. The computer system of claim 15, said instruction set further comprising arranging said valid updates having the same valid update time point into a sequence of update tables, said update table having a same cell structure as said spreadsheet file.
20. The computer system of claim 15, said instruction set further comprising:
performing a data query on said spreadsheet file;
storing data units from said data query in an archival file, wherein each data unit stored in said archival file contains row and column position, update time, and update content;
generating a digital digest of said archival file;
storing said digital digest in said spreadsheet file; and
deleting data units generated by said data query from said spreadsheet file.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1-20. (canceled)
21. A method of verifying a user presence comprising:
receiving a first signal from a sensor;
determining that a user is present based on the received first signal;
receiving a second signal from the sensor;
determining if the user is still present based on the received second signal;
determining, via a co-processor, an assertion based a proximity vector that comprises an aggregated received first signal and received second signal; and
receiving a third signal from a second sensor, and wherein the determining if the user is still present is based on the received second signal and the received third signal.
22. The method of claim 21, further comprising:
signing the assertion to create a signed assertion, via the co-processor, the signed assertion comprising a machine specific code associated with the co-processor.
23. The method of claim 22, further comprising:
combining the assertion with a time stamp, the time stamp associated with a refresh rate of the sensor.
24. The method of claim 22, further comprising:
initiating, via a processor, a user presence session based on the determination that the user is present.
25. The method of claim 22, further comprising:
receiving an indication associated with a user presence or a lack of user presence, the user presence or lack of user presence based on the signed assertion.
26. The method of claim 21, wherein the received first signal and the received second signal contain a distance and vector pinpointing a user’s presence relative to an apparatus.
27. A medium comprising instructions that when executed by the processor perform a method, the method comprising:
receiving a first signal from a sensor;
determining that a user is present based on the received first signal;
receiving a second signal from the sensor;
determining if the user is still present based on the received second signal;
determining, via a co-processor, an assertion based a proximity vector that comprises an aggregated received first signal and received second signal; and
receiving a third signal from a second sensor, and wherein the determining if the user is still present is based on the received second signal and the received third signal.
28. The medium of claim 27, wherein the method further comprises:
signing the assertion to create a signed assertion, via the co-processor, the signed assertion comprising a machine specific code associated with the co-processor.
29. The medium of claim 28, further comprising:
combining the assertion with a time stamp, the time stamp associated with a refresh rate of the sensor.
30. The medium of claim 28, further comprising:
initiating, via a processor, a user presence session based on the determination that the user is present.
31. The medium of claim 28, further comprising:
receiving an indication associated with a user presence or a lack of user presence associated with the user, the user presence or lack of user presence being based on the signed assertion.
32. An apparatus comprising:
a co-processor to:
receive a first signal from a sensor;
determine that a user is present based on the received first signal;
receive a second signal from the sensor;
determine if the user is still present based on the received second signal;
determine an assertion based a proximity vector that comprises an aggregated received first signal and received second signal; and
receive a third signal from a second sensor, wherein the determining if the user is still present is based on the received second signal and the received third signal, and
a processor to:
receive the determination from the co-processor; and
initiate a user presence session based on the determination that the user is present.
33. The apparatus of claim 32, wherein the co-processor is to further:
sign the assertion to create a signed assertion, via a co-processor, the signed assertion comprising a machine specific code associated with the co-processor.
34. The apparatus of claim 33, wherein the co-processor is to further:
combine the assertion with a time stamp, the time stamp associated with a refresh rate of the sensor.
35. The apparatus of claim 33, wherein the processor is to receive an indication associated with a user presence or a lack of user presence associated with the user, the user presence or lack of user presence being based on the transmitted and signed assertion.
36. The apparatus of claim 33, wherein the received first signal and the received second signal contain a distance and vector pinpointing a user’s presence relative to the apparatus.