Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Notat
Denne funktion er i øjeblikket tilgængelig som offentlig prøveversion. Denne prøveversion leveres uden en serviceniveauaftale og anbefales ikke til produktionsarbejdsbelastninger. Visse funktioner understøttes muligvis ikke eller kan have begrænsede funktioner. Du kan finde flere oplysninger under Supplerende vilkår for anvendelse af Microsoft Azure Previews.
Denne artikel indeholder den komplette tekniske specifikation for graftypen for sociale netværk, der bruges i hele GQL-dokumentationen. Dette skema viser mange almindelige funktioner i komplekse grafer og fungerer som grundlag for alle forespørgselseksempler i GQL-sprogdokumentationen.
Notat
Det sociale netværk er et eksempel, der er afledt af LDBC SNB (LDBC Social Network Benchmark), der er udgivet af GDC (Graph Data Council). Se artiklen "The LDBC Social Network Benchmark" for at få flere oplysninger. Se eksempel på et socialt netværk grafdatasæt for at se, hvordan man får en kopi af det afledte datasæt.
Domænespecifikation
Domænemodellerne på det sociale netværk er en omfattende social platform med følgende enheder:
- Personer med demografiske og adfærdsmæssige egenskaber
- Organisationer , herunder uddannelsesinstitutioner (universiteter) og arbejdsgivere (virksomheder)
- Geografisk hierarki fra byer via lande/områder til kontinenter
- Indholdssystem med forummer, indlæg og gevindindlæg
- Taksonomisystem med mærker og kodeklassificeringer
- Sociale og faglige relationer mellem mennesker og organisationer
Du kan finde en mere detaljeret introduktion til objekterne i dette domæne i GQL-sprogvejledningen.
Skemafunktioner demonstreret
Denne graftype viser avancerede GQL-funktioner:
-
Nedarvning af nodetype ved hjælp af abstrakte basistyper (
Message,Organization,Place) - Flere nedarvningsmønstre med definitioner af delte egenskaber
- Edge-typefamilier , hvor det samme relationsnavn forbinder forskellige nodetypekombinationer
- Omfattende begrænsningssystem , der sikrer dataintegritet via nøglebegrænsninger
- Blandede relationsmønstre , herunder hierarkisk indeslutning, sociale forbindelser og indholdsinteraktioner
Fuldfør skemadefinitionen
Følgende graftype indeholder en komplet skemadefinition i GQL-syntaks:
(: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)
Skemaanalyse
Nodetypehierarki
Skemaet definerer tre nedarvningshierarkier:
Geografisk hierarki:
-
Place(abstrakt) →City, ,CountryContinent
Organisationshierarki:
-
Organization(abstrakt) →University,Company
Indholdshierarki:
-
Message(abstrakt) →Post,Comment
Kanttypefamilier
Flere kantmærkater formulartypefamilier, der forbinder forskellige nodekombinationer:
Placeringsrelationer (isPartOf):
- Byer tilhører lande/områder:
(:City)-[:isPartOf]->(:Country) - Lande/områder tilhører kontinenter:
(:Country)-[:isPartOf]->(:Continent)
Indholdsinteraktioner (likes):
- Personer synes godt om indlæg:
(:Person)-[:likes]->(:Post) - Personer synes godt om kommentarer:
(:Person)-[:likes]->(:Comment) - Personer synes godt om meddelelser:
(:Person)-[:likes]->(<:Message)
Geografisk placering (isLocatedIn):
- Folk bor i byer:
(:Person)-[:isLocatedIn]->(:City) - Universiteter i byer:
(:University)-[:isLocatedIn]->(:City) - Firmaer, der er placeret i lande/områder:
(:Company)-[:isLocatedIn]->(:Country) - Indlæg placeret i lande/regioner:
(:Post)-[:isLocatedIn]->(:Country) - Kommentarer placeret i lande/regioner:
(:Comment)-[:isLocatedIn]->(:Country)
Nøglebegrænsninger
Hver nodetype har en tilsvarende nøglebegrænsning, der sikrer entydig identifikation efter id egenskab:
-
tag_class_pk,tag_pk,place_pk,organization_pk,person_pk,forum_pkmessage_pk