Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Tato funkce je aktuálně ve verzi Public Preview. Tato verze Preview se poskytuje bez smlouvy o úrovni služeb a nedoporučuje se pro produkční úlohy. Některé funkce nemusí být podporované nebo můžou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.
Tento článek obsahuje úplnou technickou specifikaci pro typ grafu sociální sítě, který se používá v dokumentaci GQL. Toto schéma ukazuje mnoho běžných funkcí složitých grafů a slouží jako základ pro všechny příklady dotazů v dokumentaci jazyka GQL.
Poznámka:
Příkladem sociální sítě je LDBC SNB (LDBC Social Network Benchmark) publikovaný GDC (Graph Data Council). Další podrobnosti najdete v článku Srovnávací test sociální sítě LDBC . Viz příkladová datasada grafů sociálních sítí , kde najdete způsob, jak získat kopii odvozené datové sady.
Specifikace domény
Doména sociální sítě modeluje komplexní sociální platformu s následujícími entitami:
- Lidé s demografickými a behaviorálními vlastnostmi
- Organizace včetně vzdělávacích institucí (univerzit) a zaměstnavatelů (společností)
- Geografická hierarchie z měst přes země/oblasti do kontinentů
- Systém obsahu s fóry, příspěvky a komentáři s vlákny
- Systém taxonomie se značkami a klasifikacemi značek
- Sociální a profesní vztahy mezi lidmi a organizacemi
Podrobnější úvod do entit této domény najdete v průvodci jazykem GQL.
Ukázkové funkce schématu
Tento typ grafu předvádí pokročilé funkce GQL:
-
Dědičnost typu uzlu pomocí abstraktních základních typů (
Message,Organization,Place) - Více vzorů dědičnosti s definicemi sdílených vlastností
- Rodiny typů hraničních zařízení, kde stejný popisek vztahu spojuje různé kombinace typů uzlů
- Komplexní systém omezení zajišťující integritu dat prostřednictvím klíčových omezení
- Vzory smíšených vztahů , včetně hierarchických omezení, sociálních propojení a interakcí s obsahem
Úplná definice schématu
Následující typ grafu poskytuje úplnou definici schématu v syntaxi GQL:
(: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)
Analýza schématu
Hierarchie typů uzlů
Schéma definuje tři hierarchie dědičnosti:
Geografická hierarchie:
-
Place(abstraktní) →City,Country,Continent
Organizační hierarchie:
-
Organization(abstraktní) →University,Company
Hierarchie obsahu:
-
Message(abstraktní) →Post,Comment
Rodiny typů hraničních zařízení
Několik okrajových popisků typů formulářů propojujících různé kombinace uzlů:
Relace umístění (isPartOf):
- Města patří do zemí/oblastí:
(:City)-[:isPartOf]->(:Country) - Země/oblasti patří do kontinentů:
(:Country)-[:isPartOf]->(:Continent)
Interakce obsahu (likes):
- Lidé, jako jsou příspěvky:
(:Person)-[:likes]->(:Post) - Lidé, jako jsou komentáře:
(:Person)-[:likes]->(:Comment) - Lidé, jako jsou zprávy:
(:Person)-[:likes]->(<:Message)
Zeměpisné umístění (isLocatedIn):
- Lidé žijí ve městech:
(:Person)-[:isLocatedIn]->(:City) - Univerzity umístěné ve městech:
(:University)-[:isLocatedIn]->(:City) - Společnosti umístěné v zemích/oblastech:
(:Company)-[:isLocatedIn]->(:Country) - Příspěvky umístěné v zemích/regionech:
(:Post)-[:isLocatedIn]->(:Country) - Komentáře umístěné v zemích/regionech:
(:Comment)-[:isLocatedIn]->(:Country)
Klíčová omezení
Každý typ uzlu má odpovídající omezení klíče, které zajišťuje jedinečnou identifikaci podle id vlastnosti:
-
tag_class_pk,tag_pk,place_pk,organization_pk,person_pk, ,forum_pkmessage_pk