DE112020002859T5 - ENCRYPTED KNOWLEDGE GRAPH - Google Patents

ENCRYPTED KNOWLEDGE GRAPH Download PDF

Info

Publication number
DE112020002859T5
DE112020002859T5 DE112020002859.3T DE112020002859T DE112020002859T5 DE 112020002859 T5 DE112020002859 T5 DE 112020002859T5 DE 112020002859 T DE112020002859 T DE 112020002859T DE 112020002859 T5 DE112020002859 T5 DE 112020002859T5
Authority
DE
Germany
Prior art keywords
knowledge
user system
graph
user
subgraph
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112020002859.3T
Other languages
German (de)
Inventor
Tim Scheideler
Arjun Raghavendra
Matthias SEUL
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyndryl Inc
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112020002859T5 publication Critical patent/DE112020002859T5/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

Es wird ein computer-implementiertes Verfahren zur Verwaltung von Zugriffsrechten auf einen Wissens-Graphen bereitgestellt. Das Verfahren umfasst das Aufteilen des jeweiligen Teils des Wissens-Graphen für jedes Benutzersystem in eine Mehrzahl von Wissens-Subgraphen, das Verschlüsseln jedes der Wissens-Subgraphen und das Erzeugen einer Mehrzahl von privaten Zusammenfassungs-Graphen. Das Verfahren umfasst auch das Pflegen eines Kollaborationsgraphen, der einen Knoten pro Benutzersystem und Kanten umfasst, die Kollaborationen zwischen den Benutzern darstellen, das Abbilden aller privaten Wissens-Subgraphen aller Benutzersysteme auf einen öffentlichen Zusammenfassungs-Graphen, wobei jeder Knoten des öffentlichen Zusammenfassungs-Graphen weniger Daten umfasst als der zugehörige Knoten der zugehörigen privaten Zusammenfassungs-Graphen und wobei keiner der Knoten des Zusammenfassungs-Graphen einen Verschlüsselungs- oder Entschlüsselungsschlüssel umfasst, und das Gewähren von Zugriff auf einen ausgewählten Wissens-Subgraphen von einem ersten Benutzersystem auf ein zweites Benutzersystem.A computer-implemented method for managing access rights to a knowledge graph is provided. The method includes dividing the respective portion of the knowledge graph for each user system into a plurality of knowledge subgraphs, encrypting each of the knowledge subgraphs, and creating a plurality of private summary graphs. The method also includes maintaining a collaboration graph comprising one node per user system and edges representing collaborations between the users, mapping all private knowledge subgraphs of all user systems onto a public summary graph, each node of the public summary graph having fewer data includes as the associated node of the associated private summary graph and wherein none of the nodes of the summary graph include an encryption or decryption key, and granting access to a selected knowledge subgraph from a first user system to a second user system.

Description

HINTERGRUNDBACKGROUND

Die Erfindung bezieht sich im Allgemeinen auf Zugriffsrechte in einem Wissens-Management-System und im Besonderen auf die Verwaltung von Zugriffsrechten auf einen Wissens-Graphen mit Inhalten, die von einer Mehrzahl von Entitäten verwaltet werden.The invention relates generally to access rights in a knowledge management system, and more particularly to managing access rights to a knowledge graph having content managed by a plurality of entities.

Eine der größten Herausforderungen in der Informationstechnologie (IT) von Unternehmen ist die Verwaltung von unstrukturierten Daten. Im Zeitalter des Cognitive Computing werden Wissens-Graphen verwendet, um Informationen außerhalb von Transaktionssystemen zu speichern, zu verwalten und zu verarbeiten. Wissens-Graphen sind weithin akzeptierte Instrumente zur Organisation der Zusammenarbeit von Menschen innerhalb von Organisationen und über Abteilungs- und Organisationsgrenzen hinweg.One of the biggest challenges in enterprise information technology (IT) is the management of unstructured data. In the age of cognitive computing, knowledge graphs are used to store, manage, and process information outside of transactional systems. Knowledge graphs are widely accepted tools for organizing the collaboration of people within organizations and across departmental and organizational boundaries.

Ein Wissens-Graph umfasst mindestens Fakten, die aus einer Mehrzahl von Quellen gesammelt wurden und typischerweise in Knoten eines Netzes gespeichert werden, sowie Kanten, Links zwischen den Knoten, die die Beziehung zwischen den Knoten und damit eine Beziehung zwischen den im Wissens-Graphen gespeicherten Inhaltselementen, d. h. den Fakten, speichern.A knowledge graph comprises at least facts collected from a plurality of sources and typically stored in nodes of a network, and edges, links between the nodes, which represent the relationship between the nodes and thus a relationship between those stored in the knowledge graph content elements, d. H. the facts, save.

Typische Wissens-Graphen haben eine Größe zwischen 1 Million und 100 Millionen Knoten. Daher kann die Speicherung und Verwaltung eines Wissens-Graphen eine erhebliche Menge an Speicher- und Computerkapazitäten in einem Rechenzentrum erfordern.Typical knowledge graphs range in size from 1 million to 100 million nodes. Therefore, storing and managing a knowledge graph can require a significant amount of storage and computing capacity in a data center.

Wissens-Graphen werden typischerweise verwendet, um die Zusammenarbeit innerhalb und zwischen Organisationen (Unternehmen, Abteilungen und deren Mitarbeitern) zu erleichtern. Teile des Wissens-Graphen einer Organisation können vertrauliche Daten umfassen, während andere Teile anderen ausgewählten Organisationen und/oder Benutzern zugänglich gemacht werden sollten. Die Zugangskontrolle kann z.B. von einer zentralen Behörde bereitgestellt werden, wie sie in der Technik bekannt ist. Allerdings muss eine zentrale Behörde eingerichtet und konsequent gepflegt werden. Die Benutzer müssen sich registrieren lassen und, was noch wichtiger ist, der zentralen Behörde vertrauen, da sie alle Berechtigungsnachweise pflegt und möglicherweise vollständigen Zugriff auf alle Informationen hat, ob eingeschränkt oder uneingeschränkt. Daher kann eine zentrale Behörde für selbstorganisierende Organisationen und eine dezentralisierte Verantwortung für Inhalte prohibitiv sein. Außerdem kann eine zentrale Behörde die erforderlichen Wartungsarbeiten und/oder die Gewährung und/oder Entziehung von Zugangsrechten verzögern.Knowledge graphs are typically used to facilitate collaboration within and between organizations (companies, departments and their employees). Portions of an organization's knowledge graph may include confidential data, while other portions should be made available to other selected organizations and/or users. For example, access control may be provided by a central authority as is known in the art. However, a central authority must be set up and consistently maintained. Users need to register and more importantly trust the central authority as it maintains all credentials and may have full access to all information, restricted or unrestricted. Therefore, a central authority for self-organizing organizations and decentralized responsibility for content can be prohibitive. In addition, a central authority may delay the required maintenance work and/or the granting and/or withdrawal of access rights.

KURZDARSTELLUNGEXECUTIVE SUMMARY

Gemäß einem Aspekt der vorliegenden Erfindung kann ein computer-implementiertes Verfahren zur Verwaltung von Zugriffsrechten auf einen Wissens-Graphen mit Inhalten, die von einer Mehrzahl von Entitäten verwaltet werden, bereitgestellt werden. Das Verfahren kann umfassen: Aufteilen, für jedes Benutzersystem einer Mehrzahl von Benutzersystemen, seines jeweiligen Teils des Wissens-Graphen in eine Mehrzahl von Wissens-Subgraphen, Verschlüsseln jedes der Wissens-Subgraphen unter Verwendung eines privaten Schlüssels eines Wissens-Subgraphen-spezifischen asymmetrischen öffentlichen/privaten Schlüsselpaares, und Erzeugen einer Mehrzahl von privaten Zusammenfassungs-Graphen, eines für jedes Benutzersystem. Dabei kann jeder private Zusammenfassungsgraph einen Knoten für jeden Wissens-Subgraphen des Benutzersystems umfassen. Hinzufügung kann jeder Knoten auch das Wissens-Subgraphen-spezifische asymmetrische öffentliche/private Schlüsselpaar umfassen.According to an aspect of the present invention, a computer-implemented method for managing access rights to a knowledge graph having content managed by a plurality of entities can be provided. The method may include: for each user system of a plurality of user systems, dividing its respective part of the knowledge graph into a plurality of knowledge subgraphs, encrypting each of the knowledge subgraphs using a private key of a knowledge subgraph specific asymmetric public/ private key pair, and creating a plurality of private summary graphs, one for each user system. Each private summary graph can include a node for each knowledge subgraph of the user system. In addition, each node can also include the knowledge subgraph specific asymmetric public/private key pair.

Das Verfahren kann ferner umfassen: Pflegen eines Kollaborationsgraphen, der einen Knoten pro Benutzersystem und Kanten umfasst, die Kollaborationen zwischen den Benutzern darstellen, Abbilden aller privaten Subgraphen aller Benutzersysteme auf einen öffentlichen Zusammenfassungsgraphen, wobei jeder Knoten des öffentlichen zusammenfassenden Graphen weniger Daten umfasst als der zugehörige Knoten der zugehörigen privaten zusammenfassenden Graphen und wobei keiner der Knoten des zusammenfassenden Graphen irgendeinen beliebigen der privaten Schlüssel umfasst, die zur Verschlüsselung irgendeines beliebigen Wissens-Subgraphen verwendet wurden, und das Gewähren von Zugriff auf einen ausgewählten Wissens-Subgraphen von einem ersten Benutzersystem an ein zweites Benutzersystem durch Bereitstellen eines Entschlüsselungsschlüssels, der sich auf den ausgewählten Wissens-Subgraphen bezieht, von dem ersten Benutzersystem an das zweite Benutzersystem.The method may further include: maintaining a collaboration graph comprising one node per user system and edges representing collaborations between the users, mapping all private subgraphs of all user systems onto a public summary graph, each node of the public summary graph comprising less data than the associated one nodes of the associated private summary graphs and wherein none of the nodes of the summary graph include any of the private keys used to encrypt any knowledge subgraph, and granting access to a selected knowledge subgraph from a first user system to a second User system by providing a decryption key related to the selected knowledge subgraph from the first user system to the second user system.

Gemäß einem weiteren Aspekt der vorliegenden Erfindung kann ein zugehöriges Wissens-Graphen-Verwaltungssystem zur Verwaltung von Zugriffsrechten auf einen Wissens-Graphen bereitgestellt werden. Das System kann eine Aufteilungseinheit umfassen, die geeignet ist, für jedes Benutzersystem einer Mehrzahl von Benutzersystemen seinen jeweiligen Teil des Wissens-Graphen in eine Mehrzahl von Wissens-Subgraphen aufzuteilen, eine Verschlüsselungseinheit, die geeignet ist, jeden der Wissens-Subgraphen unter Verwendung eines privaten Schlüssels eines wissens-Subgraphen-spezifischen asymmetrischen öffentlichen/privaten Schlüsselpaares zu verschlüsseln, und einen Generator, der geeignet ist, eine Mehrzahl von privaten Zusammenfassungsgraphen zu erzeugen, einen für jedes Benutzersystem. Dabei kann jeder private Zusammenfassungsgraph einen Knoten für jeden Wissens-Subgraphen des Benutzersystems umfassen, und jeder Knoten kann auch das Wissens-Subgraphen-spezifische asymmetrische öffentliche/private Schlüsselpaar umfassen.According to a further aspect of the present invention, an associated knowledge graph management system for managing access rights to a knowledge graph can be provided. The system may comprise a splitting unit capable of splitting, for each user system of a plurality of user systems, its respective part of the knowledge graph into a plurality of knowledge subgraphs, an encryption unit capable of encrypting each of the knowledge subgraphs using a pri private key of a knowledge subgraph specific asymmetric public/private key pair, and a generator capable of generating a plurality of private summary graphs, one for each user system. Each private summary graph may include a node for each knowledge subgraph of the user system, and each node may also include the knowledge subgraph-specific asymmetric public/private key pair.

Darüber hinaus kann das System eine Verwaltungseinheit umfassen, die geeignet ist, einen Kollaborationsgraphen zu pflegen, der einen Knoten pro Benutzersystem und Kanten umfasst, die Kollaborationen zwischen den Benutzern darstellen, sowie ein Abbildungsmodul, das geeignet ist, alle privaten Subgraphen aller Benutzersysteme auf einen öffentlichen Zusammenfassungsgraphen abzubilden. Dabei kann jeder Knoten des öffentlichen zusammenfassenden Graphen weniger Daten umfassen als der zugehörige Knoten der zugehörigen privaten zusammenfassenden Graphen; keiner der Knoten des zusammenfassenden Graphen kann irgendeinen beliebigen der privaten Schlüssel umfassen, die zur Verschlüsselung irgendeines beliebigen Wissens-Subgraphen verwendet wurden.In addition, the system may comprise a management unit capable of maintaining a collaboration graph comprising a node per user system and edges representing collaborations between users, and a mapping module capable of mapping all private subgraphs of all user systems to a public one to map summary graphs. Each node of the public summary graph may contain less data than the corresponding node of the corresponding private summary graph; none of the nodes of the summary graph can include any of the private keys used to encrypt any knowledge subgraph.

Hinzufügung kann ein Zugangsmodul geeignet sein, Zugriff auf einen ausgewählten Wissens-Subgraphen von einem ersten Benutzersystem an ein zweites Benutzersystem zu gewähren, indem ein Entschlüsselungsschlüssel, der sich auf den ausgewählten Wissens-Subgraphen bezieht, von dem ersten Benutzersystem an das zweite Benutzersystem bereitgestellt wird.In addition, an access module may be adapted to grant access to a selected knowledge subgraph from a first user system to a second user system by providing a decryption key related to the selected knowledge subgraph from the first user system to the second user system.

Das vorgeschlagene computer-implementierte Verfahren zur Verwaltung von Zugriffsrechten auf einen Wissens-Graphen, dessen Inhalt von einer Mehrzahl von Entitäten verwaltet wird, kann zahlreiche Vorteile und technische Effekte bieten:The proposed computer-implemented method for managing access rights to a knowledge graph whose content is managed by a plurality of entities can offer numerous advantages and technical effects:

Die vorliegende Erfindung kann einen einfachen, unkomplizierten, effektiven und effizienten Weg zur gemeinsamen Nutzung von Daten und Wissen durch die Mehrzahl von Wissens-Graphen - oder Teilen davon - ermöglichen, ohne dass eine zentrale Authentifizierungs-, Berechtigungs- und Verwaltungsinstanz erforderlich ist. Der Wissens-Graph - oder die Mehrzahl von Wissens-Graphen - wird sozusagen selbst verwaltbar durch die Nutzer und Eigentümer der Inhalte, die in dem einen oder mehreren Wissens-Graphen gespeichert sind. Die Entscheidung über die Zugriffsrechte wird direkt von den Eigentümern der Inhalte mit ihren entsprechenden Mandant-Systemen getroffen.The present invention can enable a simple, straightforward, effective and efficient way to share data and knowledge through the plurality of knowledge graphs - or parts thereof - without requiring a central authentication, authorization and management authority. The knowledge graph - or the plurality of knowledge graphs - becomes, so to speak, itself manageable by the users and owners of the content stored in the one or more knowledge graphs. The decision on access rights is made directly by the content owners with their respective client systems.

Dies kann zu einer Zunahme der Motivation führen, den Wissens-Graph zu verwenden und Zugriffsrechte zu gewähren oder zu entziehen. Dadurch wird eine viel direktere Kontrolle des Wissens-Graphen möglich. Die Zeitabläufe und der Verwaltungsaufwand können reduziert werden.This can lead to an increase in motivation to use the knowledge graph and grant or revoke access rights. This allows for much more direct control of the knowledge graph. The time processes and the administrative effort can be reduced.

Die Kontrolle der Zugriffsverwaltung auf die Wissens-Subgraphen wird direkt an die Benutzer verteilt. Benutzer, die Inhalte in Form eines Wissens-Subgraphen „besitzen“, entscheiden selbst, wem sie Zugriff gewähren und wem nicht. Auch der Prozess des Entzugs des Zugriffs auf einen bestimmten Wissens-Subgraphen kann in der Hand der Wissensbesitzer liegen.Access management control to the knowledge subgraphs is distributed directly to the users. Users who "own" content in the form of a knowledge subgraph decide for themselves who to grant access to and who not to. The process of revoking access to a particular knowledge subgraph can also be in the hands of the knowledge owners.

Die Ebenen-Architektur - insbesondere die private Graphen-Ebene, die Graphen-Ebene für die Zusammenarbeit und der öffentliche Zusammenfassungsgraph - sind sehr hilfreich, um die feingranulare dezentralisierte Zugriffskontrolle auf die Wissens-Subgraphen zu erreichen.The layer architecture - in particular the private graph layer, the collaborative graph layer and the public summary graph - are very helpful in achieving the fine-grained decentralized access control to the knowledge subgraphs.

Im Folgenden werden weitere Ausführungsformen der vorliegenden Erfindung - sowohl für das Verfahren als auch für das zugehörige System - beschrieben:Further embodiments of the present invention - both for the method and for the associated system - are described below:

Gemäß einer vorteilhaften Ausführungsform kann das Verfahren auch umfassen, dem zweiten Benutzersystem den Zugriff auf den ausgewählten Wissens-Subgraphen zu entziehen, indem der ausgewählte Wissens-Subgraphen mit einem neuen privaten Schlüssel eines Wissens-Subgraphen-spezifischen asymmetrischen öffentlichen/privaten Schlüsselpaares wiederverschlüsselt wird. Auf diese Weise kann der Eigentümer der Inhalte die vollständige Kontrolle über seine Inhalte haben. Selbst wenn Zugriff einem anderen Nutzer gewährt wurde, kann der Eigentümer der Inhalte den Zugang zu den Inhalten jederzeit widerrufen.According to an advantageous embodiment, the method may also include removing the second user system's access to the selected knowledge subgraph by re-encrypting the selected knowledge subgraph with a new private key of a knowledge subgraph-specific asymmetric public/private key pair. This allows the content owner to have complete control over their content. Even if access has been granted to another user, the content owner may revoke access to the content at any time.

Gemäß einer bevorzugten Ausführungsform des Verfahrens kann jeder Knoten jedes privaten Subgraphen eine zusammenfassende Beschreibung des Inhalts der zugehörigen Wissens-Subgraphen umfassen. Auf diese Weise können die privaten Subgraphen eine Zwischenschicht zu den Inhalten bilden, die einem bestimmten Benutzer gehören, sowie zu den Inhalten, die einem anderen Benutzer gehören.According to a preferred embodiment of the method, each node of each private subgraph can include a summary description of the content of the associated knowledge subgraph. In this way, the private subgraphs can form an intermediate layer between the content owned by a particular user and the content owned by another user.

Gemäß einer zweckmäßigen Ausführungsform kann das Verfahren auch das Verbinden des Kollaborationsgraphen umfassen, durch Erstellen eines Kontos für ein neues Benutzersystem in dem Kollaborationsgraphen, wobei das neue Benutzersystem durch einen neuen Knoten dargestellt wird, Aufteilen der Inhalte eines externen Wissens-Graphen - insbesondere außerhalb des Haupt-Wissens-Graphen - in eine Mehrzahl von externen Wissens-Subgraphen, Verschlüsseln der externen Wissens-Subgraphen - ebenso wie des Haupt-Wissens-Graphen, und Hochladen der externen Wissens-Subgraphen in den Wissens-Graphen. Auf diese Weise können neue Nutzer jederzeit entscheiden, ob sie ihre Inhalte mit anderen Nutzern teilen wollen, die bereits den Wissens-Graphen des Hauptinhalts verwenden. Ein neuer Nutzer kann auch entscheiden, welcher Teil seines Inhalts - d.h. des von ihm verwalteten Wissens-Graphen - mit anderen Nutzern geteilt werden soll.According to an expedient embodiment, the method may also include connecting the collaboration graph by creating an account for a new user system in the collaboration graph, the new user system being represented by a new node, splitting the contents of an external knowledge graph - in particular outside the main one -Wis sens graphs - into a plurality of external knowledge subgraphs, encoding the external knowledge subgraphs - as well as the main knowledge graph, and uploading the external knowledge subgraphs into the knowledge graph. In this way, new users can always decide whether they want to share their content with other users who are already using the knowledge graph of the main content. A new user can also decide which part of his content - ie the knowledge graph he manages - should be shared with other users.

Gemäß einer zulässigen Ausführungsform kann das Verfahren auch das Durchsuchen des öffentlichen Zusammenfassungsgraphen umfassen, indem Zusammenfassungsinhalte der Knoten des öffentlichen Zusammenfassungsgraphen durchsucht werden. Der Zusammenfassungs-Wissens-Graph ist nicht zugangsbeschränkt. Somit können alle Benutzer diesen öffentlichen Bereich des Wissens-Graphen durchsuchen. Dies bedeutet jedoch nicht, dass der Benutzer Zugang zu Inhalten hat, die sich auf einen Knoten im privaten Zusammenfassungsgraphen beziehen. Es kann erforderlich sein, dass Sie einen Zugriff auf den zugrundeliegenden detaillierten Wissens-Graphen - d.h. den zugehörigen Inhalts-Graphen - anfordern können.According to a permitted embodiment, the method may also include searching the public summary graph by searching summary contents of the nodes of the public summary graph. The Summary Knowledge Graph is not restricted. Thus, all users can search this public area of the knowledge graph. However, this does not mean that the user has access to content related to a node in the private summary graph. You may need to be able to request access to the underlying detailed knowledge graph - i.e. the associated content graph.

Gemäß einer vorteilhaften Ausführungsform kann das Verfahren auch das Gewähren von Lesezugriff auf einen Wissens-Subgraphen eines ersten Benutzersystems - insbesondere nach dem Empfangen einer Zugriffsgewährungsanforderung an ein drittes Benutzersystem - umfassen, indem der öffentliche Teil des öffentlichen/privaten Schlüsselpaars des Knotens, der sich auf den Wissens-Subgraphen bezieht, auf den Zugriff gewährt werden soll, vom ersten Benutzersystem an das dritte Benutzersystem bereitgestellt, d.h. gesendet wird. Es ist zu beachten, dass die Übertragung mit dem öffentlichen Schlüssel des dritten Benutzersystems verschlüsselt werden kann. Es ist auch zu beachten, dass das dritte Benutzersystem Links zwischen den Elementen seines Wissens-Subgraphen und dem des ersten Benutzersystems erzeugen/definieren kann, sowie einen neuen Knoten im privaten Zusammenfassungsgraphen des dritten Benutzersystems hinzufügen kann. Dies kann ein hohes Maß an Flexibilität bei der feinkörnigen Zugriffskontrolle auf Inhalte ermöglichen.According to an advantageous embodiment, the method may also include granting read access to a knowledge subgraph of a first user system - in particular after receiving an access grant request to a third user system - by using the public part of the public/private key pair of the node referring to the Knowledge subgraphs relates to which access is to be granted, provided, ie sent, from the first user system to the third user system. It should be noted that the transmission can be encrypted with the public key of the third party user system. Note also that the third user system can create/define links between the elements of its knowledge subgraph and that of the first user system, as well as add a new node in the private summary graph of the third user system. This can allow a great deal of flexibility in fine-grained content access control.

Gemäß einer anderen vorteilhaften Ausführungsform kann das Verfahren auch das Hinzufügen von Kanten zwischen Knoten des Wissens-Subgraphen des ersten Benutzersystems und des Wissens-Subgraphen des dritten Benutzersystems durch das dritte Benutzersystem umfassen. Durch diesen Mechanismus kann jeder Benutzer die beste Kontrolle über seine eigenen Inhalte haben, insbesondere darüber, was andere Benutzer sehen und lesen können.According to another advantageous embodiment, the method can also include the third user system adding edges between nodes of the knowledge subgraph of the first user system and the knowledge subgraph of the third user system. This mechanism allows each user to have the best control over their own content, especially what other users can see and read.

Gemäß einer weiteren vorteilhaften Ausführungsform kann das Verfahren auch umfassen: Gewähren von Schreibzugriff auf einen Wissens-Subgraphen eines ersten Benutzersystems - insbesondere und wiederum nach dem Empfangen einer entsprechenden Schreibanforderung - an ein drittes Benutzersystem, indem das private/öffentliche Schlüsselpaar des Knotens, der sich auf den Wissens-Graphen bezieht, auf den Zugriff gewährt werden soll, von dem ersten Benutzersystem an das dritte Benutzersystem bereitgestellt (auch hier durch Senden desselben) wird, und Ermöglichen einer Rollback-Option für das erste Benutzersystem, nachdem das dritte Benutzersystem einen Knoten - insbesondere mindestens einen - eines Wissens-Subgraphen, der sich auf das erste Benutzersystem bezieht, geändert hat. Auf diese Weise kann jeder Benutzer des Systems optional auch die vollständige Kontrolle über die Verwaltung - insbesondere das Ändern und Hinzufügen neuer Inhalte - des Teils des Wissens-Graphs haben, der diesem spezifischen Benutzer gehört.According to a further advantageous embodiment, the method can also include: granting write access to a knowledge subgraph of a first user system - in particular and again after receiving a corresponding write request - to a third user system by using the private/public key pair of the node that is based on relating the knowledge graph to be granted access to is provided from the first user system to the third user system (again by sending the same), and enabling a rollback option for the first user system after the third user system has entered a node - in particular has changed at least one - of a knowledge subgraph related to the first user system. In this way each user of the system can optionally also have full control over the management - in particular changing and adding new content - of the part of the knowledge graph owned by that specific user.

Gemäß einer optionalen Ausführungsform des Verfahrens kann der Wissens-Graph aus einer Gruppe ausgewählt werden, die eine Ansammlung einfacher Dateien (flat files), eine Beziehungsdatenbank oder eine Objektdatenbank und eine Graphen-Datenbank umfasst. Somit kann für die vorliegende Erfindung im Grunde jede sinnvolle Datenorganisation für Wissens-Graphen verwendet werden.According to an optional embodiment of the method, the knowledge graph can be selected from a group comprising a collection of flat files, a relationship database or an object database and a graph database. Thus, basically any meaningful data organization for knowledge graphs can be used for the present invention.

Gemäß einer bevorzugten Ausführungsform kann das Verfahren auch umfassen, dass alle Benutzersysteme, die eine entsprechende Client-Anwendung installiert haben und gemeinsam auf einen Wissens-Graphen zugreifen, in die Lage versetzt werden, die Aktivitätsschritte des Teilens, Verschlüsselns, Erzeugens, Pflegens, Abbildens und Gewährens auszuführen. Dieser Satz von Merkmalen kann eine angemessene Verwaltung des zugrunde liegenden Konzepts der gemeinsamen Nutzung von Inhalten unterstützen.According to a preferred embodiment, the method may also include enabling all user systems that have a corresponding client application installed and share a knowledge graph to perform the activity steps of sharing, encrypting, creating, maintaining, mapping and granting to perform. This set of characteristics can support appropriate management of the underlying concept of content sharing.

Gemäß einer anderen optionalen Ausführungsform des Verfahrens können die Wissens-Subgraphen teilweise über verschiedene Speicherplattformen verteilt werden. So muss der Haupt-Wissens-Graph nicht notwendigerweise ein einziger konsistenter Wissens-Graph in einem einzigen Speichersystem sein - sondern eine Ansammlung einer Mehrzahl von Wissens-Subgraphen, die über verschiedene Systeme und möglicherweise auch über verschiedene Orte verteilt sind.According to another optional embodiment of the method, the knowledge subgraphs can be partially distributed over different storage platforms. Thus, the main knowledge graph does not necessarily have to be a single consistent knowledge graph in a single storage system - but an aggregation of a plurality of knowledge subgraphs distributed across different systems and possibly also across different locations.

Darüber hinaus können Ausführungsformen die Form eines zugehörigen Computerprogrammprodukts annehmen, auf das von einem computerverwendbaren oder computerlesbaren Medium aus zugegriffen werden kann, das Programmcode zur Verwendung durch oder in Verbindung mit einem Computer oder einem beliebigen Anweisungsausführungssystem bereitstellt. Für die Zwecke dieser Beschreibung kann ein computerverwendbares oder computerlesbares Medium jede Vorrichtung sein, die Mittel zum Speichern, Kommunizieren, Verbreiten oder Transportieren des Programms zur Verwendung durch oder in Verbindung mit dem Anweisungsausführungssystem, der Vorrichtung oder der Einheit enthalten kann.Furthermore, embodiments may take the form of an associated computer program pro product accessible from any computer-usable or computer-readable medium that provides program code for use by or in connection with a computer or any instruction execution system. For purposes of this specification, a computer-usable or computer-readable medium can be any device that can include means for storing, communicating, distributing, or transporting the program for use by or in connection with the instruction execution system, apparatus, or device.

Figurenlistecharacter list

  • 1 zeigt ein Blockdiagramm einer Ausführungsform eines computerimplementierten Verfahrens zur Verwaltung von Zugriffsrechten auf einen Wissens-Graphen, dessen Inhalt von einer Mehrzahl von Entitäten verwaltet wird. 1 12 shows a block diagram of an embodiment of a computer-implemented method for managing access rights to a knowledge graph whose content is managed by a plurality of entities.
  • 2 zeigt ein Blockdiagramm einer Ausführungsform einer Mehrzahl von Benutzersystemen in kommunikativer Verbindung mit einem zentralen Speicher. 2 Figure 12 shows a block diagram of one embodiment of a plurality of user systems in communicative connection with a central memory.
  • 3 zeigt ein Blockdiagramm einer Ausführungsform der Ebenen-Architektur der vorliegenden Erfindung. 3 Figure 12 shows a block diagram of one embodiment of the layered architecture of the present invention.
  • 4 zeigt ein Diagramm einer Ausführungsform der Ebenen-Architektur mit gewährtem Zugriff auf zusätzliche Wissens-Subgraphen. 4 Figure 12 shows a diagram of one embodiment of the tier architecture with access granted to additional knowledge subgraphs.
  • 5 zeigt ein Blockdiagramm eines Flussdiagramms der Teilprozesse „ Gewähren von Zugriff“ und „Schreibzugriff“. 5 Figure 12 shows a block diagram flowchart of the grant access and write access sub-processes.
  • 6 zeigt ein Blockdiagramm eines Flussdiagramms für den Prozess „Entfernen von Zugriff“. 6 Figure 12 shows a block diagram of a flowchart for the Access Removal process.
  • 7 zeigt ein Blockdiagramm eines Systems zur Verwaltung von Zugriffsrechten auf einen Wissens-Graphen, dessen Inhalte von einer Mehrzahl von Entitäten verwaltet werden. 7 shows a block diagram of a system for managing access rights to a knowledge graph whose contents are managed by a plurality of entities.
  • 8 zeigt ein Blockdiagramm eines Computersystems, das für die vorliegende Erfindung von Bedeutung ist. 8th Figure 12 shows a block diagram of a computer system relevant to the present invention.

AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION

Ein Nachteil bekannter Lösungen ist nach wie vor die zentrale Verwaltung und die Unfähigkeit bekannter Lösungen, Teile von Wissens-Graphen mit anderen Abteilungen und/oder Organisationen zu teilen, ohne eine zentrale Instanz für die Authentifizierung und Berechtigung zu benötigen. Ein Administrator, der über Superuser-Rechte verfügt, sollte redundant und überflüssig gemacht werden.A disadvantage of known solutions is still the central administration and the inability of known solutions to share parts of knowledge graphs with other departments and/or organizations without requiring a central authority for authentication and authorization. An administrator who has superuser rights should be made redundant and superfluous.

Daher kann es notwendig sein, die Beschränkungen der bekannten Lösungen zu überwinden und insbesondere ein Wissensmanagementsystem bereitzustellen, das die gemeinsame Nutzung von Teilen eines Wissens-Graphen ohne eine schwerfällige zentrale Verwaltungsinstanz ermöglicht.Therefore, it may be necessary to overcome the limitations of the known solutions and in particular to provide a knowledge management system that allows parts of a knowledge graph to be shared without a cumbersome central administration entity.

Im Zusammenhang mit dieser Beschreibung können die folgenden Konventionen, Begriffe und/oder Ausdrücke verwendet werden:In the context of this specification, the following conventions, terms and/or expressions may be used:

Der Begriff „Wissens-Graph“ kann einen semantisch organisierten Daten-Pool bezeichnen, der Entitäten - d.h. Inhaltselemente - zueinander in Beziehung setzt. Die Inhaltselemente können als Knoten dargestellt werden, die durch Kanten (oder Links), die die Beziehung zwischen den Inhaltselementen definieren, selektiv ausgewählt werden. Der Wissens-Graph kann in einer Mehrzahl einfacher Dateien sowie in einer oder mehreren Datenbanken organisiert sein.The term "knowledge graph" can refer to a semantically organized data pool that relates entities - i.e. content elements - to one another. The content items can be represented as nodes that are selectively chosen by edges (or links) that define the relationship between the content items. The knowledge graph may be organized into a number of simple files as well as one or more databases.

Der Begriff „Benutzersystem“ kann ein Computersystem bezeichnen, typischerweise einen Personal Computer oder eine Workstation, die geeignet ist, Softwareanwendungen unter der Kontrolle eines Betriebssystems auszuführen. Der Client, auf den in der vorliegenden Erfindung Bezug genommen wird, kann die Softwareanwendung bezeichnen. Ein Benutzer kann durch eine solche Workstation repräsentiert werden.The term "user system" may mean a computer system, typically a personal computer or workstation, capable of running software applications under the control of an operating system. The client referred to in the present invention may designate the software application. A user can be represented by such a workstation.

Der Begriff „Wissens-Subgraphen-spezifisches asymmetrisches öffentliches/privates Schlüsselpaar“ kann ein öffentliches/privates Schlüsselpaar bezeichnen, das ausschließlich für einen speziellen Wissens-Subgraphen erzeugt wird. Die Erzeugung kann vom Client (Anwendung) ausgeführt werden. Der öffentliche Teil kann gemeinsam genutzt werden, während der private Schlüssel nur einer sehr begrenzten Gruppe von Systemen zugänglich ist, in der Regel denjenigen, die Zugang zu den Inhalten der Wissens-Subgraphen haben.The term "knowledge subgraph-specific asymmetric public/private key pair" may denote a public/private key pair that is generated exclusively for a specific knowledge subgraph. The generation can be performed by the client (application). The public part can be shared while the private key is only accessible to a very limited set of systems, usually those that have access to the contents of the knowledge subgraphs.

Der Begriff „private Zusammenfassungsgraphen“ kann eine Ebene in der Ebenen-Architektur bezeichnen, die eine Ebene oberhalb des Wissens-Subgraphen organisiert ist. Sie kann verwendet werden, um die verschiedenen Wissens-Subgraphen auf der Inhaltsebene zu organisieren.The term "private summary graph" can denote a level in the level architecture that is organized one level above the knowledge subgraph. It can be used to organize the different knowledge subgraphs at the content level.

Der Begriff „Knoten“ kann eine logische Einheit bezeichnen, die Inhalte oder Benutzer in einem Wissens-Graphen repräsentiert. Knoten können auch zu Verwaltungszwecken verwendet werden. Die Knoten können selektiv durch Kanten ausgewählt werden, die Abhängigkeiten zwischen Inhaltselementen, Nutzern, Zugriffsrechten und/oder einer Mischung aus diesen darstellen.The term "node" can denote a logical entity that represents content or users in a knowledge graph. Nodes can also be used for administrative purposes. The nodes can be selectively chosen by edges that represent dependencies between content items, users, access rights, and/or a mixture of these.

Der Begriff „Inhaltsgraph“ kann die unterste Ebene der Inhaltsgraphen-Architektur bezeichnen. Der Wissens-Graph setzt sich aus einer Mehrzahl von Wissens-Subgraphen zusammen, die Knoten umfassen, die die Inhaltselemente darstellen. Im Rahmen der vorliegenden Erfindung können die Begriffe „Inhalts-Graph“ und „Wissens-Graph“ synonym verwendet werden; es kann jedoch davon ausgegangen werden, dass die unterste Ebene eine Mehrzahl von Wissens-Subgraphen, die miteinander verbunden werden können, um einen vollständigen Inhalts-Graphen zu bilden, oder eine Mehrzahl von Inhalts-Graphen umfassen kann, die nicht miteinander verbunden sind, weil die Benutzer keine Links zwischen ihnen hergestellt haben.The term "content graph" can refer to the lowest level of the content graph architecture. The knowledge graph is composed of a plurality of knowledge subgraphs that include nodes representing the content items. In the context of the present invention, the terms “content graph” and “knowledge graph” can be used synonymously; however, it can be understood that the lowest level may include a plurality of knowledge subgraphs that can be connected together to form a complete content graph, or a plurality of content graphs that are not connected together because users have not established any links between them.

Der Begriff „privater Zusammenfassungsgraphen“ kann eine Graphen-Ebene oberhalb des Inhaltsgraphen bezeichnen, die einen Knoten für jeden Wissens-Subgraphen des Inhaltsgraphen umfasst, und zwar sowohl für die Subgraphen eines Benutzers als auch für die Subgraphen von Kollaborateuren. Grundsätzlich stellt ein Knoten des privaten Zusammenfassungsgraphen eine Zusammenfassung der entsprechenden Subgraphen sowie zusätzliche Verwaltungsinformationen (d. h. Verschlüsselungs-/Entschlüsselungsschlüssel) dar.The term "private summary graph" may denote a graph level above the content graph that includes a node for each knowledge subgraph of the content graph, both user and collaborator subgraphs. Basically, a private summary graph node represents a summary of the corresponding subgraphs plus additional management information (i.e. encryption/decryption keys).

Der Begriff „ Kollaborationsgraph “ kann die nächste Ebene des Wissens-Graphen oberhalb des privaten Zusammenfassungsgraphen bezeichnen. Jeder Knoten des Kollaborationsgraphen kann einen Nutzer des Wissens-Graphen darstellen. Von hier aus können Links zu allen Inhalten aller Wissens-Subgraphen der Graphen-Ebene, auf die der Nutzer Zugriff hat, zu seinen eigenen Wissens-Subgraphen sowie zu den Wissens-Subgraphen der Mitarbeiter, auf die er Zugriff hat, führen.The term "collaboration graph" can denote the next level of the knowledge graph above the private summary graph. Each node of the collaboration graph can represent a user of the knowledge graph. From here, links can lead to all content of all graph-level knowledge subgraphs that the user has access to, to his own knowledge subgraphs as well as to the employees' knowledge subgraphs to which he has access.

Der Begriff „öffentlicher Zusammenfassungsgraph“ kann den Inhalt der Graphen-Ebene - d. h. die Zusammenfassung der Wissens-Subgraphen - in zusammengefasster Form darstellen. Der öffentliche Zusammenfassungsgraph kann die oberste Ebene der Wissens-Graphen-Architektur darstellen. Ein Knoten des öffentlichen Zusammenfassungsgraphen kann nur die Zusammenfassung der entsprechenden Wissens-Subgraphen umfassen. Der öffentliche Zusammenfassungsgraph kann die anfängliche Such- und Navigationsebene mit uneingeschränktem Zugang für alle Nutzer darstellen.The term "public summary graph" can contain the content of the graph level - i.e. H. the summary of the knowledge subgraphs - in summarized form. The public summary graph may represent the top level of the knowledge graph architecture. A node of the public summary graph can only contain the summary of the corresponding knowledge subgraphs. The public summary graph can represent the initial level of search and navigation with unrestricted access for all users.

Der Begriff „Kollaboration“ kann hier bedeuten, dass ein Benutzer einem anderen Benutzer den Zugriff auf die von ihm verwalteten Subgraphen des Inhalts erlaubt.The term “collaboration” here can mean that one user allows another user to access the subgraphs of the content that they manage.

Der Begriff „Zugriff“ kann bedeuten, dass ein Benutzer, der nicht Eigentümer und Verwalter eines Subgraphen ist, einem anderen Benutzer erlaubt hat, den Inhalt zu lesen. Der besitzende Benutzer kann auch einem anderen Benutzer, z. B. einem Mitarbeiter, erlauben, neue Inhalte in die Subgraphs zu schreiben oder auch bestehende Inhalte zu ändern, d. h. Schreibzugriff.The term "access" may mean that a user who does not own and maintain a subgraph has allowed another user to read the content. The owning user can also be assigned to another user, e.g. B. allow an employee to write new content in the subgraphs or to change existing content, d. H. write access.

Der Begriff „ Wiederverschlüsseln “ kann bedeuten, dass Subgraphs - insbesondere die in den Knoten von Subgraphs gespeicherten Informationen - direkt mit einem neuen Schlüssel wiederverschlüsselt werden können, ohne sie sofort zu entschlüsseln und zu speichern. Auf diese Weise können die Inhalte eines Sub-Graphen in der Zeitperiode zwischen der Entschlüsselung und einer neuen Verschlüsselung niemals ausgesetzt werden. Die Wiederverschlüsselung ist die Grundlage für den Entzug des Zugriffs auf Inhaltselemente in Bezug auf einen Benutzer, der möglicherweise zuvor Zugriff darauf hatte.The term 're-encrypt' can mean that subgraphs - specifically the information stored in subgraphs' nodes - can be directly re-encrypted with a new key without immediately decrypting and storing them. In this way, the contents of a sub-graph can never be suspended in the time period between decryption and a new encryption. Re-encryption is the basis for revoking access to content items in relation to a user who may have previously had access to them.

Im Folgenden wird eine detaillierte Beschreibung der Figuren gegeben. Alle Anweisungen in den Figuren sind schematisch dargestellt. Zuerst wird ein Blockdiagramm einer Ausführungsform des erfindungsgemäßen computer-implementierten Verfahrens zur Verwaltung von Zugriffsrechten auf einen Wissens-Graph mit Inhalten, die von einer Mehrzahl von Entitäten verwaltet werden, gezeigt. Anschließend werden weitere Ausführungsformen sowie Ausführungsformen des Wissens-Graphen-Management-Systems zur Verwaltung von Zugriffsrechten auf einen Wissens-Graphen beschrieben.A detailed description of the figures is given below. All instructions in the figures are shown schematically. First, a block diagram of an embodiment of the inventive computer-implemented method for managing access rights to a knowledge graph with content managed by a plurality of entities is shown. Further embodiments and embodiments of the knowledge graph management system for managing access rights to a knowledge graph are then described.

1 zeigt ein Blockdiagramm einer Ausführungsform des computerimplementierten Verfahrens 100 zur Verwaltung von Zugriffsrechten auf einen Wissens-Graphen mit Inhalten, die von einer Mehrzahl von Entitäten verwaltet werden. Im Allgemeinen werden die Benutzer durch ihr Computersystem (d. h. ihre Workstation) repräsentiert, auf dem eine Anwendung und/oder ein Browser läuft. Das Verfahren 100 umfasst das Aufteilen, 102, seines jeweiligen Teils des Wissens-Graphen in eine Mehrzahl von Wissens-Subgraphen für jedes Benutzersystem - das einen bestimmten Benutzer repräsentiert - aus einer Mehrzahl von Benutzersystemen; das Verschlüsseln, 104, jedes der Wissens-Subgraphen unter Verwendung eines privaten Schlüssels eines Wissens-Subgraphen-spezifischen asymmetrischen öffentlichen/privaten Schlüsselpaares; und das Erzeugen, 106, einer Mehrzahl von privaten Zusammenfassungsgraphen, einen für jedes Benutzersystem, wobei jeder private Zusammenfassungsgraph einen Knoten - insbesondere genau einen - für jeden Wissens-Subgraphen des Benutzersystems umfasst. Dabei umfasst jeder Knoten auch das Wissens-Subgraphen-spezifische asymmetrische öffentlich/private Schlüsselpaar, d.h. sowohl einen Verschlüsselungsschlüssel als auch einen Entschlüsselungsschlüssel. 1 10 shows a block diagram of one embodiment of the computer-implemented method 100 for managing access rights to a knowledge graph with content managed by a plurality of entities. In general, users are represented by their computer system (ie, workstation) running an application and/or browser. The method 100 comprises dividing 102 its respective portion of the knowledge graph into a plurality of knowledge subgraphs for each user system - representing a particular user - of a plurality of user systems; encrypting 104 each of the knowledge subgraphs using a private key of a knowledge subgraph-specific asymmetric public/private key pair; and creating 106 a plurality of private summary graphs, one for each user system, each private summary graph comprising a node - specifically one - for each knowledge subgraph of the user system. Each node also includes the knowledge subgraph-specific asymmetric public/private key pair, ie both an encryption key and a decryption key.

Das Verfahren 100 umfasst auch das Pflegen, 108, eines Kollaborationsgraphen, der einen Knoten pro Benutzersystem und Kanten umfasst, die Kollaborationen zwischen den Benutzern darstellen; und das Abbilden, 110, aller privaten Zusammenfassungsgraphen aller Benutzersysteme auf einen öffentlichen Zusammenfassungsgraphen, wobei jeder Knoten des öffentlichen Zusammenfassungsgraphen weniger Daten umfasst als - oder die gleiche Menge wie - der zugehörige Knoten der zugehörigen privaten Zusammenfassungsgraphen, und wobei keiner der Knoten des Zusammenfassungsgraphen irgendeinen beliebigen der privaten Schlüssel umfasst, die zur Verschlüsselung irgendeines beliebigen der Wissens-Subgraphen verwendet wurden.The method 100 also includes maintaining 108 a collaboration graph comprising one node per user system and edges representing collaborations between the users; and mapping, 110, all private summary graphs of all user systems to a public summary graph, each node of the public summary graph comprising less data than - or the same amount as - the corresponding node of the corresponding private summary graph, and wherein none of the nodes of the summary graph have any includes the private keys used to encrypt any one of the knowledge subgraphs.

Das Verfahren 100 umfasst auch das Gewähren, 112, von Zugriff auf einen ausgewählten Wissens-Subgraphen von einem ersten Benutzersystem an ein zweites Benutzersystem durch Bereitstellen eines Entschlüsselungsschlüssels, der sich auf den ausgewählten Wissens-Subgraphen bezieht, von dem ersten Benutzersystem an das zweite Benutzersystem.The method 100 also includes granting 112 access to a selected knowledge subgraph from a first user system to a second user system by providing a decryption key related to the selected knowledge subgraph from the first user system to the second user system.

2 zeigt ein Blockdiagramm 200 einer Ausführungsform einer Mehrzahl von Benutzersystemen in kommunikativer Verbindung (drahtgebundenes oder drahtloses Netzwerk) mit einem zentralen Speicher. Die zugrundeliegende Infrastruktur umfasst somit nur zwei Typen von Hauptkomponenten, die Benutzer-Workstations 202, 204, 206, 208, auf denen der Client (eine Softwareanwendung) läuft, und den gemeinsam genutzten Speicher 210, z. B. einen öffentlich zugänglichen Cloud-Speicher. Die Wissens-Graphen werden verschlüsselt und auf dem gemeinsamen Speicher 210 gespeichert. Nur der Zusammenfassungsgraph wird unverschlüsselt gespeichert und kann von allen Benutzersystemen abgerufen werden. Alle anderen Daten sind durch Verschlüsselung vor dem Zugriff geschützt. Zugriff muss individuell gewährt werden. In einer Implementierung wird der gemeinsame Speicher 210 als Speicher für einfache Dateien bereitgestellt, in einer anderen Implementierung als relationales Datenbankmanagementsystem (RDBMS). Der Client (die Anwendung), die auf der Workstation des Benutzers läuft, erzeugt die Sätze der verwendeten asymmetrischen Verschlüsselungsschlüssel, führt die Ver- und Entschlüsselung durch und greift auf die Wissens-Graphen zu. 2 FIG. 200 shows a block diagram 200 of an embodiment of a plurality of user systems in communicative connection (wired or wireless network) with a central memory. The underlying infrastructure thus comprises only two types of main components, the user workstations 202, 204, 206, 208 running the client (a software application) and the shared storage 210, e.g. B. a publicly accessible cloud storage. The knowledge graphs are encrypted and stored on shared memory 210 . Only the summary graph is stored unencrypted and can be accessed by all user systems. All other data is protected against access by encryption. Access must be granted individually. In one implementation, the shared storage 210 is provided as flat file storage, in another implementation as a relational database management system (RDBMS). The client (application) running on the user's workstation generates the sets of asymmetric encryption keys used, performs the encryption and decryption, and accesses the knowledge graphs.

Wie nachstehend im Detail erläutert, basiert die vorliegende Erfindung auf vier Ebenen von Wissens-Graphen. Der aktuelle (ehemals unverschlüsselte) Wissens-Graph wird als Inhalts-Graph bezeichnet und ist in mehrere Subgraphs aufgeteilt, so dass bestimmte Benutzer auf bestimmte Inhalte zugreifen können. Der Zugriff kann rollenbasiert sein. (i) Die Subgraphen und ihre Verschlüsselungen werden von (ii) dem privaten Zusammenfassungsgraphen gehandhabt, der selbst verschlüsselt ist. (iii) Der Kollaborationsgraph verbindet die Nutzer, die als Knoten dargestellt werden, und transportiert gemeinsame verschlüsselte Schlüssel. (iv) Der unverschlüsselte öffentliche Graph ermöglicht den Nutzern die Suche nach Inhalten, die sich im Besitz von Mitstreitern befinden.As explained in detail below, the present invention is based on four levels of knowledge graphs. The current (formerly unencrypted) knowledge graph is called the content graph and is divided into multiple subgraphs so that specific users can access specific content. Access can be role-based. (i) The subgraphs and their encryptions are handled by (ii) the private summary graph, which is itself encrypted. (iii) The collaboration graph connects the users, represented as nodes, and transports shared encrypted keys. (iv) The unencrypted public graph allows users to search for content owned by collaborators.

Durch die gemeinsame Nutzung von Schlüsseln für die Ent- und Verschlüsselung können die Benutzer mit Mitstreitern, d. h. anderen Benutzern, d. h. anderen Computersystemen von Benutzern, d. h. anderen Workstations, zu kooperieren beginnen.By sharing keys for decryption and encryption, users can collaborate with peers, i. H. other users, d. H. other computer systems of users, d. H. other workstations to start cooperating.

3 zeigt ein Blockdiagramm einer Ausführungsform der Ebenen-Architektur 300 der vorliegenden Erfindung. Es sind vier Ebenen von Wissens-Graphen dargestellt: der öffentliche Wissens-Graph 302, der Kollaborationsgraph 304, der private Zusammenfassungsgraph 306 und der Inhalts-Graph 308, der eine Mehrzahl von Wissens-Subgraphen umfasst. Die verschiedenen Ebenen der Wissens-Graphen sind durch horizontale gestrichelte Linien voneinander getrennt. 3 Figure 3 shows a block diagram of one embodiment of the layered architecture 300 of the present invention. Four levels of knowledge graphs are shown: the public knowledge graph 302, the collaboration graph 304, the private summary graph 306, and the content graph 308, which includes a plurality of knowledge subgraphs. The different levels of the knowledge graphs are separated from each other by horizontal dashed lines.

Die Kanten werden auf den Links zwischen den Knoten gespeichert. Angenommen, die Knoten A und B sind miteinander verbunden, dann wird ein Verweis auf B auf A und ein Verweis auf A auf B gespeichert. In einigen Fällen können die Attribute der Teilkante von A nach B und von B nach A unterschiedlich sein.The edges are stored on the links between nodes. Assuming nodes A and B are connected, then a reference to B is stored on A and a reference to A on B. In some cases, the attributes of the part edge may be different from A to B and from B to A.

Für jeden Wissens-Graph/für jeden Wissens-Subgraph wird ein Index der Knoten gepflegt.An index of nodes is maintained for each knowledge graph/knowledge subgraph.

Eine Zusammenfassung eines Graphen umfasst eines oder mehrere der folgenden Elemente: die Abstraktion seiner Struktur (wie bei einem groben Graphen), den Knoten zugewiesene Tags, Schlüsselwörter für den Inhalt der Knoten und eine Liste der Knoten.A summary of a graph includes one or more of the following: the abstraction of its structure (like a coarse graph), tags assigned to the nodes, keywords for the content of the nodes, and a list of the nodes.

Die asymmetrische Verschlüsselung wird verwendet, um Inhalte zu schützen und sie ausgewählten Personen oder Gruppen zugänglich zu machen. Die asymmetrische Kryptografie wird so verwendet, dass die Benutzer Schlüsselpaare erzeugen, die aus einem Schlüssel für die Verschlüsselung Kenc (auch als privater Schlüssel bezeichnet) und einem Schlüssel für die Entschlüsselung Kdec (auch als öffentlicher Schlüssel bezeichnet) bestehen. Die Aktivitäten der Schlüsselerzeugung, Verschlüsselung und Entschlüsselung werden vom Client auf der Workstation des Nutzers durchgeführt. Eine Zertifizierungsstelle wie eine öffentliche Schlüsselinfrastruktur (PKI) ist vorteilhafterweise nicht erforderlich.Asymmetric encryption is used to protect content and make it accessible to selected individuals or groups. Asymmetric cryptography is used in such a way that users generate key pairs consisting of an encryption key K enc (also known as a private key) and a decryption key K dec (also known as a public key). The key generation, encryption and decryption activities are performed by the client on the user's workstation. A certification authority such as a public key infrastructure (PKI) is advantageously not required.

Es ist auch zu beachten, dass in den folgenden Diagrammen Linien ohne Pfeilspitze bidirektionale Kanten und Pfeile unidirektionale Kanten bezeichnen. Zum Beispiel ist die Verbindung vom Knoten J zur Gruppe der Auslastungen 312 des Inhaltsgraphen 308 unidirektional.It should also be noted that in the following diagrams, lines without an arrowhead denote bidirectional edges and arrows denote unidirectional edges. For example, the connection from node J to the workload group 312 of the content graph 308 is unidirectional.

Die unterste Ebene enthält den/die Inhalts-Graph(en) 308, d. h. die Wissens-Subgraph(en). Seine Quelle ist der ursprüngliche, unverschlüsselte Wissens-Graph. Der Wissens-Graph 308 wurde in Wissens-Subgraphen aufgeteilt, so dass einzelne Inhaltssätze 310, 312, 314 (Subgraphen) mit Mitstreitern geteilt werden können. Der Eigentümer eines bestimmten Wissens-Graphen kann verschiedene Herangehensweisen wählen, um Subgraphen zu definieren.The lowest level contains the content graph(s) 308, i. H. the knowledge subgraph(s). Its source is the original, unencrypted knowledge graph. The knowledge graph 308 has been divided into knowledge subgraphs so that individual sets of content 310, 312, 314 (subgraphs) can be shared with peers. The owner of a particular knowledge graph can take different approaches to define subgraphs.

Zum Beispiel: (i) Bei der Erstellung oder bei der Erweiterung des Wissens-Graphs definiert der Eigentümer Subgraphen auf Grundlage von Inhalten und potenziellen Kollaborateuren. (ii) Der Eigentümer verwendet einen Algorithmus zum Auffinden von Community-Strukturen und verwendet diese, um den Wissens-Graphen basierend auf seiner Struktur aufzuteilen. Algorithmen zum Auffinden von Communities können die Minimum-Methode, hierarchisches Clustering, den Girvan-Newman-Algorithmus, Modularitätsmaximierung, statistische Interferenz und klickbasierte Verfahren umfassen. Dicht verknüpfte Bereiche von einem Zentrum eines Subgraphen und lose gekoppelte Knoten werden auf verschiedene Subgraphen verteilt. (iii) Der Eigentümer gruppiert die Knoten nach Inhalt, z. B. erzeugt er eine Liste von Themen, und jeder Knoten wird dem am besten passenden Thema zugeordnet. (iv) Eine Kombination der oben genannten Möglichkeiten.For example: (i) When creating or expanding the knowledge graph, the owner defines subgraphs based on content and potential collaborators. (ii) The owner uses an algorithm to find community structures and uses them to partition the knowledge graph based on its structure. Algorithms for finding communities can include the minimum method, hierarchical clustering, the Girvan-Newman algorithm, modularity maximization, statistical inference, and click-based methods. Tightly connected regions from a center of a subgraph and loosely coupled nodes are distributed to different subgraphs. (iii) The owner groups the nodes by content, e.g. B. It generates a list of topics and each node is assigned to the most appropriate topic. (iv) A combination of the above possibilities.

Jeder Subgraph (J, K, L) 310, 312, 314 wird mit einem anderen privaten Schlüssel verschlüsselt. Durch Weitergabe des entsprechenden Entschlüsselungsschlüssels kann anderen Benutzern Zugriff auf einen Subgraph gewährt werden. Der Inhaltsgraph kann Links zu Graphen enthalten, die anderen Nutzern gehören (siehe gestrichelte Linien 406 in 4).Each subgraph (J,K,L) 310, 312, 314 is encrypted with a different private key. By sharing the appropriate decryption key, other users can be granted access to a subgraph. The content graph may contain links to graphs owned by other users (see dashed lines 406 in 4 ).

Der private Zusammenfassungsgraphen 306 umfasst einen Knoten für jeden Subgraphen des Inhaltsgraphen 308 - sowohl für eigene Subgraphen als auch für Subgraphen von Kollaborateuren. Zwei Knoten im privaten Zusammenfassungsgraphen 306 sind miteinander verbunden, wenn mindestens eine Kante zwischen den Knoten der jeweiligen Subgraphen existiert. Jeder Knoten des privaten Zusammenfassungsgraphen 306 beinhaltet: eine Liste der Knoten des entsprechenden Subgraphen; eine Zusammenfassung des entsprechenden Subgraphen; für eigene Subgraphen und für Subgraphen von Kollaborateuren mit Schreibzugriff den Entschlüsselungs- und Verschlüsselungsschlüssel des entsprechenden Subgraphen; für Subgraphen von Kollaborateuren mit nur Lesezugriff den Entschlüsselungsschlüssel des entsprechenden Subgraphen; und den Speicherort des Subgraphen. Es ist auch zu beachten, dass der private Zusammenfassungsgraph verschlüsselt ist. Der Schlüssel für die Entschlüsselung wird anfänglich nicht weitergegeben.The private summary graph 306 includes a node for each subgraph of the content graph 308 - both own subgraphs and collaborator subgraphs. Two nodes in the private summary graph 306 are connected if at least one edge exists between the nodes of the respective subgraphs. Each node of the private summary graph 306 includes: a list of the nodes of the corresponding subgraph; a summary of the corresponding subgraph; for own subgraphs and for subgraphs of collaborators with write access, the decryption and encryption key of the corresponding subgraph; for collaborator subgraphs with read-only access, the decryption key of the corresponding subgraph; and the location of the subgraph. Also note that the private summary graph is encrypted. The decryption key is initially not shared.

Der Kollaborationsgraph 304 stellt die Verbindungen mit Wissens-Graphen anderer Benutzer dar (z. B. U, C, D, B). Die Knoten repräsentieren die Benutzer (den Benutzer selbst und die Kollaborateure). Jedem Benutzer U, C, D, B ist eine eindeutige Kennung zugewiesen, die erzeugt wird, wenn der Benutzer dem System beitritt. Die Kanten zwischen den Knoten des Kollaborationsgraphen fassen die Kanten zusammen, die zwischen den Knoten des/der Benutzer-Subgraphen und des/den Kollaborateur-Subgraphen entstehen. Falls mehrere Kollaborateure Zugriff auf ihren/ihre Subgraphen gewähren und Kanten zwischen ihren Subgraphen gefunden wurden, wird die Verknüpfung zwischen den Subgraphen der Kollaborateure im Kollaborationsgraphen (z. B. zwischen den Knoten B und C) zusammengefasst.The collaboration graph 304 represents the connections to other users' knowledge graphs (e.g., U, C, D, B). The nodes represent the users (the user himself and the collaborators). Each user U, C, D, B is assigned a unique identifier that is generated when the user joins the system. The edges between the nodes of the collaboration graph summarize the edges that arise between the nodes of the user subgraph(s) and the collaborator subgraph(s). If multiple collaborators grant access to their subgraph(s) and edges between their subgraphs have been found, the link between the collaborators' subgraphs is merged into the collaboration graph (e.g., between nodes B and C).

Ein Knoten im Kollaborationsgraphen 304, der den Benutzer repräsentiert (z. B. U, C, D, B), ist mit allen Knoten, die dem Benutzer gehören, sowohl im öffentlichen Zusammenfassungsgraph 302 als auch im privaten Zusammenfassungsgraphen 306 verknüpft. Ein Kollaborateur kann im Prinzip einer Kante zu einem Knoten im privaten Zusammenfassungsgraphen 306 folgen, hat aber keinen Zugriff auf den Knoten (und seine nachfolgenden Kanten), da der Knoten verschlüsselt ist. Ein Benutzerknoten empfängt und speichert auch Zugriffsanforderungen von Kollaborateuren.A node in collaboration graph 304 that represents the user (e.g., U, C, D, B) is linked to all nodes owned by the user in both public summary graph 302 and private summary graph 306. A collaborator can, in principle, follow an edge to a node in the private summary graph 306, but has no access to the node (and its subsequent edges) since the node is encrypted. A user node also receives and stores access requests from collaborators.

Der öffentliche Zusammenfassungsgraph 302 umfasst (wie der private Zusammenfassungsgraph 306) einen Knoten (z. B. J, K, L, N, O) für jeden Subgraph. Ein Knoten umfasst jedoch nur die Zusammenfassung des entsprechenden Subgraphen. Er umfasst keine Schlüssel oder eine Liste von Knoten. Die Zusammenfassung im öffentlichen Zusammenfassungsgraph 302 enthält möglicherweise nicht so viele Informationen wie im privaten Zusammenfassungsgraphen. Sie sollte jedoch umfassend genug sein, um ein sinnvolles Suchergebnis zu liefern.Public summary graph 302 (like private summary graph 306) includes a node (e.g., J, K, L, N, O) for each subgraph. However, a node only includes the summary of the corresponding subgraph. It does not include keys or a list of nodes. The summary in the public summary graph 302 may not contain as much information as in the private summary graph. However, it should be comprehensive enough to provide a meaningful search result.

Ein Knoten enthält auch den Speicherort des Subgraphs im Inhaltsgraphen. Jeder Knoten ist mit dem Benutzerknoten des Eigentümers des Knotens verknüpft. Der Client addiert erst dann eine Kante zwischen den Knoten verschiedener Eigentümer, wenn eine (zumindest einseitige) Zusammenarbeit zustande gekommen ist und mindestens eine Kante zwischen den entsprechenden Subgraphen des Inhaltsgraphen hinzugefügt wurde.A node also contains the location of the subgraph in the content graph. Each node is linked to the user node of the node's owner. The client only adds an edge between the nodes of different owners if a (at least one-sided) collaboration has come about and at least one edge added between the corresponding subgraphs of the content graph.

In einer Implementierung wird der zentrale Wissens-Graphen-Speicher (siehe 2, 210) als ein Satz einfacher Dateien implementiert, wobei ein Knoten durch eine Datei repräsentiert wird und die Kanten in der Knoten-Datei als Verweise auf andere Dateien (d. h. Pfad und Dateiname) gespeichert werden.In one implementation, the central knowledge graph repository (see 2 , 210) implemented as a set of simple files, where a node is represented by a file and the edges are stored in the node file as references to other files (ie path and filename).

In einer anderen Implementierung wird eine Industriestandard-Wissens-Graphen-Datenbank verwendet. Diese Graphen-Datenbanken sind relationale Datenbanken, in denen jedes Objekt (ein Knoten) einen primären, eindeutigen Schlüssel hat. Andere Objekte, die mit einem Objekt in Beziehung stehen (Knoten, die durch Kanten verbunden sind), werden durch „Fremdschlüssel“ referenziert, bei denen es sich um die Werte von Primärschlüsseln handelt, die als Attribut in dem Objekt gespeichert sind.In another implementation, an industry standard knowledge graph database is used. These graph databases are relational databases in which each object (a node) has a primary, unique key. Other objects related to an object (nodes connected by edges) are referenced by "foreign keys", which are the values of primary keys stored as an attribute in the object.

In einer Implementierung wird eine einzige Graphen-Datenbank von allen Clients verwendet. In einer anderen Implementierung werden mehrere Graphen-Datenbanken verwendet oder sogar jeder Client richtet seine eigene Graphen-Datenbank ein. Selbstverständlich müssen alle Graphen-Datenbanken kompatibel sein, d. h. dem gleichen Standard folgen, und jede Graphen-Datenbank muss eine eindeutige Kennung haben. Alle Datenbanken erlauben (zumindest Lese-)Zugriffe über eine generische Benutzer-ID (Kennung), die von den Clients, d.h. den Anwendungen auf den Workstations der Benutzer, verwendet wird.In one implementation, a single graph database is used by all clients. In another implementation, multiple graph databases are used, or even each client sets up its own graph database. Of course, all graph databases must be compatible, i. H. follow the same standard and each graph database must have a unique identifier. All databases allow (at least read) access via a generic user ID (identifier) used by the clients, i.e. the applications on the users' workstations.

Es ist zu beachten, dass der öffentliche Zusammenfassungsgraph 302 disjunkt ist, d. h., dass zwei oder mehr Subgraphs keine gemeinsamen Kanten haben. Dies ist zumindest der Fall, wenn ein neuer Benutzer beitritt (siehe unten). Nachdem verbundene und gemeinsame Subgraphen erstellt wurden, können die jeweiligen Nutzer Kanten zwischen den Subgraphen definieren.Note that the public summary graph 302 is disjoint; that is, two or more subgraphs have no edges in common. This is at least the case when a new user joins (see below). After connected and shared subgraphs are created, respective users can define edges between the subgraphs.

Wird eine einzige Graphen-Datenbank verwendet, greift der Client auf die Tabelle der Knoten des öffentlichen Zusammenfassungsgraphen 302 zu, die für jeden Knoten einen Zeiger auf den Inhalt umfasst (oben als „Speicherort“ bezeichnet).If a single graph database is used, the client accesses the table of nodes of the public summary graph 302, which includes a pointer to the content for each node (referred to above as "location").

Werden mehrere Graphen-Datenbanken verwendet, durchsucht der Client das Speichersystem nach Graphen-Datenbanken und greift auf die in jeder Datenbank verwendete Tabelle der Knoten des öffentlichen Zusammenfassungsgraphen zu, die für jeden Knoten einen Zeiger auf den Inhalt enthält (oben als „Speicherort“ bezeichnet). Wenn mehrere Graphen-Datenbanken verwendet werden, sind die Primärschlüssel nicht datenbankübergreifend eindeutig; daher werden die Kanten als Tupel (Datenbankkennung, Primärschlüssel) implementiert.If multiple graph databases are used, the client searches the storage system for graph databases and accesses the table of public summary graph nodes used in each database, which contains a pointer to the contents for each node (referred to above as "location") . When multiple graph databases are used, the primary keys are not unique across databases; hence the edges are implemented as tuples (database identifier, primary key).

Als allgemeine Grundoperationen kommen in Frage: Beitritt von Benutzern, Durchsuchen des Zusammenfassungsgraphen, Gewähren von Zugriff, Entziehen oder Entfernen von Zugriff. Diese verschiedenen Szenarien werden im Folgenden beschrieben.Common unit operations are: joining users, searching the summary graph, granting access, revoking or removing access. These different scenarios are described below.

Beitritt eines BenutzersJoining a User

Wenn ein neuer Benutzer dem Kollaborations-Netzwerk beitreten möchte, muss er oder sie sich für den gemeinsamen Speicher anmelden. Jeder Benutzer muss auf seiner Workstation einen Client installiert haben, der den Zugriff auf einen Wissens-Graph unterstützt und diesen pflegt.If a new user wants to join the collaboration network, he or she must sign up for shared storage. Each user must have a client installed on their workstation that supports access to and maintains a knowledge graph.

Zuerst erstellt der Benutzer einen Knoten, der ihn im Kollaborationsgraphen 304 repräsentiert (beispielhaft dargestellt als Benutzer A in 3). Der Knoten, der den Benutzer repräsentiert, ist anfänglich mit keinem anderen Knoten verknüpft.First, the user creates a node that represents them in the collaboration graph 304 (exemplified as user A in 3 ). The node that represents the user is initially not linked to any other node.

Der Benutzer entscheidet über die Anzahl der anfänglichen Subgraphen. Der Benutzer erstellt ein oder mehrere Schlüsselpaare (Keyi enc, Keyi dec), eines für jeden Subgraphen, z.B. i=J, K, L, wie in 3 gezeigt. Auf der Workstation erzeugt der Benutzer die Subgraphen, indem er sie entweder mit Knoten und Kanten versieht oder einen bestehenden Wissens-Graphen importiert und ihn in Subgraphen aufteilt, wie oben beschrieben. Der Client verschlüsselt jeden Subgraphen mit dem entsprechenden Schlüssel Keyi enc und lädt den Subgraphen in den zentralen Speicher hoch. Da die Kanten zusammen mit den Knoten gespeichert werden, werden Kanten, die Subgraphen verbinden, in beiden Subgraphen gefunden.The user decides the number of initial subgraphs. The user creates one or more key pairs (Key i enc , Key i dec ), one for each subgraph, e.g. i=J, K, L, as in 3 shown. On the workstation, the user creates the subgraphs either by adding nodes and edges to them or by importing an existing knowledge graph and breaking it up into subgraphs as described above. The client encrypts each subgraph with the appropriate key Key i enc and uploads the subgraph to the central store. Because the edges are stored along with the nodes, edges connecting subgraphs are found in both subgraphs.

Für jeden hochgeladenen Subgraphen fügt der Client einen Knoten zum Zusammenfassungsgraphen hinzu und fügt die Kanten zu diesem Knoten hinzu, wie oben beschrieben.For each subgraph uploaded, the client adds a node to the summary graph and adds the edges to that node as described above.

Der Client des Nutzers erzeugt das „nutzerspezifische“ Schlüsselpaar KeyA enc und KeyA dec und verschlüsselt den privaten Zusammenfassungsgraphen mit diesem Schlüssel. KeyA dec ist nur auf der Workstation des Benutzers gespeichert und wird niemals weitergegeben. KeyA enc wird auf dem Kollaborationsgraphen gespeichert und ist für (potenzielle) Kollaborateure zugänglich.The user's client generates the "user-specific" key pair Key A enc and Key A dec and encrypts the private summary graph with this key. Key A dec is only stored on the user's workstation and is never shared. Key A enc is stored on the collaboration graph and is accessible to (potential) collaborators.

Durchsuchen des ZusammenfassungsgraphenBrowsing the summary graph

Für die Durchsuchung des öffentlichen Zusammenfassungsgraphs 302 kann ein beliebiger Graphen-Suchalgorithmus verwendet werden. In einer Implementierung wird ein Algorithmus für spärlich verknüpfte Graphen verwendet. In einer anderen Implementierung kann die Tabelle(n) der Graphen-Datenbank, in der die Knoten des Zusammenfassungsgraphen J, K, L, N, O aufgelistet sind, auf bekannte Weise durchlaufen werden.Any graph search algorithm may be used to search the public summary graph 302 . In one implementation, a sparsely connected graph algorithm is used. In another implementation, the table(s) of the graph database listing the nodes of the summary graph J,K,L,N,O can be traversed in a known manner.

Gewähren von ZugriffGranting Access

4 zeigt eine Ausführungsform der Ebenen-Architektur 400 mit einem gewährten Zugriff von Zugriff auf zusätzliche Wissens-Subgraphen. 4 beschreibt den Prozess der Gewährung des Zugriffs auf Inhalte eines anderen Nutzers. 5 zeigt ein Blockdiagramm des Flussdiagramms 500 der Sub-Prozesse „ Gewähren von Zugriff“ und „ Schreibzugriff“. 4 FIG. 4 shows an embodiment of the tier architecture 400 with access granted access to additional knowledge subgraphs. 4 describes the process of granting access to another user's content. 5 Figure 5 shows a block diagram of flowchart 500 of the grant access and write access sub-processes.

Nachdem ein erster Benutzer - z.B. Benutzer A - Inhalte von Interesse in einem oder mehreren Subgraphen, die einem zweiten Benutzer - z.B. Benutzer B - gehören, gesucht und erkannt, 502, hat, fordert, 504, Benutzer A Zugriff auf diesen/diese Subgraphen - z.B. Subgraphen 402, 404- an. In diesem Prozess speichert der Client von Benutzer A eine Zugriffsanforderung auf dem Knoten von Benutzer B im Kollaborationsgraphen 306. Der Client von Benutzer B holt die Anforderung ab.After a first user - e.g. user A - has searched and recognized 502 content of interest in one or more subgraphs owned by a second user - e.g. user B -, requests 504 user A access to these subgraph(s) - e.g. subgraphs 402, 404- on. In this process, user A's client stores an access request on user B's node in the collaboration graph 306. User B's client fetches the request.

Benutzer B empfängt, 506, eine Benachrichtigung und kann Zugriff gewähren (oder verweigern). Nach einer Entscheidung 508 von Benutzer B, den Zugriff zu gewähren, ruft, 510, der Client von Benutzer B den/die Entschlüsselungsschlüssel des/der Inhaltssubgraphen (z. B. 402, 404, 4) aus den entsprechenden Knoten der privaten Zusammenfassungsgraphen N, O ab, verschlüsselt, 512, danach diese Entschlüsselungsschlüssel des privaten Zusammenfassungsgraphen 306 mit dem Verschlüsselungsschlüssel von Benutzer A (der aus dem Kollaborationsgraphen abgerufen wurde) und speichert sie auf dem Knoten von Benutzer A im Kollaborationsgraphen 304.User B receives 506 notification and can grant (or deny) access. Following a decision 508 by User B to grant access, User B's client retrieves 510 the decryption key(s) of the content subgraph(s) (e.g., 402, 404, 4 ) from the corresponding nodes of private summary graphs N, O ab, encrypts 512, then those private summary graph decryption keys 306 with user A's encryption key (retrieved from the collaborative graph) and stores them on user A's node in the collaborative graph 304 .

Um diesen Prozess zu veranschaulichen, wurde 4, die eine auf Benutzer A zentrierte Ansicht zeigt, um die Details für Benutzer B erweitert, die durch gestrichelte Linien vom Knoten N des linken privaten Zusammenfassungsgraphen 306 zum Subgraphen 402 und vom Knoten O des linken privaten Zusammenfassungsgraphen 306 (umgeben von gestrichelten Linien) zum Subgraphen 404 angegeben sind.To illustrate this process, 4 , showing a view centered on user A, expanded to include the details for user B, represented by dashed lines from node N of left private summary graph 306 to subgraph 402 and from node O of left private summary graph 306 (surrounded by dashed lines) to subgraph 404 are indicated.

Somit hat Benutzer A den öffentlichen Zusammenfassungsgraphen 302 durchsucht und interessante Inhalte an den Knoten N und O gefunden. Es ist zu beachten, dass Benutzer A die Suche entweder am Knoten N oder O oder an einem Knoten, der über einen Pfad mit N oder O verbunden ist, begonnen hat, da zu diesem Zeitpunkt keine (direkte) Verbindung zwischen L und N besteht.Thus, user A has searched the public summary graph 302 and found interesting content at nodes N and O. Note that user A started the search either at node N or O or at a node connected by a path to N or O, since there is no (direct) connection between L and N at that point.

Der Client von Benutzer A erkennt die Knoten N und O als Eigentum von Benutzer B und erstellt eine Zugriffsanforderung auf den Knoten von Benutzer B. Benutzer B gewährt Zugriff, 514. Der Client von Benutzer B holt sich den Verschlüsselungsschlüssel von Benutzer A (KeyA enc) aus dem Kollaborationsgraphen 304 und zwei Entschlüsselungsschlüssel KeyN dec und KeyO dec aus seinem eigenen privaten Zusammenfassungsgraphen 306 (rechter Teil dieser Graphen-Ebene). Unter Verwendung von KeyA enc verschlüsselt der Client von Benutzer B die Schlüssel KeyN dec und KeyO dec und speichert sie 516 auf dem Knoten von Benutzer A im Kollaborationsgraphen 308.User A's client recognizes nodes N and O as owned by User B and creates an access request to User B's node. User B grants access, 514. User B's client gets User A's encryption key (Key A enc ) from the collaboration graph 304 and two decryption keys Key N dec and Key O dec from its own private summary graph 306 (right part of this graph level). Using Key A enc , User B's client encrypts the Key N dec and Key O dec and stores them 516 on User A's node in the collaboration graph 308.

Der Client von Benutzer A ruft die beiden verschlüsselten Schlüssel aus Knoten von Benutzer A ab und entschlüsselt sie mit KeyA dec. Im Speicher der Workstation erzeugt der Client zwei zusammenfassende Knoten N und O, indem er die Knoten des öffentlichen Zusammenfassungsgraphen kopiert, KeyN dec und KeyO dec entsprechend speichert und (optional) die beiden neuen Knoten N und O anreichert, indem er die Subgraphen 402, 404, die sich auf die Knoten N und O beziehen, mit einem von Benutzer A vorausgewählten Algorithmus zusammenfasst. Schließlich verschlüsselt der Client die beiden neuen zusammenfassenden Knoten mit KeyA enc und addiert sie zum privaten Zusammenfassungsgraphen 306 (rechter Teil der Wissens-Subgraphen-Ebene) von Benutzer A.User A's client retrieves the two encrypted keys from User A's nodes and decrypts them using Key A dec . In the workstation's memory, the client creates two summary nodes N and O by copying the public summary graph nodes, storing Key N dec and Key O dec accordingly, and (optionally) enriching the two new nodes N and O by creating subgraphs 402 , 404 relating to nodes N and O with an algorithm preselected by user A. Finally, the client encrypts the two new summary nodes with key A enc and adds them to user A's private summary graph 306 (right part of knowledge subgraph level).

Schreibzugriffwrite access

Das Ändern von Knoten oder Kanten eines verschlüsselten Wissens-Graphen beinhaltet, dass die Verschlüsselung in den Schreibprozess einbezogen wird. Wenn die Speicherung in einfachen Dateien erfolgt (jede Datei repräsentiert einen Knoten und seine Kanten), muss der Benutzer nur eine Datei pro Knotenaktualisierung verschlüsseln. Falls eine Wissens-Graphen-Datenbank implementiert ist, wird die Verschlüsselung auf Spaltenebene oder (vorzugsweise) auf Feldebene verwendet, um den Berechnungsaufwand für eine Knoten-Aktualisierung zu minimieren.Changing nodes or edges of an encrypted knowledge graph involves including the encryption in the writing process. If storage is in flat files (each file represents a node and its edges), the user only needs to encrypt one file per node update. If a knowledge graph database is implemented, column level or (preferably) field level encryption is used to minimize the computational cost of a node update.

Bei der Arbeit in einer Mehrbenutzerumgebung ist zu bedenken, dass die Verschlüsselung die Benutzer nicht daran hindert, Daten in möglicherweise böswilliger Absicht zu überschreiben oder zu löschen. Dieses Verfahren unterstützt zwei Herangehensweisen:When working in a multi-user environment, it is important to remember that encryption does not prevent users from overwriting or copying data with potentially malicious intent Clear. This procedure supports two approaches:

Herangehensweise A) Bei einer Implementierung kann der Speicher allen Benutzern uneingeschränkten Schreibzugriff gewähren. Dies bedeutet, dass (1) ein Kollaborateur, der den entsprechenden Verschlüsselungsschlüssel empfangen hat, Inhalte so aktualisieren kann, dass der Eigentümer nicht unterscheiden kann, welcher der Kollaborateure einen Knoten aktualisiert hat, wenn mehrere Kollaborateure Schreibzugriff empfangen haben, und (2) jeder Benutzer Inhalte unabhängig vom Besitz eines Schlüssels löschen kann.Approach A) In one implementation, the store can grant unrestricted write access to all users. This means that (1) a collaborator who has received the appropriate encryption key can update content in such a way that the owner cannot distinguish which of the collaborators updated a node when multiple collaborators have received write access, and (2) any user Can delete content regardless of ownership of a key.

Für diese Implementierung wird das folgende Verfahren bereitgestellt. Für jeden Knoten (einschließlich seiner Kanten) wird nach einem Schreibvorgang ein Hash-Schlüssel berechnet. Es ist zu beachten, dass eine Löschung den Hash-Schlüssel 0 zur Folge hat. Der Eigentümer pflegt ein Register aller Hash-Schlüssel seiner Subgraphen und ein Backup aller Subgraphen. Diese können entweder auf der Workstation des Nutzers oder auf einem separaten zentralen Speichersystem (nicht abgebildet) gespeichert werden. In einem vordefinierten Intervall prüft der Client die aktuellen Hash-Schlüssel und informiert den Benutzer im Falle einer Abweichung über einen Schreib- oder Löschvorgang auf einem Subgraphen. Der Benutzer kann sich für eine Rollback-Operation entscheiden.The following procedure is provided for this implementation. A hash key is calculated for each node (including its edges) after a write operation. Note that deletion results in hash key 0. The owner maintains a register of all hash keys of its subgraphs and a backup of all subgraphs. These can be stored either on the user's workstation or on a separate central storage system (not shown). At a predefined interval, the client checks the current hash key and, in the event of a discrepancy, informs the user about a write or delete operation on a subgraph. The user can opt for a rollback operation.

Aus der Sicht des Prozesses funktioniert das Anfordern und Gewähren von Schreibzugriff genauso wie das Anfordern und Gewähren von Lesezugriff, aber zusätzlich zu den Entschlüsselungsschlüsseln und den Verschlüsselungsschlüsseln für die Subgraphen im Geltungsbereich müssen die Schlüssel (in verschlüsseltem Format) zum Kollaborationsgraphen des Anforderers und wiederum zum privaten Zusammenfassungsgraphen des Anforderers hinzugefügt werden.From the point of view of the process, requesting and granting write access works the same as requesting and granting read access, but in addition to the decryption keys and the encryption keys for the in-scope subgraphs, the keys (in encrypted format) must go to the requestor's collaboration graph and in turn to the private Summary graphs of the requester are added.

Diese Herangehensweise hat den Vorteil, dass Änderungen von eingeladenen Kollaborateuren in Echtzeit ausgeführt werden können.This approach has the advantage that changes can be made in real time by invited collaborators.

Herangehensweise B) Bei einer anderen Implementierung darf der Ersteller eines Subgraphen nur einen Subgraphen ändern, genauer gesagt, das Datenobjekt, das den Subgraphen enthält. Falls die Speicherung als einfache Dateien implementiert ist, kann das Datenobjekt ein Verzeichnis sein. Ist eine Wissens-Graphen-Datenbank implementiert, so ist das Datenobjekt eine Datenbanktabelle.Approach B) In another implementation, the creator of a subgraph is only allowed to change a subgraph, specifically the data object containing the subgraph. If storage is implemented as simple files, the data object can be a directory. If a knowledge graph database is implemented, the data object is a database table.

Anfänglich, wenn ein Benutzer dem System beitritt, erzeugt der Client eine Benutzer-ID. Die Benutzer-ID wird auf der Workstation gespeichert. Immer wenn ein neuer Subgraph/Datenobjekt erstellt wird, wird diese Benutzerkennung als Metadaten mit dem Datenobjekt gespeichert. Der Client sendet die Benutzer-ID mit jeder Anforderung zum Schreiben. Wenn das Speichersystem eine Anforderung zum Schreiben auf das Datenobjekt empfängt, wird die Benutzer-ID mit den Metadaten des Datenobjekts verglichen, und nur im Falle einer Übereinstimmung führt das Speichersystem den Schreibvorgang aus. Aktualisierungen durch Kollaborateure werden (über den Benutzer-Knoten des Eigentümers) als geänderte Knoten zum Eigentümer des Subgraphen transportiert, d. h. entweder als einfache Datei oder als Datenbanktabellenzeile. Der Client des Eigentümers zeigt dem Eigentümer die Änderung in Verbindung mit dem umgebenden Wissens-Graphen an, und der Eigentümer entscheidet, ob er die Änderung akzeptiert oder ablehnt. Bei vertrauenswürdigen Kollaborateuren kann der Eigentümer beschließen, die Änderungen automatisch zu akzeptieren. Nach der Annahme fügt der Client des Eigentümers die Änderungen dem Subgraphen hinzu, verschlüsselt mit dem entsprechenden Schlüssel des Subgraphen.Initially when a user joins the system, the client creates a user ID. The user ID is stored on the workstation. Whenever a new subgraph/data object is created, this user identifier is stored as metadata with the data object. The client sends the user ID with each write request. When the storage system receives a request to write to the data object, the user ID is compared to the metadata of the data object and only if there is a match does the storage system perform the write operation. Updates by collaborators are transported (via the owner's user node) as changed nodes to the subgraph's owner, i. H. either as a simple file or as a database table row. The owner's client indicates the change to the owner in conjunction with the surrounding knowledge graph, and the owner decides whether to accept or reject the change. For trusted collaborators, the owner can choose to automatically accept the changes. Upon acceptance, the owner's client appends the changes to the subgraph, encrypted with the subgraph's corresponding key.

Diese Herangehensweise hat den Vorteil, dass der Eigentümer Änderungen kontrolliert, bevor sie wirksam werden. Somit kann in einer kollaborativen Umgebung ein höheres Maß an inhaltlicher Konsistenz erreicht werden.The advantage of this approach is that the owner controls changes before they take effect. Thus, a higher degree of content consistency can be achieved in a collaborative environment.

Entfernen von ZugriffRemoving Access

Die Entfernung des Zugriffs wird durch Wiederverschlüsslung ausgeführt, d. h. mit KeyX enc verschlüsselte Inhalte, die bisher mit KeyX dec entschlüsselt werden konnten, werden so verarbeitet, dass sie nur mit dem neuen KeyY dec entschlüsselt werden können. Für die Wiederverschlüsselung wird eine Kombination aus KeyX dec und KeyY enc verwendet.The removal of access is performed by re-encryption, ie content encrypted with Key X enc that could previously be decrypted with Key X dec is processed in such a way that it can only be decrypted with the new Key Y dec . A combination of Key X dec and Key Y enc is used for re-encryption.

Im Stand der Technik wird das Wiederverschlüsseln meist im Zusammenhang mit der Proxy-Wiederverschlüsselung (PRE) diskutiert. Bei der vorliegenden Erfindung wird ein kombinierter Schlüssel erzeugt, um einen Subgraphen direkt zu verschlüsseln, d. h. ohne ihn zuerst zu entschlüsseln und anschließend zu verschlüsseln, d. h. ohne den Subgraphen in der Zeitperiode zwischen der abgeschlossenen Entschlüsselung und dem Beginn der Verschlüsselung auszusetzen.In the prior art, re-encryption is mostly discussed in connection with proxy re-encryption (PRE). In the present invention, a combined key is generated to encrypt a subgraph directly, i. H. without first decrypting it and then encrypting it, d. H. without suspending the subgraph in the time period between the completed decryption and the beginning of the encryption.

6 zeigt ein Blockdiagramm eines Flussdiagramms des Sub-Prozesses „Entfernen von Zugriff“. In Anlehnung an das vorangehende Beispiel möchte Benutzer B den Zugriff von Benutzer A nur auf Subgraphen N, 602, entfernen. Der Client von Benutzer B erzeugt, 604, ein neues Schlüsselpaar (KeyM dec, KeyM enc) und einen kombinierten Schlüssel [KeyN dec | KeyM enc]. Der Client verschlüsselt, 606, den Subgraphen N mit dem Schlüssel [KeyN dec | KeyMenc] und speichert 608 eine Benachrichtigung über die Entfernung des Zugriffs auf den Knoten von Benutzer A im Kollaborationsgraphen. Der Client von Benutzer A entfernt 610 den Zusammenfassungsknoten aus dem privaten Zusammenfassungsgraphen von Benutzer A. 6 Figure 12 shows a block diagram of a flowchart of the Remove Access sub-process. Following the previous example, user B wants to remove user A's access 602 to subgraph N only. User B's client creates 604 a new key pair (Key M dec , Key M enc ) and a combined key [Key N dec | Key Menc ] . The client encrypts 606, the subgraph N with key [Key N dec | Key Menc ] and stores 608 a notification of the removal of access to user A's node in the collaboration graph. User A's client removes 610 the summary node from user A's private summary graph.

Für den Fall, dass Benutzer B den Subgraphen N mit anderen Benutzern (z. B. C und D) geteilt hat und möchte, dass diese den Zugriff weiterhin haben, speichert der Client von Benutzer B auch eine Benachrichtigung über das erneute Verschlüsseln auf den Knoten von Benutzer C und Benutzer D zusammen mit dem neuen Entschlüsselungsschlüssel KeyM dec, der mit KeyC enc bzw. mit KeyD enc verschlüsselt wurde, um sicherzustellen, dass nur Benutzer C und D KeyM dec verwenden können.In case user B has shared subgraph N with other users (e.g. C and D) and wants them to continue having access, user B's client also stores a re-encryption notification on the nodes from user C and user D along with the new decryption key Key M dec encrypted with Key C enc and with Key D enc respectively to ensure that only users C and D can use Key M dec .

Durchsuchen eines GraphenBrowsing a graph

Es ist zu bedenken, dass unverschlüsselte Daten, die zu einem privaten Zusammenfassungsgraphen 306 oder Inhaltsgraphen 308 gehören, nur auf den Workstations der Benutzer gespeichert werden. Die Pufferung eines Teils eines Graphen auf den Workstations kann die Leistung verbessern, und je größer der Puffer ist, desto höher ist in der Regel die Leistung. Das Verfahren erfordert jedoch keine Pufferung in einer bestimmten Größe.It should be noted that unencrypted data associated with a private summary graph 306 or content graph 308 is stored only on users' workstations. Buffering a portion of a graph on the workstations can improve performance, and typically the larger the buffer, the better the performance. However, the method does not require buffering of any particular size.

Eine Graphen-Suche beginnt an einem bestimmten Knoten (oder einer Gruppe von Knoten bei paralleler Suche) und durchläuft den Graphen, indem sie den Kanten folgt. Zu Beginn der Suche wird der gegebene Knoten entschlüsselt (falls er nicht bereits unverschlüsselt im Puffer des Clients liegt). Während der Prozess der Suche den ersten Knoten verarbeitet, werden parallel dazu alle mit dem ersten Knoten verbundenen Knoten entschlüsselt. Während die Suche den Inhalt des n-ten Knotens verarbeitet, werden wiederum alle mit dem n-ten Knoten verbundenen Knoten entschlüsselt. Falls der Client-Puffer voll ist, werden die Knoten am Anfang des Suchpfades aus dem Puffer entfernt.A graph search starts at a given node (or a set of nodes in parallel search) and traverses the graph following the edges. At the beginning of the search, the given node is decrypted (if it is not already unencrypted in the client's buffer). While the search process is processing the first node, all nodes connected to the first node are decrypted in parallel. In turn, while the search processes the contents of the nth node, all nodes connected to the nth node are decrypted. If the client buffer is full, the nodes at the beginning of the search path are removed from the buffer.

Überschreitet der Suchpfad eine Subgraphen-Grenze, indem er entweder in einen anderen Subgraphen desselben Benutzers oder eines Kollaborateurs eintritt, wird der Entschlüsselungsschlüssel ersetzt. In einer Implementierung prüft der Prozess vorab im privaten Zusammenfassungsgraphen, ob der aktuelle Entschlüsselungsschlüssel für den nachfolgenden Knoten gültig ist. In einer anderen Implementierung holt der Suchprozess nur dann einen Verschlüsselungsschlüssel aus dem Zusammenfassungsgraph, wenn die Entschlüsselung eines Knotens aufgrund der Verwendung eines falschen Schlüssels fehlgeschlagen ist.If the search path crosses a subgraph boundary, either by entering another subgraph of the same user or a collaborator, the decryption key is replaced. In one implementation, the process checks beforehand in the private summary graph whether the current decryption key is valid for the subsequent node. In another implementation, the search process retrieves an encryption key from the summary graph only if a node's decryption failed due to the use of an incorrect key.

Gelangt der Prozess in einen Subgraphen, für den kein Entschlüsselungsschlüssel verfügbar ist, z. B. weil der Kollaborateur den Zugriff zurückgezogen (d. h. den Subgraphen wiederverschlüsselt) hat, betrachtet der Suchalgorithmus die Kante zu diesem Subgraphen als nicht vorhanden und leitet den Suchpfad um.If the process enters a subgraph for which no decryption key is available, e.g. e.g. because the collaborator revoked access (i.e. re-encrypted the subgraph), the search algorithm considers the edge to that subgraph non-existent and redirects the search path.

Verwalten von Wissens-SubgraphenManaging knowledge subgraphs

Falls der Eigentümer eines Subgraphen nur Teile des Subgraphen mit einem Kollaborateur teilen möchte, muss er den Subgraphen aufteilen. Der Client entschlüsselt den Subgraphen auf der Workstation, teilt den Subgraphen unter Verwendung des ausgewählten Verfahrens auf, verschlüsselt den neuen Satz von Subgraphen mit neuen, unterschiedlichen Schlüsseln, ersetzt den einzelnen Subgraphen durch den betreffenden Satz von Subgraphen und aktualisiert den öffentlichen Zusammenfassungsgraphen und den privaten Zusammenfassungsgraphen des Besitzers. Damit die Kollaborateure ihren Zugriff behalten, verschlüsselt der Client den neuen Satz von Subgraphen-Schlüsseln mit den Schlüsseln der Kollaborateure und speichert sie auf den Knoten der jeweiligen Benutzer. Hinzufügung wird auf den Knoten der Benutzer eine Nachricht gespeichert, die sich auf den aktualisierten öffentlichen Zusammenfassungsgraphen bezieht, so dass der Client jedes Kollaborateurs den privaten Zusammenfassungsgraphen entsprechend aktualisieren kann.If the owner of a subgraph only wants to share parts of the subgraph with a collaborator, he must split the subgraph. The client decrypts the subgraph at the workstation, splits the subgraph using the selected method, encrypts the new set of subgraphs with new, different keys, replaces each subgraph with the relevant set of subgraphs, and updates the public summary graph and the private summary graph of the owner. In order for the collaborators to retain their access, the client encrypts the new set of subgraph keys with the collaborators' keys and stores them on the respective users' nodes. Upon addition, a message related to the updated public summary graph is stored on the users' nodes, so that each collaborator's client can update the private summary graph accordingly.

Falls der Eigentümer eines Subgraphen mehrere Subgraphen zu einem Subgraphen zusammenfassen möchte, wählt er die Subgraphen im Client aus. Der Client ermittelt den größten der Subgraphen entweder im Begriff der Anzahl der Knoten oder im Begriff des von den Knoten verwendeten Gesamtspeichers. Der Client entschlüsselt die anderen n-1 Subgraphen auf den Workstations, verschlüsselt sie mit dem Schlüssel des größten Subgraphen, ersetzt die Subgraphen der neu verschlüsselten Subgraphen und aktualisiert den öffentlichen Zusammenfassungsgraphen und den privaten Zusammenfassungsgraphen des Besitzers. Für die Kollaborateure, die zuvor Zugriff auf mindestens den größten Subgraphen hatten, speichert der Client eine Nachricht an den Knoten der Kollaborateure, um sie über die Aktualisierung des Zusammenfassungsgraphen zu informieren. Für Kollaborateure, die früher Zugriff auf andere Subgraphen, aber nicht auf den größten Subgraphen hatten, speichert der Client den persönlich verschlüsselten Subgraphen-Verschlüsselungsschlüssel und eine Nachricht an die Knoten der Kollaborateure, um sie über die Aktualisierung des Zusammenfassungsgraphen zu informieren.If the owner of a subgraph wants to combine several subgraphs into one subgraph, he selects the subgraphs in the client. The client determines the largest of the subgraphs either in terms of the number of nodes or in terms of the total memory used by the nodes. The client decrypts the other n-1 subgraphs on the workstations, encrypts them with the key of the largest subgraph, replaces the subgraphs of the newly encrypted subgraphs, and updates the owner's public summary graph and private summary graph. For the collaborators that previously had access to at least the largest subgraph, the client stores a message at the collaborators' nodes to inform them of the summary graph update. For collaborators who previously had access to other subgraphs but not the largest subgraph, the client stores the personally encrypted subgraph encryption key and a message to the collaborators' nodes to notify them of the summary graph update.

Alternativ könnte der Eigentümer beschließen, Kollaborateuren, die nicht zuerst Zugriff auf alle Subgraphen hatten, keinen Zugriff auf konsolidierte Graphen zu gewähren.Alternatively, the owner might decide to not access collaborators first all subgraphs had to not grant access to consolidated graphs.

7 zeigt ein Blockdiagramm des Wissens-Graphen-Verwaltungssystems 700 zur Verwaltung von Zugriffsrechten auf einen Wissens-Graphen, der in einer oder mehreren Speichereinheiten gespeichert ist und dessen Inhalt von einer Mehrzahl von Entitäten verwaltet wird. Das System 700 umfasst eine Aufteilungseinheit 702, die geeignet ist, für jedes Benutzersystem einer Mehrzahl von Benutzersystemen seinen jeweiligen Teil des Wissens-Graphen in eine Mehrzahl von Wissens-Subgraphen aufzuteilen (siehe 3, 312, 312, 314), eine Verschlüsselungseinheit 704, die geeignet ist, jeden der Wissens-Subgraphen unter Verwendung eines privaten Schlüssels eines Wissens-Subgraphen-spezifischen asymmetrischen öffentlichen/privaten Schlüsselpaares zu verschlüsseln, und einen Generator 706, der geeignet ist, eine Mehrzahl von privaten Zusammenfassungsgraphen zu erzeugen, einen für jedes Benutzersystem. Dabei umfasst jeder private Zusammenfassungsgraph (siehe 3, 306) einen Knoten für jeden Wissens-Subgraphen des Benutzersystems, wobei jeder Knoten auch das Wissens-Subgraphen-spezifische asymmetrische öffentliche/private Schlüsselpaar umfasst. 7 FIG. 7 shows a block diagram of the knowledge graph management system 700 for managing access rights to a knowledge graph that is stored in one or more storage units and the content of which is managed by a plurality of entities. The system 700 comprises a dividing unit 702 which is suitable for dividing, for each user system of a plurality of user systems, its respective part of the knowledge graph into a plurality of knowledge subgraphs (see FIG 3 , 312, 312, 314), an encryption unit 704 adapted to encrypt each of the knowledge subgraphs using a private key of a knowledge subgraph-specific asymmetric public/private key pair, and a generator 706 adapted to generate a create multiple private summary graphs, one for each user system. Each private summary graph (see 3 , 306) a node for each knowledge subgraph of the user system, each node also comprising the knowledge subgraph specific asymmetric public/private key pair.

Das System 700 umfasst auch eine Verwaltungseinheit 708, die geeignet ist, einen Kollaborationsgraphen zu pflegen, der einen Knoten pro Benutzersystem und Kanten umfasst, die Kollaborationen zwischen den Benutzern darstellen; ein Abbildungsmodul 710, das geeignet ist, alle privaten Zusammenfassungsgraphen aller Benutzersysteme auf einen öffentlichen Zusammenfassungsgraphen abzubilden, wobei jeder Knoten des öffentlichen Zusammenfassungsgraphen weniger Daten umfasst als der zugehörige Knoten der zugehörigen privaten Zusammenfassungsgraphen, und wobei keiner der Knoten des Zusammenfassungsgraphen irgendeinen beliebigen der privaten Schlüssel umfasst, die zur Verschlüsselung irgendeines beliebigen der Wissens-Subgraphen verwendet werden; und ein Zugriffsmodul 712, das geeignet ist, Zugriff auf einen ausgewählten Wissens-Subgraphen von einem ersten Benutzersystem zu einem zweiten Benutzersystem zu gewähren, indem es einen Entschlüsselungsschlüssel, der sich auf den ausgewählten Wissens-Subgraphen bezieht, von dem ersten Benutzersystem zu dem zweiten Benutzersystem bereitstellt.The system 700 also comprises a management unit 708 suitable for maintaining a collaboration graph comprising one node per user system and edges representing collaborations between the users; a mapping module 710 adapted to map all private summary graphs of all user systems to a public summary graph, each node of the public summary graph comprising less data than the corresponding node of the corresponding private summary graph, and wherein none of the node of the summary graph comprises any of the private keys , which are used to encode any one of the knowledge subgraphs; and an access module 712 adapted to grant access to a selected knowledge subgraph from a first user system to a second user system by sending a decryption key related to the selected knowledge subgraph from the first user system to the second user system provides.

Ausführungsformen der Erfindung können zusammen mit praktisch jedem Typ von Computer implementiert werden, unabhängig von der Plattform, die zum Speichern und/oder Ausführen von Programmcode geeignet ist. 8 zeigt als Beispiel ein Computersystem 800, das für die Ausführung von Programmcode im Zusammenhang mit dem vorgeschlagenen Verfahren geeignet ist. Jede Workstation 202 (siehe 2) kann in Form des Rechnersystems 800 implementiert werden, ebenso wie jedes System, das das zentrale Speichersystem 204 (siehe 2) und die Knoten und Server steuert, die die Wissens-Graphen und Wissens-Subgraphen kontrollieren.Embodiments of the invention may be implemented in conjunction with virtually any type of computer, regardless of platform, suitable for storing and/or executing program code. 8th shows a computer system 800 as an example, which is suitable for the execution of program code in connection with the proposed method. Each workstation 202 (see 2 ) may be implemented in the form of computer system 800, as well as any system that includes central storage system 204 (see 2 ) and controls the nodes and servers that control the knowledge graphs and knowledge subgraphs.

Das Computersystem 800 ist nur ein Beispiel für ein geeignetes Computersystem und soll keine Beschränkung des Anwendungsbereichs oder der Funktionalität von Ausführungsformen der hier beschriebenen Erfindung vorschlagen, unabhängig davon, ob das Computersystem 800 in der Lage ist, eine der oben genannten Funktionen zu implementieren und/oder auszuführen. Das Computersystem 800 enthält Komponenten, die mit zahlreichen anderen allgemeinen oder speziellen Computersystemumgebungen oder - konfigurationen kompatibel sind. Beispiele für bekannte Computersysteme, -umgebungen und/oder -konfigurationen, die für die Verwendung mit dem Computersystem/Server 800 geeignet sein können, sind unter anderem Personalcomputersysteme, Servercomputersysteme, Thin-Clients, Thick-Clients, Handheld- oder Laptop-Geräte, Multiprozessorsysteme, mikroprozessorbasierte Systeme, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Großrechnersysteme und verteilte Cloud-Computing-Umgebungen, die eines der oben genannten Systeme oder Geräte enthalten, und dergleichen. Computersystem/Server 800 kann im allgemeinen Kontext von Anweisungen beschrieben werden, die von einem Computersystem 800 ausgeführt werden, wie z.B. Programm-Module. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. enthalten, die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen implementieren. Computersystem/Server 800 kann in verteilten Cloud-Computing-Umgebungen eingesetzt werden, in denen Aufgaben von entfernten Verarbeitungsgeräten ausgeführt werden, die über ein Kommunikationsnetz miteinander verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich die Programmmodule sowohl in lokalen als auch in entfernten Speichermedien des Computersystems einschließlich Speichergeräten befinden.Computer system 800 is only one example of a suitable computer system and is not intended to suggest any limitation as to the scope or functionality of embodiments of the invention described herein, regardless of whether computer system 800 is capable of implementing any of the above functions and/or to execute. Computer system 800 includes components that are compatible with numerous other general or specific computer system environments or configurations. Examples of known computing systems, environments, and/or configurations that may be suitable for use with computer system/server 800 include personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, among others , microprocessor-based systems, set-top boxes, programmable consumer electronics, network personal computers, minicomputer systems, mainframe systems, and distributed cloud computing environments incorporating any of the foregoing systems or devices, and the like. Computer system/server 800 may be described in the general context of instructions executed by computer system 800, such as program modules. In general, program modules can contain routines, programs, objects, components, logic, data structures, etc. that perform specific tasks or implement specific abstract data types. Computer system/server 800 may be deployed in distributed cloud computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, the program modules can reside in both local and remote storage media of the computer system, including storage devices.

Wie in 8 dargestellt, ist das Computersystem/Server 800 in Form eines Allzweck-Computergeräts dargestellt. Zu den Komponenten von Computersystem/Server 800 können unter anderem ein oder mehrere Prozessoren oder Verarbeitungseinheiten 802, ein Systemspeicher 804 und ein Bus 806 gehören, die verschiedene Systemkomponenten einschließlich des Systemspeichers 804 mit dem Prozessor 802 verbinden. Bus 806 repräsentiert einen oder mehrere von mehreren Typen von Busstrukturen, einschließlich eines Speicherbusses oder Speichercontrollers, eines Peripheriebusses, eines beschleunigten Grafikanschlusses und eines Prozessors oder lokalen Busses, der eine von mehreren Busarchitekturen verwendet. Beispielhafte und nicht einschränkende Beispiele für solche Architekturen sind der ISA-Bus (Industry Standard Architecture), der MCA-Bus (Micro Channel Architecture), der EISA-Bus (Enhanced ISA), der lokale Bus der Video Electronics Standards Association (VESA) und der PCI-Bus (Peripheral Component Interconnects). Computersystem/Server 800 umfasst in der Regel eine Vielzahl von computersystemlesbaren Medien. Bei diesen Medien kann es sich um alle verfügbaren Medien handeln, auf die das Computersystem/Server 800 zugreifen kann, und sie umfassen sowohl flüchtige als auch nicht flüchtige Medien, austauschbare und nicht austauschbare Medien.As in 8th As illustrated, computer system/server 800 is illustrated in the form of a general purpose computing device. The components of computer system/server 800 may include, but are not limited to, one or more processors or processing units 802, system memory 804, and a bus 806 that connects various system components including system memory 804 to processor 802. Bus 806 represents one or more of several types of bus structures, including a memory bus or memory controllers, a peripheral bus, an accelerated graphics port, and a processor or local bus using one of several bus architectures. Illustrative and non-limiting examples of such architectures are the Industry Standard Architecture (ISA) bus, the Micro Channel Architecture (MCA) bus, the Enhanced ISA (EISA) bus, the Video Electronics Standards Association (VESA) local bus, and the PCI bus (Peripheral Component Interconnects). Computer system/server 800 typically includes a variety of computer system-readable media. This media can be any available media that can be accessed by computer system/server 800 and includes both volatile and non-volatile media, removable and non-removable media.

Der Systemspeicher 804 kann computer-systemlesbare Medien in Form eines flüchtigen Speichers umfassen, wie z.B. RAM 808 und/oder Cache-Speicher 810. Computersystem/Server 800 kann ferner andere entfernbare/nicht entfernbare, flüchtige/nicht flüchtige Computersystem-Speichermedien umfassen. Nur als ein Beispiel kann ein Speichersystem 812 zum Lesen von und Schreiben auf ein nicht entfernbares, nicht flüchtiges magnetisches Medium (nicht gezeigt und typischerweise als „Festplatte“ bezeichnet) bereitgestellt werden. Obwohl nicht gezeigt, können ein Magnetplattenlaufwerk zum Lesen von und Schreiben auf eine austauschbare, nichtflüchtige Magnetplatte (z.B. eine „Diskette“) und ein optisches Plattenlaufwerk zum Lesen von oder Schreiben auf eine austauschbare, nichtflüchtige optische Platte wie eine CD-ROM, DVD-ROM oder andere optische Medien bereitgestellt werden. In solchen Fällen kann jedes Laufwerk über eine oder mehrere Datenträgerschnittstellen an den Bus 806 angeschlossen werden. Wie ferner weiter unten dargestellt und beschrieben wird, kann der Speicher 804 mindestens ein Programmprodukt mit einer Reihe (z.B. mindestens einem) von Programmmodulen enthalten, die so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Erfindung ausführen.System memory 804 may include computer system-readable media in the form of volatile memory, such as RAM 808 and/or cache memory 810. Computer system/server 800 may further include other removable/non-removable, volatile/non-volatile computer system storage media. As an example only, a storage system 812 for reading from and writing to a non-removable, non-volatile magnetic medium (not shown and typically referred to as a "hard drive") may be provided. Although not shown, a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a "floppy disk") and an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media can be provided. In such cases, each drive may be connected to bus 806 through one or more disk interfaces. As further illustrated and described below, memory 804 may include at least one program product having a number (e.g., at least one) of program modules configured to perform the functions of embodiments of the invention.

Das Programm/Dienstprogramm, das eine Menge (mindestens eines) von Programmmodulen 816 hat, kann im Speicher 804 als Beispiel und nicht einschränkend gespeichert werden, sowie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten. Jedes der Betriebssysteme, ein oder mehrere Anwendungsprogramme, andere Programmodule und Programmdaten oder eine Kombination davon kann eine Implementierung einer Netzwerkumgebung enthalten. Die Programmmodule 816 führen im Allgemeinen die hier beschriebenen Funktionen und/oder Methoden der Ausführungsformen der Erfindung aus.By way of example and not limitation, the program/utility having a set (at least one) of program modules 816 may be stored in memory 804, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating systems, one or more application programs, other program modules, and program data, or a combination thereof, may include an implementation of a network environment. The program modules 816 generally perform the functions and/or methods of embodiments of the invention described herein.

Das Computersystem/Server 800 kann auch mit einem oder mehreren externen Geräten 818 wie einer Tastatur, einem Zeigegerät, einem Bildschirm 820 usw. kommunizieren; mit einem oder mehreren Geräten, die es einem Benutzer ermöglichen, mit dem Computersystem/Server 800 zu interagieren; und/oder mit beliebigen Geräten (z.B. Netzwerkkarte, Modem usw.), die es dem Computersystem/Server 800 ermöglichen, mit einem oder mehreren anderen Computergeräten zu kommunizieren. Diese Kommunikation kann über die Ein-/Ausgabeschnittstellen (E/A) 814 erfolgen. Dennoch kann das Computersystem/Server 800 über den Netzwerkadapter 822 mit einem oder mehreren Netzwerken kommunizieren, wie z.B. einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetzwerk (WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet). Wie dargestellt, kann der Netzwerkadapter 822 über den Bus 806 mit den anderen Komponenten des Computersystems/Server 800 kommunizieren. Es ist zu verstehen, dass, obwohl nicht dargestellt, andere Hardware- und/oder Softwarekomponenten in Verbindung mit Computersystem/Server 800 verwendet werden können. Beispiele hierfür sind unter anderem: Mikrocode, Gerätetreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Datenarchivierungs-Speichersysteme usw.Computer system/server 800 may also communicate with one or more external devices 818, such as a keyboard, pointing device, display 820, etc.; with one or more devices that enable a user to interact with computer system/server 800; and/or any device (e.g., network card, modem, etc.) that enables computer system/server 800 to communicate with one or more other computing devices. This communication can be done via the input/output (I/O) interfaces 814. However, computer system/server 800 may communicate with one or more networks, such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet), via network adapter 822. As illustrated, network adapter 822 can communicate with the other components of computer system/server 800 via bus 806 . It is understood that although not shown, other hardware and/or software components may be used in connection with computer system/server 800. Examples include but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives and data archival storage systems, etc.

Hinzufügung kann das Wissens-Graphen-Verwaltungssystem 700 zur Verwaltung von Zugriffsrechten auf einen Wissens-Graphen - und insbesondere auf Teile davon - an den Bus 806 angeschlossen werden.In addition, the knowledge graph management system 700 can be connected to the bus 806 to manage access rights to a knowledge graph - and in particular to parts thereof.

Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung erfolgten zum Zweck der Veranschaulichung, erheben jedoch keinen Anspruch auf Vollständigkeit und sind auch nicht als auf die offengelegten Ausführungsformen beschränkt zu verstehen. Viele Ab- und Veränderungen sind für den Fachmann erkennbar, ohne vom Umfang und Wesen der beschriebenen Ausführungsformen abzuweichen. Die hier verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber auf dem Markt angetroffener Technologien am besten zu erklären oder um anderen Fachleuten das Verständnis der hier offengelegten Ausführungsformen zu ermöglichen.The descriptions of the various embodiments of the present invention have been presented for purposes of illustration but are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and changes will become apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen to best explain the principles of the embodiments, practical application, or technical improvement over technologies found in the marketplace, or to enable others skilled in the art to understand the embodiments disclosed herein.

Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium (oder Medien) mit darauf befindlichen computerlesbaren Programmbefehlen umfassen, die einen Prozessor veranlassen, Aspekte der vorliegenden Erfindung auszuführen.The present invention can be a system, a method and/or a computer program product. The computer program product may comprise a computer-readable storage medium (or media) having computer-readable program instructions embodied thereon causing a processor to carry out aspects of the present invention.

Das computerlesbare Speichermedium kann ein greifbares Gerät sein, das Anweisungen zur Verwendung durch ein Befehlsausführungsgerät speichern und aufbewahren kann. Das computerlesbare Speichermedium kann zum Beispiel, aber nicht ausschließlich, ein elektronisches Speichergerät, ein magnetisches Speichergerät, ein optisches Speichergerät, ein elektromagnetisches Speichergerät, ein Halbleiterspeichergerät oder eine geeignete Kombination der vorgenannten sein. Eine nicht erschöpfende Liste spezifischerer Beispiele für ein computerlesbares Speichermedium umfasst Folgendes: eine tragbare Computerdiskette, eine Festplatte, einen Speicher mit wahlfreiem Zugriff (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), einen statischen Speicher mit wahlfreiem Zugriff (SRAM), einen tragbaren Compact-Disc-Schreib-Lesespeicher (CD-ROM), eine digitale vielseitige Platte (DVD), einen Speicherstick, eine Diskette, eine mechanisch kodierte Vorrichtung wie Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen aufgezeichnet sind, sowie jede geeignete Kombination der vorstehenden Elemente. Ein computerlesbares Speichermedium, wie es hier verwendet wird, ist nicht als vorübergehendes Signal an sich auszulegen, wie z.B. Radiowellen oder andere sich frei verbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich über einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z.B. Lichtimpulse, die durch ein Glasfaserkabel laufen), oder elektrische Signale, die über einen Draht übertragen werden.The computer-readable storage medium may be a tangible device that can store and maintain instructions for use by an instruction execution device. The computer-readable storage medium may be, for example but 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 a computer-readable storage medium includes the following: a portable computer floppy disk, a hard disk, random-access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM, or flash memory), static random access memory (SRAM), portable compact disc random access memory (CD-ROM), digital versatile disc (DVD), memory stick, floppy disk, mechanically encoded device such as punch cards or raised structures in a groove on which instructions are recorded, and any suitable combination of the foregoing. A computer-readable storage medium, as used herein, is not intended to be a transient signal in itself, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating in a waveguide or other transmission media (e.g., pulses of light traveling through a fiber optic cable running), or electrical signals transmitted over a wire.

Die hierin beschriebenen computerlesbaren Programmanweisungen können von einem computerlesbaren Speichermedium oder über ein Netzwerk, z.B. das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk, auf die entsprechenden Rechen- und Verarbeitungsgeräte heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, optische Übertragungsfasern, drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server umfassen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jedem Rechen-/Prozessorgerät empfängt computerlesbare Programmbefehle vom Netzwerk und leitet die computerlesbaren Programmbefehle zur Speicherung in einem computerlesbaren Speichermedium innerhalb des jeweiligen Rechen-/Prozessorgeräts weiter.The computer-readable program instructions described herein may be downloaded to appropriate computing and processing devices from a computer-readable storage medium or over a network, such as the Internet, a local area network, a wide area network, and/or a wireless network. The network may include copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage on a computer-readable storage medium within the respective computing/processing device.

Bei computerlesbaren Programmbefehlen zur Ausführung von Operationen der vorliegenden Erfindung kann es sich um Assemblerbefehle, Befehlssatzarchitektur-(ISA)-Befehle, Maschinenbefehle, maschinenabhängige Befehle, Mikrocode, Firmware-Befehle, Zustandseinstellungsdaten oder entweder um Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen, einschließlich einer objektorientierten Programmiersprache wie Smalltalk, C++ oder dergleichen, und herkömmlichen prozeduralen Programmiersprachen wie der Programmiersprache „C“ oder ähnlichen Programmiersprachen geschrieben sind. Die computerlesbaren Programmbefehle können vollständig auf einem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernten Computer oder vollständig auf dem entfernten Computer oder Server ausgeführt werden. Im letzteren Fall kann der Ferncomputer mit dem Computer des Benutzers über jede Art von Netzwerk verbunden sein, einschließlich eines lokalen Netzwerks (LAN) oder eines Weitverkehrsnetzwerks (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (z.B. über das Internet mit Hilfe eines Internet Service Providers). In einigen Ausführungsformen können elektronische Schaltungen, einschließlich z.B. programmierbare Logikschaltungen, feldprogrammierbare Gatterfelder (FPGA) oder programmierbare Logikfelder (PLA), die computerlesbaren Programmbefehle ausführen, indem sie die Statusinformationen der computerlesbaren Programmbefehle zur Personalisierung der elektronischen Schaltung verwenden, um Aspekte der vorliegenden Erfindung auszuführen.Computer readable program instructions for performing operations of the present invention may be assembly language instructions, instruction set architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state setting data, or either source code or object code, in any combination of one or more programming languages, including an object-oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions may execute entirely on a user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on the remote computer or server. In the latter case, the remote computer can be connected to the user's computer over any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be made to an external computer (e.g., over the Internet using an internet service provider). In some embodiments, electronic circuits, including, for example, programmable logic circuits, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA), that execute computer-readable program instructions by using the status information of the computer-readable program instructions to personalize the electronic circuit to perform aspects of the present invention.

Aspekte der vorliegenden Erfindung werden hier unter Bezugnahme auf Flussdiagrammabbildungen und/oder Blockdiagramme von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird vorausgesetzt, dass jeder Block der Flussdiagrammabbildungen und/oder Blockdiagramme und Kombinationen von Blöcken in den Flussdiagrammabbildungen und/oder Blockdiagrammen durch computerlesbare Programmanweisungen implementiert werden kann.Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It is understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

Diese computerlesbaren Programmbefehle können einem Prozessor eines Allzweckrechners, eines Spezialrechners oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zur Erzeugung einer Maschine zur Verfügung gestellt werden, so dass die Befehle, die über den Prozessor des Rechners oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zur Implementierung der im Flussdiagramm- und/oder Blockdiagrammblock oder in den Blockdiagrammen angegebenen Funktionen/Aktionen schaffen. Diese computerlesbaren Programmbefehle können auch in einem computerlesbaren Speichermedium gespeichert werden, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Vorrichtungen anweisen kann, in einer bestimmten Weise zu funktionieren, so dass das computerlesbare Speichermedium mit den darin gespeicherten Befehlen einen Herstellungsgegenstand umfasst, der Befehle enthält, die Aspekte der im Ablaufdiagramm und/oder im Blockdiagrammblock oder in den Blockdiagrammblöcken spezifizierten Funktion/Handlung implementieren.These computer-readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable computing device to produce a machine, such that the instructions, executed via the processor of the computer or other programmable computing device, provide means for implementing the flowchart shown - and/or create block diagram blocks or functions/actions specified in the block diagrams. These computer-readable program instructions can also be stored on a computer-readable storage medium that includes a computer, a programmable data processing device device and/or other devices to function in a particular manner such that the computer-readable storage medium having the instructions stored thereon comprises an article of manufacture containing instructions that perform aspects of the function specified in the flowchart and/or block diagram block or blocks /Implement plot.

Die computerlesbaren Programmbefehle können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einrichtung geladen werden, um zu bewirken, dass auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einrichtung eine Reihe von Betriebsschritten ausgeführt wird, um einen computerimplementierten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einrichtung ausgeführt werden, die im Flussdiagramm und/oder Blockdiagrammblock oder in den Blockdiagrammblöcken spezifizierten Funktionen/Handlungen implementieren.The computer-readable program instructions may also be loaded onto a computer, other programmable computing device, or other device to cause a series of operational steps to be performed on the computer, other programmable device, or other device to create a computer-implemented process such that the instructions executed on the computer, other programmable device, or other device implement the functions/acts specified in the flowchart and/or block diagram block or block diagrams.

Das Flussdiagramm und die Blockdiagramme in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in dem Flussdiagramm oder den Blockdiagrammen ein Modul, ein Segment oder einen Teil von Code darstellen, der einen oder mehrere ausführbare Befehle zur Implementierung der angegebenen logischen Funktion(en) enthält. Es ist zu beachten, dass in einigen alternativen Implementierungen die in dem Block angegebenen Funktionen außerhalb der in den Figuren angegebenen Reihenfolge auftreten können. So können z.B. zwei nacheinander dargestellte Blöcke im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal in umgekehrter Reihenfolge ausgeführt werden, je nach der betreffenden Funktionalität. Es wird auch darauf hingewiesen, dass jeder Block der Blockdiagramme und/oder veranschaulichenden Flussdiagramme sowie Kombinationen von Blöcken in den Blockdiagrammen und/oder veranschaulichenden Flussdiagrammen durch auf Spezialzweck-Hardware basierende Systeme implementiert werden kann, die die spezifizierten Funktionen oder Handlungen oder Kombinationen von Spezialzweck-Hardware und Computerbefehlen ausführen.The flowchart 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. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which includes one or more executable instructions for implementing the specified logical function(s). It should be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks presented sequentially may execute substantially simultaneously, or the blocks may sometimes execute in reverse order, depending on the functionality involved. It is also noted that each block of the block diagrams and/or illustrative flowcharts, and combinations of blocks in the block diagrams and/or illustrative flowcharts, may be implemented by special purpose hardware based systems that perform the specified functions or acts or combinations of special purpose Run hardware and computer commands.

Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zweck der Veranschaulichung dargestellt, sollen aber nicht erschöpfend oder auf die offenbarten Ausführungsformen beschränkt sein. Viele Modifikationen und Variationen werden für den Durchschnittsfachmann offensichtlich sein, ohne vom Umfang und Geist der Erfindung abzuweichen. Die hier verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsform, die praktische Anwendung oder technische Verbesserung gegenüber am Markt befindlichen Technologien am besten zu erläutern oder Durchschnittsfachleute zu befähigen, die hier offenbarten Ausführungsformen zu verstehen.The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the invention. The terminology used herein was chosen to best explain the principles of the embodiment, practical application, or technical improvement over existing technologies, or to enable those of ordinary skill in the art to understand the embodiments disclosed herein.

Claims (20)

Computer-implementiertes Verfahren zur Verwaltung von Zugriffsrechten auf einen Wissens-Graphen mit Inhalten, die von einer Mehrzahl von Benutzersystemen verwaltet werden, wobei das computer-implementierte Verfahren umfasst: Aufteilen eines jeweiligen Teils des Wissens-Graphen in eine Mehrzahl von Wissens-Subgraphen für jedes Benutzersystem der Mehrzahl von Benutzersystemen durch einen oder mehrere Prozessoren; Verschlüsseln jedes der Wissens-Subgraphen durch einen oder mehrere Prozessoren unter Verwendung eines privaten Schlüssels eines öffentlichen/privaten Schlüsselpaares; Erzeugen einer Mehrzahl von privaten Zusammenfassungsgraphen durch einen oder mehrere Prozessoren, wobei: ein privater Zusammenfassungsgraph für jedes Benutzersystem erzeugt wird, jeder private Zusammenfassungsgraph einen Knoten für jeden Wissens-Subgraphen des jeweiligen Benutzersystems umfasst, und jeder Knoten das öffentliche/private Schlüsselpaar umfasst; Pflegen, durch einen oder mehrere Prozessoren, eines Kollaborationsgraphen, der einen Knoten für jedes Benutzersystem und Kanten umfasst, die Kollaborationen zwischen der Mehrzahl von Benutzersystemen darstellen; Abbilden der Mehrzahl von privaten Zusammenfassungsgraphen der Mehrzahl von Benutzersystemen auf einen öffentlichen Zusammenfassungsgraphen durch einen oder mehrere Prozessoren; und Gewähren von Zugriff auf einen ausgewählten Wissens-Subgraphen von einem ersten Benutzersystem an ein zweites Benutzersystem durch Bereitstellen eines Entschlüsselungsschlüssels, der sich auf den ausgewählten Wissens-Subgraphen bezieht, von dem ersten Benutzersystem an das zweite Benutzersystem durch einen oder mehrere Prozessoren.Computer-implemented method for managing access rights to a knowledge graph with content managed by a plurality of user systems, the computer-implemented method comprising: dividing, by one or more processors, a respective portion of the knowledge graph into a plurality of knowledge subgraphs for each user system of the plurality of user systems; encrypting each of the knowledge subgraphs by one or more processors using a private key of a public/private key pair; generating, by one or more processors, a plurality of private summary graphs, wherein: a private summary graph is generated for each user system, each private summary graph comprises a node for each knowledge subgraph of the respective user system, and each node includes the public/private key pair; maintaining, by one or more processors, a collaboration graph comprising a node for each user system and edges representing collaborations between the plurality of user systems; mapping, by one or more processors, the plurality of private summary graphs of the plurality of user systems to a public summary graph; and granting access to a selected knowledge subgraph from a first user system to a second user system by providing a decryption key related to the selected knowledge subgraph from the first user system to the second user system by one or more processors. Computer-implementiertes Verfahren nach Anspruch 1, das ferner umfasst: Entziehen des Zugriffs auf den ausgewählten Wissens-Subgraphen durch einen oder mehrere Prozessoren für das zweite Benutzersystem durch Wiederverschlüsselung des ausgewählten Wissens-Subgraphen mit einem zweiten privaten Schlüssel eines zweiten Schlüsselpaares.Computer-implemented method claim 1 further comprising: revoking, by one or more processors, access to the selected knowledge subgraph for the second user system by how the encryption of the selected knowledge subgraph with a second private key of a second key pair. Computer-implementiertes Verfahren nach Anspruch 1, das ferner umfasst: Verbinden des Kollaborationsgraphen durch einen oder mehrere Prozessoren, durch: Erstellen, durch einen oder mehrere Prozessoren, eines Kontos für ein neues Benutzersystem in dem Kollaborationsgraphen, wobei das neue Benutzersystem durch einen neuen Knoten dargestellt wird, Aufteilen von Inhalten eines zweiten Wissens-Graphen in eine Mehrzahl von zweiten Wissens-Subgraphen durch einen oder mehrere Prozessoren, Verschlüsseln der Mehrzahl von zweiten Wissens-Subgraphen durch einen oder mehrere Prozessoren, und Hochladen der Mehrzahl von zweiten Wissens-Subgraphen in den Wissens-Graphen durch einen oder mehrere Prozessoren.Computer-implemented method claim 1 further comprising: connecting the collaboration graph by one or more processors by: creating, by one or more processors, an account for a new user system in the collaboration graph, the new user system being represented by a new node, splitting contents of a second knowledge graphs into a plurality of second knowledge subgraphs by one or more processors, encoding by one or more processors the plurality of second knowledge subgraphs, and uploading by one or more processors the plurality of second knowledge subgraphs into the knowledge graph . Computer-implementiertes Verfahren nach Anspruch 1, das ferner umfasst: Gewähren von Lesezugriff auf einen Wissens-Subgraphen eines dritten Benutzersystems an ein viertes Benutzersystem durch Bereitstellen eines öffentlichen Teils des öffentlichen/privaten Schlüsselpaars eines Knotens, der sich auf den Wissens-Graphen bezieht, durch einen oder mehrere Prozessoren.Computer-implemented method claim 1 further comprising: granting read access to a knowledge subgraph of a third user system to a fourth user system by providing, by one or more processors, a public portion of a node's public/private key pair related to the knowledge graph. Computer-implementiertes Verfahren nach Anspruch 4, das ferner umfasst: Hinzufügen von Kanten zwischen Knoten des Wissens-Subgraphen des dritten Benutzersystems und des Wissens-Subgraphen des vierten Benutzersystems durch das vierte Benutzersystem durch einen oder mehrere Prozessoren.Computer-implemented method claim 4 further comprising: the fourth user system adding edges between nodes of the knowledge subgraph of the third user system and the knowledge subgraph of the fourth user system by one or more processors. Das Computer-implementierte Verfahren nach Anspruch 1, das ferner umfasst: Gewähren von Schreibzugriff auf einen Wissens-Subgraphen eines dritten Benutzersystems an ein viertes Benutzersystem durch einen oder mehrere Prozessoren, indem das private/öffentliche Schlüsselpaar des Knotens, der sich auf den Wissens-Graphen bezieht, auf den Zugriff vom dritten Benutzersystem an das vierte Benutzersystem gewährt werden soll, bereitgestellt wird; und Ermöglichen, durch einen oder mehrere Prozessoren, einer Rollback-Option für das dritte Benutzersystem, wenn das vierte Benutzersystem einen Knoten eines Wissens-Subgraphen, der sich auf das dritte Benutzersystem bezieht, geändert hat.The computer-implemented method claim 1 further comprising: granting, by one or more processors, write access to a knowledge subgraph of a third user system to a fourth user system by accessing the third user system's private/public key pair of the node related to the knowledge graph to be granted to the fourth user system; and enabling, by one or more processors, a rollback option for the third user system when the fourth user system has changed a node of a knowledge subgraph related to the third user system. Computer-implementiertes Verfahren nach Anspruch 1, das ferner umfasst: Ermöglichen, durch einen oder mehrere Prozessoren, der Mehrzahl von Benutzersystemen, die gemeinsam auf den Wissens-Graphen zugreifen, die Schritte des Aufteilens, Verschlüsselns, Erzeugens, Pflegens, Abbildens und Gewährens auszuführen.Computer-implemented method claim 1 further comprising: enabling, by one or more processors, the plurality of user systems that collectively access the knowledge graph to perform the splitting, encrypting, generating, maintaining, mapping, and granting steps. Wissens-Graphen-Verwaltungssystem zum Verwalten von Zugriffsrechten auf einen Wissens-Graph, der in einer oder mehreren Speichereinheiten mit Inhalten gespeichert ist, die von einer Mehrzahl von Benutzersystemen verwaltet werden, wobei das Wissens-Graphen-Verwaltungssystem umfasst: eine Aufteilungseinheit, die geeignet ist, einen jeweiligen Teil des Wissens-Graphen in eine Mehrzahl von Wissens-Subgraphen für jedes Benutzersystem der Mehrzahl von Benutzersystemen aufzuteilen; eine Verschlüsselungseinheit, die zum Verschlüsseln jedes der Wissens-Subgraphen unter Verwendung eines privaten Schlüssels eines öffentlich/privaten Schlüsselpaares geeignet ist; einen Generator, der zum Erzeugen einer Mehrzahl von privaten Zusammenfassungsgraphen geeignet ist, wobei: ein privater Zusammenfassungsgraph für jedes Benutzersystem erzeugt wird, jeder private Zusammenfassungsgraph einen Knoten für jeden Wissens-Subgraphen des jeweiligen Benutzersystems umfasst, und jeder Knoten das Paar öffentlicher/privater Schlüssel umfasst; eine Verwaltungseinheit, die geeignet ist, einen Kollaborationsgraphen zu pflegen, der einen Knoten für jedes Benutzersystem und Kanten umfasst, die Kollaborationen zwischen der Mehrzahl von Benutzersystemen darstellen; ein Abbildungsmodul, das geeignet ist, die Mehrzahl von privaten Zusammenfassungsgraphen der Mehrzahl von Benutzersystemen auf einen öffentlichen Zusammenfassungsgraphen abzubilden; und ein Zugriffsmodul, das geeignet ist, Zugriff auf einen ausgewählten Wissens-Subgraphen von einem ersten Benutzersystem an ein zweites Benutzersystem zu gewähren, indem ein Entschlüsselungsschlüssel bezüglich des ausgewählten Wissens-Subgraphen von dem ersten Benutzersystem an das zweite Benutzersystem bereitgestellt wird.Knowledge graph management system for managing access rights to a knowledge graph stored in one or more storage units with content managed by a plurality of user systems, the knowledge graph management system comprising: a splitting unit adapted to split a respective part of the knowledge graph into a plurality of knowledge subgraphs for each user system of the plurality of user systems; an encryption unit adapted to encrypt each of the knowledge subgraphs using a private key of a public/private key pair; a generator suitable for generating a plurality of private summary graphs, wherein: a private summary graph is generated for each user system, each private summary graph comprises a node for each knowledge subgraph of the respective user system, and each node comprises the public/private key pair; a manager adapted to maintain a collaboration graph comprising a node for each user system and edges representing collaborations between the plurality of user systems; a mapping module operable to map the plurality of private summary graphs of the plurality of user systems to a public summary graph; and an access module adapted to grant access to a selected knowledge subgraph from a first user system to a second user system by providing a decryption key related to the selected knowledge subgraph from the first user system to the second user system. Wissens-Graphen-Verwaltungssystem nach Anspruch 8, wobei das Zugriffsmodul ferner dazu geeignet ist, dem zweiten Benutzersystem den Zugriff auf den ausgewählten Wissens-Subgraphen zu entziehen, indem der ausgewählte Wissens-Subgraphen mit einem zweiten privaten Schlüssel eines zweiten öffentlichen/privaten Schlüsselpaares wiederverschlüsselt wird.Knowledge Graph Management System claim 8 , wherein the access module is further adapted to remove the second user system's access to the selected knowledge subgraph by re-encrypting the selected knowledge subgraph with a second private key of a second public/private key pair. Das Wissens-Graphen-Verwaltungssystem nach Anspruch 8, ferner umfassend: eine Verbindungeinheit, die geeignet ist, den Kollaborationsgraphen zu verbinden durch: Erstellen eines Kontos für ein neues Benutzersystem in dem Kollaborationsgraphen, wobei das neue Benutzersystem durch einen neuen Knoten dargestellt wird, Aufteilen von Inhalten eines zweiten Wissens-Graphs in eine Mehrzahl von zweiten Wissens-Subgraphen, Verschlüsseln der Mehrzahl von zweiten Wissens-Subgraphen, und Hochladen der Mehrzahl von zweiten Wissens-Subgraphen in den Wissens-Graphen.The Knowledge Graph Management System claim 8 , further comprising: a connection unit adapted to connect the collaboration graph by: creating an account for a new user system tem in the collaboration graph, wherein the new user system is represented by a new node, splitting contents of a second knowledge graph into a plurality of second knowledge subgraphs, encrypting the plurality of second knowledge subgraphs, and uploading the plurality of second knowledge Subgraphs in the knowledge graphs. Wissens-Graphen-Verwaltungssystem nach Anspruch 8, wobei das Zugriffsmodul ferner geeignet ist, einem vierten Benutzersystem Lesezugriff auf einen Wissens-Subgraphen eines dritten Benutzersystems zu gewähren, indem es einen öffentlichen Teil des öffentlichprivaten Schlüsselpaares eines Knotens bereitstellt, der sich auf den Wissens-Graphen bezieht.Knowledge Graph Management System claim 8 wherein the access module is further adapted to grant a fourth user system read access to a knowledge subgraph of a third user system by providing a public part of a node's public-private key pair relating to the knowledge graph. System nach Anspruch 11, das ferner umfasst ein Pflege-Modul, das zum Hinzufügen von Kanten zwischen Knoten des Wissens-Subgraphen des dritten Benutzersystems und des Wissens-Subgraphen des vierten Benutzersystems durch das vierte Benutzersystem geeignet ist.system after claim 11 further comprising a maintenance module adapted for the fourth user system to add edges between nodes of the knowledge subgraph of the third user system and the knowledge subgraph of the fourth user system. Wissens-Graphen-Verwaltungssystem nach Anspruch 8, wobei das Zugriffsmodul ferner geeignet ist für: Gewähren von Schreibzugriff auf einen Wissens-Subgraphen eines ersten Benutzers an ein drittes Benutzersystem durch Bereitstellen des privat/öffentlichen Schlüsselpaars des Knotens, der sich auf den Wissens-Graphen bezieht, auf den Zugriff vom ersten Benutzersystem an das dritte Benutzersystem gewährt werden soll; und Ermöglichen einer Rollback-Option für das erste Benutzersystem, wenn das dritte Benutzersystem einen Knoten eines Wissens-Subgraphen, der sich auf das erste Benutzersystem bezieht, geändert hat.Knowledge Graph Management System claim 8 wherein the access module is further adapted for: granting write access to a knowledge subgraph of a first user to a third user system by providing the node's private/public key pair related to the knowledge graph to access from the first user system the third user system is to be granted; and enabling a rollback option for the first user system when the third user system has changed a node of a knowledge subgraph related to the first user system. Wissens-Graphen-Verwaltungssystem nach Anspruch 8, wobei die Mehrzahl der Benutzersysteme ferner geeignet ist, den Zugriff auf den Wissens-Graphen gemeinsam zu nutzen, um die Schritte des Aufteilens, Verschlüsselns, Erzeugens, Pflegens, Abbildens und Gewährens auszuführen.Knowledge Graph Management System claim 8 wherein the plurality of user systems are further adapted to share access to the knowledge graph to perform the splitting, encrypting, generating, maintaining, mapping and granting steps. Computerprogrammprodukt zum Verwalten von Zugriffsrechten auf einen Wissens-Graphen mit Inhalten, die von einer Mehrzahl von Benutzersystemen verwaltet werden, wobei das Computerprogrammprodukt umfasst: ein oder mehrere computerlesbare Speichermedien und Programmanweisungen, die auf dem einen oder den mehreren computerlesbaren Speichermedien gespeichert sind, wobei die Programmanweisungen umfassen: Programmanweisungen zum Aufteilen eines jeweiligen Teils des Wissens-Graphen in eine Mehrzahl von Wissens-Subgraphen für jedes Benutzersystem der Mehrzahl von Be nutzersyste me n; Programmanweisungen zum Verschlüsseln jedes der Wissens-Subgraphen unter Verwendung eines privaten Schlüssels eines öffentlichen/privaten Schlüsselpaares; Programmanweisungen zum Erzeugen einer Mehrzahl von privaten Zusammenfassungsgraphen, wobei: ein privater Zusammenfassungsgraph für jedes Benutzersystem erzeugt wird, jeder private Zusammenfassungsgraph einen Knoten für jeden Wissens-Subgraphen des jeweiligen Benutzersystems umfasst, und jeder Knoten das öffentliche/private Schlüsselpaar umfasst; Programmanweisungen zum Pflegen eines Kollaborationsgraphen, der einen Knoten für jedes Benutzersystem und Kanten umfasst, die Kollaborationen zwischen der Mehrzahl von Benutzersystemen darstellen; Programmanweisungen zum Abbilden der Mehrzahl von privaten Zusammenfassungsgraphen der Mehrzahl von Benutzersystemen auf einen öffentlichen Zusammenfassungsgraphen; und Programmanweisungen zum Gewähren von Zugriff auf einen ausgewählten Wissens-Subgraphen von einem ersten Benutzersystem zu einem zweiten Benutzersystem durch Bereitstellen eines Entschlüsselungsschlüssels, der sich auf den ausgewählten Wissens-Subgraphen bezieht, von dem ersten Benutzersystem zu dem zweiten Benutzersystem.Computer program product for managing access rights to a knowledge graph with content managed by a plurality of user systems, the computer program product comprising: one or more computer-readable storage media and program instructions stored on the one or more computer-readable storage media, the program instructions comprising: program instructions for dividing a respective portion of the knowledge graph into a plurality of knowledge subgraphs for each user system of the plurality of user systems; program instructions for encrypting each of the knowledge subgraphs using a private key of a public/private key pair; Program instructions for creating a plurality of private summary graphs, where: a private summary graph is generated for each user system, each private summary graph comprises a node for each knowledge subgraph of the respective user system, and each node includes the public/private key pair; program instructions for maintaining a collaboration graph comprising a node for each user system and edges representing collaborations between the plurality of user systems; program instructions for mapping the plurality of private summary graphs of the plurality of user systems to a public summary graph; and Program instructions for granting access to a selected knowledge subgraph from a first user system to a second user system by providing a decryption key related to the selected knowledge subgraph from the first user system to the second user system. Computerprogrammprodukt nach Anspruch 15, das ferner umfasst: Programmanweisungen zum Entziehen des Zugriffs auf den ausgewählten Wissens-Subgraphen für das zweite Benutzersystem durch Wiederverschlüsseln des ausgewählten Wissens-Subgraphen mit einem zweiten privaten Schlüssel eines zweiten Schlüsselpaares.computer program product claim 15 further comprising: program instructions for revoking access to the selected knowledge subgraph for the second user system by re-encrypting the selected knowledge subgraph with a second private key of a second key pair. Computerprogrammprodukt nach Anspruch 15, das ferner umfasst: Programmanweisungen zum Verbinden des Kollaborationsgraphen durch: Programmanweisungen zum Erstellen eines Kontos für ein neues Benutzersystem in dem Kollaborationsgraphen, wobei das neue Benutzersystem durch einen neuen Knoten dargestellt wird, Programmanweisungen zum Aufteilen von Inhalten eines zweiten Wissens-Graphen in eine Mehrzahl von zweiten Wissens-Subgraphen, Programmanweisungen zum Verschlüsseln der Mehrzahl von zweiten Wissens-Subgraphen, und Programmanweisungen zum Hochladen der Mehrzahl von zweiten Wissens-Subgraphen in den Wissens-Graphen.computer program product claim 15 , further comprising: program instructions for connecting the collaboration graph by: program instructions for creating an account for a new user system in the collaboration graph, the new user system being represented by a new node, program instructions for dividing contents of a second knowledge graph into a plurality of second knowledge subgraphs, program instructions for encrypting the plurality of second knowledge subgraphs, and program instructions for uploading the plurality of second knowledge subgraphs into the knowledge graph. Computerprogrammprodukt nach Anspruch 15, das ferner umfasst: Programmanweisungen zum Gewähren von Lesezugriff auf einen Wissens-Subgraphen eines dritten Benutzersystems an ein viertes Benutzersystem durch Bereitstellen eines öffentlichen Teils des öffentlich/privaten Schlüsselpaars eines Knotens, der sich auf den Wissens-Graphen bezieht.computer program product claim 15 further comprising: program instructions for granting read access to a knowledge subgraph of a third user system to a fourth user system by providing a public portion of a node's public/private key pair related to the knowledge graph. Das Computerprogrammprodukt nach Anspruch 18, das ferner umfasst: Programmanweisungen zum Hinzufügen von Kanten zwischen Knoten des Wissens-Subgraphen des dritten Benutzersystems und des Wissens-Subgraphen des vierten Benutzersystems durch das vierte Benutzersystem.The computer program product after Claim 18 further comprising: program instructions for the fourth user system to add edges between nodes of the knowledge subgraph of the third user system and the knowledge subgraph of the fourth user system. Computerprogrammprodukt nach Anspruch 15, das ferner umfasst: Programmanweisungen zum Gewähren von Schreibzugriff auf einen Wissens-Subgraphen eines ersten dritten Systems an ein viertes Benutzersystem durch Bereitstellen des privaten/öffentlichen Schlüsselpaars des Knotens, der sich auf den Wissens-Graphen bezieht, auf den Zugriff von dem dritten Benutzersystem an das vierte Benutzersystem gewährt werden soll; und Programmanweisungen zum Ermöglichen einer Rollback-Option für das dritte Benutzersystem, wenn das vierte Benutzersystem einen Knoten eines Wissens-Subgraphen, der sich auf das dritte Benutzersystem bezieht, geändert hat.computer program product claim 15 further comprising: program instructions for granting write access to a knowledge subgraph of a first third system to a fourth user system by providing the private/public key pair of the node related to the knowledge graph upon access from the third user system the fourth user system is to be granted; and program instructions for enabling a rollback option for the third user system when the fourth user system has changed a node of a knowledge subgraph related to the third user system.
DE112020002859.3T 2019-08-09 2020-07-23 ENCRYPTED KNOWLEDGE GRAPH Pending DE112020002859T5 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/536,342 US11397825B2 (en) 2019-08-09 2019-08-09 Encrypted knowledge graph
US16/536,342 2019-08-09
PCT/IB2020/056940 WO2021028748A1 (en) 2019-08-09 2020-07-23 Encrypted knowledge graph

Publications (1)

Publication Number Publication Date
DE112020002859T5 true DE112020002859T5 (en) 2022-02-24

Family

ID=74498938

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020002859.3T Pending DE112020002859T5 (en) 2019-08-09 2020-07-23 ENCRYPTED KNOWLEDGE GRAPH

Country Status (5)

Country Link
US (2) US11397825B2 (en)
JP (1) JP2022544484A (en)
DE (1) DE112020002859T5 (en)
GB (1) GB2599043B (en)
WO (1) WO2021028748A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11455304B2 (en) * 2019-09-20 2022-09-27 Sap Se Graph-based predictive cache
CN113157938B (en) * 2021-03-25 2022-05-17 支付宝(杭州)信息技术有限公司 Method and device for jointly processing multiple knowledge graphs for protecting privacy data
US20220405711A1 (en) * 2021-06-16 2022-12-22 9408-5735 Québec Inc. Concept-based collaborative mechanism

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8874930B2 (en) 2009-12-09 2014-10-28 Microsoft Corporation Graph encryption
EP2348450B1 (en) * 2009-12-18 2013-11-06 CompuGroup Medical AG Database system, computer system, and computer-readable storage medium for decrypting a data record
US10164774B2 (en) 2014-05-22 2018-12-25 Puccini World Limited Securing a directed acyclic graph
US20170322977A1 (en) * 2014-11-07 2017-11-09 Hitachi, Ltd. Method for retrieving encrypted graph, system for retrieving encrypted graph, and computer
US9547823B2 (en) * 2014-12-31 2017-01-17 Verizon Patent And Licensing Inc. Systems and methods of using a knowledge graph to provide a media content recommendation
US9940472B2 (en) * 2015-01-08 2018-04-10 International Business Machines Corporation Edge access control in querying facts stored in graph databases
US10747774B2 (en) * 2016-06-19 2020-08-18 Data.World, Inc. Interactive interfaces to present data arrangement overviews and summarized dataset attributes for collaborative datasets
US10942988B2 (en) * 2017-06-02 2021-03-09 Thinkspan, LLC Zero-knowledge encryption in universal data scaffold based data management platform
WO2019014425A1 (en) 2017-07-13 2019-01-17 Pindrop Security, Inc. Zero-knowledge multiparty secure sharing of voiceprints
US10824675B2 (en) 2017-11-17 2020-11-03 Microsoft Technology Licensing, Llc Resource-efficient generation of a knowledge graph

Also Published As

Publication number Publication date
US20210042438A1 (en) 2021-02-11
GB202117672D0 (en) 2022-01-19
WO2021028748A1 (en) 2021-02-18
GB2599043B (en) 2023-04-05
US20220300638A1 (en) 2022-09-22
US11397825B2 (en) 2022-07-26
GB2599043A (en) 2022-03-23
JP2022544484A (en) 2022-10-19

Similar Documents

Publication Publication Date Title
DE112020002859T5 (en) ENCRYPTED KNOWLEDGE GRAPH
DE112013000865B4 (en) Consolidation of different cloud service data and behaviors based on trust relationships between cloud services
DE102009001719B4 (en) Method for generating asymmetric cryptographic key pairs
DE102012213807A1 (en) Control lightweight document access using access control lists in cloud storage or on the local file system
DE112014000584T5 (en) Achieving storage efficiency with end-to-end encryption using downstream (downstream) decryptors
DE19960978A1 (en) System for electronic data archiving
DE112020000694T5 (en) PRODUCTION AND EXECUTION OF SECURE CONTAINERS
DE202015104128U1 (en) Data Access System
DE112020000134T5 (en) SECURE, MULTI-LEVEL ACCESS TO DISCOVERED DATA FOR ANALYZES
DE112021000224T5 (en) ENCRYPTION OF MESSAGE QUEUES
DE112016002392T5 (en) Authorization in a distributed system using access control lists and groups
DE102012218576A1 (en) Encrypting data and characterization data describing the valid content of a column
DE202015104126U1 (en) Data processing system
DE112018002955T5 (en) COGNITIVE FILE AND OBJECT MANAGEMENT FOR DISTRIBUTED STORAGE ENVIRONMENTS
DE112021003270T5 (en) DEDUPLICATION OF MULTI-KEY ENCRYPTED DATA
DE102016105062A1 (en) Sew-based authorization check for cross-unit distributed data
DE112020003596T5 (en) Database tuning using a federated machine learning system of a centerless network
DE112019002265T5 (en) Method and system for semantics-maintaining location encryption
DE112020003357T5 (en) OPAQUE ENCRYPTION FOR DATA DEDUPLICATION
DE112022002919T5 (en) DATA DISTRIBUTION AND SECURITY IN A MULTI-LAYER STORAGE INFRASTRUCTURE
DE112021006008T5 (en) SECURE TRANSFER OF LARGE AMOUNTS OF DATA
DE112021005837T5 (en) DECENTRALIZED TRANSMISSION ENCRYPTION AND KEY GENERATION DEVICE
DE102021128519A1 (en) DOCUMENT ACCESS CONTROL BASED ON DOCUMENT COMPONENT LAYOUTS
DE102016226338A1 (en) Bit sequence based data classification system
DE102016224470A1 (en) Server computer system for providing data records

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: KYNDRYL, INC., NEW YORK, US

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION, ARMONK, NY, US