1460715486-4e7f02a6-25d3-4947-9bd0-80914f828548

1. An autonomous agricultural machine for performing processing of a crop, the agricultural machine comprising:
a movable agricultural device for performing an agricultural operation;
an outlet for discharging the processed crop from the agricultural machine; and
a protecting element for protecting the outlet, the protecting element having such a flexibility and such a weight that the processed crop is not harmfully influenced by the protecting element.
2. The agricultural machine as claimed in claim 1, wherein the protecting element is movably disposed on the agricultural machine.
3. The agricultural machine as claimed in claim 2, wherein the agricultural machine further comprises a stop for blocking a movement of the protecting element through the outlet into the agricultural machine.
4. The agricultural machine as claimed in claim 1, wherein the agricultural machine further comprises a movement detector for detecting an object that moves through the outlet into the agricultural machine.
5. The agricultural machine as claimed in claim 3, wherein the agricultural machine further comprises a movement detector for detecting an object that moves through the outlet into the agricultural machine.
6. The agricultural machine as claimed in claim 1, wherein the agricultural machine further comprises a pressure sensor for detecting a pressure on the protecting element in a direction towards the agricultural machine.
7. The agricultural machine as claimed in claim 4, wherein the agricultural machine further comprises a pressure sensor for detecting a pressure on the protecting element in a direction towards the agricultural machine.
8. The agricultural machine as claimed in claim 5, wherein the movement detector comprises a pressure sensor for detecting a pressure exerted by the protecting element against the stop.
9. The agricultural machine as claimed in claim 2, wherein the protecting element is a dragging flap or a dragging plate.
10. The agricultural machine as claimed in claim 5, wherein the protecting element is a dragging flap or a dragging plate.
11. The agricultural machine as claimed in claim 8, wherein the protecting element is a dragging flap or a dragging plate.
12. A method of safeguarding operation of an autonomous agricultural machine for performing processing of a crop, the machine having an outlet for discharging the processed crop from the agricultural machine, the method comprising:
providing a protecting element for protecting the outlet, the protecting element having such a flexibility and such a weight that the processed crop is not harmfully influenced by the protecting element;
detecting an object that attempts to move through the outlet into the agricultural machine; and
automatically interrupting operation of the machine on detection of the object.
13. The method as claimed in claim 12, wherein the autonomous agricultural machine further comprises a pressure sensor and the detection of the object is by detecting pressure on the protecting element in a direction towards the agricultural machine.

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. A method of crawling a graphical user interface (GUI) based application, the method comprising:
performing a first-time crawl of a first sequence of actions of a graphical user interface (GUI) based application, the first-time crawl being a first time that the first sequence of actions is crawled, the first sequence of actions being a prefix of a second sequence of actions that includes one or more additional actions than the first sequence of actions;
extending the first-time crawl by the one or more additional actions such that the second sequence of actions is crawled during the first-time crawl
determining a first inputoutput sequence associated with the first sequence of actions based on the first-time crawl; and
determining a second inputoutput sequence associated with the second sequence of actions based on the first-time crawl.
2. The method of claim 1, further comprising:
determining that a state of the GUI-based application encountered during the first-time crawl of the first sequence of actions has not been previously observed; and
extending the first-time crawl based on the determination that the state has not been previously observed.
3. The method of claim 2, wherein extending the first-time crawl includes extending the first-time crawl by at least two actions based on the determination that the state has not been previously crawled such that the second sequence of actions includes at least two more actions than the first sequence of actions.
4. The method of claim 2, wherein determining that the state has not been previously observed is based on encountering a screen that has not been previously observed.
5. The method of claim 1, further comprising:
executing an L* algorithm with respect to the GUI-based application;
obtaining a response to a query generated by the L* algorithm using one or more of the first inputoutput sequence and the second inputoutput sequence;
obtaining an output of the L* algorithm based on the response; and
generating a deterministic finite-state machine model for the GUI-based application based on the output of the L* algorithm.
6. The method of claim 5, further comprising:
receiving a plurality of queries output by the L* algorithm, each of the plurality of queries including a sequence of actions of the GUI-based application;
determining that a first query of the plurality of queries is a prefix of one or more prefixes of a second query of the plurality of queries;
performing an on-demand crawl of the second query;
determining a first-query inputoutput sequence of the first query and a second-query inputoutput sequence of the second query from the on-demand crawl and based on the determination that the first query is the prefix of the second query such that a first response to the first query and a second response to the second query are both generated from the on-demand crawl.
7. The method of claim 6, further comprising:
modifying an observation table of the L* algorithm based on one or more of the first-query inputoutput sequence and the second-query inputoutput sequence before crawling one or more other queries of the plurality of queries; and
executing the L* algorithm with respect to the GUI-based application using the modified observation table to determine whether the modified observation table is closed and consistent before crawling the one or more other queries of the plurality of queries.
8. The method of claim 5, further comprising:
receiving a plurality of queries output by the L* algorithm, each of the plurality of queries including a sequence of actions of the GUI-based application;
obtaining a response to a query of the plurality of queries;
modifying an observation table of the L* algorithm based on the response to the query before crawling one or more other queries of the plurality of queries; and
executing the L* algorithm with respect to the GUI-based application using the modified observation table to determine whether the modified observation table is closed and consistent before crawling the one or more other queries of the plurality of queries.
9. The method of claim 8, further comprising generating a new plurality of queries when the modified observation table is not closed and consistent.
10. A method of crawling a graphical user interface (GUI) based application, the method comprising:
receiving a plurality of queries for crawling a graphical user interface (GUI) based application, each of the plurality of queries including a sequence of actions of the GUI-based application;
determining that a first query of the plurality of queries is a prefix of one or more prefixes of a second query of the plurality of queries;
performing an on-demand crawl of the second query;
determining a first-query inputoutput sequence of the first query and a second-query inputoutput sequence of the second query from the on-demand crawl and based on the determination that the first query is the prefix of the second query such that a first response to the first query and a second response to the second query are both generated from the on-demand crawl.
11. The method of claim 10, further comprising:
generating the plurality of queries with an L* algorithm;
modifying an observation table of the L* algorithm based on one or more of the first-query inputoutput sequence and the second-query inputoutput sequence; and
executing the L* algorithm with respect to the GUI-based application using the modified observation table to determine whether the modified observation table is closed and consistent.
12. The method of claim 10, further comprising:
generating the plurality of queries with an L* algorithm;
modifying an observation table of the L* algorithm based on one or more of the first-query inputoutput sequence and the second-query inputoutput sequence; and
executing the L* algorithm with respect to the GUI-based application using the modified observation table to determine whether the modified observation table is closed and consistent before crawling one or more other queries of the plurality of queries.
13. One or more processors configured to execute computer instructions to cause a system to perform operations for crawling a graphical user interface (GUI) based application, the operations comprising:
performing a first-time crawl of a first sequence of actions of a graphical user interface (GUI) based application, the first-time crawl being a first time that the first sequence of actions is crawled, the first sequence of actions being a prefix of a second sequence of actions that includes one or more additional actions than the first sequence of actions;
extending the first-time crawl by the one or more additional actions such that the second sequence of actions is crawled during the first-time crawl
determining a first inputoutput sequence associated with the first sequence of actions based on the first-time crawl; and
determining a second inputoutput sequence associated with the second sequence of actions based on the first-time crawl.
14. The one or more processors of claim 13, wherein the operations further comprise:
determining that a state of the GUI-based application encountered during the first-time crawl of the first sequence of actions has not been previously observed; and
extending the first-time crawl based on the determination that the state has not been previously observed.
15. The one or more processors of claim 14, wherein extending the first-time crawl includes extending the first-time crawl by at least two actions based on the determination that the state has not been previously crawled such that the second sequence of actions includes at least two more actions than the first sequence of actions.
16. The one or more processors of claim 14, wherein determining that the state has not been previously observed is based on encountering a screen that has not been previously observed.
17. The one or more processors of claim 13, wherein the operations further comprise:
executing an L* algorithm with respect to the GUI-based application;
obtaining a response to a query generated by the L* algorithm using one or more of the first inputoutput sequence and the second inputoutput sequence;
obtaining an output of the L* algorithm based on the response; and
generating a deterministic finite-state machine model for the GUI-based application based on the output of the L* algorithm.
18. The one or more processors of claim 17, wherein the operations further comprise:
receiving a plurality of queries output by the L* algorithm, each of the plurality of queries including a sequence of actions of the GUI-based application;
determining that a first query of the plurality of queries is a prefix of one or more prefixes of a second query of the plurality of queries;
performing an on-demand crawl of the second query;
determining a first-query inputoutput sequence of the first query and a second-query inputoutput sequence of the second query from the on-demand crawl and based on the determination that the first query is the prefix of the second query such that a first response to the first query and a second response to the second query are both generated from the on-demand crawl.
19. The one or more processors of claim 18, wherein the operations further comprise:
modifying an observation table of the L* algorithm based on one or more of the first-query inputoutput sequence and the second-query inputoutput sequence before crawling one or more other queries of the plurality of queries; and
executing the L* algorithm with respect to the GUI-based application using the modified observation table to determine whether the modified observation table is closed and consistent before crawling the one or more other queries of the plurality of queries.
20. The one or more processors of claim 17, wherein the operations further comprise:
receiving a plurality of queries output by the L* algorithm, each of the plurality of queries including a sequence of actions of the GUI-based application;
obtaining a response to a query of the plurality of queries;
modifying an observation table of the L* algorithm based on the response to the query before crawling one or more other queries of the plurality of queries; and
executing the L* algorithm with respect to the GUI-based application using the modified observation table to determine whether the modified observation table is closed and consistent before crawling the one or more other queries of the plurality of queries.

1460715478-ec8bbf48-32e6-41bf-beee-67400d2dfa86

1. A method of performing an object editing operation in a data processing system having a display for displaying an object and also having a user input arrangement including a pointer control device for providing inputs to control the location of a pointer on the display, the data processing system also having a processing device programmed to receive and respond to inputs entered through the user input arrangement and provide an output for controlling the display, the method including the steps of:
(a) receiving an edit function input entered through the user input arrangement, the edit function input defining an edit operation to be performed by the data processing system;
(b) identifying a target in response to the edit function input, the target comprising an object appearing on the display as specified by proximity to the pointer at the time the edit function input is received;
(c) determining a state of the target; and
(d) applying the edit operation to the target if the state of the target indicates that the edit operation is not currently applied to the target.
2. The method of claim 1 wherein the object comprises a text object a the predetermined minimum level of granularity defines the amount of text for the target to be a single word.
3. The method of claim 1 further including the steps of:
(a) identifying a first target string for the target if the state of the target indicates that the edit operation is currently applied to the target, the first target string comprising a first string of additional object elements which includes the target;
(b) determining the state of the first target string; and
(c) applying the edit operation to the first target string if the state of the first target string indicates that the edit operation is not currently applied to the first target string.
4. The method of claim 3 wherein the object comprises text and a predetermined minimum level of granularity defines the amount of text for the target to be a single target word, and wherein the first target string comprises a sentence which includes the target word.
5. The method of claim 3 further including the steps of:
(a) identifying a second target string for the target if the state of the first target string indicates that the edit operation is currently applied to the first target string, the second target string comprising a second string of additional object elements which includes the first target string;
(b) determining the state of the second target string; and
(c) applying the edit operation to the second target string if the state of the second target string indicates that the edit operation is not currently applied to the second target string.
6. The method of claim 5 wherein the object comprises text and a predetermined minimum level of granularity defines the amount of text for the target to be a single target word, and wherein the first target string comprises a target sentence which includes the target word, and wherein the second target string comprises a paragraph which includes the target sentence.
7. The method of claim 5 further including the steps of:
(a) identifying a third target string for the target if the state of the second target string indicates that the edit operation is currently applied to the second target string, the third target string comprising a third string of additional object elements which includes the second target string;
(b) determining the state of the third target string; and
(c) applying the edit operation to the third target string if the state of the third target string indicates that the edit operation is not currently applied to the third target string.
8. The method of claim 1 further including the step of undoing the edit operation to the target if the state of the target indicates that the edit function is currently applied to the target.
9. The method of claim 1 wherein the step of receiving the edit function input comprises receiving input data from a keyboard associated with the user input arrangement.
10. The method of claim 1 wherein the step of receiving the edit function input comprises receiving input data from the pointer control device included in the user input arrangement, the input data from the pointer control device including a switch signal from a switch included in the pointer control device.
11. A program product for performing an editing operation in a data processing system having a display for displaying an object and also having a user input arrangement including a pointer control device for providing inputs to control the location of a pointer on the display, the data processing system also having a processing device for executing the program product, the program product being stored on a computer readable medium and including:
(a) input program code for receiving an edit function input entered through the user input arrangement and for associating the edit function input with an edit operation to be performed by the data processing system;
(b) target identifying program code for identifying a target in response to the edit function input, the target comprising an object appearing on the display as specified by proximity to the pointer at the time the edit function input is received;
(c) state checking program code for determining a state of the target; and
(d) operation performance program code for applying the edit operation to the target if the state of the target indicates that the edit operation is not currently applied to the target.
12. The program product of claim 11 wherein the target identifying program code identifies a single target word of text as the target.
13. The program product of claim 11 further including first target string identifying program code for identifying a first target string if the state of the target indicates that the edit operation is currently applied to the target, the first target string comprising a first string of object elements which includes the target, and wherein:
(a) the state checking program code determines the state of the first target string; and
(b) the operation performance program code applies the edit operation to the first target string if the state of the first target string indicates that the edit operation is not currently applied to the first target string.
14. The program product of claim 13 further including second target string identifying program code for identifying a second target string if the state of the first target string indicates that the edit operation is currently applied to the first target string, the second target string comprising a second string of object elements which includes the first target string, and wherein:
(a) the state checking program code determines the state of the second target string; and
(b) the performance program code applies the edit operation to the second target string if the state of the second target string indicates that the edit operation is not currently applied to the second target string.
15. The program product of claim 14 further including third target string identifying program code for identifying a third target string if the state of the second target string indicates that the edit operation is currently applied to the second target string, the third target string comprising a third string of object elements which includes the second target string, and wherein:
(a) the state checking program code determines the state of the third target string; and
(b) the performance program code applies the edit operation to the third target string if the state of the third target string indicates that the edit operation is not currently applied to the third target string.
16. A data processing system including:
(a) a display;
(b) a user input arrangement including a pointer control device, the pointer control device for providing inputs to control the location of a pointer on the display; and
(c) a processor programmed to:
(i) receive an edit function input entered through the user input arrangement;
(ii) identify a target in response to the edit function input, the target comprising an object appearing on the display as specified by proximity to the pointer at the time the edit function input is received;
(iii) determine a state of the target; and
(iv) apply an edit operation to the target if the state of the target indicates that the edit operation is not currently applied to the target, the edit operation comprising an operation defined by the edit function input.
17. The data processing system of claim 16 wherein the processor is further programmed to:
(a) identify a first target string for the target if the state of the target indicates that the edit operation is currently applied to the target, the first target string comprising a first string of additional object elements which includes the target;
(b) determine the state of the first target string; and
(c) apply the edit operation to the first target string if the state of the first target string indicates that the edit operation is not currently applied to the first target string.
18. The data processing system of claim 17 wherein the processor is also programmed to:
(a) identify a second target string if the state of the first target string indicates that the edit operation is currently applied to the first target string, the second target string comprising a second string of additional object elements which includes the first target string;
(b) determine the state of the second target string; and
(c) apply the edit operation to the second target string if the state of the second target string indicates that the edit operation is not currently applied to the second target string.
19. The data processing system of claim 18 wherein the processor is also programmed to:
(a) identify a third target string for the target if the state of the second target string indicates that the edit operation is currently applied to the second target string, the third target string comprising a third string of additional object elements which includes the second target string;
(b) determine the state of the third target string; and
(c) apply the edit operation to the third target string if the state of the third target string indicates that the edit operation is not currently applied to the third target string.
20. The data processing system of claim 18 wherein the target comprises a single target word, the first target string comprises a target sentence including the target word, and the second target string comprises a paragraph including the target sentence.

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. A computer system that adapts a functionality to a client and server combination, comprising:
a processor, the processor is configured to:
retrieve, responsive to a request of a client for a functionality, pre-configured properties of the client, pre-configured properties of the requested functionality, and pre-configured properties of a server on which the requested functionality is run;
perform an availability check, based on the retrieved pre-configured properties of the client, pre-configured properties of the server, and pre-configured properties of the requested functionality, to eliminate properties of the requested functionality which are not capable of functioning on a combination of the client and the server; and
provide the result of the availability check as a set of properties which is available for the requested functionality on the combination of the client and the server,

wherein the pre-configured properties define different property types, property values of the different property types, functionality values for each property value, and rules that instruct the processor how to perform the availability check based on the property types, the property values and the functionality values.
2. The computer system of claim 1, wherein the processor is further configured to enable execution, on the combination of the client and the server, of the requested functionality, the execution being limited to the set of properties which is the result of the availability check.
3. The computer system of claim 1, wherein the processor is further configured so that the availability check incorporates a four-pass filter.
4. The computer system of claim 3, wherein the processor is further configured to perform the four-pass filter, and the rules include intersection rules and non-intersection rules, comprising:
in a first client filter, perform intersection rule preprocessing to reduce functionality properties to properties of the client;
in a first server filter, perform intersection rule preprocessing to reduce functionality properties to properties of the server;
in a second client filter, performed after the first client and server filters, remove the requested functionality when the requested functionality is determined to be not compatible with the client properties; and
in a second server filter, performed after the first client and server filters, remove the requested functionality when the requested functionality is determined to be not compatible with the server properties.
5. The computer system of claim 1, wherein the availability check is performed prior to connecting the client to the server for the requested functionality.
6. The computer system of claim 1, wherein the pre-configured properties further comprise actions that instruct the processor as to which of the pre-configured properties to allow and to filter out based on the results of application of the rules, and the processor is configured to perform the actions as part of the availability check.
7. The computer system of claim 1, wherein the processor is further configured to define the pre-configured properties of the client, the pre-configured properties of the server and the pre-configured properties of the requested functionality using an XML schema consistent with the XML schema for client, server and functionality.
8. A method that adapts a functionality to a client and server combination, comprising:
retrieving, by a processor, responsive to a request of a client for a functionality, pre-configured properties of the client, pre-configured properties of the requested functionality, and pre-configured properties of a server on which the requested functionality is run;
performing, by the processor, an availability check, based on the retrieved pre-configured properties of the client, pre-configured properties of the server, and pre-configured properties of the requested functionality, to eliminate properties of the requested functionality which are not capable of functioning on a combination of the client and the server; and
providing, by the processor, the result of the availability check as a set of properties which is available for the requested functionality on the combination of the client and the server,
wherein the pre-configured properties define different property types, property values of the different property types, functionality values for each property value, and rules that instruct the processor how to perform the availability check based on the property types, the property values and the functionality values.
9. The method of claim 8, further comprising enabling, by the processor, execution on the combination of the client and the server, of the requested functionality, the execution being limited to the set of properties which is the result of the availability check.
10. The method of claim 8, further comprising performing, by the processor, a four-pass filter as part of the availability check.
11. The method of claim 10, wherein the rules include intersection rules and non-intersection rules, further comprising:
in a first client filter, performing intersection rule preprocessing by the processor to reduce functionality properties to properties of the client;
in a first server filter, performing intersection rule preprocessing by the processor to reduce functionality properties to properties of the server;
in a second client filter, performed after the first client and server filters, removing by the processor the requested functionality when the requested functionality is determined to be not compatible with the client properties; and
in a second server filter, performed after the first client and server filters, removing by the processor the requested functionality when the requested functionality is determined to be not compatible with the server properties.
12. The method of claim 8, wherein the availability check is performed prior to connecting the client to the server for the requested functionality.
13. The method of claim 8, wherein the pre-configured properties further comprise actions that instruct the processor as to which of the pre-configured properties to allow and to filter out based on the results of application of the rules, further comprising performing, by the processor, the actions as part of the availability check.
14. The method of claim 8, further comprising defining, by the processor, the pre-configured properties of the client, the pre-configured properties of the server and the pre-configured properties of the requested functionality using an XML schema consistent with the XML schema for client, server and functionality.
15. A non-transitory computer readable medium comprising executable instructions for performing a method that adapts a functionality to a client and server combination, comprising computer-executable instructions for:
retrieving, responsive to a request of a client for a functionality, pre-configured properties of the client, pre-configured properties of the requested functionality, and pre-configured properties of a server on which the requested functionality is run;
performing an availability check, based on the retrieved pre-configured properties of the client, pre-configured properties of the server, and pre-configured properties of the requested functionality, to eliminate properties of the requested functionality which are not capable of functioning on a combination of the client and the server; and
providing the result of the availability check as a set of properties which is available for the requested functionality on the combination of the client and the server,
wherein the pre-configured properties define different property types, property values of the different property types, functionality values for each property value, and rules that instruct a processor how to perform the availability check based on the property types, the property values and the functionality values.
16. The non-transitory computer readable medium of claim 15, further comprising enabling execution on the combination of the client and the server, of the requested functionality, the execution being limited to the set of properties which is the result of the availability check.
17. The non-transitory computer readable medium of claim 15, further comprising performing a four-pass filter as part of the availability check.
18. The non-transitory computer readable medium of claim 15, wherein the rules include intersection rules and non-intersection rules, further comprising:
in a first client filter, performing intersection rule preprocessing to reduce functionality properties to properties of the client;
in a first server filter, performing intersection rule preprocessing to reduce functionality properties to properties of the server;
in a second client filter, performed after the first client and server filters, removing the requested functionality when the requested functionality is determined to be not compatible with the client properties; and
in a second server filter, performed after the first client and server filters, removing the requested functionality when the requested functionality is determined to be not compatible with the server properties.
19. The non-transitory computer readable medium of claim 15, wherein the pre-configured properties further comprise actions that instruct a processor as to which of the pre-configured properties to allow and to filter out based on the results of application of the rules, further comprising performing the actions as part of the availability check.
20. The non-transitory computer readable medium of claim 15, further comprising defining the pre-configured properties of the client, the pre-configured properties of the server and the pre-configured properties of the requested functionality using an XML schema consistent with the XML schema for client, server and functionality.