DE112020002859T5 - Verschlüsselter wissens-graph - Google Patents

Verschlüsselter wissens-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
English (en)
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/de
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.

Description

  • HINTERGRUND
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • KURZDARSTELLUNG
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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:
  • 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.
  • 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.
  • 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.
  • 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.
  • Im Folgenden werden weitere Ausführungsformen der vorliegenden Erfindung - sowohl für das Verfahren als auch für das zugehörige System - beschrieben:
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • Figurenliste
    • 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.
    • 2 zeigt ein Blockdiagramm einer Ausführungsform einer Mehrzahl von Benutzersystemen in kommunikativer Verbindung mit einem zentralen Speicher.
    • 3 zeigt ein Blockdiagramm einer Ausführungsform der Ebenen-Architektur der vorliegenden Erfindung.
    • 4 zeigt ein Diagramm einer Ausführungsform der Ebenen-Architektur mit gewährtem Zugriff auf zusätzliche Wissens-Subgraphen.
    • 5 zeigt ein Blockdiagramm eines Flussdiagramms der Teilprozesse „ Gewähren von Zugriff“ und „Schreibzugriff“.
    • 6 zeigt ein Blockdiagramm eines Flussdiagramms für den Prozess „Entfernen von Zugriff“.
    • 7 zeigt ein Blockdiagramm eines Systems zur Verwaltung von Zugriffsrechten auf einen Wissens-Graphen, dessen Inhalte von einer Mehrzahl von Entitäten verwaltet werden.
    • 8 zeigt ein Blockdiagramm eines Computersystems, das für die vorliegende Erfindung von Bedeutung ist.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 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.
  • 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.
  • Im Zusammenhang mit dieser Beschreibung können die folgenden Konventionen, Begriffe und/oder Ausdrücke verwendet werden:
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • Der Begriff „Kollaboration“ kann hier bedeuten, dass ein Benutzer einem anderen Benutzer den Zugriff auf die von ihm verwalteten Subgraphen des Inhalts erlaubt.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • Für jeden Wissens-Graph/für jeden Wissens-Subgraph wird ein Index der Knoten gepflegt.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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).
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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 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 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.
  • 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.
  • 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).
  • 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.
  • 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.
  • Beitritt eines Benutzers
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • Durchsuchen des Zusammenfassungsgraphen
  • 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.
  • Gewähren von Zugriff
  • 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“.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • Schreibzugriff
  • 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.
  • 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:
  • 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.
  • 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.
  • 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.
  • Diese Herangehensweise hat den Vorteil, dass Änderungen von eingeladenen Kollaborateuren in Echtzeit ausgeführt werden können.
  • 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.
  • 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.
  • 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.
  • Entfernen von Zugriff
  • 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.
  • 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.
  • 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.
  • 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.
  • Durchsuchen eines Graphen
  • 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.
  • 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.
  • Ü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.
  • 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.
  • Verwalten von Wissens-Subgraphen
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.

Claims (20)

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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.
  15. 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.
  16. 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.
  17. 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.
  18. 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.
  19. 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.
  20. 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.
DE112020002859.3T 2019-08-09 2020-07-23 Verschlüsselter wissens-graph Pending DE112020002859T5 (de)

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 (de) 2022-02-24

Family

ID=74498938

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020002859.3T Pending DE112020002859T5 (de) 2019-08-09 2020-07-23 Verschlüsselter wissens-graph

Country Status (5)

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

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 (zh) * 2021-03-25 2022-05-17 支付宝(杭州)信息技术有限公司 保护隐私数据的多个知识图谱联合处理的方法和装置
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 (de) * 2009-12-18 2013-11-06 CompuGroup Medical AG Computerimplementiertes Verfahren zur Erzeugung eines Pseudonyms, computerlesbares Speichermedium und Computersystem
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
AU2018275877B2 (en) * 2017-06-02 2022-06-16 Thinkspan, LLC Universal data scaffold based data management platform
WO2019014425A1 (en) 2017-07-13 2019-01-17 Pindrop Security, Inc. SAFE PARTY WITH SEVERAL PARTIES KNOWING NO VOICE IMPRESSIONS
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
US20220300638A1 (en) 2022-09-22
GB2599043A (en) 2022-03-23
WO2021028748A1 (en) 2021-02-18
GB202117672D0 (en) 2022-01-19
JP2022544484A (ja) 2022-10-19
GB2599043B (en) 2023-04-05
US11397825B2 (en) 2022-07-26
US20210042438A1 (en) 2021-02-11

Similar Documents

Publication Publication Date Title
DE112020002859T5 (de) Verschlüsselter wissens-graph
DE112013000865B4 (de) Konsolidieren von unterschiedlichen Cloud-Dienst-Daten und -Verhaltensweisen auf der Grundlage von Vertrauensbeziehungen zwischen Cloud-Diensten
DE102009001719B4 (de) Verfahren zur Erzeugung von asymmetrischen kryptografischen Schlüsselpaaren
DE112020005289T5 (de) Teilweise sortierte blockchain
DE102012213807A1 (de) Steuerung des Lightweight-Dokumentenzugriffs mithilfe von Zugriffskontrolllisten im Cloud-Speicher oder auf dem lokalen Dateisystem
DE112014000584T5 (de) Erreichen von Speichereffizienz bei durchgängiger Verschlüsselung unter Verwendung von nachgelagerten (Downstream-)Decryptern
DE19960978A1 (de) System für ein elektronisches Datenarchiv mit Erzwingung einer Zugriffskontrolle beim Suchen und Abrufen von Daten
DE112020000694T5 (de) Erzeugung und ausführung von sicheren containern
DE202015104128U1 (de) Datenzugriffssystem
DE112020000134T5 (de) Sicherer, mehrstufiger zugriff auf verschleierte daten für analysen
DE112021000224T5 (de) Verschlüsselung von message queues
DE112016002392T5 (de) Autorisierung in einem verteilten System unter Verwendung von Zugriffssteuerungslisten und Gruppen
DE102012218576A1 (de) Verschlüsseln von Daten und Charakterisierungsdaten, die den gültigen Inhalt einer Spalte beschreiben
DE102016105062A1 (de) Nähengestützte Berechtigungsprüfung für einheitenübergreifend verteilte Daten
DE202015104126U1 (de) Datenverarbeitungssystem
DE112018002955T5 (de) Kognitive datei- und objektverwaltung für verteilte speicherumgebungen
DE112021003270T5 (de) Deduplizierung von mit mehreren schlüsseln verschlüsselten daten
DE112020003596T5 (de) Datenbank-Tuning unter Verwendung eines föderierten maschinellen Lernsystems eines Centerless-Netzwerks
DE112019002265T5 (de) Verfahren und System zur semantikbeibehaltenden Standortverschlüsselung
DE112020003357T5 (de) Undurchsichtige verschlüsselung für datendeduplizierung
DE112022002919T5 (de) Datenverteilung und sicherheit in einer mehrschichtigen speicher-infrastruktur
DE112021006008T5 (de) Sichere übertragung grosser datenmengen
DE112021005837T5 (de) Dezentrale sendeverschlüsselung und schlüsselerzeugungseinrichtung
DE102021128519A1 (de) Dokumentzugangskontrolle auf grundlage von dokumentkomponenten-layouts
DE102016226338A1 (de) Bitsequenzbasiertes Datenklassifikationssystem

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