System and method for job routing

The system addresses the inefficiencies in editing job routing by using a routing algorithm to allocate tasks based on metadata and section identifiers, resulting in reduced processing times and minimized conflicts in digital document editing.

WO2025109541A1PCT designated stage expired Publication Date: 2025-05-30PIXELFAERIE LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/IB2024/061720
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-11-22
Filing Date
2024-11-22
Publication Date
2025-05-30

AI Technical Summary

Technical Problem

The existing method for routing editing jobs for digital documents lacks automation, leading to increased processing times and conflicts due to inappropriate allocation of tasks to staff members without necessary experience.

Method used

A computer-implemented method and system that uses a routing algorithm to determine tasks associated with editing jobs based on metadata, including section capturing and unique section identifiers, to optimize task allocation to appropriate editing entities.

Benefits of technology

The solution reduces processing times, minimizes conflicts in digital documents, and optimizes server loads by ensuring tasks are allocated to editors with the necessary skills and availability, improving overall efficiency in digital document editing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure IB2024061720_30052025_PF_FP_ABST
    Figure IB2024061720_30052025_PF_FP_ABST
Patent Text Reader

Abstract

A method and system for job routing are provided. The method may include receiving editing instructions from one or more client devices. The editing instructions may be related to editing digital documents. The editing instructions may include metadata associated with the editing required. The method may include one or more models for determining an optimal allocation of editing tasks to a number of editing entities, according to a set of requirements and / or constraints. The editing entities may be automated editors. The system may include a server computer configured to interface with one or more client devices and one or more editor devices. The server computer may be configured to receive editing instructions from the client devices, and send job editing requests to the editor devices.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] SYSTEM AND METHOD FOR JOB ROUTING

[0002] CROSS-REFERENCE(S) TO RELATED APPLICATIONS

[0003] This application claims priority from South African provisional patent application number 2023 / 10772 filed on 22 November 2023, which is incorporated by reference herein.

[0004] FIELD OF THE INVENTION

[0005] This invention relates to a system and method for job routing. In particular, the invention relates to a system and method for automatic routing of one or more jobs for editing a digital document.

[0006] BACKGROUND TO THE INVENTION

[0007] The use of digital documents such as digital presentations, digital brochures, digital information booklets, etc. have become more prevalent since the introduction of the digital / information age. These digital documents may be used for various purposes such as to educate and teach students, colleagues and / or customers in order to explain concepts or to sell ideas, visions or products. As such, digital documents have become a key aspect of our everyday and the ability to accurately communicate information using digital documents has become key to the success and understanding of commerce.

[0008] Various professional entities exist that specialise in the editing and creation of such digital documents on behalf of a client. These entities act as service providers to clients who require digital documents for their own personal use. A standard method of operation of these service providers is that a client may send them instructions to edit or create a digital document based on the client’s requirements, which the service provider may then accept. These instructions may be reviewed by a front desk (or so called “clearinghouse”), who may clarify with the client if anything is unclear in the instructions. Once the instructions are clear, the front desk may estimate the job regarding how much time is required to produce the job. Depending on the available capacity to carry out these instructions, the front desk may accept or reject the job. If the job is accepted, the front desk may instruct a production team by sending the job, digital document, and instructions to the team for processing. A production coordinator may manually assign the jobs and their related tasks to individual production team members. The production team may include staff members, such as document editors, for editing and / or creation of the digital document. In some cases, the instructions may be forwarded (or pushed) to one or more relevant staff members to attend to, whereas, in other cases, the instructions may be made available to one or more staff members who may request (or pull) the instructions from the front desk to attend to.

[0009] The instructions may include the digital document, or at least a link to the digital document which may be accessed by the relevant one or more staff members.

[0010] The relevant staff member (or members) may then perform the required editing and / or creating tasks and return the completed digital document to the client, or intermediary (such as the clearinghouse) between the client and staff member.

[0011] Some common problems with this standard method and associated system are potentially increased processing times and conflicting digital documents due to an inherit lack of appropriate automation of allocating editing jobs. A simple “first in, first out” allocation method may not work as instructions may be sent to staff members without the necessary experience. The result may be a sub-optimal allocation of tasks or projects. This may lead to a bottleneck whereby digital documents waiting to be edited builds up, waiting times increase, and a server hosting the system may become clogged. In some cases, multiple editors may work on a single document, resulting in conflicting digital documents that may be incompatible with one another. Improving an automated allocation of jobs may reduce the likelihood of incompatible digital documents being created and merged, and decrease server loads.

[0012] Accordingly, the applicant considers there to be scope for improvement.

[0013] The preceding discussion of the background to the invention is intended only to facilitate an understanding of the present invention. It should be appreciated that the discussion is not an acknowledgment or admission that any of the material referred to was part of the common general knowledge in the art as at the priority date of the application.

[0014] SUMMARY OF THE INVENTION

[0015] In accordance with an aspect of the invention there is provided a computer-implemented method for routing one or more jobs for editing a digital document, conducted at a server computer, comprising: receiving an editing instruction, the editing instruction including instructions for editing a digital document and including metadata associated with the digital document; accessing the metadata associated with the digital document; by means of a section capturing algorithm, extracting one or more sections from the digital document, and assigning each of the one or more sections a unique section identifier; using a routing algorithm to determine, based on the accessed metadata, one or more tasks associated with the editing of the one or more sections to be performed by an editing entity; and, outputting the one or more tasks to be performed by the editing entity.

[0016] The editing instruction may include, or provide access to, the digital document.

[0017] The editing entity may be an editor, such as a staff member, and / or an automated editor.

[0018] The method may include transmitting, to the editing entity, the one or more tasks to be performed by the editing entity. Transmitting the one or more tasks to the editing entity may include transmitting a job editing request.

[0019] Using the routing algorithm to determine the one or more tasks associated with the editing job may include pre-processing one or more editing jobs in an editing queue. An editing job may be associated with an editing instruction.

[0020] Using the routing algorithm may include pre-processing one or more editor profile records associated with the editor identifier. Pre-processing the one or more editing jobs in an editing queue may include accessing a queue of jobs stored in a database including a job record and identifying tasks associated with the one or more editing jobs.

[0021] Pre-processing one or more editor profile records associated with the editor identifier may include retrieving data stored in the editor profile record and at least temporarily storing the data. Each editor profile record may include a unique editor identifier. Accessing metadata associated with at least one of the unique editor identifiers may include accessing the retrieved editor data. The data to be retrieved may include any one or more of: editor availability, editor skills, editor performance history, editor personality, or the like.

[0022] The method may include determining, for each editing job, the one or more tasks associated with the editing job. The one or more tasks associated with each editing job may be determined by using metadata extracted from the editing job, and for the one or more tasks to be based on data provided in an editing instruction received from a client device.

[0023] Using the routing algorithm may include determining, based on accessed metadata from two or more editing instructions, one or more tasks associated with the editing of a digital document for each editing instruction, the one or more tasks to be performed by one or more editing entities. Using the routing algorithm may include repeatedly using or running the routing algorithm. Repeatedly running the routing algorithm may include running the routing algorithm sequentially one after the other. Repeatedly running the routing algorithm may include running the routing algorithm with different configuration parameters. The configuration parameters may include any one or more of: a minimum quality score, a maximum quality score, different task priorities, or the like. Repeatedly running the routing algorithm may include evaluating the repeating runs of the algorithm against a set of key performance indicators. The key performance indicators may include any one or more of: expected quality score, on time delivery, editor utilisation, editor satisfaction, or the like.

[0024] The digital document may include one or more sections. The one or more sections may include one or more pages and / or slides of the digital document. The method may include performing a section capturing algorithm to extract each section of the digital document individually. Performing the section capturing algorithm may include the server computer splitting each section from the rest of the digital document. Performing the section capturing algorithm may include the server computer tagging each section of the digital document with a unique section identifier. Each of the extracted sections and the relevant unique section identifier may be associated with an editing job. Each unique section identifier may include a placeholder associated with the position of the section in relation to other sections in the digital document. Each unique section identifier may be associated with a version number indicating a version of the section.

[0025] The method may include combining sections of an edited digital document together. Combining sections may include, if any content had been added or edited, stitching the edited sections associated with the editing job into a master file. The master file may be associated with the digital document. The master file may be maintained by the server computer. Stitching the edited sections associated with the editing job into a master file may include identifying the unique section identifier of the edited sections and replacing original sections having the same unique section identifier with the edited sections. Replacing the original sections having the same identifier with the edited sections may include updating the version number.

[0026] The routing algorithm and the section capturing algorithm may each, individually, include one or more models. The one or more models of both the section capturing algorithm and the routing algorithm may each include any one or more of: an artificial intelligence (Al) model, a machine learning (ML) model, a deep learning (DL) model, a statistical correlation mode, a greedy algorithm, a transformer-based neural networks, or a configuration of neural networks for embedding, encoding, and decoding tasks. In an example, the step of using a routing algorithm to determine one or more tasks associated with any one of the editing job, editing instruction, or job record, to be performed by an editing entity may include: applying a statistical correlation model and a trained artificial neural network. The statistical correlation and trained artificial neural network may be configured to analyse the job record and its associated metadata, and the editor profile record and its associated metadata.

[0027] The routing algorithm may identify one or more tasks associated with the editing job which best matches one or more editing entities in an editor profile record. In some embodiments, this may include determining a similarity score derived from similarities in the metadata associated with an editor profile record and the metadata associated with the editing instruction.

[0028] The routing algorithm may include a greedy algorithm. The greedy algorithm may repeatedly select a local optimum solution at each step in the optimisation. The greedy algorithm may select an optimal solution for the current input information. The input information may include the pre- processed job or jobs in the queue. The input information may include pre-processed editor profiles. The greedy algorithm may produce a list of tasks and list of editing entities to carry out said tasks. A job editing request comprising the task (newly allocated task) at the top of the list of tasks may be transmitted to the editing entity (newly allocated editing entity) associated to the task. The greedy algorithm may determine a new optimal solution, wherein one or both of the newly allocated task and newly allocated editing entity are removed as input information for the greedy algorithm. The process may be repeated for all of the jobs in the queue of jobs.

[0029] The method may include receiving a task accept message. In response to receiving the accept message, the method may provide access to at least the relevant data maintained / stored in the relevant job record associated for completion of the one or more tasks. In response to receiving the accept message, the method may provide access to the digital document or parts thereof and the metadata associated with the digital document. Providing access to the digital document may include sending a copy of the digital document or parts thereof to the editing entity. Providing access to the digital document may include sending a link to the digital document or parts thereof to the editing entity.

[0030] The method may, in response to outputting the one or more tasks to be performed by the editing entity, remove the one or more jobs corresponding to the one or more tasks from the jobs in the queue.

[0031] The method may include locking access to the digital document in response to an editing entity editing the digital document of part thereof. Locking access to the digital document may include locking access to one or more sections of the document. Access to the digital document may be locked in response to receiving the task accept message.

[0032] The method may include receiving a notice that the editing job has been completed. The notice may provide access to the completed job for review. Providing access to the completed job may include providing access to the master file.

[0033] The metadata may include any one or more of: image related data, text related data, formatting related data, client related data, and tagging related data.

[0034] The image related data may include any one or more of: slides, slide numbers, slide images, image vectors, graphs, icons, blurred images, blacked-out images and the like. The text related data may include any one or more of: pages, page numbers, text, sections of text, content language and the like. The formatting related data may include any one or more of: a total number of slides in the digital document, a total number of pages in the digital document, total shapes, total characters, total words, total text boxes, total images, total graphs, total tables, template names, section complexity level, a language requirement, and the like. The client related data may include any one or more of: an account associated with the client, client account details, a name of the client, or client importance / value. The tagging related data may include any one or more of: tags of tagged components, a type of tagged component, and the like. The tagging related data may include instructions from the client on how to edit the digital document or components thereof.

[0035] The editing of the digital document may have been completed by an automated editor. The automated editor may be configured to edit the digital document of part thereof. The automated editor may be accessible by the server computer.

[0036] In accordance with a further aspect of the invention there is provided a system for routing one or more jobs for editing a digital document, conducted at a server, the system comprising: a processor and a memory configured to provide computer program instructions to the processor to execute functions of components; an instruction receiving component for receiving an editing instruction, the editing instruction including instructions for editing a digital document and including metadata associated with the digital document; a metadata accessing component for accessing the metadata associated with the digital document; a section capturing algorithm component for extracting one or more sections from the digital document, and assigning each of the one or more sections a unique section identifier; a routing component for using a routing algorithm to determine, based on the accessed metadata, one or more tasks associated with the editing of the one or more sections to be performed by an editing entity; and, a result outputting component for outputting the one or more tasks to be performed to the editing entity.

[0037] The system may include a database. The database may be configured to store any one or more of: a job record, an editor record, a client record, training data, and a model repository.

[0038] The routing algorithm component may include a job pre-processing component configured to pre- process a list of jobs stored in a job record for the routing algorithm. The pre-processing component may process one or more editing jobs in an editing queue.

[0039] The routing algorithm component may include an editor profile pre-processing component configured to pre-process a list of editing entities. The editor profile pre-processing component may include pre-processing an editor profile record associated with the editor identifier, which includes retrieving data stored in the editor profile record and at least temporarily storing the data.

[0040] The system may include a task determining component configured to determine, for each editing job, the one or more tasks associated with the editing job. The one or more tasks associated with each editing job may be determined by using metadata extracted from the editing job or editing instruction. The one or more tasks associated with each editing job may be determined by using metadata extracted from the editing job. and for the one or more tasks to be based on data provided in an editing instruction received from a client device.

[0041] The system may include a section capturing algorithm component configured to extract each section of the digital document individually. The section capturing algorithm component is configured to split or extract each section from the rest of the digital document. The section capturing algorithm component may tag / assign each section of the digital document with a unique section identifier. Each of the extracted sections may be associated with an editing job. The section capturing algorithm component may be arranged to associate each unique section identifier with a version number indicating a version of the section.

[0042] The system may include a stitching component configured to stitch edited sections of the digital document together. Stitching the edited sections together may include the stitching component may outputting a master file of all sections combined together. The stitching component may stitch the edited sections together according to the unique section identifiers. The master file may be maintained by the server computer. Stitching the edited sections associated with the editing job into a master file may include identifying the unique section identifier of the edited sections and replacing original sections having the same identifier with the edited sections.

[0043] In accordance with a further aspect of the invention there is provided a computer program product for routing one or more jobs for editing a digital document, the computer program product comprising a computer-readable medium having stored computer-readable program code for performing the steps of: receiving an editing instruction, the editing instruction including instructions for editing a digital document and including metadata associated with the digital document; accessing the metadata associated with the digital document; by means of a section capturing algorithm, extracting one or more sections from the digital document, and assigning each of the one or more sections a unique section identifier; using a routing algorithm to determine, based on the accessed metadata, one or more tasks associated with the editing of the one or more sections to be performed by an editing entity; and, outputting the one or more tasks to be performed to the editing entity.

[0044] In accordance with an aspect of the invention there is provided a computer-implemented method conducted at a server computer, comprising: receiving a job editing request associated with a unique editor identifier and extracting the editor identifier from the job editing request, wherein the job editing request is associated with the editing of a digital document; accessing metadata associated with at least one of the unique editor identifier and an editing job; using a routing algorithm to determine, based on the accessed metadata, one or more tasks associated with the editing job to be performed by an editor associated with the editor identifier; and outputting the one or more tasks to be performed to the editing entity.

[0045] Further features provide for the computer-readable medium to be a non-transitory computer- readable medium and for the computer-readable program code to be executable by a processing circuit. Embodiments of the invention will now be described, by way of example only, with reference to the accompanying drawings.

[0046] BRIEF DESCRIPTION OF THE DRAWINGS

[0047] In the drawings:

[0048] Figure 1 is a schematic diagram which illustrates an exemplary embodiment of a system for automatic routing of one or more jobs for editing a digital document according to aspects of the present disclosure;

[0049] Figure 2 is a flow diagram which illustrates an example embodiment of a method for creating and capturing an editing job in response to receiving an editing instruction from a client;

[0050] Figure 3 is a swim-lane flow diagram which illustrates an example embodiment of a method for automatic routing of one or more jobs for editing a digital document;

[0051] Figure 4 is a flow diagram of an example model training process to train a model;

[0052] Figure 5 is high-level block diagram which illustrates an exemplary server computer according to aspects of the present disclosure; and

[0053] Figure 6 illustrates an example of a computing device in which various aspects of the disclosure may be implemented.

[0054] DETAILED DESCRIPTION WITH REFERENCE TO THE DRAWINGS

[0055] Aspects of the present disclosure relate to a system and method for routing of one or more jobs for editing a digital document. Furthermore, the system and method may relate to automatic routing. The one or more jobs may be editing jobs associated with a digital document, such as a PowerPoint® presentation, Word® document, or the like. The disclosed system and method may find particular application, and are described below, in the field of professional digital document production. The term “editing” of a digital document as used herein should be interpreted to include creating or re-working of components of a digital document.

[0056] A service provider may, via a server computer, receive an editing instruction from a client to edit a digital document. The editing instruction may include data associated with the digital document. The data may include information on components of the document that need to be edited and how the components need to be edited. A digital document may include one or more sections. In an example, sections of a digital document may include, but are not limited to, slides or pages of a PowerPoint® presentation or a Word® document. Components of the digital document may include any one or more of: text, images, properties, or the like. In some examples, components of the digital document may be tagged with one or more tags. Each tag may be associated with a type of editing which is required for a component. Each section of the digital document may include one or more components, wherein one or more components may be associated with a tag.

[0057] In some examples, an operator may receive the editing instruction via the server computer. The editing instruction may include the digital document and metadata associated with the digital document. In another example, the editing instruction may provide a link to the original or a copy of the digital document and metadata associated with the digital document. The operator may then capture, or cause to be captured, the metadata included in the instruction. The metadata may include any one or more of: image related data, text related data, formatting related data, client related data, and tagging related data. The image related data may include any one or more of: slides, slide numbers, slide images, image vectors, graphs, icons, blurred images, blacked- out images and the like. The text related data may include any one or more of: pages, page numbers, text, sections of text, content language and the like. The formatting related data may include any one or more of: a total number of slides in the digital document, a total number of pages in the digital document, total shapes, total characters, total words, total text boxes, total images, total graphs, total tables, template names, section complexity level, a language requirement, and the like. The client related data may include any one or more of: an account associated with the client, client account details, a name of the client, or client importance / value. The tagging related data may include any one or more of: tags of tagged components, a type of tagged component, and the like. The tagging related data may include instructions from the client on how to edit the digital document or components thereof.

[0058] In addition to capturing the metadata included in the instruction, the operator may access the copy of the digital document and capture (or store) the document in a record associated with the client. This may include the operator submitting the document for editing to the server computer. The server computer may perform a section capturing algorithm on the document. The section capturing algorithm may capture each section of the digital document to extract each section of the document individually. In an example, the section capturing algorithm may be a slide capturing algorithm or a page capturing algorithm. The section capturing algorithm may tag each section with a unique section identifier. The section capturing algorithm may store each extracted section in a database maintained or accessible by the server computer. The server computer may further, via the section capturing algorithm, extract parameters associated with components of each individual section. The extracted parameters for each section may include any one or more of: component formatting, number of components, type of components, or the like.

[0059] Once the document is captured, the operator may mark every section with editing notes, associated with the editing instruction received. The operator may create and capture an editing job. The editing job may be associated with at least a component of the digital document that needs to be edited. The editing job may be captured in a record in the database. The editing job may be added to a queue of jobs that need to be completed. The queue of jobs may be a combination of all editing jobs from all editing instructions that are yet to be completed and / or reviewed. Each editing job may be associated with one or more editing instructions. The editing job may be associated with one or more tasks. The one or more tasks associated with an editing job may be individual tasks that are required to complete the editing job.

[0060] The editing job may be made available to an editing entity, such as an employee responsible for editing documents in accordance with client instructions. The editing entity may be an editor. Alternatively, the editing entity may be an automated editor capable of automating at least a part of the editing job. The automated editor may include one or more editing models. The one or more editing models may each be configured to perform specific tasks associated to an editor. In an example, the one or more editing models may include a model for performing image editing. The image editing may include any one or more of: image translation, image rotation, image reconfiguration, image resizing, image blurring, image anonymisation, image generation, image modification, or the like. In a further example, the one or more editing models may include a model for performing text editing. The text editing may include any one or more of: text summarisation, text generation, text anonymisation, or the like. The automated editor may be hosted on the server computer, or hosted on individual editor devices. In an example, the editing models may be used to perform pre-processing steps, using the editing instructions and / or metadata.

[0061] The term editor may be used to refer to any editing entity, such as an employee or an automated editor.

[0062] In an example, the editing job may be made available to the editor by the server computer by pushing the job to an editor device when triggered to do so. In another example, the editor may pull an editing job from the server computer, via the editor device. Making the editing job available to an editor may include the server computer executing a routing algorithm using an editor identifier as input. The routing algorithm may be a page, job or task routing algorithm. The routing algorithm may pre-process one or more jobs in the queue of jobs. Each job may include one or more tasks associated with the job. Pre-processing the one or more jobs in the queue of jobs may include pre-processing each task associated with each job. The routing algorithm may pre-process an entire backlog of all jobs to be performed in the queue of jobs, or only a subset of jobs in the queue. The routing algorithm may pre-process an editor profile or a number of editor profiles. The routing algorithm may identify a task or a number of tasks to be performed from the queue of jobs. Furthermore, the routing algorithm may determine which editor is to perform the task or the number of tasks. The editor may be associated with an editor identifier. Each task or number of tasks may be assigned to one or more editors. The routing algorithm may output a result which indicates the next task to be performed by the editor associated with the editor identifier.

[0063] In an example, the routing algorithm may output a list of tasks and an editor assigned to each task in the list. Depending on specific conditions within an editing instruction (such as a short deadline), the routing algorithm may output that a task be interrupted such that a more pressing task may be attended to. In another example, for each run of the routing algorithm, a task will be assigned to all available editor at that moment the routing algorithm is executed.

[0064] Pre-processing the job may include the server computer accessing the queue of jobs stored in the database, which are provided by the section capturing algorithm. Once the queue of the jobs has been accessed, the server computer may complement each of the editing jobs with additional tasks that need to be executed for each job. These tasks may include any one or more of: job acceptance, clarifying instructions associated with the job, quality assurance, deadline for delivery of the work, or the like. Once each of the jobs have been complemented with additional tasks, the queue may be rearranged based on pre-determined criteria. The pre-determined criteria may include any one or more of: delivery deadlines (i.e. urgency), number of editors allowed to work on the project at a given time, a difficulty level, quality requirements, or the like. Data which may be used to rearrange the jobs in the queue may include the metadata extracted from the instruction.

[0065] Each editor may have an editor profile associated with the editor. Pre-processing the editor profile may include retrieving information stored in the editor profile for further processing. The information to be retrieved may include any one or more of: editor availability, editor skills, editor performance history, and editor personality. Editor availability may be indicative of the availability of the editor to perform a job at a given time, which may further be based on any one or more of: pre-existing work schedules, absence information, an editor activity list, or the like. The editor availability may be maintained by the service provider. Editor availability may be updated in realtime. The service provider may further, for each editor, maintain a skills matrix indicating the skills and / or competencies of each editor in the editor profile. For example, the skills matrix may include any one or more of: a list of trained roles of an editor, tools with which the editor has experience with, types of jobs and components that the editor has an interest in, or the like. This skills matrix may be used, amongst other things, to determine the suitability of an editor for a job. Each editor’s performance may be tracked and / or evaluated. Each editor’s performance may be stored in the profile of each respective editor. The editor’s historical performance may include any one or more of: an amount of work the editor has completed (experience), a quality, productivity levels for jobs of different categories, types of components with which the editor works the most, and the like. The editor personality information may include data on any one or more of: work preferences of the editor, mood patterns and interests of the relevant editor. For example, each editor may be required to indicate the type of work they find most enjoyable, the fields of work they find most interesting, and how they perform under pressure, etc. In some examples, editors’ moods may be tracked by means of smart devices that can measure stress levels, break patterns, etc. Accordingly, each user profile may include data on how an editor functions and / or performs when certain mood indicators are at certain levels.

[0066] Once the job and editor profiles have been pre-processed, the next task within the job to be performed may be identified. This includes the server computer determining the optimal allocation of the job (and its associated tasks) to an editor. An editor may notify the server computer that the editor is ready and available to receive a task. Alternatively, the server computer may have the editor availability information specific to each editor, based on all editor profiles. The routing algorithm may, using the information of all tasks to be performed for all of the jobs listed in the queue of jobs, and using the information of all available editors, determine a list of tasks to be performed in order of which task is to be performed by which editor.

[0067] The routing algorithm may include a greedy based algorithm to determine which editor is to perform a task or the number of tasks of the job. A greedy algorithm repeatedly selects a local optimum solution at each step in the optimisation. The greedy algorithm may select an optimal solution for the current input information. The input information may be the pre-processed job or jobs in the queue, and pre-processed editor profiles. The greedy algorithm may produce a list of tasks and editors to carry out said tasks. The tasks output by the greedy algorithm may be transmitted in a job editing request. The job editing request may include the task (newly allocated task) at the top of the list of tasks to the editor (newly allocated editor) associated to the task. The greedy algorithm may determine a new optimal solution, wherein one or both of the newly allocated task and newly allocated editor are removed from the data used by the greedy algorithm. The greedy algorithm may be repeated as editing instructions are received. The greedy algorithm may be repeated as job editing requests are accepted.

[0068] The routing algorithm may include one or more models. The one or more models may be used to adjust the allocation of the jobs. The one or more models may include a greedy algorithm. The one or more models may include a statistical correlation model. The one or more models may include a trained model. The trained model may be any one or more of: an artificial intelligence (Al) model, a machine learning (ML) model, or a deep learning model (DL). Furthermore, the one or more models may include an artificial neural network (ANN).

[0069] The routing algorithm may be run multiple times for the same set of inputs, but with different configuration parameters of the algorithm. The configuration parameters may include any one or more of: a minimum quality score, a maximum quality score, different task priorities or the like. The output of each run of the routing algorithm may be evaluated against a set of key performance indicators. The key performance indicators may include any one or more of: expected quality score, on time delivery, editor utilisation, editor satisfaction or the like. In an example, the greedy algorithm may be re-run with different configuration parameters. Each output of each run of the greedy algorithm may be evaluated against the key performance indicators.

[0070] The overall aim of the routing algorithm may be to optimise various dimensions (e.g. quality, turnaround time, editor utilisation, editor satisfaction, etc.) associated with an instruction. The optimisation may allocate the best available job to the best available editor, based on editor and job specific information. Once the next task to be performed for the particular editor has been determined, the server computer may make the task available to the editor. The task may be made available by sending a job editing request to the editor. The job editing request may include information the editor may need to assess if they are able to perform the editing instruction. As mentioned above, the task may either be made available to the editor upon request of the editor (a pull instruction), where the editor notifies the server computer that they are available to receive editing jobs or a job editing request. Alternatively, the server computer may know that an editor is available to receive an editing job, and therefore sends a job editing request (a push instruction). The server computer may know that an editor is available based on any one or more of: the editor profile information, an editor clock-in, editor availability, or the like.

[0071] The editor may then accept the editing job made available by the server computer and perform the necessary tasks associated therewith. Once the task has been completed, the editor may submit the job and / or tasks to the server computer. It should be appreciated that the above steps may be performed for multiple editors simultaneously and, therefore, multiple editors may work on jobs and / or tasks associated with a single digital document at the same time. Each task may be locked once an editor has started working on the task. Locking the task may prevent multiple editors from working on the same task simultaneously. A task may be locked once an editor has accepted a task or job associated with the task. The job associated with a task may be removed from the queue of jobs once the job has been accepted. Once a job or task associated with a job is complete, the task may be submitted as complete. The completed job may be returned to the queue of jobs. The routing algorithm may determine that the completed job must be made available for review.

[0072] The server computer may maintain a master file of the digital document during the steps set out above. The master file may be updated as changes are being made by editors and submitted to the server computer. This process may be referred to as document stitching. Only sections that have been edited are updated as the jobs are being submitted as complete.

[0073] A document edit is complete once no more tasks or jobs associated with the digital document appear in the queue. The final task associated with a single digital document may be a “review” task / instruction to ensure that the original instruction has been successfully completed.

[0074] Figure 1 is a schematic diagram showing an example system (100) for automatic routing of one or more jobs for editing a digital document. The system (100) may include a server computer(102) maintained and controlled by a service provider. The system (100) may include one or more editor devices (104) in digital communication with the server computer. The service providers may specialise in the creation and editing of digital documents for clients. Digital documents may include any presentations, slides, brochures, graphics, or the like. The editor devices (104) may be any suitable computing devices such as a mobile phone, laptop computer, tablet, personal computer, or the like.

[0075] The system (100) may further include one or more client devices (106) associated with clients who typically require a digital document to be edited by the service provider. It should be noted that even though only one editor device and one client device are shown, a plurality of editor devices and client devices may be present in a practical implementation.

[0076] The server computer (102) may be any suitable computing device and may be configured to interface with the one or more editor devices (104). For example, the computing device may be configured to interface with editor management systems of one or more editors using the editor devices via an application programming interface (API). Interfacing with the management systems of the one or more editors may enable the server computer to at least access data records, such as editor profiles, associated with the one or more editors.

[0077] The server computer (102) may further be in communication with the client device / s (106) via a suitable communication network (108), such as the Internet or any other appropriate communication network. The communication network (108) may be configured to allow for data and / or messages to be transmitted to and received from respective client devices and / or editor devices. The server computer (102) may, for example, be configured to receive editing instructions for editing a digital document from the client devices (106). The server computer (102) may, once a digital document has been edited, return the edited digital document to the client device. The client controlling the client device (106) may review the digital document. The server computer (102) and the client device / s (106) may include any one or more of: processors capable of processing data, memory units capable of storing data, and communication components capable of sending data to other devices and locations. The server computer (102) may, for example, be in the form of a cluster of server computers, a distributed server computer, a cloudbased server computer, or the like. The physical location of the server computer may be unknown and irrelevant to clients of the system and method described herein. The client devices (106) may be any suitable computing devices such as a mobile phone, laptop computer, tablet, personal computer, or the like.

[0078] The server computer (102) may include a processor (1 10) for executing the functions of components described below, which may be provided by hardware or by software units executing thereon. The software units may be stored in a memory component (112) and instructions may be provided to the processor (110) to carry out the functionality of the described components. In some cases, for example in a cloud computing implementation, software units arranged to manage and / or process data on behalf of the server computer may be provided remotely or in a distributed fashion.

[0079] The server computer (102) may have access to or may maintain one or more database(s) (114). The database(s) (1 14) may store client records (116). The client records may be accessible from the database(s) (114). The client records (1 16) may include data acquired from client registration, client instructions, or the like. For example, the acquired data may be received when a client sends the editing instructions to the server computer. The acquired data may be stored when a client requests editing of a digital document according to the editing instructions via the server computer. The acquired data may include personal client data, including any one or more of: client name details, client account details, client importance / value, or the like. The acquired data may include instruction data which includes metadata associated with the digital document. The acquired data may include a pointer to a digital copy of the digital document. The data included in the client record may be used to, for a particular client instruction, create an editing job, for later acceptance by an editor. The editing job may be created by the server computer (102) accessing the data in the client record (1 16) and executing a section capturing algorithm on the data.

[0080] In addition to the client data, the one or more database(s) (1 14) may store and / or maintain one or more job record(s) (118). The job record(s) (118) may include data relating to editing jobs which are yet to be completed. For example, the job record(s) (1 18) may maintain an editing job queue (an editing queue or a job queue) which may be accessed by editors to attend to the jobs. The job record(s) (1 18) may include any one or more of: processed metadata extracted from the instruction; client information, section format, complexity levels, language requirements, and a pointer to the digital copy of the document.

[0081] The one or more database(s) (114) may further store and maintain one or more editor profile record(s) (120). Each editor profile record (120) may include a unique editor identifier, associated with an editor and / or an editor device (104). The editor profile record (120) may include a variety of different types. The data may include any one or more of: editor availability data, editor skills data, editor performance data, editor personality data, or the like.

[0082] The editor availability data may be indicative of the availability of the editor to perform a job at a given time. The editor availability data may include any one or more of: pre-existing work schedules, current schedules, current activities, future work schedules, absence information, an editor activity list, or the like. The editor availability data may be maintained by the service provider. In some examples, the editor availability data may be obtained by the server computer (102) interfacing with the editor management system. Editor availability data may be updated in real-time, so that the server provided can keep track of editor availability.

[0083] The service computer (102) may further, for each editor, maintain a skills matrix indicating the skills and / or competencies of each editor in the editor profile record (120). For example, the skills matrix may include the editor skills data. The editor skills data may include any one or more of: a list of trained roles of an editor, experience of the editor, knowledge information of the editor, types of jobs of the editor, components that the editor has an interest in, and the like. This skills matrix may be used, amongst other things, to determine the suitability of an editor for a job, as discussed in more detail below. The knowledge information of the editor may include knowledge of any one or more of: tools, processes, formats, contents, or the like. Each editor’s performance may be tracked and / or evaluated. Each editor’s performance may be stored in the profile of each respective editor. An editor’s performance and the editor’s historical performance for a previous job or jobs, may also be stored in the editor performance data. The editor performance data may include any one or more of: experience data, quality data, productivity data, or the like. The experience data may include any one or more of: an amount of work the editor has completed (experience) overall, an amount of work the editor has completed per client (a company or individual), an amount of work completed in a respective format, an amount of work completed with similar content, an amount of work completed with similar components and / or elements, an amount of work completed with similar tools involved. The quality data may include quality levels associated with any one or more of: a job category, format, content, components or elements, or the like. The productivity data may include productivity levels associated with any one or more of: a job category, format, content, types of components or elements, or the like. The experience data, quality data and productivity data may be compartmentalised into categories that the editor has worked on the most and / or the least.

[0084] The record may further include data on an editor’s personality, which may provide information on any one or more of: work preference data of the editor, editor mood pattern data, and interest data of the relevant editor. For example, each editor may be required to indicate any one or more of: which clients they prefer working with, management preference of the editor, the type of work they find most enjoyable, the fields of work they find most interesting, how they perform under pressure, or the like. The editor personality data may be obtained during a registration process or interview of the editor with the service provider. The editor profile record (120) may then, for example, be created while keeping those preferences in mind.

[0085] The editor mood pattern data may include any one or more of: general mood level, stress level, satisfaction level, or the like. The general mood level may be measured over a period of time, including any one or more of: year, month, week, day, or hour. The general mood level may include external factors, including but not limited to any one or more of: weather, political situation, or economic situation. The general mood level may include break patterns and / or health issues, wherein the health issues may be ongoing and / or recent. The editor mood pattern data may include historical measurements. The historical measurements may be usable to determine an impact of these factors. In some examples, editors’ moods may be tracked by means of smart devices. The smart devices may measure any one or more of: stress levels, heart rate, skin temperature, blood oxygen levels, skin moisture levels, or the like. Example smart devices that may be used may include any one or more of: heart rate monitors, smart watches, wearable sensors, fitness tracker, workplace sensors, infrared / thermal cameras, or the like. An example camera may be a front facing camera on the editor device. Accordingly, each editor profile record (120) may include data on how an editor functions / performs when certain mood indicators are at certain levels. For example, some editors may perform better under pressure than others, and those editors would be better suited for a job with an imminent deadline than an editor who requires more time to perform certain tasks. In some examples, each editor record (120) may include an editor device identifier which is linked to the unique editor identifier, so that an editor may be verified via a device identifier and vice versa. The editor satisfaction level may be measured by satisfaction surveys or similar.

[0086] It should be appreciated that the data maintained and stored in the records may be computer readable data and unique for every client, editor and job / instruction. Access to the database (1 14), and the records (1 16, 118, 120), may be controlled by the server computer (102). For example, access to the client records (116) may be limited to managing personnel only, whereas access to the job records (118) may be provided to pre-determined editors / editor devices.

[0087] In some examples, the database (114) may include training data (122) which may be used to train one or more models for the routing algorithm. The routing algorithm may be used by the server computer (102) to process editing instructions and editing jobs to determine which editing job is best suited for a particular editor (or vice versa, i.e. which editor is best suited for a particular editing job). In other words, to enable the server computer (102) to process data relating to a client instruction, the training data (122) may be used as input to train one or more models. Training the models may include performing various data pre-processing techniques. The preprocessing techniques may include applying any one or more of: statistical correlation models, natural language processing algorithms, machine learning algorithms, artificial neural networks, and / or other artificial intelligence algorithms. The pre-processing techniques may be used to obtain models which may be usable to optimally allocate editing jobs to editors.

[0088] The one or more models may be stored in a model repository (128) within the database (1 14). The model repository may be accessible by other components of the server computer.

[0089] It should be noted that the training data (122) may be continuously re-evaluated and / or updated in order to achieve greater consistency and accuracy in its outputs. This may, for example, include updating the data in the training dataset in response to new methods or patterns being developed or realised to allocate jobs to editors. The training data may include historical data collected from previous client, job and editor records.

[0090] The server computer (102) may be configured to execute one or more models. The one or more models may be configured for automated routing of one or more jobs for the editing of a digital document. Accordingly, the server computer (102) may include or have access to a routing component (124). The routing component may obtain models from the model repository (128). The server computer (102) may include or have access to a section capturing component (126). The section capturing component may obtain models from the model repository (128).

[0091] Each of the editor devices (104) may include a processor for executing the functions of an application which may be provided by hardware or by software units executing on the respective editor device (106). The software units may be stored in a memory component and instructions may be provided to the processor to carry out the functionality of the described components in cooperation with an operating system of the device. In some cases, for example in a cloud computing implementation, software units arranged to manage and / or process data on behalf of the editor device may be provided remotely. Some or all of the components may be provided by a software application downloadable onto and executable on the respective editor device.

[0092] In some examples, each of the editor devices (104) may be in communication with a storage component. The storage component may be an on-board storage component, or it may be a remote storage component, such as a cloud storage network, or a database (such as the database (1 14) discussed above), maintained by the server computer (102).

[0093] Figure 2 is an example flow diagram of a method (200) for creating and capturing an editing job in response to receiving an editing instruction from a client.

[0094] A service provider may, via a server computer (102), receive (202) an editing instruction from a client device (106) to edit a digital document. The editing instruction may include the digital document, or parts thereof, for editing. The editing instructions may include a link or access to the digital document, or part thereof, for editing. The editing instruction may include data associated with the digital document, such as the metadata. The tagging related data may include editing information for components that are intended to be edited. Each of the one or more tags may be of a particular type, which may be associated with a type of method of editing being requested. For example, a component may be tagged with a tag labelled with any one or more of: “Beautify”, “Clean-up / Align”, “Make consistent”, “Convert into new master”, “Edit slide (low effort)”, “Edit slide (high effort)”, or “Recreate image”, or the like. In other words, each of the tag categories may be associated with a particular editing task to be performed. For example, “Beautify” may require the service provider to improve the overall appearance of tagged components of the document. The tag “Make consistent” may simply require a service provider to change the font and / or colour of a tagged component (such as text) of the document. The tags may be manual comments added by the client. In some cases, the service provider may interface with the client via a front-end API with which the client may tag components electronically. The editing instruction may include information on the type of tag category with which tagged components are tagged. Components of the digital document may include any text, images, properties, or the like, of a section of the digital document that a client wishes to have edited.

[0095] In some examples, an operator, such as a human operator at least partially controlling the server computer (102), may receive (202) the editing instruction via the server computer. However, in some examples, the server computer may automatically receive and process the editing instruction, as discussed in more detail below. For the purposes of the example embodiment discussed below, the server computer (102) is under the control of a human operator, which may perform at least some of the steps. It should, however, be appreciated that these tasks may be automated.

[0096] The received editing instruction may include, or at least provide a link to, a copy of the digital document and metadata associated with the digital document. The server computer (102) may, in response to an operator input, capture (204), or cause to be captured, the metadata included in the instruction. This is done by the operator selecting an option to process the instruction upon which the server computer may extract (206) the metadata from the instruction. This may be done by applying one or more models for extracting instruction metadata.

[0097] In addition to capturing (204) the metadata included in the instruction, the server computer (102) may access (208) the copy of the digital document. The server computer may capture (or store) (210) the document in the client record (116) associated with the client and maintained in the database (1 14). This may include the operator manually submitting the document for editing to the server computer (102), or the server computer accessing the link provided by the client and downloading the document.

[0098] Once the document and metadata have been captured and stored, the server computer (102) may perform (212) the section capturing algorithm on the document stored or accessed from the record to extract each section of the document individually. Performing the section capturing algorithm may include the server computer splitting (213) each section from the rest of the document to extract the section from the document. Performing the section capturing algorithm may include tagging (214) each section of the document with a unique section identifier. Once each section has been extracted and tagged, the algorithm may include, at least temporarily, storing (215) each extracted section. The server computer (102) may further, via the section capturing algorithm, extract (216) parameters associated with components of each individual section. The parameters extracted may include data such as component formatting, number of components, type of components, etc., on the section. Tagging of each section of the digital document with a unique section identifier may enable timeliness tracking of each of the relevant sections, as and when required. For example, the unique section identifier may include a placeholder associated with the section in relation to other sections in the digital document. The unique section identifier may further be linked to a version number of the digital document, which may be updated with every new edit to the digital document in question. In other words, by using the general metadata extracted within the section capturing algorithm, each section’s original position within the digital document can be identified and any changes to it at a later stage will be recorded. Any additional section introduced to the document at a later stage will follow an identical approach. In some examples, any edit or modification to a section captured in the system may be saved with the same position data, and therefore identifier, but a different version number.

[0099] Tagging the sections with the identifier may facilitate stitching of the sections into the digital document as each section may be associated with a position within the larger digital document as a whole and, therefore easily returned to the position once the section has been edited or modified. Thus, this may facilitate inserting the section at the desired position in the document or enable an editor to recreate any historical state of the digital document, as and when required. The stitching process is discussed in more detail below.

[0100] Once the section capturing algorithm has been performed and each section has been extracted from the document, each section may be marked (218), via the server computer (102) and based on a received operator input, with editing notes. The editing notes may be associated with the editing instruction received and used as guidance by an editor responsible for editing the document. The method (200) may further include creating and capturing (220) a new editing job. The editing job may be associated with at least a component of the digital document that needs to be edited. In an example, the editing job may be associated with a particular individual section or a combination of sections with metadata that closely correspond to each other and are associated with the same digital document. For example, sections requiring edits of a similar nature, based on the metadata, may be clustered or grouped into a single editing job. Each created editing job may further be associated with one or more editing tasks to be completed. These tasks are determined using the metadata extracted from the editing instructions and capturing the new editing job may include capturing the tasks associated with the editing job in a readable format. The tasks may be tasks relating to the editing of the document and be associated with the initial document tags, including one or more of, but not limited to: “Beautify”, “Clean- up / Align”, “Make consistent”, “Convert into new master”, “Edit slide”, and “Recreate image”. For example, the tasks may provide the editor with clarity on what needs to be done to the section and to what extent. In some examples, the tasks may include more detail such as “create a graph for the data shown in Table 2”. The tasks may, therefore, explain to the editor what needs to be done for the particular job. The tasks may, therefore, be based on the tags associated with the initial editing instruction.

[0101] The new editing job may be captured in a job record (118) in the database (1 14) and added to a queue of jobs that need to be completed. For example, the job record (1 18) may include a plurality of editing jobs, with each of the editing jobs sorted in a queue based on a set of predefined instructions. The order of the queue may, for example, be determined based on, but not limited to, any one or more of: an urgency of a job (based on the deadline), a time when the job was received (first in, first out), an importance of the client, a complexity of the editing needed, or the like. It should be appreciated that these instructions may be configured to evaluate metadata associated with the original editing instruction. The metadata associated with each editing job may be stored together with that editing job in the relevant record.

[0102] As discussed above, Figure 2 is an example method of the creation and queueing of editing jobs for the editing of a digital document.

[0103] In a typical system, an editor may be an employee of the service provider tasked with editing digital documents, based on client instructions. Each editor may be associated with an editor profile record storing data of the editor, and which may be accessed and processed by the server computer via an editor management system. For example, the server computer may interface with the editor management system in order to obtain editor related data and track the working capacity of the editor. For example, the editor management system may be configured to, with the aid of the editor profile record, keep track of the editing jobs that each editor is, and / or has been, responsible for within a given time.

[0104] In some examples, the editors may be external workers or entities using the service provider as a job sourcing platform, in which case the editor may not be directly related or affiliated with the service provider. The service provider may then simply have access to the editor record based on the instructions / allowance of the editor. For example, the editor may be an independent editor doing editing work on a part time basis and, which only wishes to perform editing works for the service provider during certain periods. In order to prevent the service provider from having to consider the editor record for every editing job, the editor may limit the access of the service provider, and therefore the server computer, to the editor profile record. In other words, the server computer may only be provided access to the editor profile record at times when the editor is on duty and available to take on new editing jobs. In another example, the editor may be an automated editor. The automated editor may be hosted at the server computer. In another example, the automated editor may be hosted at the editor device.

[0105] In light of the above, it should be appreciated that editing jobs may be allocated to editors in a plurality of different ways or methods. Two example methods are the so called “push”- and “pull”- methods.

[0106] The “push” method, for example, is a method in which the server computer evaluates editor availability for each editor in the system, either periodically or on a trigger event occurring. For example, when a new editing instruction is received or when a new editing job is created, the server computer may push the editing job to the editor based on the availability of the editor. In order to determine availability of an editor, the server computer may call on, or interface with, the editor management system. The server computer may, for example, receive or have access to a list of editors, compiled and / or maintained by the management system, that have capacity to attend to editing jobs. In a push methodology, the server computer may send a job editing request to one or more editors, which have been determined to be available. The job editing request may include a link to the relevant captured editing job, for inspection by the editor. The editor may then accept and / or reject the job editing request, as discussed in more detail below. In some embodiments, particularly where the editor is an employee of the service provider, the service provider may be triggered to push a new editing job to an editor in response to determining that a predefined time has lapsed within receiving any user input declining new editing offers or indicating that they are busy with another task / editing job.

[0107] The ”pull”-method is somewhat simpler than the “push”-method, at least at face value. This method may include the editor actively requesting a new editing job from the server computer. The request may, for example, be generated on the editor device. The request of the editor may be transmitted to the server computer in response to the editor, via an editor device, selecting a button or option that the editor is ready and available for new work. In an example of an automated editor, the editor may automatically notify the server computer of being available for a next task. The server computer may receive the request. The server computer may initiate the process to allocate an editing job from the queue to the relevant editor by using the routing algorithm. If the routing algorithm determines that the editor who requested a new task is to perform the next task, the server computer may transmit the job editing request to the editor. It should be appreciated that the server computer may be handling numerous incoming editing instructions and requests from editors, and that the server is continuously transmitting job editing requests to editors to perform the editing instructions.

[0108] Figure 3 is a swim-lane flow diagram showing an exemplary method for automatically routing an editing job to an editor for editing a digital document. Respective swim-lanes delineate steps, operations or procedures performed by respective entities or devices. Any reference to the service provider and server computer (102) may be used interchangeably, unless the context in which these terms are used dictates otherwise. Likewise, any reference to editor and editor device (104) may be used interchangeably, unless the context dictates otherwise.

[0109] The server computer may receive (304) an editing instruction from a client device. The editing instruction may include a unique client identifier associated with the client device. Receiving (304) the editing instruction may include extracting the unique client identifier from the instruction.

[0110] The server computer (102) may continuously or intermittently run (302) the routing algorithm. The continuous running of the routing algorithm may be indicated by the line (301 ). In an example, the routing algorithm may be run every 30 seconds. In another example, the routing algorithm may be triggered to run when an editing instruction is received (304) at the server computer. The routing algorithm may include an entire backlog of tasks associated with the queue of jobs to be performed. The routing algorithm may also include all editors available to perform the editing tasks. When an editing instruction is received (304) at the server computer, the routing algorithm includes this new instruction in the algorithm. The unique client identifier may be input into the routing algorithm before running (302) the algorithm. The editing instruction may be received from a client device. The routing algorithm may output (305) a next task to be performed by an editor each time that the routing algorithm is run. The routing algorithm may output (305) a list of tasks in a specific order. The list of tasks may include an editor associated to each task.

[0111] The server computer (102) may transmit (306) the job editing request to an editor device (104). The job editing request may include the next task to be performed by the editor. In an example, the editor device (104) may request (307) a job editing request from the server computer (using the pull method). This indicates to the server computer that the editor device is ready to perform a task. In another example, the editor device (104) may have been listed as an available editor (for example, through an editor availability schedule) and may receive (307) the job editing request from the server computer (using the push method). The routing algorithm may select which editor device may be chosen for the next task.

[0112] The request (307) from the editor device (104) using the pull method may include an editor device identifier associated with the editor device. In response to receiving the pull request (307), the server computer may run (302) the routing algorithm with new information, such as the editor device identifier, that the editor device is ready to accept a new task. The routing algorithm may use the received editor identifier. Receiving editing instructions from multiple client devices and requesting / receiving job editing requests from multiple editor devices may happen simultaneously.

[0113] The overall aim of the routing algorithm is to optimise various dimensions (e.g. quality, turnaround time, editor utilisation, editor satisfaction, etc.) associated with an instruction by allocating the best available job or task to the best available editor, based on editor and job or task specific information. The routing algorithm may initiate and / or cause any one or more of the following steps to be performed, by the server computer: pre-processing one or more editing jobs in the queue of jobs, pre-processing an editor profile associated with the editor identifier, and identifying a task to be performed. Once the task or job to be performed has been identified, the server computer may output (305) the task to be performed by the editor. The output (305) may include an editor allocated to said job or task.

[0114] The step of pre-processing the job may include the server computer accessing the queue of jobs stored in the database, provided by the section capturing algorithm discussed with reference to Figure 2. Once the queue of editing jobs has been accessed, the server computer may identify the one or more editing tasks associated with each of the editing jobs. The server computer may, in some cases, further complement each of the editing jobs with additional tasks that need to be executed. These tasks may, for example, include any one or more of: the editor accepting the job, the editor requesting clarifying instructions associated with the job, the editor guaranteeing a level of quality, a deadline for delivery of the work, or the like. The additional tasks may be standard tasks automatically added by the server computer to each editing job and which, in some cases, may simply be used as a checklist by the editor to confirm that the job is being correctly executed to the longed standard.

[0115] Each of the jobs may be complemented with additional tasks. The queue may be rearranged based on pre-determined criteria, including any one or more of: a delivery deadline (i.e. urgency), number of users allowed to work on the project at a given time, a difficulty level, quality requirements, or the like. The criteria which may determine the order of the editing jobs in the queue may be unique to each service provider. For example, some service providers may focus on quality rather than quick delivery and therefore focus on the most difficult jobs first, whereas some service providers may focus more on speedy service and therefore sort the jobs accordingly. It should be appreciated that any suitable set of rules may be applied in order to determine the order of the queue. It should be appreciated that the data which is used to sort the jobs in the queue may be the metadata extracted from the editing instruction and may include, the client information, section format, complexity levels, or language requirements to name a few. The server computer (102) may access the metadata from the database (1 14), as required. As discussed above, each of the editing jobs may include the metadata associated therewith stored / captured in the same record for use and / or access by the server computer.

[0116] The routing algorithm may further include pre-processing an editor profile record (120) via the server computer (102). As discussed with reference to Figure 1 , each editor may have an editor profile associated with the editor. The step of pre-processing the editor profile may include the server computer (102) retrieving the data / information stored in the editor profile records for use in further processing. The data / information to be retrieved may include any one or more of: editor availability data, editor skills data, editor performance data, editor personality data, or the like. Editor availability data may be indicative of the availability of the editor to perform a job at a given time and may be based on pre-existing work schedules, absence information (such as leave history), an editor activity list, etc. which is maintained by the service provider. Editor availability data may be updated in real-time and maintained by the editor management system.

[0117] The routing algorithm may further include retrieving the editor skills data. The editor skills data may include a skills matrix of the relevant editor. The service provider may, for each editor, create and maintain a skills matrix indicating the skills and / or competencies of each editor in the editor profile record. The skills matrix may be created once during editor registration (not discussed herein) and maintained based on new editor experience or the like. The editor skills matrix may be maintained by the server computer and via the editor management system. For example, the skills matrix may include a list of trained roles of an editor, tools with which the editor has experience, types of jobs and components that the editor has an interest in, or the like. This skills matrix may be used, amongst other things, to determine the suitability of an editor for a job. Each editor’s performance may be tracked / evaluated and stored in the profile records of each respective editor.

[0118] The service provider may further retrieve editor performance data. The editor performance data may include the historical performance of the relevant editor. Historical performance may include the amount of work the editor has completed (experience), the quality and productivity levels for jobs of different categories, types of components with which the editor works the most, and the like.

[0119] The service provider may further retrieve editor personality data. The editor personality data may include data on the work preferences of the editor, mood patterns and interests of the relevant editor to name a few. For example, each editor may be required to indicate the type of work they find most enjoyable, the fields of work they find most interesting and also how they perform under pressure, etc. In some examples, editors’ moods may be tracked by means of smart devices that can measure stress levels, break patterns, etc. Accordingly, each user profile record may include data on how an editor functions / performs when certain mood indicators are at certain levels. The server computer may at least temporarily store the retrieved data for further processing.

[0120] Once the job and editor profile records have been pre-processed, the routing algorithm may include determining and / or identifying the next task to be performed. This includes the server computer (102) processing the retrieved data / information, obtained during the pre-processing of the job and editor profiles, and by performing a further processing step using one or more models. In an example, the one or more models may include a statistical correlation mode. The one or more models may include a trained artificial neural network (ANN). In a further example, the one or more models may include a statistical correlation model, followed by a trained ANN. The output of the statistical correlation model may be usable as an input into the trained ANN.

[0121] By applying the above steps, the server computer may determine the optimal allocation of the job (and its associated tasks) to an editor. The one or more models may be configured to analyse the job record with its associated metadata, and the editor profile record associated with the provided editor identifier. The one or mode models may identify the job or tasks which may be best suited for the particular editor. In other words, the one or more models may effectively compare the metadata of the job with the metadata of the editor record to identify any patterns or similarities in this data. If the similarities exceed a pre-determined (and configurable) score, match the job to the editor. In such an example, the job with the highest similarity would be matched with the editor.

[0122] The score may, for example, be expressed as a percentage indicative of the similarity between one set of data and another set of data based on certain characteristics. The score may be case specific and dependant on client requirements, company requirements, editor availability or the like.

[0123] For example, the metadata of the editor may indicate that the editor has a keen interest in sports, has extensive experience in preparing and editing graphs, and has completed ten or more projects for company X. Accordingly, if there is a job with metadata showing that the editing job is for company X, requires data to be converted from table form to a graph, and that the data is related to sports statistics, the similarity between the task or job and the editor may be of a high percentage (and therefore a high score) and the editor may be offered the tasks associated with the job. However, if the editor profile indicated that the editor has never worked for company X, has limited experience with graphs and dislikes sports, the similarity may be of low percentage (and a low score) and, therefore, not be offered the job. In some cases, a threshold may be implemented, and an editor may only be offered a job if the score exceeds the threshold. In another example, an editor may be an automated editor. The automated editor may be an automated image editor. The metadata associated with a digital document may be pre-processed by the server computer. The pre-processed metadata may indicate a significant amount of image related tasks to be performed. The similarity of a task or job and the automated editor may be of a high percentage given the number of image related tasks. The threshold for the automated editor and the task or job may be met.

[0124] Thus, it should be appreciated that, in some examples, if there are no jobs for the editor with a similarity score which is higher than the threshold, the editor may not be eligible for a new editing job.

[0125] Requesting or receiving (307) the task may include receiving a job editing request from the server computer (102). The job editing request may include a task instruction message. The editor device (104) may display (308) the task instruction message to the editor. The editor may, via the editor device (104), either accept or reject the task, included in the task instruction message. If the editor declines the task, a task decline message may be generated by the editor device and transmitted to the server computer. Once received, the server computer will return the editing job (and its tasks) to the queue in the editing job record. The server computer may then re-run the routing algorithm to find a new editing task for the relevant editor. It should be appreciated that special measures may be taken to prevent the editor from again being allocated the editing job or task that the editor had previously declined. For example, the editing job may only be returned after a set time interval, or the job or task may be added to the editor profile history, where it may be shown that the task has been declined. These steps are not shown.

[0126] If, however, the editor accepts (310) the task, a task accept message may be generated (312) by the editor device (104). The task accept message may be transmitted (314) to the server computer (102). In response to receiving the accept message, the server computer (102) may provide access (316) to at least the relevant data maintained / stored in the job record (118). The editor may, via the editor device (104), access (318) the job record (1 18). Accessing the job record may include accessing the digital document and metadata. The editor may perform (320) the required editing tasks associated therewith after receiving the job record. This may include the editor accessing the extracted sections of the digital document that are associated with the particular job and tasks. It should be appreciated that the digital document may be so configured such that the editor may only edit and change components of the digital document associated with tasks allocated to the editor. For example, in some examples, more than one editor may have to complete a job associated with the same section at the same time, but each of the editors may only edit specific components of the section. In some embodiments, only one editor may have access to a particular extracted section at a time, and the section may be returned to the queue, but with other components then marked available for editing in the editing job.

[0127] Once the editor has completed the task, the editor may submit (322) the completed task (together with all accompanying documentation) to the server computer (102). The server computer may receive (324) a notice, providing access to the completed task, that the task has been completed. The task may then be manually reviewed by an operator, manager or the like. If any content has been added, edited, or the like, the edited sections associated with the editing task may be stitched (326) into the master file of the digital document maintained by the server. This may include the server computer (102) evaluating the edited task and, via the unique section identifier of the particular section of the document, stitching the edited task into the original master file by replacing the previous section having the same identifier with the edited task. Stitching the edited sections together may include combining the edited sections into the original master file. Replacing the previous section of the original master file of the digital document may include updating the version number of the relevant section.

[0128] Once the above steps have been completed, the process may be repeated as and when needed.

[0129] It should be appreciated that the above steps are merely used to illustrate an example of the methods and systems described herein. Various alternative options and steps may be present which have not been described in detail above.

[0130] Figure 4 is a flow diagram of an example model training process (400) to train a model. The model may be one model of multiple models. The model may include any one or more of: an Al model, a ML model, or a DL model. The model may include a procedure of inputting data into a sequence of models, where an input into a downstream model may be an output from an upstream model, such that the models are sequential and feed into each other. DL is considered sub-branch of ML and ML is considered a sub-branch of AL

[0131] The some of the models, such as an Al algorithm, may be suitable for specific tasks, including any one or more of: natural language processing algorithms, data preprocessing algorithms (such as logarithmic transformation), machine learning algorithms, convolutional neural networks (image processing), regression algorithms (such as generalised linear models), transformerbased neural networks (for embedding, encoding and decoding) and / or other artificial intelligence algorithms or neural networks. These Al algorithms may be trained with training data, such training data may include any one or more of: previous editing instructions, previous editing performed by editors, previous digital documents, previous metadata, previous optimal allocation of editing jobs to editors, and the like. These models may then be refined before being stored in the model repository (128) by utilising techniques such as hyperparameter tuning. For example, an Al algorithm, suitable for analysing components of images in the derived data or associated metadata, may be a deep neural network comprising a convolutional neural network.

[0132] Deep learning may use artificial neural networks (ANNs). Examples of ANNs may include convolutional neural networks, or an arrangement of recurrent neural networks, such as long- short term memory (LSTM) networks suitable for time series applications. An ANN may consist of interconnected units, commonly referred to as neurons, as they are inspired by and resemble neurons of the brain. The units may consist of nodes and edges forming a connected network. ANNs may be configured in the form of a layered structure with an input at the first layer and an output at the final layer. The layers between the first and final layer may be hidden layers.

[0133] Each node in the ANN may receive a signal from one or more nodes in the preceding layer, starting from the input layer. The output of a node may be computed by an activation function, which may be a non-linear function of the sum of the inputs into each node in each layer. The output value of each node in the preceding layer is multiplied by a weighting value, which determines the strength of each nodes output value. Finally, the value that is determined at the final layer is the output of the ANN. For regression type ANNs, the output may contain only a single node with a value, or many nodes. Alternatively, classification type ANNs, the output may include multiple nodes, where each node provides the probability of a classification type. More complex ANNs architectures are better suited to specific tasks. In addition to the weights and activation functions of a regular ANN, a convolutional neural network (CNN) may apply a filter (or a kernel) onto a two-dimensional data structure to reduce the size of the hidden layers in the neural network, thereby reducing the number of weights within the neural network. A CNN is particularly suited to image-based tasks, where image data is often structured as a two- dimensional data structure.

[0134] In an example of the routing algorithm, the one or more models may include a statistical correlation model. The model may be trained using training data (122) which may include any one or more of: previous editing instructions, previous editing performed by editors, previous digital documents, previous metadata. The model may be trained using output data which may include any one or more of: a previous optimal allocation of editing jobs to editors. The statistical correlation model may be tuned, during the training process, such that inputting the input data into the model would result in data being output that are similar to the output data used during training.

[0135] It should therefore be appreciated that, in a practical implementation, different models may be used together to process one or more different inputs and provide different outputs. In some examples, the trained model may further include a model used for the section capturing algorithm. The model for the section capturing algorithm may be trained using already sectioned digital documents as output data in the training process, and the pre-sectioned digital documents as input data in the training process. Both input and output data are included in the training data.

[0136] T raining Al models may be computationally intensive and time consuming. A training system may be a large computing infrastructure or a cloud computing infrastructure that can be accessed over a network. These resources may allow for dynamic computing resources to be dedicated to training a model, after which the trained model can be downloaded to run on a separate application. In an example, the model may be trained and stored on the computing device (102).

[0137] The training data may include raw incoming data (410). The raw incoming data may include any one or more of: data derived from digital documents (441 ), metadata (442), and optimal allocation data (443). The optimal allocation data may be data regarding the optimal allocation of editing jobs to a set of available editors, which may have already been optimised. The raw incoming data (410) may be input into the database (1 14) accessible by the server computer (102).

[0138] The incoming data may undergo a data preparation process (411 ) to separate components of the raw incoming data into various categories suitable for training data (122), such as: input data, output data, training data, and verification data. The training data (122) may be usable in a training process (413). The training process (413) may be computationally demanding and time consuming. The training process may be performed on a large computing cluster which may access the database (114) to obtain the training data when required. Additionally, the trained model (414) may be stored in the model repository (128). In an example, the training process (413) may be a supervised learning training process, whereby the model parameters are adjusted such that the optimal allocation of editors, as stored in the training data, is output from the model in response to the input data being input into the model.

[0139] The trained model may be usable in a runtime process (422) on the server computer (102). When the routing algorithm runs, the algorithm may use the editing instruction information, metadata, and / or editor data to determine the optimal allocation of tasks to editors. The data may be input data (421 ) input into the runtime process (422). The runtime process (422) may be the routing algorithm. The runtime process may output (423) a list of tasks to be performed and a list of editors to perform the tasks. This output may be transmitted to the user device (106) and be usable in a downstream process (424).

[0140] Various components may be provided for implementing the methods described above with reference to Figures 2,3 and 4. Figure 5 is a block diagram which illustrates exemplary components of a server computer (102) which may be provided by a system for routing one or more jobs for editing a digital document.

[0141] The server computer may include a processor (502) for executing the functions of components described below, which may be provided by hardware or by software units executing on the server computer. The software units may be stored in a memory component (504) and instructions may be provided to the processor (502) to carry out the functionality of the described components. In some cases, for example in a cloud computing implementation, software units arranged to manage and / or process data on behalf of the server computer may be provided remotely.

[0142] The server computer (102) may include an instruction receiving component (506) arranged to receive an editing instruction. The component (506) may be arranged to receive a digital document and / or metadata. The component (506) may further be arranged to receive or extract instructions related to the editing of the document.

[0143] The server computer (102) may include a job editing request push / pull component (507) arranged to receive a request from an editor that the editor is available to receive a job editing request, or to send a job editing request to an editor, to edit a digital document. The request may include or be associated with a unique editor identifier. The unique editor identifier may be associated with an editor and an editor profile record. The server computer may further include an extracting component (508) arranged to extract the editor identifier from the job editing request.

[0144] The server computer (102) may include a metadata accessing component (510) arranged to access metadata associated with at least one editing job. The metadata may be stored, at least temporarily, and accessed from a database (1 14).

[0145] The server computer (102) may include a routing component (512) arranged to use a routing algorithm to determine, based on the accessed metadata, one or more tasks associated with the editing job to be performed by an editor. The routing component (512) may include a job preprocessing component (514) configured to process one or more editing jobs in an editing queue, which includes accessing a queue of jobs stored in a database including a job record and identifying tasks associated with the one or more editing jobs.

[0146] The routing component (512) may further include an editor profile pre-processing component (516) configured to process an editor profile record which includes retrieving data stored in the editor profile record and at least temporarily storing the data.

[0147] The server computer (102) may include a model generating component (526) arranged to generate one or more models. The model generating component (526) may be arranged to assign an order one or models for use in various pre-processing and computational steps according to various aspects of the disclosure.

[0148] The server computer (102) may include a model training component (528) arranged to train one or more models. The training component (528) may be arranged to access a training database comprising training data.

[0149] The routing component (512) may have access to a repository storing algorithms and / or models. The algorithms and / or models may include any one or more of: the routing algorithm, the section capturing algorithm, a statistical correlation model, a trained neural network, or one or more other models. The algorithms and / or models which may be configured to, when used, analyse the job record and its associated metadata, and the editor profile record and its associated metadata. The algorithms and / or models may further be configured to, based on the analysis, identify the one or more tasks associated with the editing job which best matches the editor profile record.

[0150] The server computer (102) may include a result outputting component (518) arranged to output the one or more tasks to be performed to the editor. The outputting component (518) may be configured to process the output relating to the one or more tasks into a form that may be received by the editor, via the editor device.

[0151] The server computer (102) may include a task determining component (520) arranged to determine, for each editing job, the one or more tasks associated with the editing job. The one or more tasks associated with each editing job may be determined by using metadata extracted from the editing job, and for the one or more tasks to be based on data provided in an editing instruction received from a client device.

[0152] The server computer (102) may include a section capturing algorithm component (522) arranged to extract each section of the digital document individually. The section capturing algorithm component is configured to split each section from the rest of the digital document and tag each section of the digital document with a unique section identifier. Each of the extracted sections may be associated with an editing job or a task.

[0153] The server computer (102) may include a stitching component (524) arranged to, if any content has been added or edited, stitch the edited sections associated with the editing job into a master file, associated with the digital document, maintained by the server. Stitching the edited sections associated with the editing job into a master file may include the stitching component (524) identifying a unique section identifier of the edited sections and replacing original sections having the same identifier with the edited sections.

[0154] Figure 6 illustrates an example of a computing device (600) in which various aspects of the disclosure may be implemented. The computing device (600) may be embodied as any form of data processing device including a personal computing device (e.g. laptop or desktop computer), a server computer (which may be self-contained, physically distributed over a number of locations), a client computer, or a communication device, such as a mobile phone (e.g. cellular telephone), satellite phone, tablet computer, personal digital assistant or the like. Different embodiments of the computing device may dictate the inclusion or exclusion of various components or subsystems described below.

[0155] The computing device (600) may be suitable for storing and executing computer program code. The various participants and elements in the previously described system diagrams may use any suitable number of subsystems or components of the computing device (600) to facilitate the functions described herein. The computing device (600) may include subsystems or components interconnected via a communication infrastructure (605) (for example, a communications bus, a network, etc.). The computing device (600) may include one or more processors (610) and at least one memory component in the form of computer-readable media. The one or more processors (610) may include one or more of: CPUs, graphical processing units (GPUs), microprocessors, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs) and the like. In some configurations, a number of processors may be provided and may be arranged to carry out calculations simultaneously. In some implementations various subsystems or components of the computing device (600) may be distributed over a number of physical locations (e.g. in a distributed, cluster or cloud-based computing configuration) and appropriate software units may be arranged to manage and / or process data on behalf of remote devices.

[0156] The memory components may include system memory (615), which may include read only memory (ROM) and random access memory (RAM). A basic input / output system (BIOS) may be stored in ROM. System software may be stored in the system memory (615) including operating system software. The memory components may also include secondary memory (620). The secondary memory (620) may include a fixed disk (621 ), such as a hard disk drive, and, optionally, one or more storage interfaces (622) for interfacing with storage components (623), such as removable storage components (e.g. magnetic tape, optical disk, flash memory drive, external hard drive, removable memory chip, etc.), network attached storage components (e.g. NAS drives), remote storage components (e.g. cloud-based storage) or the like.

[0157] The computing device (600) may include an external communications interface (630) for operation of the computing device (600) in a networked environment enabling transfer of data between multiple computing devices (600) and / or the Internet. Data transferred via the external communications interface (630) may be in the form of signals, which may be electronic, electromagnetic, optical, radio, or other types of signals. The external communications interface (630) may enable communication of data between the computing device (600) and other computing devices including servers and external storage facilities. Web services may be accessible by and / or from the computing device (600) via the communications interface (630).

[0158] The external communications interface (630) may be configured for connection to wireless communication channels (e.g., a cellular telephone network, wireless local area network (e.g. using Wi-Fi™), satellite-phone network, Satellite Internet Network, etc.) and may include an associated wireless transfer element, such as an antenna and associated circuitry.

[0159] The computer-readable media in the form of the various memory components may provide storage of computer-executable instructions, data structures, program modules, software units and other data. A computer program product may be provided by a computer-readable medium having stored computer-readable program code executable by the central processor (610). A computer program product may be provided by a non-transient or non-transitory computer- readable medium, or may be provided via a signal or other transient or transitory means via the communications interface (630).

[0160] Interconnection via the communication infrastructure (605) allows the one or more processors (610) to communicate with each subsystem or component and to control the execution of instructions from the memory components, as well as the exchange of information between subsystems or components. Peripherals (such as printers, scanners, cameras, or the like) and input / output (I / O) devices (such as a mouse, touchpad, keyboard, microphone, touch-sensitive display, input buttons, speakers and the like) may couple to or be integrally formed with the computing device (600) either directly or via an I / O controller (635). One or more displays (645) (which may be touch-sensitive displays) may be coupled to or integrally formed with the computing device (600) via a display or video adapter (640).

[0161] The foregoing description has been presented for the purpose of illustration; it is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Persons skilled in the relevant art can appreciate that many modifications and variations are possible in light of the above disclosure.

[0162] Any of the steps, operations, components or processes described herein may be performed or implemented with one or more hardware or software units, alone or in combination with other devices. Components or devices configured or arranged to perform described functions or operations may be so arranged or configured through computer-implemented instructions which implement or carry out the described functions, algorithms, or methods. The computer- implemented instructions may be provided by hardware or software units. In one embodiment, a software unit is implemented with a computer program product comprising a non-transient or non- transitory computer-readable medium containing computer program code, which can be executed by a processor for performing any or all of the steps, operations, or processes described. Software units or functions described in this application may be implemented as computer program code using any suitable computer language such as, for example, Java™, C++, or Perl™ using, for example, conventional or object-oriented techniques. The computer program code may be stored as a series of instructions, or commands on a non-transitory computer-readable medium, such as a random access memory (RAM), a read-only memory (ROM), a magnetic medium such as a hard-drive, or an optical medium such as a CD-ROM. Any such computer-readable medium may also reside on or within a single computational apparatus, and may be present on or within different computational apparatuses within a system or network.

[0163] Flowchart illustrations and block diagrams of methods, systems, and computer program products according to embodiments are used herein. Each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, may provide functions which may be implemented by computer readable program instructions. In some alternative implementations, the functions identified by the blocks may take place in a different order to that shown in the flowchart illustrations.

[0164] Some portions of this description describe the embodiments of the invention in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations, such as accompanying flow diagrams, are commonly used by those skilled in the data processing arts to convey the substance of their work effectively to others skilled in the art. These operations, while described functionally, computationally, or logically, are understood to be implemented by computer programs or equivalent electrical circuits, microcode, or the like. The described operations may be embodied in software, firmware, hardware, or any combinations thereof.

[0165] The language used in the specification has been principally selected for readability and instructional purposes, and it may not have been selected to delineate or circumscribe the inventive subject matter. It is therefore intended that the scope of the invention be limited not by this detailed description, but rather by any claims that issue on an application based hereon. Accordingly, the disclosure of the embodiments of the invention is intended to be illustrative, but not limiting, of the scope of the invention set forth in any accompanying claims.

[0166] Finally, throughout the specification and any accompanying claims, unless the context requires otherwise, the word ‘comprise’ or variations such as ‘comprises’ or ‘comprising’ will be understood to imply the inclusion of a stated integer or group of integers but not the exclusion of any other integer or group of integers.

Claims

CLAIMS1. A computer-implemented method for routing one or more jobs for editing a digital document, conducted at a server computer, comprising: receiving an editing instruction, the editing instruction including instructions for editing a digital document and including metadata associated with the digital document; accessing the metadata associated with the digital document; by means of a section capturing algorithm, extracting one or more sections from the digital document, and assigning each of the one or more sections a unique section identifier; using a routing algorithm to determine, based on the accessed metadata, one or more tasks associated with the editing of the one or more sections to be performed by an editing entity; and, outputting the one or more tasks to be performed by the editing entity.

2. The method as claimed in claim 1 , wherein the section capturing algorithm includes splitting or extracting each of the one or more sections of the digital document.

3. The method as claimed in claim 1 or 2, wherein the routing algorithm and the section capturing algorithm each include one or more models, and wherein the one or more models each include any one or more of: an artificial intelligence (Al) model, a machine learning (ML) model, a deep learning (DL) model, a greedy algorithm, a statistical correlation model, a transformer-based neural networks, or a configuration of neural networks for embedding, encoding, and decoding tasks.

4. The method as claimed in any of the preceding claims, wherein the routing algorithm determines, based on accessed metadata from two or more editing instructions, one or more tasks associated with the editing of a digital document for each editing instruction, and wherein each of the one or more tasks are assigned to one or more editing entities.

5. The method as claimed in any one of the preceding claims, including transmitting, to the editing entity, the one or more tasks to be performed by the editing entity, and wherein transmitting the one or more tasks to the editing entity includes transmitting a job editing request.

6. The method as claimed in any one of the preceding claims, wherein the routing algorithm includes pre-processing one or more editor profiles records stored in a database, wherein each editor profile is associated to the editing entity.

7. The method as claimed in any one of the preceding claims, wherein using the routing algorithm includes repeatedly running the routing algorithm, and wherein repeatedly running the routing algorithm includes changing configuration parameters of the routing algorithm and evaluating an output of the routing algorithm against pre-defined key performance indicators.

8. The method as claimed in any one of the preceding claims, wherein the one or more tasks are associated with one or more jobs in a queue of jobs and, in response to outputting the one or more tasks to be performed by the editing entities, the one or more jobs corresponding to the one or more tasks are removed from the queue of jobs.

9. The method as claimed in any one of the preceding claims, including receiving a task accept message from an editing entity and, in response to receiving the task accept message, providing access to the digital documents or parts thereof and the metadata associated with the digital document to the editing entity.

10. The method as claimed in any one of the preceding claims, including locking access to the digital document, or to the one or more sections of the digital document, to any other editing entity in response to an editing entity, assigned to edit the digital document, editing the digital document or a part thereof.1 1 . The method as claimed in any of the preceding claims, including receiving a notice that the editing of the digital document has been completed.

12. The method as claimed in any of the preceding claims, including stitching together one or more sections of an edited digital document according to a set of unique section identifiers into a master file after completion of the editing by an editing entity, wherein each of the one or more sections include a unique section identifier13. The method as claimed in claim 12, including providing access to the master file for review.

14. The method as claimed in any one of the previous claims, wherein the metadata includes any one or more of: image related data, text related data, formatting related data, userrelated data, and tagging related data.

15. The method as claimed in any one of the preceding claims, wherein the editing entity includes an automated editing entity configured to edit the digital document or part thereof.

16. A system for routing one or more jobs for editing a digital document, conducted at a server computer, the system comprising: a processor and a memory configured to provide computer program instructions to the processor to execute functions of components; an instruction receiving component for receiving an editing instruction, the editing instruction including instructions for editing a digital document and including metadata associated with the digital document; a metadata accessing component for accessing the metadata associated with the digital document; a section capturing algorithm component for extracting one or more sections from the digital document, and assigning each of the one or more sections a unique section identifier; a routing component for using a routing algorithm to determine, based on the accessed metadata, one or more tasks associated with the editing of the one or more sections to be performed by an editing entity; and, a result outputting component for outputting the one or more tasks to be performed by the editing entity.

17. The system as claimed in claim 16, including a database configured to store any one or more of: a job record, an editor record, a client record, training data, and a model repository.

18. The system as claimed in claim 16 or 17, including a job pre-processing component configured to pre-process a list of jobs stored in a job record for the routing algorithm.

19. The system as claimed in any one of claims 16 to 18, including an editor pre-processing component configured to pre-process a list of editing entities in an editor record.

20. The system as claimed in claim 16 or 19, including a task determining component configured to determine the one or more tasks associated with the editing instruction, wherein the one or more tasks are determined using the metadata and / or digital document.

21. The system as claimed in any one of claims 16 to 20, wherein the section capturing algorithm component is configured to extract sections of the digital document and to tag or assign a unique section identifier to each section.

22. The system as claimed in claim 21 , including a stitching component configured to stitch edited sections of the digital document together into a master file.

23. A computer program product for routing one or more jobs for editing a digital document, the computer program product comprising a computer-readable medium having stored computer-readable program code for performing, at a server computer, the steps of: receiving an editing instruction, the editing instruction including instructions for editing a digital document and including metadata associated with the digital document; accessing the metadata associated with the digital document; by means of a section capturing algorithm, extracting one or more sections from the digital document, and assigning each of the one or more sections a unique section identifier; using a routing algorithm to determine, based on the accessed metadata, one or more tasks associated with the editing of the one or more sections to be performed by an editing entity; and, outputting the one or more tasks to be performed by the editing entity.

Citation Information

Patent Citations

  • Document version updating system and method based on document partitioning and collaborative editing

    CN111401029A

  • Method and device for supporting online editing of financial documents and authenticity verification by multiple persons

    CN113822024A

  • Document collaborative editing method and device, electronic equipment and storage medium

    CN114021531A

  • Generating document edit requests for electronic documents managed by a third-party document management service using artificial intelligence

    US20200293606A1