Patent Description:
The following presents a summary to provide a basic understanding of one or more embodiments of the invention. This summary is not intended to identify key or critical elements or delineate any scope of the particular embodiments or any scope of the claims. Its sole purpose is to present concepts in a simplified form as a prelude to the more detailed description that is presented later. In one or more embodiments described herein, devices, systems, methods, and computer-implemented methods are described that can facilitate anonymizing a network based on factors including network attributes, node attributes, and edge attributes of connections between nodes.

According to an embodiment, a system can comprise a memory that can store computer-executable components and a processor that can execute the computer-executable components stored in the memory, with the computer-executable components comprising an anonymizing component that can anonymize network information of the network based on a network attribute for a network and a node attribute of a first node of the network, resulting in an anonymized network. According to a variation of the above described embodiment, connection information corresponding to a connection between the first node and a second node can comprise an edge attribute, and the anonymizing the network information can be further based on the edge attribute. According to another variation of the above described embodiment, the anonymizing the network information can be further based on a privacy constraint that can mandate a level of privacy for the anonymized network.

In an additional embodiment of the system described above, the computer-executable components of the system can further include a constraint component that can generate the privacy constraint based on the network information. In a variation of the additional embodiment, the constraint component can generate the privacy constraint further based on a privacy rule, and wherein the privacy rule applies to the first node. In further embodiments, the constraint component can further determine an access right for the first node, and the constraint component can generate the privacy constraint further based on the access right.

In yet another variation of the above described system, the anonymizing the network information can be further based on a utility constraint for the anonymized network, and wherein the utility constraint comprises a first measure of a utility of the anonymized network based on a requirement of a consumer. Adding additional features to this variation, in another embodiment, the computer-executable components of the system can further comprise an optimality component that can select the utility constraint that optimizes, or increases an optimality of, the anonymizing the network information, this optimizing being based on an anonymizing characteristic of the anonymizing the network information. In some implementations, the anonymizing characteristic can include a second measure of a loss of information during the anonymizing the network information. In other implementations, the anonymizing characteristic can include a number of edits of the network performed during the anonymizing the network information.

In an implementation of the system described above, the network information can comprise healthcare information of a plurality of patients. Alternatively, in one or more embodiments, the network can comprise a social media network of a plurality of users.

One or more embodiments of a computer-implemented method can comprise generating, by a device operatively coupled to a processor, a network attribute for a network. Further, the method can comprise anonymizing, by the device, network information of the network based on the network attribute and a node attribute of a first node of the network, resulting in an anonymized network.

In a variation of the above-described method, connection information corresponding to a connection between the first node and a second node can comprise an edge attribute, and the anonymizing of the network information can be further based on the edge attribute. In an additional variation of the method, the anonymizing the network information can be further based on a privacy constraint that can mandate a level of privacy for the anonymized network.

In a variation of computer-implemented method described above, the method can further comprise generating the privacy constraint based on a privacy rule, and the privacy rule can apply to the first node. In additional embodiments, the anonymizing the network information can be further based on a utility constraint for the anonymized network, and the utility constraint can comprise a measure of a utility of the anonymized network based on a requirement of a consumer. In an embodiment of the method having additional operations, the method can further comprise selecting the utility constraint that can optimize, or can increase an optimality of, the anonymizing the network information, based on an anonymizing characteristic of the anonymizing the network information.

In an additional set of embodiments, a computer program product can facilitate anonymizing network information, with the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions being executable by a processor to cause the processor to generate, by the processor, a network attribute for a network of connected nodes, and ones of a plurality of the connected nodes can comprise a node attribute, that can result in a plurality of node attributes. Further, the generating the network attribute can be based on the plurality of node attributes. The processor can be further caused to generate, by the processor, a privacy constraint based on network information of the connected nodes, and the privacy constraint can mandate a level of privacy for an anonymized network. In this embodiment, the processor can further be caused to anonymize, by the processor, the network information of the connected nodes, resulting in the anonymized network, based on the network attribute, the plurality of node attributes, and the privacy constraint.

In a variation of the above embodiment, the anonymizing the network information can be further based on a utility constraint for the anonymized network, and the utility constraint can comprise a first measure of a utility of the anonymized network based on a requirement of a consumer. In another embodiment based on the computer program product above, instructions further cause the processor to select, by the processor, the utility constraint that optimizes, or increases an optimality of, the anonymizing the network information, based on a second measure of a loss of information during the anonymizing the network information.

According to one aspect, there is provided a system, comprising: a memory that stores computer-executable components; a processor that executes the computer-executable components stored in the memory, wherein the computer-executable components comprise: an anonymizing component that anonymizes network information of a network based on a network attribute for a network and a node attribute of a first node of the network, resulting in an anonymized network.

According to another aspect, there is provided a computer-implemented method, comprising: generating, by a device operatively coupled to a processor, a network attribute for a network; and anonymizing, by the device, network information of the network based on the network attribute and a node attribute of a first node of the network, resulting in an anonymized network.

According to another aspect, there is provided a computer program product facilitating anonymizing network information, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to: generate, by the processor, a network attribute for a network of connected nodes, wherein ones of a plurality of the connected nodes comprise a node attribute, resulting in a plurality of node attributes, and wherein the generating the network attribute is based on the plurality of node attributes; generate, by the processor, a privacy constraint based on network information of the connected nodes, wherein the privacy constraint mandates a level of privacy for an anonymized network; and anonymize, by the processor, the network information of the connected nodes, resulting in the anonymized network, based on the network attribute, the plurality of node attributes, and the privacy constraint.

One or more embodiments are now described with reference to the drawings, wherein like referenced numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a more thorough understanding of the one or more embodiments. It is evident, however, in various cases, that the one or more embodiments can be practiced without these specific details. It is noted that the drawings of the present application are provided for illustrative purposes only and, as such, the drawings are not drawn to scale.

It should be appreciated that the embodiments of the subject disclosure depicted in various figures disclosed herein are for illustration only, and as such, the architecture of such embodiments are not limited to the systems, devices, and/or components depicted therein.

One or more embodiments are described herein in the context of sharing some amount of data from an otherwise restricted access network. Some embodiments described herein are applied to restricted networks having some data that is sought after for public and private reasons. One example of this type of networks used frequently herein for illustration purposes is a network storing and proving healthcare data, e.g., information on hospitals, patients, treatments, and other related information.

Because healthcare networks can provide data that is both, subject to legal and ethical restrictions, and also sought after for public and private purposes, these networks can provide an example context for applications of principles described here, e.g., networks where anonymization can be used to share patient data with researchers, while complying with all legal and ethical requirements. As discussed further below, in many circumstances, one or more embodiments can evaluate privacy and utility constraints when selecting approaches to anonymization, and anonymization parameters to use, e.g., the k value in the k-anonymity approach described below.

It should be noted that, although healthcare networks are used at times herein to illustrate concepts of embodiments, these are non-limiting examples, and other types of networks in use now, and developed in the future, can be used with one or more embodiments described herein. For example, association membership networks, human resources networks, networks of transaction data, and social networks can also contain sought after data that is protected from disclosure in many circumstances.

Generally speaking, as described herein one or more embodiments can facilitate a network anonymization that can incorporate different types of attributes for anonymization, e.g., node attributes, edge attributes, and network attributes. Further, one or more embodiment can facilitate the anonymization of network data such that utility of the anonymized network is improved while privacy requirements of individual nodes of the original are satisfied, e.g., as a trade-off between privacy and utility constraints.

<FIG> illustrates a block diagram of an example <NUM> of non-limiting network anonymizing system <NUM> that can facilitate anonymizing a network based on factors including network attributes, node attributes, and edge attributes describing connections between nodes, in accordance with one or more embodiments described herein. Repetitive description of like elements and/or processes employed in respective embodiments is omitted for sake of brevity. Some embodiments can comprise a network anonymizing system <NUM>. In some embodiments, network anonymizing system <NUM> can comprise attribute component <NUM>, anonymizing component <NUM>, and any other components associated with network anonymizing system <NUM> as disclosed herein.

It should be appreciated that the embodiments of the subject disclosure depicted in various figures disclosed herein are for illustration only, and as such, the architecture of such embodiments are not limited to the systems, devices, and/or components depicted therein. For example, in some embodiments, network anonymizing system <NUM> can further comprise various computer and/or computing-based elements described herein with reference to operating environment <NUM> and <FIG>. For example, in some embodiments, network anonymizing system <NUM> can further comprise memory <NUM>, processor <NUM>, and bus <NUM>. In several embodiments, such computer and/or computing-based elements can be used in connection with implementing one or more of the systems, devices, components, and/or computer-implemented operations shown and described in connection with <FIG> or other figures disclosed herein.

According to multiple embodiments, memory <NUM> can store one or more computer and/or machine readable, writable, and/or executable components and/or instructions that, when executed by processor <NUM>, can facilitate performance of operations defined by the executable component(s) and instruction(s). For example, memory <NUM> can store computer and otherwise machine readable, writable, and/or executable components and/or instructions that, when executed by processor <NUM>, can facilitate execution of the various functions described herein relating to network anonymizing system <NUM>, attribute component <NUM>, anonymizing component <NUM>, and any other components associated with network anonymizing system <NUM> as described herein, with or without reference to the various figures of the subject disclosure.

In some embodiments, memory <NUM> can comprise volatile memory (e.g., random access memory (RAM), static RAM (SRAM), dynamic RAM (DRAM), etc.) and/or non-volatile memory (e.g., read only memory (ROM), programmable ROM (PROM), erasible programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), etc.) that can employ one or more memory architectures. Further examples of memory <NUM> are described below with reference to system memory <NUM> and <FIG>. Such examples of memory <NUM> can be employed to implement any embodiments of the subject disclosure.

According to multiple embodiments, processor <NUM> can comprise one or more types of processors and/or electronic circuitry that can implement one or more computer and/or machine readable, writable, and/or executable components and/or instructions that can be stored on memory <NUM>. For example, processor <NUM> can perform various operations that can be specified by such computer and/or machine readable, writable, and/or executable components and/or instructions including, but not limited to, logic, control, input/output (I/O), arithmetic, and/or the like. In some embodiments, processor <NUM> can comprise one or a combination of different central processing units, multi-core processors, microprocessors, dual microprocessors, microcontrollers, Systems on a Chip (SOC), array processors, vector processors, and any other type of processor. Further examples of processor <NUM> are described below with reference to processing unit <NUM> and <FIG>. Such examples of processor <NUM> can be employed to implement any embodiments of the subject disclosure.

In some embodiments, elements of network anonymizing system <NUM>, including, but not limited to memory <NUM>, processor <NUM>, attribute component <NUM>, anonymizing component <NUM>, and any other component of network anonymizing system <NUM> as described herein, can be communicatively, electrically, and/or operatively coupled to one another via bus <NUM> to perform functions of network anonymizing system <NUM>, and any other components coupled therewith. In several embodiments, bus <NUM> can comprise one or more of a memory bus, memory controller, peripheral bus, external bus, local bus, or another type of bus that can employ various bus architectures. Further examples of bus <NUM> are described below with reference to system bus <NUM> and <FIG>. Such examples of bus <NUM> can be employed to implement any embodiments of the subject disclosure.

In some embodiments, network anonymizing system <NUM> can comprise any type of component, machine, device, facility, apparatus, and/or instrument that comprises a processor and/or can be capable of effective and/or operative communication with a wired and/or wireless network. All such embodiments are envisioned. For example, network anonymizing system <NUM> can comprise a server device, a computing device, a general-purpose computer, a special-purpose computer, a quantum computing device (e.g., a quantum computer, a quantum processor, etc.), a tablet computing device, a handheld device, a server class computing machine and/or database, a laptop computer, a notebook computer, a desktop computer, a cell phone, a smart phone, a consumer appliance and/or instrumentation, an industrial and/or commercial device, a digital assistant, a multimedia Internet enabled phone, a multimedia players, and/or another type of device.

In some embodiments, network anonymizing system <NUM> can be coupled (e.g., communicatively, electrically, operatively, etc.) to one or more external systems, sources, and/or devices (e.g., computing devices, communication devices, etc.) via a data cable (e.g., coaxial cable, High-Definition Multimedia Interface (HDMI), recommended standard (RS) <NUM>, Ethernet cable, etc.). In some embodiments, network anonymizing system <NUM> can be coupled (e.g., communicatively, electrically, operatively, etc.) to one or more external systems, sources, and/or devices (e.g., computing devices, communication devices, etc.) via a network.

According to multiple embodiments, network anonymizing system <NUM> can comprise one or more computer and/or machine readable, writable, and/or executable components and/or instructions that, when executed by processor <NUM>, can facilitate performance of operations defined by such component(s) and/or instruction(s). Further, in numerous embodiments, any component associated with network anonymizing system <NUM>, as described herein with or without reference to the various figures of the subject disclosure, can comprise one or more computer and/or machine readable, writable, and/or executable components and/or instructions that, when executed by processor <NUM>, can facilitate performance of operations defined by such component(s) and/or instruction(s). For example, attribute component <NUM> and anonymizing component <NUM>, and any other components associated with network anonymizing system <NUM> as disclosed herein (e.g., communicatively, electronically, and/or operatively coupled with and/or employed by network anonymizing system <NUM>), can comprise such computer and/or machine readable, writable, and/or executable component(s) and/or instruction(s). Consequently, according to numerous embodiments, network anonymizing system <NUM> and/or any components associated therewith as disclosed herein, can employ processor <NUM> to execute such computer and/or machine readable, writable, and/or executable component(s) and/or instruction(s) to facilitate performance of one or more operations described herein with reference to network anonymizing system <NUM> and/or any such components associated therewith.

Returning to the operation of components depicted in <FIG>, in one or more embodiments, as discussed further with <FIG>, different attributes of nodes of a network can be used to facilitate the anonymization process as well as improve the utility of the anonymized network <NUM>. Different attributes of network nodes can include, but are not limited to, for healthcare networks, patient data, such as identifiers, name, diagnoses, and other similar data. As discussed further with <FIG>, another node attribute that can be used include characteristics of the entities stored by a particular node, e.g., nodes can have security requirement based on a type of entity. For example, in a healthcare system, patient data can have more restrictive access requirements than human resources data and general data about different healthcare facilities.

In addition to the use of existing node attributes for anonymization, one or more embodiments can analyze network data and identify attributes based on the network data, e.g., network attributes. For example, in one or more embodiments, attribute component <NUM> can generate a network attribute for the network based on the analysis of connected nodes. In one or more embodiments, network attributes generally refer to attributes describing the entire network or a relationship between a node and other nodes of the network. Example network attributes that can be used by one or more embodiments described herein include, but are not limited to, a total number of nodes, a total number of connections, average degree of nodes within the network, and different measures of the network centrality of a node. Example network centrality attributes can include a measure of in-degrees and out-degrees of nodes, e.g., a count of data flows into a node and out of a node, respectively. Other examples of network centrality include betweenness centrality, e.g., a measure of the centrality of a node in a graph based on shortest paths between nodes.

Another example network attribute that can describe the network centrality of a node includes the closeness centrality of a network node, e.g., how many nodes are between the node and other nodes of the network. In one or more embodiments, this value can be generated, e.g., by attribute component <NUM>, by taking an average of the shortest path length from the node to every other node in the network. It should be appreciated that, in alternative embodiments, as opposed to generating the network attribute, attribute component <NUM> can retrieve a previously generated network attribute for use in anonymization.

As discussed further below with an example healthcare network depicted in <FIG>, by incorporating network attributes in the anonymization process, these network attributes can be available, in one or more embodiments, to consumers querying the resulting anonymized network. As described further below, although node and edge attributes can be used for network analytics, by incorporating overall network attributes into the anonymization process, one or more embodiments can facilitate additional types of network analytics data to be produced from anonymized networks.

For example, in one or more embodiments, a measure of network centrality for a node can be incorporated in the anonymization process, and this can result in this centrality value being available to consumers of the anonymized network <NUM>, along with anonymized node attributes and edge attributes. One having skill in the relevant art(s), given the description herein, would appreciate that, in addition to being used by consumers independently of other anonymized network data, for some applications, different network attributes can be beneficially combined with anonymized node data. For example, an epidemiological researcher, after identifying an anonymized node with medical data indicating a contagious condition, can further query the anonymized network for different measures of the network centrality of the identified node, e.g., to analyze the role of the node in the spread of the condition to other nodes within the anonymized network.

With respect to other aspects of one or more embodiments discussed below, <FIG> depicts a process of transforming a network into an anonymized network by employing processes similar to those discussed above with anonymizing component <NUM> and network attributes, as described above, that can be generated by attribute component <NUM>, in accordance with one or more embodiments. <FIG> describe a constraint component <NUM> that can be used by one or more embodiments to generate constraints for use by anonymizing component <NUM>. <FIG> describe an optimality component <NUM> that can be used by one or more embodiments anonymize a network based both on the utility provided to consumers <NUM> and constraints generated by constraint component <NUM>. Further to the operation of example implementations of optimality component <NUM>, <FIG> depicts example ways that the utility of an anonymized network can be adjusted based on requirements of a consumer, in view of required constraints for the anonymized data.

<FIG> illustrates a block diagram of an example, non-limiting system <NUM> that can facilitate anonymizing <NUM> network <NUM> based on factors including network attribute <NUM>, data of nodes 220A-220D, and connections 225A-B between nodes, in accordance with one or more embodiments described herein. Repetitive description of like elements and/or processes employed in respective embodiments is omitted for sake of brevity.

In some embodiments, system <NUM> can include network <NUM> transformed by anonymizing <NUM> process into anonymized network <NUM>. Network <NUM>, in one or more embodiments can include multiple nodes, e.g., nodes 220A-D, variously connected by connections including connection 225A-B. In one or more embodiments, anonymized network <NUM> can include nodes 222A-D, anonymized from nodes 220A-D, respectively.

In an example, network <NUM> is a healthcare network comprising hospitals, with each node 220A-D in system <NUM> representing a hospital, and connections 225A-B between two nodes representing collaborative links between the hospital nodes. In this example, the node attributes of hospital nodes 220A-D can include the location of the hospital, the specialty of the hospital, number of physicians per specialty admitted to the hospital, number of patients in the hospital, and a metric corresponding to the performance of the hospital, e.g., a number of readmissions or an average cost per treatment). In one or more embodiments, the node attribute level of detail can be termed detail to a microscopic degree. After a more detailed discussion of the anonymizing <NUM> process, attribute levels for network <NUM> are discussed for both the mesoscopic level, e.g., edge attributes that can provide data regarding clusters of hospitals within the network, and the macroscopic level, e.g., network attributes <NUM> that can provide summary data for the network, as well as data describing placement of individual nodes within the network and relationships with other nodes.

Continuing a general discussion of one or more embodiments, as noted above, once generated by attribute component <NUM> or otherwise identified by one or more embodiments, different attributes can be incorporated into the anonymization process. For example, in one or more embodiments, anonymizing component <NUM> can facilitate anonymizing network information of a network based on attributes discussed above, e.g., types of attributes including but not limited to, node attributes, edge attributes, and network attributes <NUM>.

In another example, network <NUM> can be a social network of interconnected users, with each node 220A-D in system <NUM> representing a user, and connections 225A-B between two nodes representing connections between the user nodes. In this example, the node attributes of user nodes 220A-D can include, for the user, location, connection information, postings, age, and other user information. One having skill in the relevant art(s), given the description herein, will appreciate how network attributes <NUM> described below for the healthcare network example can be applied to other networks, such as this social network example.

With respect to examples of why and when anonymization can be employed by one or more embodiments, it would be appreciated by one having skill in the relevant art(s), given the disclosure herein, that data that is restricted from being provided can often be transformed in some way so as to not be subject to the same restrictions. One type of transformation that can be employed by one or more embodiments is the process of anonymizing data to a degree that it satisfies a level of anonymity, e.g., specific nodes stored cannot be individually identified using the released data. For example, if a set of patient data is to be released to a researcher, the data released should not be able to individually identify specific patients, e.g., attributes such as patient identifiers, social security numbers, telephone numbers, email addresses, and other similar data, can all be used in many circumstances to identify a single individual. In one or more embodiments, this type of data can be removed or obscured from the anonymized network.

Another level of anonymization that can be employed to protect certain types of data, prohibits the release of information that, in combination with other reasonably available data can, within a particular likelihood, identify an entity. For example, if two or more of the different types of data (e.g., birthdate, zip code, gender) are included in anonymized patient data, these values can, in some cases be combined with publicly available birthdate, zip code and gender data to identify individual patients. <FIG> provide examples of how combinations of birthdate, zip code and gender can be combined to identify individuals. One or more embodiments can, when used with different anonymization approaches, can prevent node data from being directly and associatively identified in anonymized data.

The underlying anonymization technical can be unimportant to the one or more embodiments, and hence the one or more embodiments can be potentially applied to different, existing methods, such as k-anonymity, I-diversity, etc. One having skill in the relevant art(s), given the description herein, will appreciate how these approaches can be used, and that approaches developed in the future will also be able to be used, with one or more embodiments.

An example anonymization approach that can be used by one or more embodiments is the k-anonymity approach. In some implementations, generally speaking, the k-anonymity approach can use different transformations to anonymize data such that, for anonymized data, at least k number of entities are similar enough that they cannot be discerned from each other. For example, for a k=<NUM> value, at least three entities are present in the anonymized network with attributes removed or transformed such that at least three records cannot be discerned from each other. Thus, for a k=<NUM> value, data can be anonymized such that, for example, for a given zip code, if a complete birthday is included in the anonymized data, no less than three records have the same combination. For example, in large zip codes (e.g., having populations greater than <NUM>,<NUM> people), consistently having multiple individuals with the same birthday may be likely, possible, but it is not likely for typical zip code sizes, and not every individual in a large zip code may be included in the data to be anonymized.

Multiple examples of the k-anonymization process are described below with <FIG>, with a dataset shown in <FIG> being transformed by example k-anonymity approaches. For example, <FIG> depicts an example use of a k-anonymity approach where k=<NUM> and <FIG> depicts an example where k=<NUM>. Other example values of k that can be used by one or more embodiments include k values from <NUM>-<NUM>, or any other value determined to be beneficial for the process.

As described above, one or more embodiments can incorporate a network attribute <NUM> for a node 220A (e.g., a measure of node centrality) into anonymized data for the node, e.g., node 222A of anonymized network. It should be noted that, based on the anonymization approaches described above, one or more embodiments can anonymize networks such that incorporation of network attribute <NUM> in the anonymized network data preserves the set level of anonymity required by the anonymizing process, e.g., as described for k-anonymity above.

It should be note that, as described further with <FIG> below, during the anonymization process, one or more embodiments can automatically adjust the approaches used by anonymization approaches so as to optimize, or increase the optimality of, the anonymization process given the types of queries that the anonymized network is designed to support, e.g., the utility of the anonymized network.

Returning to the discussion of healthcare network <NUM> of <FIG>, in an example, an anonymized version of network <NUM> is sought that can provide network analytics in a privacy-preserving way. According to example requirements, anonymized data should support queries at the mesoscopic level. For example, queries that can identify communities of hospitals that collaborate more often, along with the performance of these collaborations. In one or more embodiments, example edge attributes for connections 225A-B can support these requirements by generating and including edge attributes for pairs of hospitals linked by the respective connections, e.g., a number of shared patients, an average performance when sharing patients, and performance metrics for treatment of shared patients.

In this example, additional requirements for anonymized network <NUM> can include data to support queries at the macroscopic level, e.g., network attributes discussed with <FIG> above. In one or more embodiments, by incorporating overall network attributes <NUM> into the anonymizing <NUM> process of network <NUM>, additional data can be available in anonymized network <NUM> that can provide a more holistic view of the network, and, in some circumstances improve the overall utility of the anonymized network. For example, insights from anonymized networks that can be revealed using network attributes include, but are not limited to, characteristics of one or more nodes in the network that influence characteristics of other nodes.

Additional queries can relate to a degree sequence of hospital, e.g., the distribution of the load of collaboration between hospitals. For all of these additional requirements at the macroscopic level, network attributes <NUM> can be generated and included in the anonymizing <NUM> process. For example, utilizing network attributes <NUM> such as betweenness centrality and clustering coefficient during anonymization can provide data that can highlight the hospitals that have high influence in their network, e.g., high betweenness centrality for a hospital can occur because of links between other hospitals going through the high influence hospital.

Another example network attribute <NUM> that can support data analytics at the macroscopic level measures in-degree and out-degree centrality of a hospital, e.g., in some circumstances, a high out-degree centrality for a hospital can be indictive of the hospitals which tend to send out many of their patients, while high in-degree centrality can be indicative of hospitals that receive transferred patients.

It should be noted that nodes 220A-D are depicted as being either black or white, with these colors indicating that network <NUM> incudes nodes 220A-D that can have different privacy levels. As described with <FIG> below, one or more embodiments can provide entity-based access rights for access to anonymized network <NUM>.

In some embodiments, network anonymizing system <NUM> can be associated with various technologies. For example, network anonymizing system <NUM> can be associated with healthcare technologies, database technologies, computing technologies, artificial intelligence (AI) model technologies, machine learning (ML) model technologies, cloud computing technologies, Internet-of-Things (IoT) technologies, and/or other technologies.

According to multiple embodiments, networks, such as network <NUM> and anonymized network <NUM> can comprise wired and wireless networks, including, but not limited to, a local area network (LAN), a cellular network, a wide area network (WAN) (e.g., the Internet) or a storage area network (SAN). For example, network anonymizing system <NUM> can communicate with one or more external systems, sources, and/or devices, for instance, computing devices (and vice versa) using virtually any desired wired or wireless technology, including but not limited to: wireless fidelity (Wi-Fi), global system for mobile communications (GSM), universal mobile telecommunications system (UMTS), worldwide interoperability for microwave access (WiMAX), enhanced general packet radio service (enhanced GPRS), third generation partnership project (3GPP) long term evolution (LTE), third generation partnership project <NUM> (3GPP2) ultra mobile broadband (UMB), high speed packet access (HSPA), Zigbee and other <NUM>. XX wireless technologies and/or legacy telecommunication technologies, BLUETOOTH®, Session Initiation Protocol (SIP), ZIGBEE®, RF4CE protocol, WirelessHART protocol, 6LoWPAN (IPv6 over Low power Wireless Area Networks), Z-Wave, an ANT, an ultra-wideband (UWB) standard protocol, and/or other proprietary and non-proprietary communication protocols. In such an example, network anonymizing system <NUM> can thus include hardware (e.g., a central processing unit (CPU), a transceiver, a decoder), software (e.g., a set of threads, a set of processes, software in execution) or a combination of hardware and software that facilitates communicating information between network anonymizing system <NUM> and external systems, sources, and/or devices (e.g., computing devices, communication devices, etc.).

<FIG> and <FIG> are discussed together below to highlight the use of different components in the anonymizing process. <FIG> illustrates a block diagram of an example <NUM> of non-limiting network anonymizing system that can facilitate anonymizing a network based on factors including network attributes, node attributes, and edge attributes describing connections between nodes, in accordance with one or more embodiments described herein. In some embodiments, network anonymizing system <NUM> can comprise attribute component <NUM>, anonymizing component <NUM>, constraint component <NUM>, and any other components associated with network anonymizing system <NUM> as disclosed herein.

<FIG> illustrates a block diagram of an example <NUM>, non-limiting system that can facilitate anonymizing component <NUM> publish[ing] <NUM> anonymized network <NUM> for use by consumer <NUM>, in accordance with one or more embodiments. The utility of anonymized network <NUM> for consumer <NUM> can be quantified by utility metric <NUM>. Constraint component <NUM> can generate a privacy constraint for anonymizing component <NUM> based on privacy rules <NUM> that can be for the entire network <NUM>, or specific to individual nodes of network <NUM>. Repetitive description of like elements and/or processes employed in respective embodiments is omitted for sake of brevity.

With <FIG> above, the anonymization of additional combinations of data is described, e.g., network attributes <NUM>. With <FIG>, privacy constraints are described that are generated that can limit anonymizing component <NUM> in the creation of anonymized network <NUM>. In one or more embodiments, these privacy constraints can limit how the anonymizing <NUM> process is performed, e.g., specifying a value for k when anonymizing component <NUM> uses the k-anonymous method described above.

In additional embodiments, constraint component <NUM> can facilitate providing entity-based access rights for access to anonymized network <NUM>. In one or more embodiments, this approach can allow anonymizing component <NUM> to enforce privacy based on entity-based access rights, thereby restricting unauthorized data access or inference. Thus, in one or more embodiments, privacy constraints can be based on the data access rights each node or entity stored with a node, with these privacy constraints being protected in the anonymized network.

In one or more embodiments, using privacy constraints that can be based on the data access rights each node or entity stored with a node, can provide flexibility to handle access to different types of data. For example, in contrast to many standard hospitals, like one or more embodiments, some mental health hospitals secure the privacy of nodes based on different node types, not based on access rights granted to users. Further to this, it should be noted that, because access rights are received from node attributes of individual nodes, in one or more embodiments, this approach does not need to use the role of data requester to determine the level of anonymization to be applied by anonymizing component <NUM>. It should be noted that, in alternative embodiments, user and role-based access rights also be used exclusively, or combined with the entity-based approach described above.

<FIG> illustrates a block diagram of an example <NUM> of non-limiting network anonymizing system <NUM> that can facilitate anonymizing a network based on factors including network attributes and using privacy data from nodes of the network, in accordance with one or more embodiments described herein. Repetitive description of like elements and/or processes employed in respective embodiments is omitted for sake of brevity. In some embodiments, network anonymizing system <NUM> can comprise attribute component <NUM>, anonymizing component <NUM>, constraint component <NUM>, optimality component <NUM>, and any other components associated with network anonymizing system <NUM> as disclosed herein.

In one or more embodiments, the anonymizing the network <NUM> by anonymizing component <NUM> can be further based on combinations of data, retrieval of which anonymized network will be required to support. Because, as noted above, one or more embodiments support the retrieval of data from anonymized network <NUM> by including original or modified versions of the data in the anonymization process. Further, these combinations of data to be retrieve from anonymized network <NUM> can be embodied in requirements of the anonymized network.

In an example, the requirement of a researcher can specify aspects of the granularity of data to be retrieved, thus specifying the granularity of data stored during anonymization. In this example, the researcher is doing research based on seasons of the year a person was born. Because, as noted above, birthdates can be identifying characteristics that are rarely included in an original form in anonymized data, one or more anonymization approaches can use bins of different sizes to introduce ambiguity into the birthdate attribute. In this example, because the research is based on a season of birth, the granularity of the anonymized data can be the three-month length of a season. Thus, similar to the example depicted with <FIG> discussed below, for anonymization, in accordance with the requirements of the researcher, precise birthdates can be separated into bins corresponding to the three-month season interval. In addition, because of this aggregation of birthdays, in this example, anonymity requirements of constraint component <NUM> can also be satisfied.

One or more embodiments can evaluate the overall usefulness of an anonymized network, and subsequently generate utility constraints that can constrain a reduction in capabilities for anonymized network <NUM>. An example of a reduction in utility of an anonymized network is described with <FIG> below, e.g., based on alternative anonymization strategies used to satisfy privacy constraints generated by constraint component <NUM>.

In additional embodiments, to evaluate and adjust both the utility and privacy constraints, the computer-executable components can further include optimality component <NUM>. In one approach, because privacy constraints for some types of data can be rigid, optimality component <NUM> can select a utility constraint that can optimize, or increase an optimality of, the anonymizing process of anonymizing component <NUM>, based on some selected anonymizing characteristic of the anonymizing process. In one or more embodiments, anonymizing characteristics can include, but are not limited to, a degree to which information is lost during the anonymizing the network information. For example, in an example anonymization approach, optimality component <NUM> can select the smallest k value that is determined to satisfy the privacy constraints of the network to be anonymized, e.g., because increasing the number of entities (k) that are required to be indistinguishable can necessarily result in an increased loss of data in anonymized network <NUM>.

Other anonymizing characteristics used for optimization can include but are not limited to, a number of network edits performed during the anonymizing process, e.g., changes to the structure of the original network data to support anonymization. Example graph edits to the anonymized network can include, but are not limited to, edge addition/removal, edge swapping between any two nodes or addition/removal of nodes, edge attribute aggregation or anonymization. For example, to increase an iteration towards a required level of anonymity. In addition to the above, network edits can include, as discussed above, and depicted in <FIG>, node attribute aggregation, such as increasing the granularity of stored anonymized data by aggregating attribute values in different bins.

<FIG> illustrates a block diagram of an example, non-limiting system <NUM> that can facilitate anonymizing network <NUM> based on factors including network attributes, node attributes, and edge attributes describing connections between nodes, in accordance with one or more embodiments described herein. Repetitive description of like elements and/or processes employed in respective embodiments is omitted for sake of brevity.

In some embodiments, system <NUM> can include network <NUM> transformed by anonymizing component <NUM> and published <NUM> as anonymized network <NUM>. Network <NUM> and anonymized network <NUM>, in one or more embodiments can include multiple connected nodes, e.g., as described with <FIG> above. In one or more embodiments, constraint component <NUM> can be communicatively connected to anonymizing component <NUM>. Further, anonymized network consumer <NUM> can be communicatively coupled to anonymized network <NUM>, with a utility of this access being described by utility metric <NUM>.

For illustrative purposes, the description of <FIG> below describes another approach to the operation of optimality component <NUM>, in accordance with one or more embodiments. In this example, utility constraints (U) can be used that are based on combinations of one or more of node attributes, edge attributes, and network attributes that are preferred attributes to be provided by anonymized network <NUM> in response to requests from consumer <NUM>. Further to this example, privacy constraints (P) can based on the nodes' current privacy level in network <NUM>, e.g., defining privacy constraints based on user or entity-defined access rights of different nodes.

Based on the above constraints, optimality component <NUM> can analyze network <NUM> to identify different anonymity approaches, with P as a hard constraint and U as a soft constraint, e.g., because privacy constraints are often rigid legal or ethical rules. The different anonymity approaches can be evaluated according to criteria, such as an objective function, e.g., such as loss of information during anonymization, graph edits, or other optimizing criteria.

During the evaluation of approaches by optimality component <NUM>, a penalty can be used to disfavor a selection of anonymity approaches that fail to maintain preferred attributes in U. In one or more embodiments, employing a penalty function can systematically improve the overall utility of anonymized network <NUM>, e.g., for node, edge, and network attributes, without compromising privacy. In some embodiments, this interaction of P and U can be described as a trade-off between P and U.

In another, more detailed example of the operation of optimality component <NUM>, in one or more embodiments, for an example network G = (V, E), where V and E denote the set of nodes and edges respectively, let XV, XE, and XN respectively denote the node attributes, edge attributes, and network attributes of G. Further, let A be the set of access rights for all nodes, and Av be the access rights defined by node v, and where v ∈ V, let P and U. Let XG the set of network attributes to be retained, e.g., the preferred attributes for satisfying consumer requirements, as discussed above.

In operation, U can be applied to an ordered list of XV, XE, and XG, based on an implementation choice, in accordance with one or more embodiments, and for each v ∈ V, based on Av, update permissible attributes of XVv, XEv, and XNv. Continuing this example, privacy constraint P can be set by constraint component <NUM> for anonymization based on the set of access rights A. Anonymize the data such that it satisfies P as a hard constraint, while U (such as a particular network attribute, for e.g., betweenness centrality of a set of nodes) remains as similar as possible in G and in the anonymized G'.

In conjunction with the anonymization process, in one or more embodiments, a penalty function F(G) can be implemented that can retain the property of the node, edge, or network attributes without compromising privacy constraint. In an additional approach, some of the optimality approaches described herein can assign weights attributes, based on different factors, including the priority of preserving their utility. In some implementations, in order to achieve the above constraints on each iteration, a change in the structure of anonymized network <NUM> can be determined, this change, in some circumstances, moving the results of the anonymizing towards the satisfaction of P while it penalizes changes on U (such as a network centrality property of a set of nodes).

<FIG> depicts a table <NUM> of sample data from a network to be anonymized using different approaches, in accordance with one or more embodiments. Table <NUM> includes <NUM> patients 710A-<NUM>, each having attributes corresponding to an ID, name <NUM>, birthday <NUM>, zip code <NUM>, and gender <NUM>.

Analyzing the data, it can be noted that the patients 710A-<NUM> are from three different zip codes <NUM>, and have unique IDs and names <NUM>. For reference in a discussion anonymizing approaches in <FIG>, attribute combination <NUM> is highlighted to emphasize this identifying combination of birthday <NUM>, zip code <NUM>, and gender <NUM>.

<FIG> depict two alternative approaches to anonymizing the data depicted in <FIG>, in accordance with one or more embodiments. Repetitive description of like elements and/or processes employed in respective embodiments is omitted for sake of brevity.

<FIG> depicts an anonymization of table <NUM> using a k-anonymity approach where k=<NUM>. It should be noted that, for illustrative purposes, the examples of <FIG> include two types of attributes, attributes that can directly identify a person (e.g., ID and name <NUM>), and attributes that are publicly available, and in combination, can sometimes be used to identify specific people.

As noted above, different embodiments can adjust an anonymization approach based on the requirements of the requesters of the data. In this example, different instances of a condition of patients 712A-<NUM> are sought to be studied (not shown), and would include information about this condition along with demographic data that can be used for research, e.g., age determined from birthday <NUM>, zip code <NUM> for residence information, and gender <NUM>. In this example, the age of an individual in months is a requirement.

In this example, the anonymization approach begins by removing ID and name <NUM>, as non-required data that can identify a person. It should be noted that, like name, birthday is also unique to patients in the system but, because this data is requested to be available, a different approach to anonymization can be used by one or more embodiments that does not require removing the data. For example, as depicted in birthday <NUM>, in this example, months of the year are placed in four-month groups for anonymization. As highlighted in <FIG>, for this dataset, this approach satisfies the k=<NUM> requirement, e.g., at least k number of patients 712A-<NUM> are similar enough that they cannot be discerned from each other, e.g., patients 712I-<NUM>.

Referring back to the discussion of requirements and utility discussed with <FIG>, in this example an age in months is a utility constraint and k=<NUM> is a privacy constraint. Further, it should be noted that, by selecting the three-month grouping approach to birthday <NUM> used, the utility value to the researchers could have been decreased, e.g., age in months can only be known within the three-month ranges used. The significance of this increased imprecision can depend on the specifics of the research being performed. With a larger variety of attributes in a real dataset, options for anonymizing where birthday is represented by month and year may be available.

<FIG> depicts another example anonymization of table <NUM>, in accordance with one or more embodiments. In this example, privacy requirements are stricter than the previous example, e.g., k=<NUM>. In selecting alternative approaches, one or more embodiments can determine that only two different zip code prefix values (e.g., <NUM> and <NUM>) are included in the data. Thus, instead of further grouping birthday <NUM> and correspondingly reducing utility of the anonymized age data, two groups of zip code prefixes can be used.

Thus, as depicted, patients 715A-715D and patients 715I-<NUM> were previously distinguishable from each other by different zip code <NUM> values, but, because these differences are not in the zip code prefix, by using this approach, the groups form a block 890D of <NUM> indistinguishable patients 715A-K. Because records 715E-<NUM> form a block 890E of <NUM> indistinguishable patient records, the new k value for the table is k=<NUM>.

It should be noted that, the detailed discussion of anonymizing approaches included above are intended, inter alia, to illustrate how requirements and privacy restrictions can relate to a particular set of data, e.g., if the data were different, such as the birth years being different among the patients, a different approach would have to be used.

Another concept that should be appreciated based on the discussion above is the variety of different approaches to anonymization that can be used, even with a small, simple set of data. With an available variety of approaches that can be used to satisfy utility requirements and privacy requirements, in one or more embodiments, optimality component <NUM> can, in some circumstances, make small adjustments that can improve the performance of anonymized networks.

It is to be appreciated that one or more embodiments descried herein can utilize various combinations of electrical components, mechanical components, mass storage, and circuitry that cannot be replicated in the mind of a human or performed by a human. For example, analyzing, processing and anonymizing networks of related information is greater than the capability of a human mind. For instance, the operation of anonymizing component <NUM>, can be performed faster that could be performed by a human mind over the same period of time.

According to several embodiments, network anonymizing system <NUM> can also be fully operational towards performing one or more other functions (e.g., fully powered on, fully executed, etc.) while also performing the various operations described herein. It should be appreciated that such simultaneous multi-operational execution is beyond the capability of a human mind. It should also be appreciated that network anonymizing system <NUM> can obtain, analyze, and process information that is impossible to obtain, analyze, and process manually by an entity, such as a human user. For example, the type, amount, and/or variety of information included in network anonymizing system <NUM>, attribute component <NUM>, anonymizing component <NUM>, and any other components associated with network anonymizing system <NUM> as disclosed herein, can be more complex than information able to be obtained manually by a human user.

<FIG> illustrates a flow diagram of an example, non-limiting computer-implemented method <NUM> that can facilitate anonymizing network <NUM> based on factors including network attributes <NUM>, node attributes, and connections 225A-B between nodes 220A-B, in accordance with one or more embodiments described herein. Repetitive description of like elements and/or processes employed in respective embodiments is omitted for sake of brevity.

In some embodiments, at <NUM>, computer-implemented method <NUM> can comprise generating, by a device operatively coupled to processor, network attribute for network. For example, one or more embodiments can generate, by a device (e.g., network anonymizing system <NUM>) operatively coupled to a processor (e.g., processor <NUM>), a network attribute (e.g., network attribute <NUM>) for the network (e.g., network <NUM>).

In some embodiments, at <NUM>, computer-implemented method <NUM> can comprise anonymizing, by the device, network information of the network based on the network attribute and a node attribute of a first node of the network, resulting in an anonymized network, with connection information corresponding to a connection between the first node and a second node comprising an edge attribute, and the anonymizing the network information being further based on the edge attribute. For example, one or more embodiments can anonymize, by the device (e.g., anonymizing component <NUM> in network anonymizing system <NUM>), network information of the network (e.g., network <NUM>) based on the network attribute (e.g., network attribute <NUM>) and a node attribute of a first node (e.g., node 220A) of the network (e.g., network <NUM>), resulting in an anonymized network (e.g., anonymized network <NUM>), with connection information corresponding to a connection (e.g., connection 225B) between the first node (e.g., node 220A) and a second node (e.g., node 220B) comprising an edge attribute, and the anonymizing the network information being further based on the edge attribute.

For simplicity of explanation, the computer-implemented methodologies are depicted and described as a series of acts. It is to be understood and appreciated that the subject innovation is not limited by the acts illustrated and/or by the order of acts, for example acts can occur in various orders and/or concurrently, and with other acts not presented and described herein. Furthermore, not all illustrated acts can be required to implement the computer-implemented methodologies in accordance with the disclosed subject matter. In addition, those skilled in the art will understand and appreciate that the computer-implemented methodologies could alternatively be represented as a series of interrelated states via a state diagram or events. Additionally, it should be further appreciated that the computer-implemented methodologies disclosed hereinafter and throughout this specification are capable of being stored on an article of manufacture to facilitate transporting and transferring such computer-implemented methodologies to computers. The term article of manufacture, as used herein, is intended to encompass a computer program accessible from any computer-readable device or storage media.

<FIG> depicts an example context the various aspects of the disclosed subject matter, e.g., this figure, as well as the following discussion are intended to provide a general description of a suitable environment in which the various aspects of the disclosed subject matter can be implemented, in accordance with one or more embodiments. Repetitive description of like elements and processes employed in respective embodiments is omitted for sake of brevity.

<FIG> illustrates a block diagram of an example, non-limiting operating environment in which one or more embodiments described herein can be facilitated. Repetitive description of like elements employed in other embodiments described herein is omitted for sake of brevity.

With reference to <FIG>, a suitable operating environment <NUM> for implementing various aspects of this disclosure can also include a computer <NUM>. The computer <NUM> can also include a processing unit <NUM>, a system memory <NUM>, and a system bus <NUM>. The system bus <NUM> couples system components including, but not limited to, the system memory <NUM> to the processing unit <NUM>. The processing unit <NUM> can be any of various available processors. Dual microprocessors and other multiprocessor architectures also can be employed as the processing unit <NUM>. The system bus <NUM> can be any of several types of bus structure(s) including the memory bus or memory controller, a peripheral bus or external bus, and/or a local bus using any variety of available bus architectures including, but not limited to, Industrial Standard Architecture (ISA), Micro-Channel Architecture (MSA), Extended ISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), Card Bus, Universal Serial Bus (USB), Advanced Graphics Port (AGP), Firewire (IEEE <NUM>), and Small Computer Systems Interface (SCSI).

The system memory <NUM> can also include volatile memory <NUM> and nonvolatile memory <NUM>. The basic input/output system (BIOS), containing the basic routines to transfer information between elements within the computer <NUM>, such as during start-up, is stored in nonvolatile memory <NUM>. Computer <NUM> can also include removable/non-removable, volatile/non-volatile computer storage media. <FIG> illustrates, for example, a disk storage <NUM>. Disk storage <NUM> can also include, but is not limited to, devices like a magnetic disk drive, floppy disk drive, tape drive, Jaz drive, Zip drive, LS-<NUM> drive, flash memory card, or memory stick. The disk storage <NUM> also can include storage media separately or in combination with other storage media. To facilitate connection of the disk storage <NUM> to the system bus <NUM>, a removable or non-removable interface is typically used, such as interface <NUM>. <FIG> also depicts software that acts as an intermediary between users and the basic computer resources described in the suitable operating environment <NUM>. Such software can also include, for example, an operating system <NUM>. Operating system <NUM>, which can be stored on disk storage <NUM>, acts to control and allocate resources of the computer <NUM>.

System applications <NUM> take advantage of the management of resources by operating system <NUM> through program modules <NUM> and program data <NUM>, e.g., stored either in system memory <NUM> or on disk storage <NUM>. It is to be appreciated that this disclosure can be implemented with various operating systems or combinations of operating systems. A user enters commands or information into the computer <NUM> through input device(s) <NUM>. Input devices <NUM> include, but are not limited to, a pointing device such as a mouse, trackball, stylus, touch pad, keyboard, microphone, joystick, game pad, satellite dish, scanner, TV tuner card, digital camera, digital video camera, web camera, and the like. These and other input devices connect to the processing unit <NUM> through the system bus <NUM> via interface port(s) <NUM>. Interface port(s) <NUM> include, for example, a serial port, a parallel port, a game port, and a universal serial bus (USB). Output device(s) <NUM> use some of the same type of ports as input device(s) <NUM>. Thus, for example, a USB port can be used to provide input to computer <NUM>, and to output information from computer <NUM> to an output device <NUM>. Output adapter <NUM> is provided to illustrate that there are some output devices <NUM> like monitors, speakers, and printers, among other output devices <NUM>, which require special adapters. The output adapters <NUM> include, by way of illustration and not limitation, video and sound cards that provide a means of connection between the output device <NUM> and the system bus <NUM>. It should be noted that other devices and/or systems of devices provide both input and output capabilities such as remote computer(s) <NUM>.

Computer <NUM> can operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s) <NUM>. The remote computer(s) <NUM> can be a computer, a server, a router, a network PC, a workstation, a microprocessor based appliance, a peer device or other common network node and the like, and typically can also include many or all of the elements described relative to computer <NUM>. For purposes of brevity, only a memory storage device <NUM> is illustrated with remote computer(s) <NUM>. Remote computer(s) <NUM> is logically connected to computer <NUM> through a network interface <NUM> and then physically connected via communication connection <NUM>. Network interface <NUM> encompasses wire and/or wireless communication networks such as local-area networks (LAN), wide-area networks (WAN), cellular networks, etc. LAN technologies include Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet, Token Ring and the like. WAN technologies include, but are not limited to, point-to-point links, circuit switching networks like Integrated Services Digital Networks (ISDN) and variations thereon, packet switching networks, and Digital Subscriber Lines (DSL). Communication connection(s) <NUM> refers to the hardware/software employed to connect the network interface <NUM> to the system bus <NUM>. While communication connection <NUM> is shown for illustrative clarity inside computer <NUM>, it can also be external to computer <NUM>. The hardware/software for connection to the network interface <NUM> can also include, for exemplary purposes only, internal, and external technologies such as, modems including regular telephone grade modems, cable modems and DSL modems, ISDN adapters, and Ethernet cards.

The present invention may be a system, a method, an apparatus, and/or a computer program product at any possible technical detail level of integration. The computer program product can include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention. The computer readable storage medium can be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium can also include the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing.

These computer readable program instructions can be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions can also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks. The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational acts to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.

The flow diagram and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention.

While the subject matter has been described above in the general context of computer-executable instructions of a computer program product that runs on a computer and/or computer, those skilled in the art will recognize that this disclosure also can or can be implemented in combination with other program modules. Generally, program modules include routines, programs, components, data structures, etc. that perform particular tasks and/or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the inventive computer-implemented methods can be practiced with other computer system configurations, including single-processor or multiprocessor computer systems, mini-computing devices, mainframe computers, as well as computers, hand-held computing devices (e.g., PDA, phone), microprocessor-based or programmable consumer or industrial electronics, and the like. The illustrated aspects can also be practiced in distributed computing environments in which tasks are performed by remote processing devices that are linked through a communications network. However, some, if not all aspects of this disclosure can be practiced on stand-alone computers. In a distributed computing environment, program modules can be located in both local and remote memory storage devices.

As used in this application, the terms "component," "system," "platform," "interface," and the like, can refer to and/or can include a computer-related entity or an entity related to an operational machine with one or more specific functionalities. The entities disclosed herein can be either hardware, a combination of hardware and software, software, or software in execution. For example, a component can be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components can reside within a process and/or thread of execution and a component can be localized on one computer and/or distributed between two or more computers. In another example, respective components can execute from various computer readable media having various data structures stored thereon. The components can communicate via local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems via the signal). As another example, a component can be an apparatus with specific functionality provided by mechanical parts operated by electric or electronic circuitry, which is operated by a software or firmware application executed by a processor. In such a case, the processor can be internal or external to the apparatus and can execute at least a part of the software or firmware application. As yet another example, a component can be an apparatus that provides specific functionality through electronic components without mechanical parts, wherein the electronic components can include a processor or other means to execute software or firmware that confers at least in part the functionality of the electronic components. In an aspect, a component can emulate an electronic component via a virtual machine, e.g., within a cloud computing system.

As it is employed in the subject specification, the term "processor" can refer to substantially any computing processing unit or device comprising, but not limited to, single-core processors; single-processors with software multithread execution capability; multi-core processors; multi-core processors with software multithread execution capability; multi-core processors with hardware multithread technology; parallel platforms; and parallel platforms with distributed shared memory. Additionally, a processor can refer to an integrated circuit, an application specific integrated circuit (ASIC), a digital signal processor (DSP), a field programmable gate array (FPGA), a programmable logic controller (PLC), a complex programmable logic device (CPLD), a discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. Further, processors can exploit nano-scale architectures such as, but not limited to, molecular and quantum-dot based transistors, switches, and gates, in order to optimize space usage or enhance performance of user equipment. A processor can also be implemented as a combination of computing processing units.

In this disclosure, terms such as "store," "storage," "data store," data storage," "database," and substantially any other information storage component relevant to operation and functionality of a component are utilized to refer to "memory components," entities embodied in a "memory," or components comprising a memory. It is to be appreciated that memory and/or memory components described herein can be either volatile memory or nonvolatile memory or can include both volatile and nonvolatile memory. By way of illustration, and not limitation, nonvolatile memory can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable ROM (EEPROM), flash memory, or nonvolatile random-access memory (RAM) (e.g., ferroelectric RAM (FeRAM). Volatile memory can include RAM, which can act as external cache memory, for example. By way of illustration and not limitation, RAM is available in many forms such as synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), direct Rambus RAM (DRRAM), direct Rambus dynamic RAM (DRDRAM), and Rambus dynamic RAM (RDRAM). Additionally, the disclosed memory components of systems or computer-implemented methods herein are intended to include, without being limited to including, these and any other suitable types of memory.

What has been described above include mere examples of systems and computer-implemented methods. It is, of course, not possible to describe every conceivable combination of components or computer-implemented methods for purposes of describing this disclosure, but one of ordinary skill in the art can recognize that many further combinations and permutations of this disclosure are possible. Furthermore, to the extent that the terms "includes," "has," "possesses," and the like are used in the detailed description, claims, appendices and drawings such terms are intended to be inclusive in a manner similar to the term "comprising" as "comprising" is interpreted when employed as a transitional word in a claim.

Claim 1:
A system(<NUM>), comprising:
a memory (<NUM>) that stores computer-executable components;
a processor (<NUM>) that executes the computer-executable components stored in the memory, wherein the computer-executable components comprise:
an anonymizing component (<NUM>) that anonymizes network information of a network (<NUM>) based on:
a network attribute (<NUM>) for the network;
a node attribute of a first node (<NUM>) of the network; and
an edge attribute resulting in an anonymized network (<NUM>),
wherein the edge attribute comprises connection information corresponding to a connection (<NUM>) between the first node and a second node (<NUM>) of the network,
wherein anonymizing the network information is further based on a privacy constraint that mandates a level of privacy for the anonymized network; and
a constraint component (<NUM>) that:
generates the privacy constraint based on the network information; and
determines an access right for the first node, and wherein the constraint component generates the privacy constraint further based on the access right.