Patents Assigned to Soroco Private Limited
  • Patent number: 11610052
    Abstract: Techniques for programmatically controlling computer programs that are configured to be controlled via text-based user interfaces. The techniques include using at least one computer hardware processor to perform: accessing a string specifying content of a user interface (UI) screen of a computer program configured to be controlled via a text-based user interface; generating, based on the string, a two-dimensional (2D) representation of the UI screen; identifying a first controllable UI element in the UI screen at least in part by processing text in the 2D representation of the UI screen; and controlling the computer program by causing, via the first controllable UI element, the computer program to perform at least one action in furtherance of a task.
    Type: Grant
    Filed: August 16, 2019
    Date of Patent: March 21, 2023
    Assignee: Soroco Private Limited
    Inventors: Sarthak Joshi, Gaurav Srivastava, Abdul Qadir, Shreyas Harsha Karanth
  • Patent number: 11429658
    Abstract: The techniques described herein relate to methods, apparatus, and computer readable media for content-aware image storage. A set of images is accessed from a storage device, each image of the set of images containing at least a part of a screenshot of a display of a computing device used by a user. The set of images is sorted using a similarity metric to obtain a sorted set of images. The sorted set of images are encoded using a video codec to obtain a video encoding the sorted set of images. The video is stored in conjunction with metadata indicating a correspondence between images in the set of images and frames in the video.
    Type: Grant
    Filed: April 11, 2019
    Date of Patent: August 30, 2022
    Assignee: Soroco Private Limited
    Inventor: Wolfgang Richter
  • Patent number: 11343326
    Abstract: According to at least one aspect, a system configured to execute a software robot such that interactive actions may be performed by the software robot without interruption is provided. The system comprises at least one hardware processor configured to execute an operating system. The system further comprises at least one non-transitory computer-readable storage medium storing processor-executable instructions configured to execute in a service session in the operating system that, when executed by the at least one hardware processor, causes the at least one hardware processor to: start a first remote desktop session in the operating system, establish a loopback remote desktop connection between the first remote desktop session and the service session, and start a software robot computer program in the first remote desktop session.
    Type: Grant
    Filed: November 2, 2020
    Date of Patent: May 24, 2022
    Assignee: Soroco Private Limited
    Inventor: Yoongu Kim
  • Patent number: 11157128
    Abstract: A system for remotely controlling multiple application programs executing on multiple respective physical computing devices, the system comprising a first computing device, comprising a first processor, and configured to execute a first application program; a second computing device, comprising a second processor, and configured to execute a second application program; and a controller configured to perform: generating, based on first information obtained from the first computing device and second information obtained from the second computing device, a global object hierarchy comprising a plurality of objects corresponding to active graphical user interface (GUI) elements of the first application program and the second application program; controlling the first application program to perform the first sub-task at least in part by using the global object hierarchy; and controlling the second application program to perform the second sub-task at least in part by using the global object hierarchy.
    Type: Grant
    Filed: January 17, 2020
    Date of Patent: October 26, 2021
    Assignee: Soroco Private Limited
    Inventors: George Peter Nychis, Rohan Narayan Murty
  • Publication number: 20210211506
    Abstract: According to at least one aspect, a system configured to execute a software robot such that interactive actions may be performed by the software robot without interruption is provided. The system comprises at least one hardware processor configured to execute an operating system. The system further comprises at least one non-transitory computer-readable storage medium storing processor-executable instructions configured to execute in a service session in the operating system that, when executed by the at least one hardware processor, causes the at least one hardware processor to: start a first remote desktop session in the operating system, establish a loopback remote desktop connection between the first remote desktop session and the service session, and start a software robot computer program in the first remote desktop session.
    Type: Application
    Filed: November 2, 2020
    Publication date: July 8, 2021
    Applicant: Soroco Private Limited
    Inventor: Yoongu Kim
  • Publication number: 20210149641
    Abstract: According to at least one aspect, a system for analyzing computer usage data of a user to identify an underlying task being performed by the user is provided. The system includes a hardware processor and a non-transitory computer-readable storage medium storing processor-executable instructions that, when executed by the hardware processor, cause the hardware processor to perform: receiving a plurality of events each indicative of an action performed by a user and contextual information associated with the action performed by the user, clustering the plurality of events to generate a plurality of clustered events, identifying a plurality of sub-tasks in the plurality of clustered events that each comprise a sequence of clustered events, identifying a task in the plurality of clustered events being performed by the user that comprises at least one sub-task, and generating a score for the task indicative of a difficulty of automating the task.
    Type: Application
    Filed: December 10, 2020
    Publication date: May 20, 2021
    Applicant: Soroco Private Limited
    Inventors: Yoongu Kim, Abdul Qadir, Arjun Narayanaswamy, Rohan Narayan Murty, Shane Barratt, George Peter Nychis
  • Patent number: 10990238
    Abstract: A system comprising at least one hardware processor configured to perform: accessing a software robot computer program for controlling at least one application program to perform a task comprising a first sub-task to be performed by a first application program; generating an object hierarchy comprising a plurality of objects corresponding to active graphical user interface (GUI) elements of the first application program; and controlling the first application program to perform the first sub-task. The controlling includes identifying, using the software robot computer program, a first action to perform in furtherance of the first sub-task; automatically accessing, in the object hierarchy, a first object corresponding to a first active GUI element of the first application program, the accessing comprising refreshing the object hierarchy; and automatically using the first object to cause the first application program to at least partially perform the first action.
    Type: Grant
    Filed: September 25, 2019
    Date of Patent: April 27, 2021
    Assignee: Soroco Private Limited
    Inventors: George Peter Nychis, Rohan Narayan Murty
  • Patent number: 10983660
    Abstract: A system comprising at least one hardware processor; at least one non-transitory computer-readable storage medium storing processor-executable instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to perform: generating an object hierarchy comprising a plurality of objects corresponding to active graphical user interface (GUI) elements of a first application program, the generating comprising: obtaining a hierarchical representation of the active GUI elements of the application program; generating an object for each of at least some of the active GUI elements represented in the hierarchical representation; and organizing the generated objects into the object hierarchy based on relationships among active GUI elements represented in the hierarchical representation; and controlling, using software robot computer program and the generated object hierarchy, the first application program to perform the first sub-task.
    Type: Grant
    Filed: April 7, 2020
    Date of Patent: April 20, 2021
    Assignee: Soroco Private Limited
    Inventors: George Peter Nychis, Rohan Narayan Murty
  • Patent number: 10891112
    Abstract: According to at least one aspect, a system for analyzing computer usage data of a user to identify an underlying task being performed by the user is provided. The system includes a hardware processor and a non-transitory computer-readable storage medium storing processor-executable instructions that, when executed by the hardware processor, cause the hardware processor to perform: receiving a plurality of events each indicative of an action performed by a user and contextual information associated with the action performed by the user, clustering the plurality of events to generate a plurality of clustered events, identifying a plurality of sub-tasks in the plurality of clustered events that each comprise a sequence of clustered events, identifying a task in the plurality of clustered events being performed by the user that comprises at least one sub-task, and generating a score for the task indicative of a difficulty of automating the task.
    Type: Grant
    Filed: February 12, 2020
    Date of Patent: January 12, 2021
    Assignee: Soroco Private Limited
    Inventors: Yoongu Kim, Abdul Qadir, Arjun Narayanaswamy, Rohan Narayan Murty, Shane Barratt, George Peter Nychis
  • Patent number: 10853114
    Abstract: Techniques for executing one or more instances of a computer program using virtual machines, the computer program comprising multiple computer program portions including a first computer program portion. The techniques include determining whether an instance of any of the multiple computer program portions is to be executed; when it is determined that a first instance of the first computer program portion is to be executed, accessing first information specifying a first set of one or more virtual machine resources required for executing the first instance of the first computer program portion; determining whether any one of the plurality of virtual machines has at least the first set of virtual machine resources available; and when it is determined that a first of the plurality of virtual machines has the first set virtual machine resources available, causing the first virtual machine to execute the first instance of the first computer program portion.
    Type: Grant
    Filed: January 5, 2018
    Date of Patent: December 1, 2020
    Assignee: Soroco Private Limited
    Inventors: Sanyam Agarwal, Rohan Narayan Murty, George Peter Nychis, Wolfgang Richter, Nishant Kumar Jain, Surabhi Mour, Shreyas H. Karanth, Shashank Anand
  • Patent number: 10855775
    Abstract: According to at least one aspect, a system configured to execute a software robot such that interactive actions may be performed by the software robot without interruption is provided. The system comprises at least one hardware processor configured to execute an operating system. The system further comprises at least one non-transitory computer-readable storage medium storing processor-executable instructions configured to execute in a service session in the operating system that, when executed by the at least one hardware processor, causes the at least one hardware processor to: start a first remote desktop session in the operating system, establish a loopback remote desktop connection between the first remote desktop session and the service session, and start a software robot computer program in the first remote desktop session.
    Type: Grant
    Filed: April 5, 2017
    Date of Patent: December 1, 2020
    Assignee: Soroco Private Limited
    Inventor: Yoongu Kim
  • Patent number: 10831450
    Abstract: According to at least one aspect, a system for collecting computer usage information is provided. The system includes a hardware processor, a display coupled to the hardware processor to display a user interface, and a computer-readable storage medium storing processor-executable instructions that cause the hardware processor to receive an indication of an action being performed by a user on the system, cause the system to wait before updating the user interface in response to the action performed by the user, gather contextual information associated with the action while the system is waiting to process the action performed by the user to update the user interface, cause the system to update the user interface in response to the action performed by the user after gathering the contextual information, and store information indicative of the action and the contextual information.
    Type: Grant
    Filed: October 26, 2017
    Date of Patent: November 10, 2020
    Assignee: Soroco Private Limited
    Inventors: Yoongu Kim, Abdul Qadir, Arjun Narayanaswamy, Rohan Narayan Murty, Shane Barratt, George Peter Nychis
  • Patent number: 10802662
    Abstract: A system, comprising at least one computer hardware processor; and at least one non-transitory computer-readable storage medium storing processor-executable instructions that, when executed by the at least one computer hardware processor, cause the at least one computer hardware processor to perform: generating an object hierarchy comprising a plurality of objects corresponding to active graphical user interface (GUI) elements of a first application program; and controlling the first application program to perform a first sub-task. The controlling includes automatically accessing, in the object hierarchy, a first object corresponding to an active GUI element of the first application program, the accessing comprising searching for the first object in the object hierarchy, the searching comprising modifying the object hierarchy; and automatically using the first object to cause the first application program to at least partially perform a first action in furtherance of the first sub-task.
    Type: Grant
    Filed: March 4, 2019
    Date of Patent: October 13, 2020
    Assignee: Soroco Private Limited
    Inventors: George Peter Nychis, Rohan Narayan Murty
  • Patent number: 10789157
    Abstract: According to at least one aspect, a system is provided. The system comprises at least one hardware processor; and at least one non-transitory computer-readable storage medium storing processor executable instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to perform: monitoring execution of a first computer program configured to control a second computer program to perform a task at least in part by controlling the second computer program, through a graphical user interface (GUI) and/or an application programming interface (API) for the second computer program, to perform at least one action in furtherance of the task; detecting at least one anomaly in the execution of the first computer program; and outputting the detected at least one anomaly in the execution of the first computer program.
    Type: Grant
    Filed: May 1, 2018
    Date of Patent: September 29, 2020
    Assignee: Soroco Private Limited
    Inventors: Nishant Kumar Jain, Rohan Narayan Murty, George Peter Nychis, Harsh Gupta, Yoongu Kim
  • Publication number: 20200272282
    Abstract: A system comprising at least one hardware processor; at least one non-transitory computer-readable storage medium storing processor-executable instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to perform: generating an object hierarchy comprising a plurality of objects corresponding to active graphical user interface (GUI) elements of a first application program, the generating comprising: obtaining a hierarchical representation of the active GUI elements of the application program; generating an object for each of at least some of the active GUI elements represented in the hierarchical representation; and organizing the generated objects into the object hierarchy based on relationships among active GUI elements represented in the hierarchical representation; and controlling, using software robot computer program and the generated object hierarchy, the first application program to perform the first sub-task.
    Type: Application
    Filed: April 7, 2020
    Publication date: August 27, 2020
    Applicant: Soroco Private Limited
    Inventors: George Peter Nychis, Rohan Narayan Murty
  • Patent number: 10754493
    Abstract: A system comprising at least one computer hardware processor configured to perform: generating an object hierarchy comprising a plurality of objects corresponding to active graphical user interface (GUI) elements of at least one application program; controlling the at least one application program to perform a task comprising a sequence of actions at least in part by using the object hierarchy to invoke actions in the sequence of actions.
    Type: Grant
    Filed: May 31, 2019
    Date of Patent: August 25, 2020
    Assignee: Soroco Private Limited
    Inventors: George Peter Nychis, Rohan Narayan Murty
  • Patent number: 10698661
    Abstract: According to at least one aspect, a system for collecting computer usage information is provided. The system includes a hardware processor, a display coupled to the hardware processor to display a user interface, and a computer-readable storage medium storing processor-executable instructions that cause the hardware processor to receive an indication of an action being performed by a user on the system, gather contextual information associated with the action responsive to the action performed by the user, store information indicative of the action and the contextual information in a volatile memory as an event, determine whether at least one event stored in the volatile memory includes personal information of the user, and write the at least one event stored in the volatile memory to an event log in a non-volatile memory responsive to a determination that the at least one event does not include personal information of the user.
    Type: Grant
    Filed: October 5, 2018
    Date of Patent: June 30, 2020
    Assignee: Soroco Private Limited
    Inventors: Yoongu Kim, Abdul Qadir, Arjun Narayanaswamy, Rohan Narayan Murty, Shane Barratt, George Peter Nychis
  • Publication number: 20200183656
    Abstract: According to at least one aspect, a system for analyzing computer usage data of a user to identify an underlying task being performed by the user is provided. The system includes a hardware processor and a non-transitory computer-readable storage medium storing processor-executable instructions that, when executed by the hardware processor, cause the hardware processor to perform: receiving a plurality of events each indicative of an action performed by a user and contextual information associated with the action performed by the user, clustering the plurality of events to generate a plurality of clustered events, identifying a plurality of sub-tasks in the plurality of clustered events that each comprise a sequence of clustered events, identifying a task in the plurality of clustered events being performed by the user that comprises at least one sub-task, and generating a score for the task indicative of a difficulty of automating the task.
    Type: Application
    Filed: February 12, 2020
    Publication date: June 11, 2020
    Applicant: Soroco Private Limited
    Inventors: Yoongu Kim, Abdul Qadir, Arjun Narayanaswamy, Rohan Narayan Murty, Shane Barratt, George Peter Nychis
  • Patent number: 10671235
    Abstract: A system comprising at least one computer hardware processor; and at least one computer-readable storage medium storing processor-executable instructions that, when executed by the at least one computer hardware processor, cause the at least one computer hardware processor to perform: generating an object hierarchy comprising a plurality of objects corresponding to active graphical user interface (GUI) elements of at least one of a first application program and a second application program; controlling the first application program to perform a first sub-task of a task at least in part by using the object hierarchy; and controlling the second application program to perform a second sub-task of the task at least in part by using the object hierarchy, wherein the first and second application programs are configured to execute at least in part by using different GUI application libraries.
    Type: Grant
    Filed: March 3, 2016
    Date of Patent: June 2, 2020
    Assignee: Soroco Private Limited
    Inventors: George Peter Nychis, Rohan Narayan Murty
  • Publication number: 20200150830
    Abstract: A system for remotely controlling multiple application programs executing on multiple respective physical computing devices, the system comprising a first computing device, comprising a first processor, and configured to execute a first application program; a second computing device, comprising a second processor, and configured to execute a second application program; and a controller configured to perform: generating, based on first information obtained from the first computing device and second information obtained from the second computing device, a global object hierarchy comprising a plurality of objects corresponding to active graphical user interface (GUI) elements of the first application program and the second application program; controlling the first application program to perform the first sub-task at least in part by using the global object hierarchy; and controlling the second application program to perform the second sub-task at least in part by using the global object hierarchy.
    Type: Application
    Filed: January 17, 2020
    Publication date: May 14, 2020
    Applicant: Soroco Private Limited
    Inventors: George Peter Nychis, Rohan Narayan Murty