Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Dieses Feature ist zurzeit als öffentliche Preview verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
Dieser Artikel enthält die vollständige technische Spezifikation für den Graph-Typ des sozialen Netzwerks, der in der GQL-Dokumentation verwendet wird. Dieses Schema veranschaulicht viele allgemeine Features komplexer Diagramme und dient als Grundlage für alle Abfragebeispiele in der GQL-Sprachdokumentation.
Hinweis
Das soziale Netzwerk ist beispiel für den LDBC SNB (LDBC Social Network Benchmark) abgeleitet, der vom GDC (Graph Data Council) veröffentlicht wurde. Weitere Details finden Sie im Artikel "The LDBC Social Network Benchmark" . Siehe Beispiel-Graphen-Datensatz für soziale Netzwerke , um zu erfahren, wie man eine Kopie des abgeleiteten Datensatzes erhält.
Domänenspezifikation
Die Domäne des sozialen Netzwerks modelliert eine umfassende soziale Plattform mit den folgenden Entitäten:
- Personen mit demografischen und Verhaltenseigenschaften
- Organisationen , einschließlich Bildungseinrichtungen (Universitäten) und Arbeitgeber (Unternehmen)
- Geografische Hierarchie von Städten über Länder/Regionen zu Kontinenten
- Inhaltssystem mit Foren, Beiträgen und Kommentarthreads
- Taxonomiesystem mit Tags und Tagklassifizierungen
- Soziale und berufliche Beziehungen zwischen Menschen und Organisationen
Eine ausführlichere Einführung in die Entitäten dieser Domäne finden Sie im GQL-Sprachhandbuch.
Gezeigte Schemafeatures
Dieser Diagrammtyp zeigt erweiterte GQL-Funktionen:
-
Knotentypvererbung mit abstrakten Basistypen (
Message,Organization,Place) - Mehrere Vererbungsmuster mit freigegebenen Eigenschaftendefinitionen
- Edgetypfamilien , bei denen die gleiche Beziehungsbezeichnung verschiedene Knotentypkombinationen verbindet
- Umfassendes Einschränkungssystem , das die Datenintegrität durch Schlüsseleinschränkungen sicherstellt
- Gemischte Beziehungsmuster , einschließlich hierarchischer Eindämmung, sozialer Verbindungen und Inhaltsinteraktionen
Vollständige Schemadefinition
Der folgende Diagrammtyp stellt eine vollständige Schemadefinition in der GQL-Syntax bereit:
(:TagClass => { id :: UINT64 NOT NULL, name :: STRING, url :: STRING }),
CONSTRAINT tag_class_pk
FOR (n:TagClass) REQUIRE (n.id) IS KEY,
(:TagClass)-[:isSubclassOf]->(:TagClass),
(:Tag => { id :: UINT64 NOT NULL, name :: STRING, url :: STRING }),
(:Tag)-[:hasType]->(:TagClass),
CONSTRAINT tag_pk
FOR (n:Tag) REQUIRE (n.id) IS KEY,
ABSTRACT
(:Place => { id :: UINT64 NOT NULL, name :: STRING, url :: STRING }),
(:City => :Place),
(:Country => :Place),
(:Continent => :Place),
CONSTRAINT place_pk
FOR (n:Place) REQUIRE (n.id) IS KEY,
(:City)-[:isPartOf]->(:Country),
(:Country)-[:isPartOf]->(:Continent),
ABSTRACT
(:Organization => { id :: UINT64 NOT NULL, name :: STRING, url :: STRING }),
(:University => :Organization),
(:Company => :Organization),
CONSTRAINT organization_pk
FOR (n:Organization) REQUIRE (n.id) IS KEY,
(:University)-[:isLocatedIn]->(:City),
(:Company)-[:isLocatedIn]->(:Country),
(:Person => {
id :: UINT64 NOT NULL,
creationDate :: ZONED DATETIME,
firstName :: STRING,
lastName :: STRING,
gender :: STRING,
birthday :: UINT64,
browserUsed :: STRING,
locationIP :: STRING
}),
CONSTRAINT person_pk
FOR (n:Person) REQUIRE (n.id) IS KEY,
(:Person)-[:hasInterest]->(:Tag),
(:Person)-[:isLocatedIn]->(:City),
(:Person)-[:studyAt { classYear :: UINT64 }]->(:University),
(:Person)-[:workAt { workFrom :: UINT64 }]->(:Company),
(:Person)-[:knows { creationDate :: ZONED DATETIME }]->(:Person),
(:Forum => {
id :: UINT64 NOT NULL,
creationDate :: ZONED DATETIME,
title :: STRING
}),
CONSTRAINT forum_pk
FOR (n:Forum) REQUIRE (n.id) IS KEY,
(:Forum)-[:hasTag]->(:Tag),
(:Forum)-[:hasMember { creationDate :: ZONED DATETIME, joinDate :: UINT64 }]->(:Person),
(:Forum)-[:hasModerator]->(:Person),
ABSTRACT (:Message => {
id :: UINT64 NOT NULL,
creationDate :: ZONED DATETIME,
browserUsed :: STRING,
locationIP :: STRING,
content :: STRING,
length :: UINT64
}),
CONSTRAINT message_pk
FOR (n:Message) REQUIRE (n.id) IS KEY,
(:Post => :Message += {
language :: STRING,
imageFile :: STRING
}),
(:Person)-[:likes { creationDate :: ZONED DATETIME }]->(:Post),
(:Post)-[:hasCreator]->(:Person),
(:Post)-[:isLocatedIn]->(:Country),
(:Forum)-[:containerOf]->(:Post),
(:Comment => :Message),
(:Person)-[:likes { creationDate :: ZONED DATETIME }]->(:Comment),
(:Comment)-[:hasCreator]->(:Person),
(:Comment)-[:isLocatedIn]->(:Country),
(:Comment)-[:replyOf]->(<:Message),
(:Person)-[:likes { creationDate :: ZONED DATETIME }]->(<:Message),
(<:Message)-[:hasCreator]->(:Person),
(<:Message)-[:isLocatedIn]->(:Country),
(<:Message)-[:hasTag]->(:Tag)
Schemaanalyse
Knotentyphierarchie
Das Schema definiert drei Vererbungshierarchien:
Geografische Hierarchie:
-
Place(abstract) →City, ,CountryContinent
Organisationshierarchie:
-
Organization(Abstract) →University,Company
Inhaltshierarchie:
-
Message(Abstract) →Post,Comment
Edgetypfamilien
Mehrere Randbeschriftungsformularfamilien, die verschiedene Knotenkombinationen verbinden:
Standortbeziehungen (isPartOf):
- Städte gehören zu Ländern/Regionen:
(:City)-[:isPartOf]->(:Country) - Länder/Regionen gehören zu Kontinenten:
(:Country)-[:isPartOf]->(:Continent)
Inhaltsinteraktionen (likes):
- Personen wie Beiträge:
(:Person)-[:likes]->(:Post) - Personen wie Kommentare:
(:Person)-[:likes]->(:Comment) - Personen wie Nachrichten:
(:Person)-[:likes]->(<:Message)
Geografischer Standort (isLocatedIn):
- Menschen leben in Städten:
(:Person)-[:isLocatedIn]->(:City) - Universitäten in Städten:
(:University)-[:isLocatedIn]->(:City) - Unternehmen in Ländern/Regionen:
(:Company)-[:isLocatedIn]->(:Country) - Beiträge in Ländern/Regionen:
(:Post)-[:isLocatedIn]->(:Country) - Kommentare in Ländern/Regionen:
(:Comment)-[:isLocatedIn]->(:Country)
Schlüsseleinschränkungen
Jeder Knotentyp verfügt über eine entsprechende Schlüsseleinschränkung, die die eindeutige Identifikation nach id Eigenschaft sicherstellt:
-
tag_class_pk, ,tag_pkplace_pk,organization_pk,person_pk, ,forum_pkmessage_pk