Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Anmärkning
Den här funktionen är för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och rekommenderas inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Den här artikeln innehåller den fullständiga tekniska specifikationen för graftypen för sociala nätverk som används i GQL-dokumentationen. Det här schemat visar många vanliga funktioner i komplexa grafer och fungerar som grund för alla frågeexempel i GQL-språkdokumentationen.
Anmärkning
Det sociala nätverket är ett exempel som härleds från LDBC SNB (LDBC Social Network Benchmark) som publicerats av GDC (Graph Data Council). Mer information finns i artikeln "LDBC Social Network Benchmark" . Se exempel på grafdataset för sociala nätverk för hur man får tag på en kopia av den härledda datamängden.
Domänspecifikation
Domänen för sociala nätverk modellerar en omfattande social plattform med följande entiteter:
- Personer med demografiska och beteendemässiga egenskaper
- Organisationer inklusive utbildningsinstitutioner (universitet) och arbetsgivare (företag)
- Geografisk hierarki från städer via länder/regioner till kontinenter
- Innehållssystem med forum, inlägg och trådade kommentarer
- Taxonomisystem med taggar och taggklassificeringar
- Sociala och professionella relationer mellan människor och organisationer
En mer detaljerad introduktion till entiteterna i den här domänen finns i GQL-språkguiden.
Schemafunktioner demonstrerade
Den här graftypen visar avancerade GQL-funktioner:
-
Arv av nodtyp med abstrakta bastyper (
Message,Organization,Place) - Flera arvsmönster med definitioner för delad egenskap
- Edge-typfamiljer där samma relationsetikett ansluter olika kombinationer av nodtyper
- Omfattande begränsningssystem som säkerställer dataintegritet genom viktiga begränsningar
- Blandade relationsmönster , inklusive hierarkisk inneslutning, sociala anslutningar och innehållsinteraktioner
Fullständig schemadefinition
Följande diagramtyp innehåller en fullständig schemadefinition i GQL-syntaxen:
(: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)
Schemaanalys
Hierarki för nodtyp
Schemat definierar tre arvshierarkier:
Geografisk hierarki:
-
Place(abstrakt) →City, ,CountryContinent
Organisationshierarki:
-
Organization(abstrakt) →University,Company
Innehållshierarki:
-
Message(abstrakt) →Post,Comment
Kanttypfamiljer
Flera kantetiketter bildar familjer som ansluter olika nodkombinationer:
Platsrelationer (isPartOf):
- Städer tillhör länder/regioner:
(:City)-[:isPartOf]->(:Country) - Länder/regioner tillhör kontinenter:
(:Country)-[:isPartOf]->(:Continent)
Innehållsinteraktioner (likes):
- Personer gillar inlägg:
(:Person)-[:likes]->(:Post) - Personer gillar kommentarer:
(:Person)-[:likes]->(:Comment) - Personer gillar meddelanden:
(:Person)-[:likes]->(<:Message)
Geografisk plats (isLocatedIn):
- Människor bor i städer:
(:Person)-[:isLocatedIn]->(:City) - Universitet i städer:
(:University)-[:isLocatedIn]->(:City) - Företag i länder/regioner:
(:Company)-[:isLocatedIn]->(:Country) - Inlägg placerade i länder/regioner:
(:Post)-[:isLocatedIn]->(:Country) - Kommentarer placerade i länder/regioner:
(:Comment)-[:isLocatedIn]->(:Country)
Viktiga begränsningar
Varje nodtyp har en motsvarande nyckelbegränsning som garanterar unik identifiering efter id egenskap:
-
tag_class_pk,tag_pk,place_pk,organization_pk,person_pk, , ,forum_pkmessage_pk