System for offline processing of tissue networks
By leveraging a distributed computing platform and offline processing technology, the limitations of existing tools in terms of resource scarcity and privacy oversight during large-scale user network analysis have been addressed, enabling efficient and flexible large-scale organizational network analysis.
Patent Information
- Application Number
- CN202080046431.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-08-28
- Filing Date
- 2020-05-07
- Publication Date
- 2025-10-28
- Estimated Expiration
- 2040-05-07
AI Technical Summary
Existing organizational network analysis tools are inadequate for handling large-scale user networks, especially due to limited real-time computing resources and difficulties in data sharing caused by privacy and regulatory restrictions, making it difficult to achieve large-scale and offline analysis.
Parallelization optimization is achieved using a distributed computing platform. An offline organizational network graph is generated using a graph generator and renderer. Combined with an indicator calculation algorithm, it supports the analysis of large-scale user networks and addresses privacy and regulatory issues through offline processing.
It enables efficient analysis of large-scale organizational networks, supports analysis across multiple time periods, alleviates the pressure on computing resources and privacy regulations, and improves analysis efficiency and flexibility.
Smart Images

Figure CN114127754B_ABST
Abstract
Description
Background Technology
[0001] Organizational network analysis can involve studying communication networks within an organization. Graphs can be generated based on interactions between users within the organization. Centrality metrics can be calculated at the individual user level or at the group level. Attached Figure Description
[0002] In accompanying drawings that are not necessarily drawn to scale, the same reference numerals may describe similar components in different views. The same reference numerals with different letter suffixes may represent different instances of similar components. Some embodiments are shown in the accompanying drawings by way of example rather than limitation.
[0003] Figure 1 This is a view showing systems for generating organizational network analysis based on various examples.
[0004] Figures 2 to 14 These are user interface views based on various examples.
[0005] Figure 15 This is a flowchart illustrating methods based on various examples.
[0006] Figure 16 This is a block diagram illustrating an example machine according to an example embodiment, on which any one or more of the techniques (e.g., methods) discussed herein can be performed. Detailed Implementation
[0007] In the following description, numerous specific details are set forth for illustrative purposes in order to provide a thorough understanding of some exemplary embodiments. However, those skilled in the art will appreciate that the invention can be practiced without using these specific details.
[0008] Throughout this disclosure, components may take electronic actions in response to different variable values (e.g., thresholds, user preferences, etc.). For convenience, this disclosure does not always detail where variables are stored or how they are retrieved. In this context, it may be assumed that variables are stored on storage devices accessible to the component via application programming interfaces (APIs) or other programmatic communication methods. Similarly, if a particular value is not described, it may be assumed that the variable has a default value. In various examples, a user interface may be provided for end users or administrators to edit variable values.
[0009] Existing Organizational Network Analysis (ONA) tools have encountered numerous problems. First, many of these tools are online and real-time. For example, users can upload (or otherwise provide access to) their datasets, and graphs and metrics are generated instantly. Therefore, with more than a few thousand users, the performance of these tools becomes unusable or unmanageable. For instance, the computation of some metrics is memory and processor intensive, and browser-based systems simply lack the resources to handle networks with over 10,000 users—especially when executed serially. For large networks, network metrics should be computed within a reasonable timeframe to reduce client costs and computational wait times. Second, many organizations (and countries) have privacy restrictions that prohibit the sharing of user data.
[0010] In view of the above-mentioned problems, this paper describes a system that allows for the generation and analysis of organizational networks at a scale unattainable by existing systems. To this end, the system leverages a distributed computing platform to perform ONA offline (e.g., non-real-time) using parallelized optimized graph metric variants. In addition to being able to analyze larger organizations, the system also allows for a variety of different analyses over different time periods—allowing for viewing how the organization changes over time. Finally, the described system can utilize organizational data residing within the computing system and generate metrics. Therefore, privacy or regulatory concerns regarding sending data to other ONA tools can be mitigated.
[0011] Figure 1 This is a view illustrating a system used to generate organizational network analysis. The view includes a graph system 102, a distributed computing platform 104, and client devices 106. The graph system 102 may include user profiles 108, a web server 110, user interface rules 112, organizational data storage 114, a graph generator 116, a graph renderer 118, network analysis data storage 122, and metric calculation algorithms 124.
[0012] Client device 106 may be, but is not limited to, a smartphone, tablet, laptop, multiprocessor system, microprocessor-based or programmable consumer electronics, game console, set-top box, or any other device used by a user to communicate with graph system 102 via a network. In the example, client device 106 includes a display module (not shown) to display information provided by graph system 102 via web server 110 (e.g., in the form of a specially configured user interface). In some embodiments, client device 106 may include one or more of a touchscreen, camera, keyboard, microphone, and global positioning system (GPS) device.
[0013] The distributed computing platform 104 can be a group of processing units (e.g., cores of a general-purpose computer processor, a graphics processing unit, an application-specific integrated circuit, etc.) that perform tasks in a cooperative or parallel manner. For example, a distributed computing platform that can distribute work among different processing units (e.g., Apache) can be used. Configure the distributed computing platform 104 using MICROSOFT. An exemplary distributed computing platform could be MICROSOFT. AMAZON WEB and Google Cloud
[0014] Distributed computing platforms can be particularly useful when dealing with large datasets (e.g., millions of data points), where a single computer would be unable to handle the time-sensitive task. For example, if a user attempts to make changes to the system next week based on dataset analysis—but the processing will take at least that long—a single computer is insufficient.
[0015] For illustrative purposes, graph system 102 is shown as a collection of individual functional units (e.g., graph generator 116, graph renderer 118, web server 110, index calculation algorithm 124, etc.). However, the functionality of multiple functional units can be performed by a single unit. A functional unit can represent computer program code executable by a processing unit (e.g., one or more cores of a general-purpose computer processor, a graphics processing unit, an application-specific integrated circuit, etc.). The program code can be stored on a storage device and loaded into the memory of the processing unit for execution. Some portions of the program code can be executed in parallel across multiple processing units. Execution of the code can be performed on a single device or distributed across multiple devices (e.g., using a distributed computing platform 104).
[0016] Similarly, multiple datasets are shown (e.g., user profiles 108, user interface rules 112, organizational data storage 114, network analysis data storage 122, etc.). However, datasets can be partially stored in a single database. Data can be organized and stored in various ways. For convenience, the organized collection of data is typically within the context of a database with tables. Figure 1(Not shown in the image) The specific storage layout and model used in a database can take many forms—in fact, a database can use multiple models. A database can be, but is not limited to, a relational database (e.g., SQL), a non-relational database (NoSQL), a flat file database, an object model, a document detail model, a graph database, a shared ledger (e.g., blockchain), or a file system hierarchy. A database can store data on one or more storage devices (e.g., hard disks, random access memory (RAM), etc.). Storage devices can be located in a separate array, can be part of one or more servers, and can be located in one or more geographical regions.
[0017] In various examples, Figure 1 Resources and components within can communicate via one or more networks (not shown). These networks may include local area networks (LANs), wide area networks (WANs), wireless networks (e.g., 802.11 or cellular networks), public switched telephone networks (PSTN), ad hoc networks, cellular networks, personal area networks, or peer-to-peer networks (e.g., (Wi-Fi Direct), or other combinations or arrangements of network protocols and network types. A network may include a single local area network (LAN) or wide area network (WAN), or a combination of LAN and WAN (such as the Internet).
[0018] User profile 108 may include data about users of graph system 102. This data may include which organizational data the user is authorized to access (e.g., from organizational data store 114). This data may identify previously identified datasets and network analyses performed on those datasets (e.g., from network analysis data store 122). For example, a user may log in to graph system 102 using a set of credentials. Graph system 102 may access user profile 108 to retrieve performed network analyses and present them to the user. The user may then download metrics associated with the network analyses or render graphs based on the analyses.
[0019] Organizational data storage 114 can store information about an organization (e.g., a company or group of users). This information can include email data, calendar data, messaging interactions, and so on. Each type of information can include metadata in a standardized format. For example, an email message can include the date, sender, and one or more recipients. A calendar appointment can include the duration, date, and a list of attendees. Messaging application messages (e.g., chat applications, text messages) can include senders and recipients.
[0020] Users in the organizational data store 114 can also be associated with one or more attributes (such as title, geographic location, job function, etc.).
[0021] Web server 110 and user interface rules 112 can be combined to present a series of user interfaces to a user for identifying a dataset and then initiating all or part of the web analysis of that dataset.
[0022] Web server 110 can be used to exchange information with users via a network such as the Internet. Although typically discussed in the context of transmitting web pages via Hypertext Transfer Protocol (HTTP), web server 110 can also use other network protocols (e.g., File Transfer Protocol, remote login, Secure Shell, etc.). Users can enter a Uniform Resource Identifier (URI) corresponding to the logical location of web server 110 (e.g., Internet Protocol address) into a web browser (e.g., Microsoft's Internet Explorer 110). Web browsers or Apple's (Web browser). In response, web server 110 can send a webpage, which is rendered on the display device of client device 106.
[0023] Web server 110 enables users to interact with one or more web applications provided in one or more web pages that are sent to the user. The web applications can provide user interface (UI) components rendered on the display device of a computing device. Users can interact with UI components (e.g., select, move, enter text), and based on this interaction, the web application can update one or more portions of the web page. The web application can be executed locally, wholly or partially, on the client device.
[0024] In various examples, web applications can populate UI components using data from external sources or web servers. Web applications can issue API calls to retrieve data. Conversely, data entered by the user into UI components can be sent back to the web server using API calls. In these examples, User Interface Rule 112 defines the web application. Figures 2 to 14 A more detailed example of user interface rule 112 is presented in the context of this.
[0025] Graph generator 116 can store graph data structures based on data in organizational data storage 114 and user settings. The graph data structure can be an organizational or social network graph based on interactions between users as part of a network. For example, each vertex in the graph can represent a person, and edges represent interactions. Therefore, if Amy sends an email to Robert, an edge can be generated between Amy's vertex and Robert's vertex. In some examples, the weight of an edge can be based on the amount of interaction (e.g., more interactions result in a larger weight). After the metric calculation algorithm 124 has been executed, vertices can also have associated metric data. Metrics can also be stored in network analysis data storage 122.
[0026] Graph renderer 118 can render a representation of the graph data structure generated by graph generator 116. For example, each vertex can be represented as a circle, and edges can be represented as lines between circles. Different views of the graph can be used, for example, changing the size of the circles based on underlying metric values or changing the colors based on certain underlying attributes of the user (e.g., which department the user belongs to). Different visualization methods can be used without departing from the scope of this disclosure.
[0027] Figures 2 to 14 These are user interface views based on various examples. Each presented user interface can be considered a part of the user interface, depending on the examples. A user interface part can be configured to define data by displaying one or more input user interface elements. For example, a dropdown menu or a set of selected radio buttons can be presented along with an identifier for the available dataset. In the examples, a text input box can be presented to receive the dataset identifier directly from the user—or a search query can be used to find the dataset.
[0028] A GUI is described as a series of interface parts. A first part may be displayed simultaneously with one of several other parts. In various examples, these parts may be displayed sequentially (e.g., as a series of web pages). In various examples, one part may be presented as an overlay or pop-up that partially or completely obscures another part. Furthermore, although ordinal labels are sometimes used for user interface parts (e.g., first, second, third parts), this is for discussion purposes and should not imply an absolute order.
[0029] In various examples, a GUI can be configured to define a network for analysis. The configuration of the GUI can include definitions of where user interface elements are presented, using absolute or relative terms (e.g., user interface rule 112). For example, the GUI could be a webpage defined in HTML. Presentation can include sending the webpage for rendering on a display device of a computing device that receives it.
[0030] Figure 2 This is a view illustrating a user interface 200 according to various examples. The user interface 200 may be presented to the user after logging into the graph system 102. As shown, no analysis has yet been defined for the user. The user can select user interface element 202 to define settings for a new analysis.
[0031] Figure 3 This is a view illustrating user interface 300 according to various examples. In various examples, user interface 300 may be presented after user interface element 202 is selected. User interface 300 may request the user to enter the name of the analysis and the path to the data source (e.g., organizational data store 114). In various examples, a drop-down menu of possible data sources is presented to the user.
[0032] Figure 4 This is a view illustrating a user interface 400 according to various examples. User interface 400 may be presented after user interface 300. The graph system 102 can determine what types of interaction exist in the data source indicated in user interface 300 and present options to include one or more interaction types in the analysis. In this case, email and meeting data may be included. Other types of interaction may be indicated without departing from the scope of this disclosure.
[0033] Figure 5 and Figure 6 This shows views of user interfaces 500 and 600 according to various examples. User interfaces 500 and 600 may be presented after user interface 400. Interfaces 500 and 600 may present options for meeting interactions found in the data source. If a meeting does meet the criteria indicated by the user, that meeting can be excluded when generating the organization chart.
[0034] Figure 7 This is a view illustrating a user interface 700 according to various examples. The user interface may be presented after the user interface 600. The user interface 700 may present options for interacting with emails found in the data source. If an email does indeed meet the criteria indicated by the user, that email can be excluded when generating the organization chart. Although not shown, if in Figure 4 If other interaction types are indicated, options related to those interaction types can also be presented. The user interface 700 also displays options for running an analysis.
[0035] In addition to type-specific criteria, a set of global threshold settings can exist. For example, settings could exist for: the maximum number of people in an interaction, the maximum duration of an interaction, the minimum number of interactions, and a rolling week setting. The rolling week setting can be used to influence other settings. For instance, if the rolling week setting is 4 weeks, it might be necessary to include five interactions between two people within those 4 weeks.
[0036] The analysis can include identifying interactions that meet criteria indicated by the user and thereby generating a graph. For example, a graph generator 116 can iterate through the identified interactions and create edges between the people involved in the interactions. In one example, metrics are not calculated at this point.
[0037] Figure 8 This is a view showing a user interface 800 according to various examples. The user interface 800 can be [the interface that responds to user clicks]. Figure 7 This is what appears after "Run". As shown in the image, it has been based on the user's settings. Figure 3 An analysis was created based on the information entered.
[0038] Although not shown, users can click on the analysis and (e.g., using graph renderer 118) render the underlying graph. Users can filter the graph based on the attributes of the users included in it. For example, users can be associated with job function, management level, geographic location, field, level of involvement, etc. Therefore, users can view all engineers in California in a graph form based on the interactions of all engineers in California.
[0039] Figure 9 This is a view showing user interface 900 according to various examples. User interface 900 may be presented after the user has already defined the interactive dataset (e.g., using user interfaces 200-700). As shown, no analysis has been created yet. The user can click "Add New Analysis" to proceed. Figures 10 to 14 The process is shown.
[0040] Figure 10 This is a view illustrating a user interface 1000 according to various examples. The user interface 1000 can present an initial set of settings for the analysis, such as name, start time period, and end time period. It can also present the user with options for generating more than one indicator file. For example, in Figure 10 The document contains an option to include monthly indicator files, which will result in multiple files for January, February, and March 2019. Other time groupings can be used and presented as options. For example, there could be an option to generate indicator files for time periods of 3 months, 6 months, 9 months, and one year.
[0041] Figure 11 This is a view illustrating user interface 1100 according to various examples. In various examples, user interface 1100 may be presented after user interface 1000. User interface 1100 may be used to define network boundaries based on attributes of other underlying datasets. For example, in this example, the boundary is set when the organization attribute equals Perry A. Clarke. More than one filter may be used without departing from the scope of this disclosure.
[0042] Figure 12 This is a view showing a user interface 1200 according to various examples. User interface 1200 may be presented after user interface 1100. User interface 1200 may present options regarding what metrics to calculate for a user who is part of a filtered network (e.g., as defined in user interface 1100).
[0043] Figure 13 This is a view illustrating user interface 1300 according to various examples. User interface 1200 may be presented after user interface 1200. User interface 1200 may present options for calculating group-level metrics based on the underlying attributes of the dataset. For example, user interface 1300 shows that three distinct groups have been identified based on level specification, supervisor indicator, and job type (e.g., sales). As with user interface 1200, one or more metrics can be selected for group calculations. Options for running the analysis may also be presented.
[0044] Although not shown, this gives users the option to create more analyses. This can be useful when users want to compare how organizational charts change over time. For example, one analysis could be for the first quarter of a year, and then, after some organizational changes, a second analysis could be run for the second quarter.
[0045] Figure 14 This is a view showing a user interface 1400 according to various examples. The user interface 1400 may be presented after all metrics have been run according to the indicated options. As previously mentioned, metric analysis is performed offline, separately from graph rendering. The user can select icon 1402 to download the calculated metrics.
[0046] In various examples, users can choose to analyze (e.g., Perry's organization) to render one or more graphs based on the underlying graph structure and computed metrics. For instance, a graph based on computed intrinsic centrality can be rendered.
[0047] Figure 15This is a flowchart illustrating a method according to various examples. The method is represented by a set of blocks describing operations 1502-1512 of the method. The method can be implemented in an instruction set stored within at least one computer-readable storage device of a computing device. The computer-readable storage device does not include transient signals. Instead, a signal-bearing medium may include such transient signals. The machine-readable medium can be either a computer-readable storage device or a signal-bearing medium. The computing device may have one or more processors that execute the instruction set to configure the one or more processors to perform... Figure 15 The operations shown are illustrated. The one or more processors can instruct other components of the computing device to execute this set of instructions. For example, the computing device can instruct a network device to send data to another computing device, or the computing device can provide data through a display interface to present a user interface. In some examples, the execution of this method can be partitioned across multiple computing devices using a shared computing infrastructure.
[0048] Some operations of this method may not be included. Figure 15 As shown in the diagram. For example, prior to operation 1502, a user interface section may be presented to define a set of one or more interaction types between users in the organization, to be included in the Organizational Network Diagram (ONG) (e.g., Figure 4 In this context, the user interface can be considered as a set of interactions defined by presenting user interface elements for the user to choose from. Additional user interface sections can be configured to define interactions specific to the fourth section (e.g., ...). Figures 5 to 7 The interaction criteria (e.g., duration of the interaction) for the interaction type defined in the ).
[0049] In various examples, organizational network graphs can be generated based on interaction criteria. For instance, an organizational network graph can represent users within an organization, and edges can represent interactions between users in the organization that satisfy the aforementioned interaction criteria (see, for example, the discussion on graph generator 116).
[0050] After the ONG has been generated, at operation 1502, the first part of the user interface can be presented (e.g., Figure 11 The first part is configured to define the network boundaries of the Organizational Network Graph (ONG) in the dataset. This dataset may have been previously identified and may represent a collection of data from email, calendar, and messaging applications. The network boundaries can be one or more filters based on the underlying attribute data of users in the ONG. For example, the network boundary could be all users who are engineers.
[0051] At operation 1504, a second part can be presented, which is configured to define the start and end times of the network analysis (e.g., interactive). In various examples, the time can be a day, a month, or a year. The second part can be, for example, in... Figure 10 The user interface presented in the middle.
[0052] At operation 1506, a third part can be presented, which is configured to define a set of one or more graph indicators for vertices in the ONG. For example, one or more centrality indicators can be selected (see, for example, Figure 12 In various examples, another user interface section is presented to define (e.g., based on attributes) the collection of groups and the calculation of metrics for them.
[0053] In various examples, operation 1508 could include retrieving a portion of a dataset based on network boundaries, start time, and end time. Retrieval could include identifying and querying the logical location of the underlying data (e.g., which databases, etc.).
[0054] In various examples, operation 1510 may include sending instructions to a distributed computing platform (e.g., distributed computing platform 104) to generate offline a set of graph metrics for a portion of the dataset. In various examples, the instructions may be based on a metric calculation algorithm optimized for the distributed computing platform (e.g., metric calculation algorithm 124). Different algorithms may have been optimized in different ways.
[0055] For example, for proximity and betweenness centrality, as well as network hole constraints and redundancy metrics, the difference between this implementation and the standard implementation could be that each metric computation becomes a function, which is then (e.g., using a distributed computing platform 104) run in parallel for each person in the network. Other existing implementations run each computation serially.
[0056] Interconnectedness, or Boundary Spanner, can be defined as the number of people or the amount of time you, as an individual, collaborate with outside your group. The group being considered will be an HR attribute (such as the organization) and can be determined by the analyst.
[0057] In some examples, the group calculation of metrics can be modified without modifying individual metrics. For instance, the line-rank centrality of an individual in a network can be defined as the sum of the importance scores of its event edges. Edge importance score is the probability that a random walker visiting an edge via a node will remain on that edge (Kang, Papadimitriou, Sun, and Tong, 2011). Based on the principle that a group within an organization is not an entity but a group of people working together, the line-rank centrality of a group is defined as the sum of the importance scores of the group's event edges. Furthermore, the edge importance score of a group is the probability that a random walker visiting an edge outside the group via a node within the group will remain on that edge. Therefore, the line-rank score of a group becomes the sum of the importance scores of edges adjacent to the group, normalized by the number of people in the group.
[0058] In Borgatti, SP (Borgatti, 2006), the concept of key reachers was analyzed under the KPP-Pos metric. This concept typically focuses on the connectivity and cohesion of a set of nodes with the rest of the network. The paper defines a function to measure the amount of cohesion between members of a group and the rest of the network. This measure is based on the reciprocal of the shortest distance between a node within the group and a node outside the group. For ease of interpretation, it is also normalized across all nodes, so that the measure will lie between 0 and 1 based on the following equation.
[0059]
[0060] D R It is the weighted proportion of all nodes reached by the set, d kj It is the minimum distance from any member k to node j, and n is the number of nodes in the graph.
[0061] To use this metric to identify those with the greatest impact on network cohesion, an optimization algorithm is proposed that uses the following algorithm to calculate the reach measure of different sets of nodes in the network.
[0062] 1. Randomly select k nodes to populate set S
[0063] 2. Use appropriate key participant metrics to set F = fit.
[0064] 3. For each node u in S and each node v not in S
[0065] a. DELTAF = Improvement of the fit if u and v are swapped.
[0066] 4. Select the pair with the largest DELTAF.
[0067] a. Terminate if DELTAF <=
[0068] b. Otherwise, swap the pair with the greatest improvement in fit and set F = F + DELTAF.
[0069] 5. Proceed to step 3
[0070] Some changes are required when applying this to the aforementioned network.
[0071] 1) In the network of graph system 102, network edge weights can represent the strength between nodes rather than the distance. Therefore, to have a distance greater than or equal to 1, the edge weights can be modified. For example, the reciprocal of the connection strength, normalized by the minimum reciprocal of the connection strength, is used to have a distance within the desired range.
[0072] 2) Then, the entire required formula can be modified so that the metric should be calculated on all k members of the network and then normalized accordingly, which did not occur in the presented equation. The modified reachability metric equation can be defined as follows:
[0073]
[0074] 3) However, as the network size grows, this optimization algorithm may become unusable. Therefore, a better starting point may be needed. To obtain a better starting point, we calculate the reachability of all nodes as groups of individual nodes. Then, we expect a group of highly reachable individual nodes to form the highest reachable group. We can then swap nodes with other randomly selected highly reachable nodes and iterate until we reach our error threshold.
[0075] 1. Calculate the reachability metric for all nodes.
[0076] 2. Select k nodes from the highly reachable individual nodes to populate set S.
[0077] 3. Use appropriate key participant metrics to set the F-fit.
[0078] 4. For each node u in S and each node v not in S
[0079] a.DELTAF = Improvement of the fit if u and v are swapped
[0080] 5. Select the pair with the largest DELTAF.
[0081] a. Terminate if DELTAF <=
[0082] b. Otherwise, swap the pair with the greatest improvement in fit and set F = F + DELTAF.
[0083] 6. Proceed to step 3
[0084] In various examples, operation 1512 may include storing the generated set of graph metrics as associated with the network analysis. Accordingly, when a user logs into a system such as graph system 102, links to the metrics can be presented. In various examples, if the user selects an identifier (e.g., a name) for the network analysis, a visual representation of the network analysis can be presented. For example, each vertex may be presented as a circle (or other shape) connected to other circles.
[0085] Example computer system
[0086] The embodiments described herein can be implemented in one or a combination of hardware, firmware, and software. Embodiments can also be implemented as instructions stored on a machine-readable storage device that can be read and executed by at least one processor to perform the operations described herein. A machine-readable storage device can include any non-transitory mechanism for storing information in a machine-readable (e.g., computer-readable) form. For example, a machine-readable storage device can include read-only memory (ROM), random access memory (RAM), disk storage media, optical storage media, flash memory devices, and other storage devices and media.
[0087] As described herein, examples may include logical units, or multiple components, modules, or mechanisms, or examples may operate on all of the foregoing. A module may be hardware, software, or firmware communicatively coupled to one or more processors to perform the operations described herein. A module may be a hardware module, such a module can be considered a tangible entity capable of performing the specified operations and can be configured or arranged in a certain manner. In one example, circuitry (e.g., intrinsically or relative to an external entity such as other circuitry) may be arranged as a module in a specified manner. In the example, a portion or all of one or more computer systems (e.g., a separate client or server computer system) or one or more hardware processors may be configured by firmware or software (e.g., instructions, application portions, or applications) to operate as a module to perform the specified operations. In the example, the software may reside on a machine-readable medium. In the example, when executed by the underlying hardware of the module, the software causes the hardware to perform the specified operations. Accordingly, the term hardware module is understood to include tangible entities that are partially or wholly constructed, specifically configured (e.g., hardwired), or temporarily (e.g., provisionally) configured (e.g., programmed) to operate in a specified manner or perform any of the operations described herein. Consider examples in which modules are provisionally configured, and each of these modules does not need to be instantiated at any given time. For example, in the case where the modules include a general-purpose hardware processor configured using software, the general-purpose hardware processor can be configured as various different modules at different times. The software can accordingly configure the hardware processor to, for example, constitute a specific module at one time instance and a different module at another different time instance. Modules can also be software or firmware modules that operate to perform the methods described herein.
[0088] Figure 16This is a block diagram illustrating a machine in the form of an example computer system 1600 according to an example embodiment, in which a set or series of instructions can be executed to cause the machine to perform any of the methods discussed herein. In alternative embodiments, the machine operates as a standalone device or can be connected (e.g., networked) to other machines. In a networked deployment, the machine can operate as a server or client machine in a server-client network environment, or it can act as a peer machine in a peer-to-peer (or distributed) network environment. The machine can be an in-vehicle system, a wearable device, a personal computer (PC), a tablet computer, a hybrid tablet computer, a personal digital assistant (PDA), a mobile phone, or any machine capable of executing (sequentially or otherwise) instructions specifying actions to be performed by the machine. Furthermore, although only a single machine is shown, the term "machine" should also be understood to include any set of machines that individually or jointly execute a set (or more sets) of instructions to perform any one or more of the methods discussed herein. Similarly, the term "processor-based system" should be understood to include any set of one or more machines controlled or operated by a processor (e.g., a computer) to execute instructions individually or jointly in order to perform any one or more of the methods discussed herein.
[0089] Example computer system 1600 includes at least one processor 1602 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), or both, a processor core, a compute node, etc.), main memory 1604, and static memory 1606, which communicate with each other via link 1608 (e.g., a bus). Computer system 1600 may also include a video display unit 1610, an alphanumeric input device 1612 (e.g., a keyboard), and a user interface (UI) navigation device 1614 (e.g., a mouse). In one embodiment, the video display unit 1610, the input device 1612, and the UI navigation device 1614 are incorporated into a touchscreen display. Computer system 1600 may additionally include a storage device 1616 (e.g., a driver unit), a signal generation device 1618 (e.g., a speaker), a network interface device 1620, and one or more sensors (not shown), such as a global positioning system (GPS) sensor, a compass, an accelerometer, or other sensors.
[0090] Storage device 1616 includes machine-readable medium 1622 on which one or more sets of data structures and instructions 1624 (e.g., software) are stored, the instructions 1624 embodying any one or more of the methods or functions described herein, or the instructions 1624 being used by any one or more of the methods or functions described herein. Instructions 1624 may also reside wholly or at least partially in main memory 1604, static memory 1606, and / or reside in processor 1602 during execution by computer system 1600, wherein main memory 1604, static memory 1606, and processor 1602 also constitute machine-readable medium.
[0091] Although machine-readable medium 1622 is shown as a single medium in the example embodiment, the term "machine-readable medium" can include a single medium or multiple media (e.g., a centralized or distributed database, and / or associated caches and servers) storing one or more instructions 1624. The term "machine-readable medium" should also be understood to include any tangible medium capable of storing, encoding, or carrying machine-executable instructions and causing a machine to perform any one or more of the methods in this disclosure, or capable of storing, encoding, or carrying data structures used by or associated with those instructions. The term "machine-readable medium" should also be understood accordingly to include, but is not limited to, solid-state memory and optical and magnetic media. Specific examples of machine-readable media include non-volatile memory, including, by way of example and not limitation, semiconductor memory devices (e.g., electrically programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM)), and flash memory devices; disks, such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
[0092] Instructions 1624 can also be sent or received via a network interface device 1620 utilizing any of a variety of known transport protocols (e.g., HTTP) and a communication network 1626 using a transmission medium. Examples of communication networks include: local area networks (LANs), wide area networks (WANs), the Internet, mobile phone networks, conventional telephone networks (POTS), and wireless data networks (e.g., Wi-Fi, 3G, and 4G LTE / LTE-A or WiMAX networks). The term "transmission medium" should be understood to include any non-tangible medium capable of storing, encoding, or carrying instructions executed by a machine, and includes digital or analog communication signals or other non-tangible media to facilitate communication of such software.
[0093] The above detailed description includes references to the accompanying drawings, which form a part of this detailed description. The drawings illustrate specific embodiments that can be implemented by way of illustration. These embodiments are also referred to herein as "examples". These examples may also include elements other than those shown or described. However, examples that include elements shown or described are also contemplated. Furthermore, examples using any combination or arrangement of those elements shown or described (or one or more aspects thereof) are also contemplated for specific examples (or one or more aspects thereof) or for other examples (or one or more aspects thereof) shown or described herein.
[0094] Quotation
[0095] Borgatti, SP (2006). Identifying sets of key players in a social network. Computational & Mathematical Organization Theory, 21-34.
[0096] Kang, U., Papadimitriou, S., Sun, J., & Tong, H. (2011). Centralities in Large Networks: Algorithms and Observations. Proceedings of the 2011 SIAM International Conference on Data Mining, 10.1137 / 1.9781611972818.11.
Claims
1. A system comprising: Processing unit; A storage device including instructions that, when executed by at least one processor, configure the processing unit to perform operations including: A graphical user interface is presented, configured to define network analysis, the graphical user interface including: The first part is configured to define the network boundaries of an organizational network graph in the dataset, where vertices in the organizational network graph represent users within an organization and edges in the organizational network graph represent interactions between users within the organization. The second part is configured to define the start and end times of the network analysis; and The third part is configured to define a set of one or more graph metrics for vertices in the organizational network graph; Retrieve a portion of the dataset based on the network boundary, start time, and end time; send instructions to the distributed computing platform to generate a set of graph metrics for the portion of the dataset; and The generated set of graph metrics is stored as an association with the network analysis.
2. The system according to claim 1, wherein, The operation also includes: Receive the selection of an identifier for the network analysis; and In response to the selection, a visual representation of the network analysis is presented.
3. The system according to claim 1, wherein, The graphical user interface also includes: The fourth part is configured to define a set of one or more interaction types between users in the organization, to be included in the organization's network diagram; and The fifth part is configured to define interaction standards for the interaction types defined in the fourth part.
4. The system according to claim 3, wherein, When executed by at least one processor, the instructions also configure the processing unit to perform the following operations: The organizational network diagram is generated based on the aforementioned interaction standard.
5. The system according to claim 1, wherein, The set of one or more graph metrics for vertices in the organizational network graph includes a centrality measure.
6. The system according to claim 1, wherein, The graphical user interface also includes: The fourth part is configured to define a set of one or more graph metrics for groups within the organizational network graph.
7. A method comprising: A graphical user interface is presented, configured to define network analysis, the graphical user interface including: The first part is configured to define the network boundaries of an organizational network graph in the dataset, where vertices in the organizational network graph represent users within an organization and edges in the organizational network graph represent interactions between users within the organization. The second part is configured to define the start and end times of the network analysis; and The third part is configured to define a set of one or more graph metrics for vertices in the organizational network graph; A portion of the dataset is retrieved based on the network boundary, start time, and end time. Send instructions to the distributed computing platform to generate a set of graph metrics for the said portion of the dataset; and The generated set of graph metrics is stored as an association with the network analysis.
8. The method according to claim 7, further comprising: Receive the selection of an identifier for the network analysis; as well as In response to the selection, a visual representation of the network analysis is presented.
9. The method according to claim 7, wherein, The graphical user interface also includes: The fourth part is configured to define a set of one or more interaction types between users in the organization, to be included in the organization's network diagram; and The fifth part is configured to define interaction standards for the interaction types defined in the fourth part.
10. The method of claim 9, further comprising: The organizational network diagram is generated based on the aforementioned interaction standard.
11. The method according to claim 7, wherein, The set of one or more graph metrics for vertices in the organizational network graph includes a centrality measure.
12. The method according to claim 7, wherein, The graphical user interface also includes: The fourth part is configured to define a set of one or more graph metrics for groups within the organizational network graph.
13. A storage device, comprising instructions that, when executed by a processing unit, configure the processing unit to perform operations including: A graphical user interface is presented, configured to define network analysis, the graphical user interface including: The first part is configured to define the network boundaries of an organizational network graph in the dataset, where vertices in the organizational network graph represent users within an organization and edges in the organizational network graph represent interactions between users within the organization. The second part is configured to define the start and end times of the network analysis; as well as The third part is configured to define a set of one or more graph metrics for vertices in the organizational network graph; A portion of the dataset is retrieved based on the network boundary, start time, and end time. Send instructions to the distributed computing platform to generate a set of graph metrics for the portion of the dataset; as well as The generated set of graph metrics is stored as an association with the network analysis.
Citation Information
Patent Citations
Systems and methods for data flow exploration
US20150081701A1