Sign In to Follow Application
View All Documents & Correspondence

Systems And Methods For Estimating Skill Sets Of Users In A Distributed Environment

Abstract: A skill-set quantification system and method comprising: using files created, modified and accessed by one or more users to identify expertise area or skills in a distributed environment. The system further implements supervised learning, to classify files to certain skills such as primary skills, secondary skills, and aspirational skills and further assigns a skill score for each identified skill, based on analysis of content and metadata of the file. The system establishes association of the user with the file, file distribution over the networks, value of the file to stakeholders. Decay of the score value is also computed for each skill based on the skill usage. The system further predicts the skills of the user based on the analysis of files of neighboring nodes, which is indicative of a learning curve of the user for a particular skill.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
03 February 2016
Publication Number
42/2017
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
ip@legasis.in
Parent Application
Patent Number
Legal Status
Grant Date
2024-04-02
Renewal Date

Applicants

Tata Consultancy Services Limited
Nirmal Building, 9th floor, Nariman point, Mumbai-400021, Maharashtra, India

Inventors

1. SHUKLA, Manish
Tata Consultancy Services Limited, Tata Research Development & Design Centre, 54, Hadapsar Industrial Estate, Hadapsar, Pune – 411 013
2. SAXENA, Rohit
Tata Consultancy Services Limited, Tata Research Development & Design Centre, 54, Hadapsar Industrial Estate, Hadapsar, Pune – 411 013
3. MONDAL, Sutapa
Tata Consultancy Services Limited, Tata Research Development & Design Centre, 54, Hadapsar Industrial Estate, Hadapsar, Pune – 411 013
4. MANJUNATH, Sumesh
Tata Consultancy Services Limited, Tata Research Development & Design Centre, 54, Hadapsar Industrial Estate, Hadapsar, Pune – 411 013
5. LODHA, Sachin Premsukh
Tata Consultancy Services Limited, Tata Research Development & Design Centre, 54, Hadapsar Industrial Estate, Hadapsar, Pune – 411 013

Specification

Claims:
1. A system comprising:
a memory storing instructions;
a processor coupled to said memory, wherein said processor is configured by said instructions to execute:
a file association module that computes an association of a file , and determines the span of said file using a fingerprint of said file;
a feature extraction module that extracts one or more features from at least one of content and metadata in said file;
a classification module that classifies said file into one or more pre-defined classes based on said one or more features;
a skill score analytics module that calculates a distributive score of said file based on an association of said file with said one or more users based on a distributive analysis, and file a classification score based on at least one of said content said file being classified in said one or more predefined classes; and
a skill prediction module that performs said distributive analysis over the neighboring users to predict the skill of said one or more users, wherein said skill prediction module predicts said skill based on at least one of a creation of said file, a modification of said file, an access to said file, and said file being shared by said one or more users in a distributed environment, association of said file with said one or more users, and said file being classified into said one or more pre-defined classes.

2. The system of claim 1, wherein a skill decay module is comprised in at least one client system and in at least one server system and is configured to apply a decay function on said distributed score compute a skill decay for said skill based on the last usage of said skill.

3. The system of claim 1, wherein said file association module re-computes said association of said file when there is a modification in said file or a re-occurrence of said file on a different client system in said distributed environment.

4. The system of claim 1, wherein said fingerprint of said file is detected using a fingerprint module based on at least one of said content and said metadata, wherein said fingerprint module determines similar files stored in said distributed environment, and wherein said fingerprint of said file enables to determine creation, modification, access, and sharing of said similar files on said distributed environment.

5. The system of claim 1, further comprising an expertise shape finder that computes a shape of expertise of said one or more users for a specific skill based on said distributive score and persistent information pertaining to said file.

6. The system of claim 1, further comprising a learning curve identification module that identifies a learning curve for said one or more users using said distributive score, wherein said learning curve is indicative of performance of a specific skill.

7. The system of claim 1, wherein a learning module is comprised in at least one server system and is configured to
create a new class when a new file fails to belong to said one or more pre-defined classes stored in said memory,
assign a score to said new class, and
periodically update said a score based on an occurrence of said new class to be utilized for classification of said new file.

8. The system of claim 1, wherein said skill prediction module is comprised in at least one of a client system or a server system and is further configured to classify said skill as at least one of a primary skill, a secondary skill, and an aspirational skill based on at least one of usage of said skill, and relevance of said skill to said one or more users.

9. The system of claim 1, wherein said file comprises at least one multimedia file, wherein said at least one multimedia file is selected from the group consisting of audio, a word processing document, image, video, source code file, and cookie file.

10. The system of claim 9, further comprising a static code analyser that
generates a report when said file is said source code file;
identifies said one or more users as contributors to said source code file from said report; and
computes a source code score for said one or more contributors based on one or more metrics comprising code quality, code convention, variables used, code coverage, and dependency cycle, wherein said code quality is indicative of comments, methods, and types.

11. A computer implemented method comprising:
computing, using a file association module, association of a file and determining the span of said file using a fingerprint of said file;
extracting, using a feature extraction module, one or more features from at least one of content and metadata in said file, wherein said metadata is indicative of association of said file with one or more users;
classifying, using a classification module, said file into one or more pre-defined classes based on said one or more features;
calculating, using a skill score analytics, a distributive score of said file based on an association of said file with said one or more users based on a distributive analysis, and file a classification score based on at least one of said content said file being classified in said one or more predefined classes; and
performing, using a skill prediction module, said distributive analysis over the neighboring users to predict the skill of said one or more users, wherein said skill prediction module predicts said skill based on at least one of a creation of said file, a modification of said file, an access to said file, and said file being shared by said one or more users in a distributed environment, association of said file with said one or more users, and said file being classified into said one or more pre-defined classes.

12. The computer implemented method of claim 11, further comprising applying, using a skill decay module, a decay function on said distributed score to compute a skill decay for said skill based on usage of said skill.

13. The computer implemented method of claim 11, further comprising re-computing, using said file association module, said association of said file when there is a modification in said file or a re-occurrence of said file on a different client system in said distributed environment.

14. The computer implemented method of claim 11, wherein said fingerprint of said file is detected using a fingerprint module based on at least one of said content and said metadata, wherein said fingerprint module determines similar files stored in said distributed environment, and wherein said fingerprint of said file enables to determine creation, modification, access, and sharing of said similar files on said distributed environment.

15. The computer implemented method of claim 11, further comprising computing, using an expertise shape finder, a shape of expertise of said one or more users for a specific skill based on said distributive score and persistent information pertaining to said file.

16. The computer implemented method of claim 11, further comprising identifying, using a learning curve identification module, a learning curve for said one or more users from said distributive score, wherein said learning curve is indicative of performance of said specific skill.

17. The computer implemented method of claim 11, further comprising
creating, using a learning module, a new class when a new file fails to belong to said one or more pre-defined classes stored in a memory;
assigning, using said learning module, a score to said new class; and
periodically updating, using said learning module, said score based on an occurrence of said new class to be utilized for classification of said new file.

18. The computer implemented method of claim 11, further comprising classifying, using said skill prediction module, said skill as at least one of a primary skill, a secondary skill, and an aspiration skill based on at least one of usage of said skill, and relevance of said skill to said one or more users.

19. The computer implemented method of claim 11, wherein said file comprises any of a multimedia file, and wherein said multimedia file is selected from a group comprising an audio, a word processing document, an image, a video, a source code file, and a cookie file, and wherein when said file is said source code file, said method further comprises,
generating, using a static code analyser, a report for said source code file;
identifying, using said static code analyser, said one or more users as contributors to said source code file from said report; and
computing, using said static code analyser, a source code score for said one or more contributors based on one or more metrics comprising code quality, code convention, variables used, code coverage, and dependency cycle, wherein said code quality is indicative of comments, methods, and types.
, Description:

FORM 2

THE PATENTS ACT, 1970
(39 of 1970)
&
THE PATENT RULES, 2003

COMPLETE SPECIFICATION
(See Section 10 and Rule 13)

Title of Invention:
SYSTEMS AND METHODS FOR ESTIMATING SKILL-SETS OF USERS IN A DISTRIBUTED ENVIRONMENT

Applicant:
Tata Consultancy Services Limited
A company Incorporated in India under the Companies Act, 1956
Having address:
Nirmal Building, 9th floor,
Nariman point, Mumbai 400021,
Maharashtra, India

The following specification particularly describes the embodiments and the manner in which it is to be performed.
TECHNICAL FIELD
The embodiments herein generally relate to skill-set quantification techniques and systems, and, more particularly, to systems and methods for estimating skill-sets of users in a distributed environment.

BACKGROUND
In an organization, it is difficult to track skills of all the employees. Organizations may need to identify employees’ skills for various purposes such as project planning, measuring distribution of skills, recruiting new employees, formulating centers of excellence, obtaining insight of learning curves of organizations. To facilitate these purposes, organizations maintain skill-set database of employees. Employees either need to rate themselves against broad categories of skills or need to take up quizzes for the skills and a score is computed based on the quiz result. The former may not capture accurate information specifically if the categories are too wide. The latter is time consuming and employee may ignore taking up quizzes and updating the score process. There is a chance that employee may take help from other associates or members to clear quizzes from various sources to improve the skills or to increase the rating.
Further, current solutions involve automation of skill-set identification of employees and computing scores. Such solutions are inefficient to estimate correct skill-sets in a distributed environment. For example, users access files across networks and work on multiple projects. Thus determining skill-set of a user based on files accessed is cumbersome. Since files of users are stored or accessed across networks, association of files with the user as author is difficult. Also, in some scenarios, where a document is created with collaborative effort of more than one user, metadata information such as author name provide incorrect data. Furthermore, some users may just share the template of files with structure details, whereas others may share a template that is partially worked by a user, and then passed on to other users to complete. This causes inconsistency in association of a file with the user and to determine its author, and thereby results in an incorrect skill score. Thus, the scope of current solutions are inadequate in nature, time consuming when it comes to identifying right author(s), and results in computing an incorrect score for users, thereby imprinting inaccurate skill-set determination into the system that can lead to tradeoffs in taking competitive decisions.

SUMMARY
The following presents a simplified summary of some embodiments of the disclosure in order to provide a basic understanding of the embodiments. This summary is not an extensive overview of the embodiments. It is not intended to identify key/critical elements of the embodiments or to delineate the scope of the embodiments. Its sole purpose is to present some embodiments in a simplified form as a prelude to the more detailed description that is presented below. In view of the foregoing, an embodiment herein provides systems and methods for quantifying skill-sets of users in a distributed environment.
In one aspect, a system for quantifying skill-sets of users in a distributed environment is provided. The system comprising: a memory storing instructions; a processor coupled to the memory, wherein the processor is configured by the instructions to execute: a file association module that computes association of a file, and determines the span of the file using a fingerprint of the file; a feature extraction module that extracts one or more features from at least one of content and metadata in the file,; a classification module that classifies the file into one or more pre-defined classes based on the one or more features; a skill score analytics module that calculates a distributive score of the file based on an association of the file with the one or more users and a file classification score based on at least one of the content and the file being classified in the one or more predefined classes to obtain a user skill score, and a skill prediction module that performs a distributive analysis over the neighboring users to predict the skill of the one or more users, wherein the skill prediction module predicts the skill based on at least one of a creation of the file, a modification of the file, an access to the file, and the file being shared by the one or more users in a distributed environment, association of the file with the one or more users, and the file being classified into the one or more pre-defined classes.
In an embodiment, a skill decay module is comprised in at least one client system and in at least one server system and is configured to apply a decay function on the distributed score, and compute a skill decay for the skill based on a last usage of the skill.
The file association module re-computes the association of the file when there is a modification in the file or a re-occurrence of the file on a different client system in the distributed environment. The fingerprint of the file is computed using a fingerprint module based on at least one of the content and the metadata, wherein the fingerprint module determines similar files stored in the distributed environment, and wherein the fingerprint of the file and information obtained from a file monitoring module enables to determine creation, modification, access, and sharing of the similar files on the distributed environment.
The system further comprises an expertise shape finder that computes a shape of expertise of the one or more users for a specific skill based on the distributive score and persistent information pertaining to the file. The system further comprises a learning curve identification module that identifies a learning curve for the one or more users using the distributive score, wherein the learning curve is indicative of performance of a specific skill. In an embodiment, a learning module is comprised in at least one server system and is configured to create a new class when a new file fails to belong to the one or more pre-defined classes stored in the memory, assign a score to the new class, and periodically update the a score based on an occurrence of the new class to be utilized for classification of the new file.
In an embodiment, the skill prediction module is comprised in at least one client system and in at least one server system and is further configured to classify the skill as at least one of a primary skill, a secondary skill, and an aspiration skill based on at least one of usage of the skill, and relevance of the skill to the one or more users. The file comprises at least one multimedia file, wherein the at least one multimedia file is selected from the group consisting of audio, a word processing document, image, video, source code file, and cookie file. The system further comprises a static code analyser that generates a report when the file is the source code file; identifies the one or more users as contributors to the source code file from the report; and computes a source code score for the one or more contributors based on one or more metrics comprising code quality, code convention, variables used, code coverage, and dependency cycle, and the like, wherein the code quality is indicative of the one or more metrics.
In another aspect, a computer implemented method for quantifying skill-sets of users in a distributed environment is provided. The method comprising: computing, using a file association module, association of a file, and determines the span of the file using a fingerprint of the file; extracting, using a feature extraction module, one or more features from at least one of content and metadata in the file, wherein the metadata is indicative of association of the file with one or more users; classifying, using a classification module, the file into one or more pre-defined classes based on the one or more features; calculating, using a skill score analytics, a distributive score of the file based on an association of the file with the one or more users, and a file classification score based on at least one of the content and the file being classified in the one or more predefined classes to obtain a user skills score; and performing, using a skill prediction module, a distributive analysis over the neighboring users to predict the skill of the one or more users, wherein the skill prediction module predicts the skill based on at least one of a creation of the file, a modification of the file, an access to the file, and the file being shared by the one or more users in a distributed environment, association of the file with the one or more users, and the file being classified into the one or more pre-defined classes.
The computer implemented method further comprises applying, using a skill decay module, a decay function on the distributed score, and computing a skill decay for the skill based on the last usage of the skill. The computer implemented method further comprises re-computing, using the file association module, the association of the file when there is a modification in the file or a re-occurrence of the file on a different client system in the distributed environment. The fingerprint of the file is computed using a fingerprint module based on at least one of the content and the metadata, wherein the fingerprint module determines similar files stored in the distributed environment, and wherein the fingerprint of the file and information obtained from a file monitoring module enables to determine creation, modification, access, and sharing of the similar files on the distributed environment.
The computer implemented method further comprises computing, using an expertise shape finder, a shape of expertise of the one or more users for a specific skill based on the distributive score and persistent information pertaining to the file. The computer implemented method further comprising identifying, using a learning curve identification module, a learning curve for the one or more users based on a skill score (e.g., the user skills score) , wherein the learning curve is indicative of performance of the specific skill.
The computer implemented method further comprises creating, using a learning module, a new class when a new file fails to belong to the one or more pre-defined classes stored in a memory; assigning, using the learning module, a score to the new class; and periodically updating, using the learning module, the score based on an occurrence of the new class to be utilized for classification of the new file. The computer implemented method further comprises classifying, using the skill prediction module, the skill as at least one of a primary skill, a secondary skill, and an aspirational skill, based on at least one of usage of the skill, and relevance of the skill to the one or more users. The file comprises any of a multimedia file, and wherein the multimedia file is selected from a group comprising an audio, a word processing document, an image, a video, a source code file, and a cookie file.
When the file is the source code file, the method further comprises, generating, using a static code analyser, a report for the source code file; identifying, using the static code analyser, the one or more users as contributors to the source code file from the report; and computing, using the static code analyser, a source code score for the one or more contributors based on one or more metrics comprising code quality, code convention, variables used, code coverage, dependency cycle, and the like, wherein the code quality is indicative of the one or more metrics.
In yet another aspect, one or more non-transitory machine readable information storage mediums comprising one or more instructions is provided, which when executed by one or more hardware processors causes: quantifying skill-sets of users in a distributed environment by computing, using a file association module, association of a file, and determines the span of the file using a fingerprint of the file; extracting, using a feature extraction module, one or more features from at least one of content and metadata in the file, wherein the metadata is indicative of association of the file with one or more users; classifying, using a classification module, the file into one or more pre-defined classes based on the one or more features; calculating, using a skill score analytics, a distributive score of the file based on an association of the file with the one or more users based on (or using) a distributive analysis, and a file classification score based on at least one of the content and the file being classified in the one or more predefined classes to obtain a user skill score; and performing, using a skill prediction module, the distributive analysis over the neighboring users to predict the skill of the one or more users, wherein the skill prediction module predicts the skill based on at least one of a creation of the file, a modification of the file, an access to the file, and the file being shared by the one or more users in a distributed environment, association of the file with the one or more users, and the file being classified into the one or more pre-defined classes.
The one or more instructions, which when executed by one or more hardware processors further causes applying, using a skill decay module, a decay function on the distributed score to a skill decay for the skill based on the usage of the skill. The one or more instructions, which when executed by one or more hardware processors further causes re-computing, using the file association module, the association of the file when there is a modification in the file or a re-occurrence of the file on a different client system in the distributed environment. The fingerprint of the file is computed using a fingerprint module based on at least one of the content and the metadata, wherein the fingerprint module determines similar files stored in the distributed environment, and wherein the fingerprint of the file and information obtained from a file monitoring module enables to determine creation, modification, access, and sharing of the similar files on the distributed environment.
The one or more instructions, which when executed by one or more hardware processors further causes computing, using an expertise shape finder, a shape of expertise of the one or more users for a specific skill based on the distributive score and persistent information pertaining to the file. The one or more instructions, which when executed by one or more hardware processors further causes identifying, using a learning curve identification module, a learning curve for the one or more users based on a skill score (e.g., the distributive score), wherein the learning curve is indicative of performance of the specific skill.
The one or more instructions, which when executed by one or more hardware processors further causes creating, using a learning module, a new class when a new file fails to belong to the one or more pre-defined classes stored in a memory; assigning, using the learning module, a score to the new class; and periodically updating, using the learning module, the score based on an occurrence of the new class to be utilized for classification of the new file. The one or more instructions, which when executed by one or more hardware processors further causes classifying, using the skill prediction module, the skill as at least one of a primary skill, a secondary skill, and an aspirational skill based on at least one of usage of the skill, and relevance of the skill to the one or more users. The file comprises any of a multimedia file, and wherein the multimedia file is selected from a group comprising an audio, a word processing document, an image, a video, a source code file, and a cookie file.
When the file is the source code file, the one or more instructions further causes generating, using a static code analyser, a report for the source code file; identifying, using the static code analyser, the one or more users as contributors to the source code file from the report; and computing, using the static code analyser, a source code score for the one or more contributors based on one or more metrics comprising code quality, code convention, variables used, code coverage, dependency cycle, and the like, wherein the code quality is indicative of the one or more metrics.
It should be appreciated by those skilled in the art that any block diagram herein represent conceptual views of illustrative systems embodying the principles of the present subject matter. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in computer readable medium and so executed by a computing device or processor, whether or not such computing device or processor is explicitly shown.

BRIEF DESCRIPTION OF THE DRAWINGS
The embodiments herein will be better understood from the following detailed description with reference to the drawings, in which:
FIG. 1 illustrates an exemplary schematic diagram of a client server network system in accordance with one or more embodiments of the present disclosure;
FIG. 2illustrates a block diagram of a client system according to an embodiment of the present disclosure;
FIG. 3 illustrates a block diagram of a skill-set quantification server according to an embodiment of the present disclosure;
FIG. 4A-4F illustrate plotting of histograms for skills identified by the skill-set quantification server of FIG. 1 according to an embodiment of the present disclosure;
FIG. 5 illustrates a graphical representation that is indicative of file exchange amongst the one or more users in a distributed environment according to an embodiment of the present disclosure; and
FIG. 6 is a flow diagram illustrating a computer implemented method for quantifying skill-sets of users in a distributed environment using at least one of the client system and the skill-set quantification server according to an embodiment herein.

DETAILED DESCRIPTION OF EMBODIMENTS
The embodiments herein and the various features and advantageous details thereof are explained more fully with reference to the non-limiting embodiments that are illustrated in the accompanying drawings and detailed in the following description. The examples used herein are intended merely to facilitate an understanding of ways in which the embodiments herein may be practiced and to further enable those of skill in the art to practice the embodiments herein. Accordingly, the examples should not be construed as limiting the scope of the embodiments herein.
The words “comprising,”“having,”“containing,” and “including,” and other forms thereof, are intended to be equivalent in meaning and be open ended in that an item or items following any one of these words is not meant to be an exhaustive listing of such item or items, or meant to be limited to only the listed item or items.
It must also be noted that as used herein and in the appended claims, the singular forms “a,”“an,” and “the” include plural references unless the context clearly dictates otherwise. Although any systems and methods similar or equivalent to those described herein can be used in the practice or testing of embodiments of the present disclosure, the preferred, systems and methods are now described.
Some embodiments of this disclosure, illustrating all its features, will now be discussed in detail. The disclosed embodiments are merely exemplary of the disclosure, which may be embodied in various forms.
Before setting forth the detailed explanation, it is noted that all of the discussion below, regardless of the particular implementation being described, is exemplary in nature, rather than limiting.
Referring now to the drawings, and more particularly to FIG. 1 through 6, where similar reference characters denote corresponding features consistently throughout the figures, there are shown preferred embodiments and these embodiments are described in the context of the following exemplary system and/or method.
FIG. 1 illustrates an exemplary schematic diagram of a client server network system 100 in accordance with one or more embodiments of the present disclosure. The client server network system 100 comprises a client system 102, a skill-set quantification server 104, and an in memory database or relational database management system (RDBMS) or a NoSQL database. The terms “client server network system” and “system” may be interchangeably used herein. The term “skill-set quantification server” may be referred as “skill-set estimation server”, and can be interchangeably used herein. Although, FIG. 1 depicts a single computer system such as the client system 102, the system block diagram can implement multiple client systems, collectively referred to as the client system 104 hereinafter wherein each may be connected across network/distributed environment. One or more users (not shown in FIG. 1) are associated with the client system(s) 102. The client server network system 100 comprising the client system 102, the skill-set quantification server 104, and the in memory database or relational database management system (RDBMS) or NoSQL database 106 is implemented in a distributed environment. One or more files may be accessed by one or more users across networks over the distributed environment. The client system 102 and the skill-set quantification server 104 comprise, but are not limited to, a laptop computer, a desktop computer, a notebook, a workstation, a mainframe computer, a server, a network server, cloud, hand-held device, virtual machines, and the like. The client system 102 extracts content and metadata from the one or more files stored in a memory (not shown in FIG. 1) of the client system 102 (or stored across the networks). The client system 102extracts one or more features from at least one of the content and metadata associated with a file and further determines association of the file with a user. In an embodiment, the skill-set quantification server 104 may obtain extracted features from the client system 102, wherein in such a scenario a feature extraction module resides in the client system 102 which extracts features from at least one of the content and metadata associated with a file. The client system 102then classifies the file into one or more pre-defined classes based on the extracted content and metadata of the file. The skill-set quantification server 104 further calculates a distributive score of the file based on an association of the file with the one or more users based on (or using) a distributive analysis, and a file classification score based on at least one of the content and the file being classified in the one or more predefined classes to obtain a user skill score. The expression “distributive score”, and “distributive skill score” may be interchangeably used herein. The skill-set quantification server 104 then performs a distributive analysis over the neighboring users to predict the skill of the user (or one or more users)based on at least one of a creation of the file, a modification of the file, an access to the file, and the file being shared by the one or more users in a distributed environment, association of the file with the one or more users, the file being classified into the one or more pre-defined classes, the distributive score, the file classification score, and combinations thereof. The skill-set quantification server 104 predicts one or more skills of a user by performing distributive analysis over neighboring nodes (e.g., performing distributive analysis on one or more skills scores of other neighboring users). The skill-set quantification server 104 further computes a shape of expertise of the user for a specific skill based on a distributive score and persistent information pertaining to the file, which enables identification of a learning curve for the user.
The client system 102 is installed on each node in a distributed environment. A client agent residing in the client system 102 is responsible for monitoring file activity i.e., creation, modification, access, sharing of files on the node (e.g., the client system 102 and other client systems). It may contain user details, which are mapped to each node, where each node becomes a potential document repository. This enables the skills-set quantification server 104 to determine the authorship/ownership of content and document. Once a file is scanned, a fingerprint of the file is computed using one or more fingerprinting techniques. Metadata and content (associated with a scanned file) are extracted for necessary computations. In one example, details may be sent to the skill-set quantification server 104 for further processing. The skill-set quantification server 104 locates the lineage of the file, and computes file association with the user using distributed services and persistent data, and further determines the span of the file, using the fingerprint of the file. For example, fingerprint and timestamp (creation or modification of timestamp) are computed at each client system and the skill-set quantification server 104 receives this information from one or more client systems to form a file lineage. The steps being performed by the client system 102 will now be explained in further detail in FIG. 2, and the steps being performed by the skill-set quantification server 104 will now be explained in further detail in FIG. 3.
FIG. 2, with reference to FIG. 1, illustrates a block diagram of the client system 102 according to an embodiment of the present disclosure. The client system 102 comprises a first memory 202, a first hardware processor 204, and a first input/output (I/O) interface 206. Since the client system(s) 102 is implemented across a network in the distributed environment, each client system 102 stores details of each user accessing one or more files in the first memory 202 (or over a cloud). Such details further includes personal information, in one example embodiment. In another example embodiment, personal information may be obtained from the client system 102, or from a system (e.g., another computer system) from which a user is operating. Alternatively, the personal information may be obtained and/or accessed from one or more repositories which may be locally available or accessed through network or cloud environment. The first memory 202 further includes a first set of modules 208. The first memory 202, the first hardware processor 204, the first input/output (I/O) interface 206, and/or the modules 208 may be coupled by a system bus or a similar mechanism.
The first memory 202, may store instructions, any number of pieces of information, and data, used by a computer system, for example the client system 102 to implement the functions. The first memory 202 may include for example, volatile memory and/or non-volatile memory. Examples of volatile memory may include, but are not limited to volatile random access memory (RAM). The non-volatile memory may additionally or alternatively comprise an electrically erasable programmable read only memory (EEPROM), flash memory, hard drive, or the like. Some examples of the volatile memory includes, but are not limited to, random access memory, dynamic random access memory, static random access memory, and the like. Some example of the non-volatile memory includes, but are not limited to, hard disks, magnetic tapes, optical disks, programmable read only memory, erasable programmable read only memory, electrically erasable programmable read only memory, flash memory, and the like. The first memory 202 may be configured to store information, data, applications, instructions or the like for enabling the skill-set quantification server 104 to carry out various functions in accordance with various example embodiments.
Additionally or alternatively, the first memory 202 may be configured to store instructions which when executed by the first hardware processor 204 causes the client system 102 to behave in a manner as described in various embodiments (e.g., computing association of a file using a fingerprint of the file, and determining the span of the file). The first memory 202 stores information for example, information comprising extracting content and metadata from one or more files, fingerprints for the one or more files, and the like. This information may further be stored in the RDBMS 106 for further processing whenever required.
The first hardware processor 204 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions. Further, the first hardware processor 204 may comprise a multi-core architecture. Among other capabilities, the first hardware processor 204 is configured to fetch and execute computer-readable instructions or modules stored in the first memory 202. The first hardware processor 204 may include circuitry implementing, among others, audio and logic functions associated with the communication. For example, the first hardware processor 204 may include, but are not limited to, one or more digital signal processors (DSPs), one or more microprocessor, one or more special-purpose computer chips, one or more field-programmable gate arrays (FPGAs), one or more application-specific integrated circuits (ASICs), one or more computer(s), various analog to digital converters, digital to analog converters, and/or other support circuits.
The first hardware processor 204 thus may also include the functionality to encode messages and/or data or information. The first hardware processor 204 may include, among other things, a clock, an arithmetic logic unit (ALU) and logic gates configured to support operation of the first hardware processor 204. Further, the first hardware processor 204 may include functionality to execute one or more software programs, which may be stored in the first memory 202 or otherwise accessible to the first hardware processor 204.
The first hardware processor 204 is configured by the instructions stored in the first memory 202. The first hardware processor 204 when configured by the instructions executes the first set of modules 208. The first set of modules 208 comprise a file monitoring module 208A, an extraction module 208B, a fingerprinting module 208C, a file association module 208D, a classification module 208E, a skill-score analytics module 208F, a skill-decay module 208G, an expert shape finder 208H, a learning curve identification module 208I, a static code analyser 208J, and a batch processor 208K.
The file monitoring module 208A monitors file creation, modification and access by one or more users with the help of a notification agent module (not shown in FIG. 2) residing in the client system 102. The monitoring process can be performed using File System APIs like NTFS Journal API or using File System Filter Driver, in one example embodiment. It monitors file events, and based on the events invokes the extracting module 208B. The file monitoring module 208A also scans the complete client system and invokes the extracting module 208B which extracts features for dormant files which are not being modified. The extracting module 208B extracts the metadata such as creation date, file last modified date, last accessed date, extension of the file, name of the file, and the like from the file. In some cases, for example in word processing documents (e.g., text document, PDF document, spreadsheet, and the like), the extracting module 208B extracts additional information such as author name, etc., which are embedded in the header of such files. Further, the extracting module 208B may extract content from the file. The extracted information is then communicated to the skill-set quantification server 104. The fingerprinting module 208C uses the content and the metadata, from the file and computes a similarity fingerprint using fingerprint extraction techniques, such as MinHash, LSH, Fuzzy hashing, and the like which are used to find similar documents. The extracted information, including the fingerprint information are then communicated to the skill-set quantification server 104.
The file association module 208D uses the fingerprint of the file and computes the association of the file using the distributed service within the network. The file is a multimedia file, for example, an audio, a word processing document, an image, a video, a source code file, a cookie file, and the like. The file association module 208D further determines span of the file (e.g., length of time of the file being existing), and re-computes the association with each author when the file is already present in the network (or distributed environment). The extraction module 208B uses the content and metadata of the file as input and extracts relevant features (one or more features) based on the file type.
The classification module 208E classifies the file into one or more pre-defined classes based on the one or more features, the content, metadata of the file, and/or the combinations thereof. For example, based on the extension and metadata, file is broadly classified into set of classes, such that each class consist of one or more sub-classes. Further analysis is performed on the content, which is text in case of a word processing document file, source code in case of code files and binary in case of audio, image files, etc. Based on the classification of the content, file is classified into one or more sub-classes. A score is computed for each sub-class based on a predefined specific logic. Each sub-class, consist of a specific logic for computing the classification score. For example, a logic for an image file and a project document may be different. New logic can be added to the component, to expand the type of file to be monitored.
The client system 102 further includes the skill-score analytics module 208F that calculates a distributive score of the file based on the association of the file with the one or more users (e.g., using a distributive analysis) and a file classification score based on at least one of the content and the file being classified in the one or more predefined classes to obtain a user skill score. Alternatively, it invokes other services in the skill-set quantification server 104 and outputs a distributive skill score for given a file associated with a user. One or more skills of the one or more users are predicted by performing a distributive analysis over the neighboring users. In other words, the distributive analysis is also performed over the neighboring users without having to analyse his/her files. The skills of the one or more users are predicted based on creation of the file, modification of the file, access to the file, the file being shared by the one or more users in a distributed environment, association of the file with the one or more users, the file being classified in the one or more pre-defined classes, the user skills score, and the combinations thereof.
The skill decay module 208G applies a decay function on the distributed skill score (or also referred herein as distributive score) and computes a skill decay based on usage of the skill. For example, a user may have created a file which is not being currently modified, but he/she may have created new files associated with that particular skills. In such cases, applying decay function only on the file may not result in accurate prediction of skills. The embodiments of the present disclosure enables the client system 102 to apply the decay function on one or more skills according to the last usage of the one or more skills, which results in prediction of skills of one or more users in more accurate and efficient manner.
The expertise shape finder 208H computes a shape of expertise of the one or more users for a specific skill based on the distributive skill score and persistent information pertaining to the file. Conventional systems include expert finder technique. However, this technique is restricted to a centralized setup like shared code repository or centralized document server, and thus may not provide an accurate skill prediction. Unlike conventional systems, the client system 102 implements the expertise shape finder 208H that assesses skills-set of the one or more users in a distributed environment. Further, the client system 102 utilizes emails, cookies, process/application used for modification and other local metadata for skills-set identification, where the convention systems fail. Persistent information may include where information is asynchronously changed as further updates to the information become available. Updates to dynamic data may come at any time, with periods of inactivity in between.
The learning curve identification module 208I identifies a learning curve for the one or more users based on a skill score (e.g., the distributive score). The learning curve is indicative of performance of the specific skill for the one or more user. In other words, using the distributed analytics and the persistent information, the learning curve identification module 208I computes the shape of each user relative to the score of other users in a particular skill.
When the file is a source code file, the static code analyser 208J generates a report for the source code file, identifies the one or more users (e.g., as one or more contributors, and/or one or more authors) to the source code file (or source code) from the report, and further computes a source code score for the one or more contributors based on one or more metrics. Authors/Co-authors to the source code may also be identified based on the number of logical lines of code contributed to a file. The metrics, comprise but are not limited to code quality, code convention, variables used, code coverage, dependency cycle, and the like. The code quality is indicative of the one or more metrics, including comments provided by the contributors, methods in the source code, and types of coding and methods. The batch processor 208K enables the client system 102 to be executed in either an active mode or a batch mode. The batch processor 208K triggers the monitoring of the files on the client system 102 when running in the batch mode. The first set of modules 208 are implemented as at least one of a logically self-contained part of a software program, a self-contained hardware component, and/or, a self-contained hardware component, with a logically self-contained part of a software program embedded into each of the hardware component that when executed perform the above method described herein, in one embodiment.
FIG. 3, with reference to FIG. 1, illustrates a block diagram of the skill-set quantification server 104 according to an embodiment of the present disclosure. The skill-set quantification server 104 comprises a second memory 302, a second hardware processor 304, and a second input/output (I/O) interface 306. The second memory 302 further includes second set of modules 308. The second memory 302, the second hardware processor 304, the second input/output (I/O) interface 306, and/or the modules 308 may be coupled by a system bus or a similar mechanism.
The second memory 302, may store instructions, any number of pieces of information, and data, used by a computer system, for example the skill-set quantification server 104 to implement the functions. The second memory 302 may include for example, volatile memory and/or non-volatile memory. Examples of volatile memory may include, but are not limited to volatile random access memory (RAM). The non-volatile memory may additionally or alternatively comprise an electrically erasable programmable read only memory (EEPROM), flash memory, hard drive, or the like. Some examples of the volatile memory includes, but are not limited to, random access memory, dynamic random access memory, static random access memory, and the like. Some example of the non-volatile memory includes, but are not limited to, hard disks, magnetic tapes, optical disks, programmable read only memory, erasable programmable read only memory, electrically erasable programmable read only memory, flash memory, and the like. The second memory 302 may be configured to store information, data, applications, instructions or the like for enabling the skill-set quantification server 104 to carry out various functions in accordance with various example embodiments.
Additionally or alternatively, the second memory 302 may be configured to store instructions which when executed by the second hardware processor 304 causes the skill-set quantification server 104 to behave in a manner as described in various embodiments (e.g., computing association of a file using a fingerprint of the file, and determining the span of the file). The second memory 302 stores information for example, information comprising expertise of each user, skill-sets of each user, file access information and shared by each user, and the like. This information may further be stored in the RDBMS 106 for further processing whenever required.
The second hardware processor 304 is configured by the instructions stored in the second memory 302. The second hardware processor 304 when configured by the instructions executes the second set of modules 308. The second set of modules 308 comprises, but are not limited to, a file association module 308A, a derived feature extraction module 308B, a classification module 308C, a skill score analytics module 308D, a skill prediction module 308E, a skill decay module 308F, a learning module 308G, and a batch processor 308H. The file association module 308A uses the fingerprint of the file and computes the association of the file using the distributed service within the network. Based on the determination of the file access and file modification at the client system 102, the file association module 308A derives a distributive file association in the distributed environment. Like the file association module 208A, the file association module 308A may also determine span of the file (e.g., length of time of the file being existing), and re-computes the association with each author when the file is already present in the network (or distributed environment). The derived feature extraction module 308B extracts new derived features from the already extracted features at the client system 102. The classification module 308C classifies the file based on at least one of the new derived features and the extracted features.
The skill-score analytics module 308D calculates a distributive score of the file based on the association of the file with the one or more users (e.g., using a distributive analysis) and a file classification score based on at least one of the content and the file being classified in the one or more predefined classes to obtain a user skill score. Alternatively, it invokes other services in the skill-set quantification server 104 and outputs a distributive skill score for given a file associated with a user. The skill prediction module 308E performs a distributive analysis over the neighboring users to predict the skill of the one or more users. In other words, the skill prediction module 308E performs the distributive analysis over the neighboring users without having to analyse his/her files. The skills of the one or more users are predicted based on creation of the file, modification of the file, access to the file, the file being shared by the one or more users in a distributed environment, association of the file with the one or more users, the file being classified in the one or more pre-defined classes, the user skills score, and the combinations thereof.
Like, the skill decay module 208G of the client system 102, the skill decay module 308F applies a decay function on the distributed skill score (or also referred herein as distributive score) and computes a skill decay for based on usage of the skill. For example, a user may have created a file which is not being currently modified, but he/she may have created new files associated with that particular skills. In such cases, applying decay function only on the file may not result in accurate prediction of skills. The embodiments of the present disclosure enables the skill-set quantification server 104 to apply the decay function on one or more skills according to the last usage of the one or more skills, which results in prediction of skills of one or more users in more accurate and efficient manner.
The learning module 308G creates a new class when a new file fails to belong to the one or more pre-defined classes stored in the second memory 302 (or in the RDBMS 106). The learning module 308G further assigns a new score which becomes a default score to the new class and therefore file, and periodically updates the new score (or the default score) based on an occurrence of the new class to be utilized for classification of the new file (or any other file).
The batch processor 308H enables the skill-set quantification server 104 to be executed in either an active mode or a batch mode on the client system 102. The batch processor 308H performs batch processing for classification and file association. The batch processor 308H triggers the monitoring of the files on the client system 102 when running in the batch mode. The skill-set quantification server 104 performs continuous monitoring, and may further rely on status of the client system 102 (e.g., when the client system 102 hibernates and active again, and how often CPU utilization happens, etc.).
The second set of modules 308are implemented as at least one of a logically self-contained part of a software program, a self-contained hardware component, and/or, a self-contained hardware component, with a logically self-contained part of a software program embedded into each of the hardware component that when executed perform the above method described herein, in one embodiment. Below is an exemplary embodiment that illustrates how identified files are classified and various scores are computed:
The files identified are classified into a broader expert area using the data classification techniques such as topic modeling, applied on the content and using the metadata of the file such as extension of the file. Using a semi-supervised learning, each class is assigned a set a topics such that
Ca = {C1, C2, C3…….Cn} be the set of classes for an area of expertise.
Each class is mapped to one or more of the topics. In an example, classes constitute of Source Code file, Document file, Cookies, Mail File, Image File, and the like. Furthermore, each file is further associated with a set of sub-class such that, for each class Ci?C, there exist a set of sub-class Sci = {Sc1, Sc2…….Scn}.For example for a class “Document”, sub-classes consist of {Finance, Project Document, PII ……., PHI}.
With every class is associated with a weight w and for each sub-class there is an associated score which is provided in accordance with an equation:
Class Score (C) = ? Sci (sum of sub-classes), where sub-classes score can be further sum of granular classes.
Expertise area score = ? wi * Ci where w is the weight/score for each class.
For every sub-class of area, the skill-set quantification server 104 and the client system 102 may comprise specific logic, to analyze the content of the file and compute a content score, which is an indicative of the content classification.
Below are examples that are illustrative of skill-set prediction, classification, and score computation for various files:
Computation for class “source code” file:
For a source code file, sub-classes can be defined as specific language file. Ssource code= {Java, Python, C… etc.}. Sub-class can be classified by using metadata such as extension. Also, it can be identified using the content i.e., classification can be made based on the syntax of the source code file. A specific logic is used for each sub-class to compute a score based on the content of the file. In an example a score of a sub-class of code files, is computed using below logic.
Library Imports: Library imports can be classified in three categories:
Standard Imports: Standard packages provided as language specification
External Libraries: Public known libraries used to perform certain task.
Uncategorized: Uncategorized libraries can be further classified as
Known to system – Libraries developed within the organization and therefore the score of these file is available with the central service.
Uncategorized: Uncategorized libraries.
Scoring:
Standard Imports: All the standard libraries are given a score value based on the expertise level required to use them.
External Libraries: Usually external libraries are used while plugging a framework to application or to overcome the limitation of the standard libraries. Therefore the score of external libraries is greater than standard libraries.
Uncategorized Libraries scored by central system – Since for these libraries original source code file is present in the network, a source code score is computed for that file. A relative score to the score of source code file is given to such libraries import in other files.
Uncategorized Libraries: Uncategorized libraries are added to the dictionary in the skill-set quantification server 104. A base value can be given based on the total score given to the file in which it is used. The score is improved overtime based on the occurrence in the import statement.
Comments: Comments are classified and scored on the basis of following categories:
Single line
Multiline
Other – (document based in Java)
Each category have the following feature:
Before function – High score as it is defining a specific snippet.
Before Class – Moderate score, its adding broad description
Start of file – Less increment, for being broad descriptor. A file may contain many classes which may intern contains functions.
End of line – High Score. A comment at the end of the line, which does not contains snippet, is usually a distinct descriptor.
Contains snippet – Decrements the score, as it contains a code snippet in comments which is not utilized.

Below is an exemplary of the set of instructions on how scoring is performed:
int locations[]= detectCommentPositions(line,progLanguage);
for(int i : locations) {
String type = detectTypeOfComment(file.getTextAt(i));
String text = getTextInComment(file.getTextAt(i));
if(type == singleLine) {
if( text == "snippet")
score = score - 2;
else if ( isCommentAtLineEnd(i))
score = score + 2;
else
score = score +1;
} else if (type == doc-comment) {
String text = getTextInComment(file.getTextAt(i));
if(containsInputVariable(text)) {
score = score + 1
}
if(containsOutputVariable(text)) {
score = score + 1
}
if(containsLogic(text)) {
score = score + 1
}
} else if ( type == multi-line) {
if( text == "snippet")
score = score – 4;
else if ( isCommentBeforeFunction(i))
score = score +3;
else if ( isCommentBeforeClass(i))
score = score +2;
else if ( isCommentStartOfFile(i))
score = score +1;
}
However, it is to be understood to a person of ordinary skill in the art, that the above set of instructions may be modified to implement a sophisticated logic.
Computation for class “document” file:
Document class classified among following sub-classes – PII, project document, finance document, PHI document, and the like. Using Natural Language Processing and Information Retrieval techniques, the contents are classified into these sub-classes. Similar to source code class, each sub-classes consist a specific logic to compute the score based on the content and the extracted metadata. In an example, using the metadata, such as name of the file, and content of the file, topic modeling technique, such as Latent Dirichlet Allocation (LDA), is executed. A set of Topics are identified using a training dataset:
Topics = {T1…….Tk} such that for each Ti = { W1……Wn}, where W= word. Each word W has a value of probability distribution in a topic. Each topic is tagged to one or more of the classes, which can be presented with a sparse Matrix Tk * Cv, where a cell has 1 when a topic belongs to a particular class. In another example, it can be a percentage to which a topic belongs to a class.
Each sub-class is further classified in various granular classes, for example a project document class can have following sub-classes {Software Requirements Specification (SRS) document, testing document, architecture document, and the like}. To classify a file into these sub-classes, in an example, document are mapped to Vector Space Model, where documents are represented as a vector based on the tf-idf. Based on the vector values, the document is binned into one of the sub-class. Using analysis techniques, for example, the sparse matrix and the sub-classes, a score for each class and sub-class is computed. The skill-set quantification server 104 may utilize (or implementation any analysis technique), in one example embodiment for computation.
Computation for Image:
In an organization, images can vary from project diagrams, work flows, class diagram, design images, screenshot, personal images, and the like. Using one or more classification techniques, images are classified into classes such as project diagram, screenshot, personal image, etc. Each class is given a score. Based on probability of the classes tagged to the image, the created image is given a skill score.
In an example, a classification technique comprises the following steps:
Definition of Classification Classes: Defining the classes project diagram (e.g., class diagrams that helps one understand the class structure of projects), screenshot, personal image, etc.
Selection of Features: Identifying features associated with each class.
Sampling of Training Data: Training data are sampled to determine appropriate decision rules.
Classification: Classification is performed.
Image is associated with each class with a probability. Using the probability and the score associated with each class, the skill score is computed.
In another example, image can be classified using topic modeling:
Defining the classes such as project diagram, screenshot, personal images and the like.
Divide the images into various regions – segmentation
For each segment, a topic is derived using LDA.
Each topic is mapped to one of the class.
Using the default score associated with each class, the skill score is computed.
In another example, using pattern recognition and OCR techniques, text of the images and the relation between them is identified. Using the relation, the text is classified into the set classes. Based on the classification, a score is computed.
Computation for audio:
In a scenario, where the user either generates audio files, the files are analyzed and score is computed based on the fluency of the speech.
The audio files are classified as speech using a classifier.
Audio files are analyzed to detect phonemes and speech disfluency.
Phonemes are identified and are compared with sample data.
Using the compared score and disfluency, a fluency score is computed.
In another example, feature extraction of the above said files can be semi-supervised or unsupervised using Deep Neural Networks techniques. For instance, using Word2Vec technique, the text/source code features can be extracted which represents each word in the form of a vector representations. These features can be used as an input to the classification algorithms which classifies the files to set of classes.
Computation of cookie:
Generated cookie files contains information of the visited websites. Using the websites visited and the specific link within the website, the area of expertise/skill can be predicted. For example, a developer, usually visits site of Question and Answer (Q&A) community to find the solution of a programming problem. Also, one may read blogs about the area of their expertise. The client system 102 uses uniform resource locator’s (URL’s) database, which are then mapped to specific area of expertise. For a generic website such as www.ABC.com, information from the complete URL can be extracted and can be classified. For example, a URLhttp://ABC.com/questions/5880643/difference-between-embedded-operating-system-and-desktop-operating-system/.
From the above URL, the phrase “operating system” helps to tag the URL to programming class and operating system subclass. For a new unclassified URL, the client system 102 learns using the distributive analysis of frequency of visit to a website and user expertise accessing such websites, using the learning module308H. Due to high frequency of visit to the website, it is possible that the URL belongs to a class related to the area of expertise/skill of a user. To validate, using distributed computation with the help of one or more distributed service from the skill-set quantification server 104, class of URL is validated using the cookies of other users. Similarly, custom logic can be provided in the skill-set quantification server 104 to compute the classification score. When the file is not classified to the defined classes (or the one more pre-defined classes, the skill-set quantification server 104 includes the new class with a default score. As, more and more files falls into the new defined class, the default score is updated.
Below are various methods that illustrates score computations for various actions performed on files:
In a distributed environment, files are shared from one node to another (e.g., from one client system to another client system across networks). Also, there may be a central server (or storage network) where files are shared and copied to other system. File ownership score comprises of file allocation score, file access score, file distributive score and file modification score, and is computed in accordance with the following relationship:
Scoreownership= Fownership (FAllocc Score, FMod Score, FAccess Score, FDistributive Score), where FAllocc Score = File allocation score, FMod = File modification score, FAccess = File access score and FDistributive = File distribution score.
Fownership is a function of FAllocc Score, FMod Score, FAccess Score, FDistributive Score. In one example it can be summation of scores to arrive at File ownership score. In other words, it is to be understood to a person of ordinary skill in the art, that it can be implemented as other functions (e.g., assigning weights, and utilize other mathematical and/or logical operations) to compute the File ownership score. In one embodiment, the Norm function (Norm ()) can normalize the final value using a Min-Max normalization and can transform a score value A (computed score) to B (normalized score) which fits in the range [C, D] such that
B=((A-minimum value of A)/(maximum value of A-minimum value of A))*(D-C)+C

In another embodiment, the Norm function (Norm ()) can normalize the final value using sigmoid/ softmax normalization using logistic sigmoid such that
x'=1/(1+ e^(-( (x-µ )/s)) )

Where x' = final normalized score, x = computed score, s = standard deviation µ = mean value. Normalization function (Norm()) is defined by way of example as expressed above. Each of the FAllocc Score, FMod Score, FAccess Score, FDistributive Scorecan be normalized using the Norm function described above. For example, FAlloc Score = Norm(FAllocc Score), FMod Score = Norm (FMod Score), FAccess Score = Norm(FAccess Score), and FDistributive Score = Norm(FDistributive Score). It is to be understood to a person having ordinary skill in the art, the normalization is not restricted to the above mentioned methods.
The file ownership score is computed by the skill-set quantification server 104 by executing the above mentioned steps. In a distributed environment, due to file sharing and collaborative work, it is difficult to associate a file to its author. A file created by a user is shared across the network. Users may use central servers, where files are readily exchanged. Also, some of the files are created by multiple users. Sometimes even the metadata can be misleading, if only a template is shared by other user. Therefore, a file ownership score is computed using a file monitoring technique performed by the client system 102 and reported to a server system (the skill-set quantification server 104), based on which the skill-set quantification server 104 computes the ownership based on file allocation which is association of the file with a user, number modification of the file, number of file access, and type of modification. The skill-set quantification server 104 finds the footprint of a document across network using document fingerprint, so even if a file is present in multiple systems, ownership resides with person from where the file originated and with the users modifying it which constitutes the file distributive score. Based on this analysis, the file ownership score is computed.
The client system 102 monitors the files. For each file, the client system 102 extracts the metadata and computes a document fingerprint using the metadata and the content of the file using the above described techniques. Using this signature (e.g., the document fingerprint), a near similar document may be found, by comparing the file fingerprint signature.
For a file F, the client system 102 computes a fingerprint signature, SFusing the content and the metadata of the file, which is then compared with signatures of other files in the network to find the set of files Sim which are near similar to the file such that:

?, Where |Sim| = 0
Sim =
{F1……Fn}, Where |Sim| = n

When Sim = ?, file is either downloaded or has been created by the user. Using the metadata of the file, it is verified and downloaded files are neglected or FAlloc = 0. File created by the user are allocated FAlloc score.
Else, each File Fi ? Simis compared with a current file F. The skill-set quantification server 104compares file metadata to compute file lineage/association. When the current file F is the parent of the file, i.e., the file originated from a current system, user is given high FAlloc score, else user is given low Falloc score. In one embodiment, the system creates a file lineage/association tree of the file. Based on the depth of the node the current file, FAlloc score is given in the range of (0,1) where root being 1 and leaf as minimum. Based on score of users (FAlloc score) associated with the set of files, Sim are updated accordingly.
File Modification Score:
Using content monitoring agent, file modification events are captured.
With each file modification, FMod score of the user associated with that file is updated.
In an example, FMod Score can be computed using the ?(diff) of the updated file and computing the worth of the updated content file.
FMod Score is associated with a threshold T, after which the FAlloc score is also changed. This signifies, even if the file is not created by the user, significant changes has been made by him to be the primary author for the same.
FMod Score = Norm(FMod Score), where Norm() is a normalization function to normalize final value using either Min-Max normalization and can transform a score value A to B which fits in the range [C,D] such that
B=((A-minimum value of A)/(maximum value of A-minimum value of A))*(D-C)+C

In another embodiment, the function can be normalized using sigmoid/softmax normalization using logistic sigmoid such that
x'=1/(1+ e^(-( (x-µ )/s)) ),

where x' = final normalized score, x = computer score, s = standard deviation µ = mean value.
File valuation score/Change in valuation score:
Using a known valuation framework, the value of the file is computed with respect to the stakeholders since the value of the file may vary for different stakeholders in an entity (e.g., organization). By computing a change in valuation, ?, after the file modification by the user, skill score is updated proportionally. File valuation score is obtained as follows:
FValuation Score = Norm(FValuation Score), where Norm() is a normalization function to normalize final value using either Min-Max normalization and can transform a score value A to B which fits in the range [C,D] such that
B=((A-minimum value of A)/(maximum value of A-minimum value of A))*(D-C)+C

In another embodiment, the function can be normalized using sigmoid/softmax normalization using logistic sigmoid such that
x'=1/(1+ e^(-( (x-µ )/s)) ),

where x' = final normalized score, x = computer score, s = standard deviation µ = mean value.
File Access Score:
Using content monitoring agent, file access events are captured.
With each file access, FAccess score of the user associated with that file is updated.
FAccess Score = Norm(FAccess Score), where Norm() is a normalization function to normalize final value using either Min-Max normalization and can transform a score value A to B which fits in the range [C,D] such that
B=((A-minimum value of A)/(maximum value of A-minimum value of A))*(D-C)+C

In another embodiment, the function can be normalized using sigmoid/softmax normalization using logistic sigmoid such that
x'=1/(1+ e^(-( (x-µ )/s)) ),

where x' = final normalized score, x = computer score, s = standard deviation µ = mean value.
File Distribution score:
For a file F, a system computes a fingerprint signature, SF using the content and the metadata of the file.
The signature SFis compared with signatures of other files in the network and finds the set of files Sim which are near similar to the file and are present on other user’s system.
File utilization by other user is computed for each similar file by taking a difference of the current timestamp and the last access timestamp of the file.
When the difference is less than a threshold (t), a positive score is given, since the file is present on other node and is utilized by other user. It is possible, the file is used as reference or has importance for users. Else a negative score is given, as the file created by the user is not being used by other users and is scattered on various nodes. The scores may be high score or a low score, in one example embodiment.
FDisributive Score = Norm(FDisributive Score), where Norm() is a normalization function to normalize final value using either Min-Max normalization and can transform a score value A to B which fits in the range [C,D] such that
B=((A-minimum value of A)/(maximum value of A-minimum value of A))*(D-C)+C

In another embodiment, the function can be normalized using sigmoid/softmax normalization using logistic sigmoid such that
x'=1/(1+ e^(-( (x-µ )/s)) ),

where x' = final normalized score, x = computer score, s = standard deviation µ = mean value
Skill Decay Score:
Since acquired skills expertise, degrade over time when not in use, the skill-set quantification server 104and the client system 102 both use skill decay function.
Since skills depend on the files created, modified and accessed by the user, a decay function will be applied on the skills.
The skills decays with a specified decay function, for instance a java programming skill, if not used for a year, a decay by factor of 1/nth(e.g., the value of ‘n’ is 4 in this case) will be applied.
Mail Analysis Score: Using the email files present on the user’s system, emails content can be classified, in a privacy preserving manner, to specific skills. Email analysis also helps to identify the team, team members, and group’s to which user is associated within an organizations using the recipients. Embedded content can be used to identify the movement of the files in the system among these groups. Mails score computed using the content(including subject line) of the mails, files attached and the score of recipients involves in classifying a skill. The Mail Analysis Score is finally obtained as below:
FMail Analysis Score = Norm(FMail Analysis Score), where Norm() is a normalization function to normalize final value using either Min-Max normalization and can transform a score value A to B which fits in the range [C,D] such that
B=((A-minimum value of A)/(maximum value of A-minimum value of A))*(D-C)+C

In another embodiment, the function can be normalized using sigmoid/softmax normalization using logistic sigmoid such that
x'=1/(1+ e^(-( (x-µ )/s)) ),

where x' = final normalized score, x = computer score, s = standard deviation µ = mean value.
Skill Score: A final skill score is computed by combining all the above computed scores in accordance with the following relationship:
Static Skill Score (user skill score) = Sscore_function(File modification score, File classification score, File modification/Change in Valuation score, File Ownership score, Mail Analysis Score , and the like). In one example it can be summation of scores to arrive at the Static Skill Score. In other words, it is to be understood to a person of ordinary skill in the art, that it can be implemented as other functions (e.g., assigning weights, and utilize other mathematical and/or logical operations) to compute the Static Skill Score. In one embodiment, the Norm function (Norm ()) can normalize the final value (e.g., Static Skill Score) using the normalization techniques as described above.
Skill Score = Skill Decay (Static Skill Score): Skill decay function computes the decay. Though in some scenario, the independent scores can be passed to a sophisticated function). It is not limited to summation of scores to arrive at skill score (or the distributive score calculation). In other words, it is to be understood to a person of ordinary skill in the art, that the skill-set quantification server 104 can implement other functions (e.g., assigning weights, and utilize other mathematical and/or logical operations) to compute the skill score. Unlike conventional systems and methods which fails to perform distributive analysis over the neighboring nodes in a distributed environment and further fail to compute a distributive score, the skill-set quantification server 104 computes the distributive skill score by performing a distributive analysis over the neighboring nodes (e.g., other client systems) in a distributed environment (refer to FIG. 5).
FIG. 4A-4F, with reference to FIGS. 1 through 3, illustrate plotting of histograms for skills identified by the skill-set quantification server 104 according to an embodiment of the present disclosure. Shape (T, M, I, Hyphen) of expertise is a metaphorical term used in industry to describe the skills and ability of a user. Based on the depth of knowledge in a particular skill and broader knowledge across many skill, people are classified to one of the shapes - I, M, T, Hyphen. The skill-set quantification server 104 uses the files and content created, modified, accessed and shared by the user in a distributive network to identify the shape of expertise for a particular user. Plotting a histogram of skill score for each particular skill associated with a user is enabled by tagging the user to one of the shapes. Following are shape definitions used in accordance with the embodiments of the present disclosure:
Hyphen Shape - A user with skills in several areas, but has no expertise in a particular skill.
I Shape - A user having a particular skill and has expertise in the same skill.
T Shape – A user with moderate expertise in most skills but has a deep expertise in one of the skills.
M Shape - A user has high expertise in at least half the number of skills associated with him.
Let S = {S1…….Sn} be the set of skills in an organization. For each user U, the skill-set quantification server 104 computes S’, such that S’ ? S, where S’ are the subset of skills S possessed by the user. For each skill in S’, there exist a scorevalue Vs’. By plotting the skills score Vs’ against respective skill S’, shape of the expertise can be deduced.In an example, for each skill in S’ standard deviation is computed for all the score values of each user possessing a particular skill. For example, when there exists k users (U1.....Uk) and each user consist of skill S1, then using score value of each user for skill S1 mean Ms1 and standard deviation ss1 is computed. These values are mapped to standard shapes (I, M,T and Hyphen) for a given user using the following logic. When the skill score Vs1 for a user is less than ss1, the skill is neglected/disregarded. When the skill score value Vs1=Ms1 and Vs1=Ms1+ 2ss1, the skill contributes to Hyphen as shown in FIG. 4A. When the skill score value Vs1=Ms1+ 2ss1,the skill contributes to the ‘I’ shape as shown in FIG. 4B. Superimposing this graph for all the skills which a user possesses, an expert shape is identified with the resulting histogram in Hyphen shape as shown in FIG. 4C, M shape as shown in FIG. 4D, ‘I’ shaped as shown in FIG. 4E, and reverse T shaped as in FIG. 4F.
The score of a particular skill, which is to be observed, for a user is monitored for a period of time. Every change in the skill score for a particular skill is stored in the skill-set quantification server 104. Plotting a graph of change in skill score against the timeline, provides the learning curve of the user, based on the files associated by the user. This learning curve helps in identifying the progress of the user for a given period of time. Also, using the learning curve of every user for a particular skill, the skill-set quantification server 104 computes a line of best fit, called line of regression, which can be used to establish the standard learning curve in a particular skill. The curve can be used to compare the progress of the user with the standard curve. Organizations can take competitive decisions of recommending an expert or a mentor for the user based on the comparison of learning curve.
FIG. 5, with reference to FIGS. 1 through 4, illustrates a graphical representation that is indicative of file exchange amongst the one or more users in the distributed environment according to an embodiment of the present disclosure. When the file exchange occurs between the one or more users, distributive skill prediction is to be performed. This involves prediction of a user’s skills without analyzing the files on his system. Since skill identification requires a client system to analyze the files on the user’s machine (e.g., the client systems 102), in some cases the installation of a client applicant may not be possible. Also, to increase the computation over the network, skills of some users can be predicted with high precision, by analyzing the neighboring nodes. A neighbor is determined by the exchange of files between the user and the node. For example, consider a graph of users based on the file exchange as shown in FIG. 5.
User A, B, C, D are already analyzed nodes for which skill computation has been done using the files. The skill-set of the user U has to be computed in the graph. Each node consists of a set of analyzed files for which skill score has been computed. For example, user A consist of set of files {A1, A2, A3 …An}. Using mail analysis and other file sharing software, the file sent by user U may also be identified. There exists a directed edge between nodes, for example, A to U, if A sends a file to U. File sharing, in an example, can be using the mail address of U or using a network identifier of the user U, which will be analyzed, but it not restricted to the same. Each file shared between nodes is denoted by a directed edge.
Similarly, there exists an edge between user node U to other nodes, example A, if by analyzing mail and sharing software of A there exist a file sent by U. To predict the skill of user U, consider directed edges to U, with user A, B, C, D being the neighboring nodes. The skill-set quantification server 104 identifies set of files UFin= {A1, A2, B1, C4, D5, D6} which are shared by neighboring nodes. The set of files UFout = {U1, U2, U3, U4, U5, U6} are files shared by U to other nodes, identified by mail and sharing software’s analysis on the neighboring nodes. Since each file is associated with a class and subclass of expertise, computation performed on neighboring nodes, score of classification of files belonging to the same class are added. Below table illustrates classification, type of files and score computation:
Class File Score
Code Files A1, C4, D5, D6, U1, U4 A1score + C4score + D5score + D6score + U1score + U4score
Project Document A2, B1, U2, U3 A2score + B1score + U2score + U4score

Using the classes with a summation score (e.g., a high summation score), skill of the user is predicted with a predictive score as each class is associated with the area of expertise. The skill-set quantification server 104 further categorizes the identified skills into primary, secondary skills, and/or aspirational skills. The primary skills are the skills in which user is expert and primarily utilizes in an organization, in one example embodiment. The secondary skills are the skills in which user have necessary knowledge, and it can be a skill decayed over time or a skill with less score. Using the shape of expertise, i.e., user with T-shape and M-shape, and skill score, the skills are categorized as primary or secondary skill.
Primary Skill: In a T-shape, M- shape graph, the skills with high peaks are extracted for validation. Using the access time and modification time of the files pertaining to the skill, the skill usage time is identified. Also, using neighboring user analysis and mail analysis, skill usage is verified and classified as primary skill.
Secondary Skill: The less peaks in the shape of expertise graph denotes that the user possess the skills but is not an expert in the area. Such skills can be categorized as secondary skills. Also, in a scenario, a skill with high score can be classified as secondary, if the skill usage time is less, decayed, or skills does not match with the neighboring analysis.
Aspirational Skill: The client system 102classifies a skill into an aspirational skill so as to enable one or more users to engage in the task willingly as well as work to improve their skills. Conventional systems where they fail to classify skills as aspirational skills. However, the client system 102 classifies the identified skills as one of a primary skill, a secondary skill, or an aspirational skill which a user practice on his/her own client system and never uploads as it is not part of the project.
Furthermore, in the conventional systems, no effort is taken to identify duplicate content as a malicious user may become an expert by uploading slight variations of the same document. Although conventional systems describe user’s action for profiling, it is restricted to a limited scope. Whereas, the skill-set quantification server 104 implements embodiments of the present disclosure which enables to monitor actions of the co-workers as it may impacts a user’s own skill, for example, co-ownership, detecting review, etc. as can be depicted in FIG. 5.
FIG. 6, with reference to FIGS. 1 through 5, is a flow diagram illustrating a computer implemented method for quantifying skill-set of users in a distributed environment using at least one of the client system 102 and the skill-set quantification server 104 according to an embodiment herein. The method includes computing (602), using the file association module 308A, an association of the file and determining the span of the file using a fingerprint of the file; extracting (604), using the extraction module208B, one or more features from at least one of content and metadata in the file. In an example embodiment, the metadata or a derived metadata may provide information such as association of the file with the one or more users. The method further includes classifying (606), using the classification module208E, the file into one or more pre-defined classes based on the one or more features, calculating (608), using at least one of the skill score analytics module 208F and the skill score analytics module 308D, a distributive score of the file based on the association of the file with the one or more users (using distributive analysis) and a file classification score based on at least one of the content and the file being classified in the one or more predefined classes to obtain a user skill score, and performing (610), using the skill prediction module308E, a distributive analysis over the neighboring users to predict the skill of the one or more users based on at least one of creation of the file, modification of the file, access to the file, the file being shared by the one or more users in a distributed environment, association of the file with the one or more users, the file being classified into the pre-defined classes, the distributive score and the file classification score which form the user skills score, and combinations thereof.
The method further includes applying, using at least one of the skill decay module 208G and the skill decay module 308F, a decay function on the distributed score to computing a skill decay for the predicted skill (or the skill) based on usage of the skill (e.g., relevant skill). The method further includes re-computing, using at least one of the file association module 208D, the file association module 308A,the association of the file when there is a modification in the file or a re-occurrence of the file on a different client system in the distributed environment. The fingerprint of the file is computed using the fingerprint module 208C based on at least one of the content and the metadata, wherein the fingerprint module determines similar files stored in the distributed environment. The fingerprint of the file and information obtained from the file monitoring module 208C enables to determine creation, modification, an access, and sharing of the similar files on the distributed environment.
The computer implemented method further includes computing, an expertise shape finder208H, a shape of expertise of the one or more users for a specific skill based on the distributive score and persistent information pertaining to the file. The computer implemented method further includes identifying, using the learning curve identification module208I, a learning curve for the one or more users based on a skill score (e.g., the distributive score). The learning curve is indicative of performance of the specific skill.
The computer implemented method further includes creating, using the learning module 308I, a new class when a file fails to belong to the one or more pre-defined classes stored in the memory, assigning, using the learning module308G, a new score, and periodically updating, using the learning module308G, the new score based on an occurrence of the new class to be utilized for classification.
The computer implemented method further includes classifying, using the skill prediction module308E, the skill as at least one of a primary skill or a secondary skill based on at least one of usage of the skill, and relevance of the skill to the one or more users. The file comprises any of a multimedia file, and wherein the multimedia file is selected from a group comprising an audio, a word processing document, an image, a video, a source code file, and a cookie file, and wherein when the file is the source code file. The method further includes generating, using the static code analyser208J, a report for the source code file; identifying, using the static code analyser208J, one or more contributors to the source code file from the report; and computing, using the static code analyser208J, a source code score for the one or more contributors based on one or more metrics comprising code quality, code convention, variables used, code coverage, dependency cycle, and the like, wherein the code quality is indicative of the one or more metrics, including comments, methods, and types.
The written description describes the subject matter herein to enable any person skilled in the art to make and use the embodiments. The scope of the subject matter embodiments is defined by the claims and may include other modifications that occur to those skilled in the art. Such other modifications are intended to be within the scope of the claims if they have similar elements that do not differ from the literal language of the claims or if they include equivalent elements with insubstantial differences from the literal language of the claims.
The embodiments of the present disclosure enables the skill-set quantification server 104to use files created, modified and accessed by a user to identify the expertise area or the skills in a distributed environment. Using supervised learning and classifiers, the client system 102 classifies files to skills. The client system 102 further assigns a skill score for each identified skill, based on analysis of content and metadata of the file. The client system 102 and/or the skill-set quantification server 104 establish the association of the user with the file, file distribution over the networks, value of the file to the stakeholders. Decay of the score value is also computed for each skill based on the file and skill usage. Since a user can be associated with more than one skill, the client system 102 classifies the skills into primary secondary skills, and/or aspirational skills. In a scenario, where a shared account/credentials or common computer system are used, prediction of skills may not be accurate, as multi-users may access one or more files using the same credentials (e.g., uploading one or more files from a single shared account to a repository). Unlike conventional systems and methods, the skill-set quantification server 104 is able to predict the skills of the user based on the analysis of files of neighboring nodes without having to analyse the files of the user. In addition, monitoring the score over a period of time provide insights into learning curve of the user for a particular skill. The learning curve is used to build a recommender system for employees. The client system 102 and/or the skill-set quantification server 104 can be integrated to a performance system in organization (or any entity or institutions such as banks, schools, colleges, universities, and the like) and further computes skill-set and score of the user. The client system 102 and/or the skill-set quantification server 104 can also provide a mechanism, where the skills of users can be viewed and compared. The scores can help to utilize workbench, talent discovery, a valuation of the organization (or any entity or institutions such as banks, schools, colleges, universities, and the like) based on the users’ skill set that enables an optimization in the process for talent acquisitions.
It is, however to be understood that the scope of the protection is extended to such a program and in addition to a computer-readable means having a message therein; such computer-readable storage means contain program-code means for implementation of one or more steps of the method, when the program runs on a server or mobile device or any suitable programmable device. The hardware device can be any kind of device which can be programmed including e.g. any kind of computer like a server or a personal computer, or the like, or any combination thereof. The device may also include means which could be e.g. hardware means like e.g. an application-specific integrated circuit (ASIC), a field-programmable gate array(FPGA), or a combination of hardware and software means, e.g. an ASIC and an FPGA, or at least one microprocessor and at least one memory with software modules located therein. Thus, the means can include both hardware means and software means. The method embodiments described herein could be implemented in hardware and software. The device may also include software means. Alternatively, the embodiments may be implemented on different hardware devices, e.g. using a plurality of CPUs.
The embodiments herein can comprise hardware and software elements. The embodiments that are implemented in software include but are not limited to, firmware, resident software, microcode, etc. The functions performed by various modules described herein may be implemented in other modules or combinations of other modules. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can comprise, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
Input/output (I/O) devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
A representative hardware environment for practicing the embodiments may include a hardware configuration of an information handling/computer system in accordance with the embodiments herein. The system herein comprises at least one processor or central processing unit (CPU). The CPUs are interconnected via system bus to various devices such as a random access memory (RAM), read-only memory (ROM), and an input/output (I/O) adapter. The I/O adapter can connect to peripheral devices, such as disk units and tape drives, or other program storage devices that are readable by the system. The system can read the inventive instructions on the program storage devices and follow these instructions to execute the methodology of the embodiments herein.
The system further includes a user interface adapter that connects a keyboard, mouse, speaker, microphone, and/or other user interface devices such as a touch screen device (not shown) to the bus to gather user input. Additionally, a communication adapter connects the bus to a data processing network, and a display adapter connects the bus to a display device which may be embodied as an output device such as a monitor, printer, or transmitter, for example.
The preceding description has been presented with reference to various embodiments. Persons having ordinary skill in the art and technology to which this application pertains will appreciate that alterations and changes in the described structures and methods of operation can be practiced without meaningfully departing from the principle, spirit and scope.

Documents

Application Documents

# Name Date
1 Form 3 [03-02-2016(online)].pdf 2016-02-03
2 Form 20 [03-02-2016(online)].pdf 2016-02-03
3 Form 18 [03-02-2016(online)].pdf 2016-02-03
4 Drawing [03-02-2016(online)].pdf 2016-02-03
5 Description(Complete) [03-02-2016(online)].pdf 2016-02-03
6 201621003887-POWER OF AUTHORITY-(27-04-2016).pdf 2016-04-27
7 201621003887-CORRESPONDENCE-(27-04-2016).pdf 2016-04-27
8 ABSTRACT1.jpg 2018-08-11
9 201621003887-Form 1-040316.pdf 2018-08-11
10 201621003887-Correspondence-040316.pdf 2018-08-11
11 201621003887-FER.pdf 2020-02-19
12 201621003887-OTHERS [19-08-2020(online)].pdf 2020-08-19
13 201621003887-FER_SER_REPLY [19-08-2020(online)].pdf 2020-08-19
14 201621003887-DRAWING [19-08-2020(online)].pdf 2020-08-19
15 201621003887-COMPLETE SPECIFICATION [19-08-2020(online)].pdf 2020-08-19
16 201621003887-CLAIMS [19-08-2020(online)].pdf 2020-08-19
17 201621003887-ABSTRACT [19-08-2020(online)].pdf 2020-08-19
18 201621003887-US(14)-HearingNotice-(HearingDate-04-03-2024).pdf 2024-02-07
19 201621003887-FORM-26 [01-03-2024(online)].pdf 2024-03-01
20 201621003887-FORM-26 [01-03-2024(online)]-1.pdf 2024-03-01
21 201621003887-Correspondence to notify the Controller [01-03-2024(online)].pdf 2024-03-01
22 201621003887-Written submissions and relevant documents [18-03-2024(online)].pdf 2024-03-18
23 201621003887-PatentCertificate02-04-2024.pdf 2024-04-02
24 201621003887-IntimationOfGrant02-04-2024.pdf 2024-04-02

Search Strategy

1 TPOSearch_12-02-2020.pdf
2 amended_SearchAE_05-11-2020.pdf

ERegister / Renewals

3rd: 02 Jul 2024

From 03/02/2018 - To 03/02/2019

4th: 02 Jul 2024

From 03/02/2019 - To 03/02/2020

5th: 02 Jul 2024

From 03/02/2020 - To 03/02/2021

6th: 02 Jul 2024

From 03/02/2021 - To 03/02/2022

7th: 02 Jul 2024

From 03/02/2022 - To 03/02/2023

8th: 02 Jul 2024

From 03/02/2023 - To 03/02/2024

9th: 02 Jul 2024

From 03/02/2024 - To 03/02/2025

10th: 01 Feb 2025

From 03/02/2025 - To 03/02/2026