Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Megjegyzés:
Ez a funkció jelenleg nyilvános előzetes verzióban érhető el. Ez az előzetes verzió szolgáltatásszintű szerződés nélkül érhető el, és éles számítási feladatokhoz nem ajánlott. Előfordulhat, hogy bizonyos funkciók nem támogatottak, vagy korlátozott képességekkel rendelkeznek. További információkért lásd: Microsoft Azure Previews Kiegészítő Felhasználási Feltételek.
Ez a cikk a GQL dokumentációjában használt közösségi hálózati gráftípus teljes műszaki specifikációját tartalmazza. Ez a séma az összetett gráfok számos gyakori funkcióját mutatja be, és a GQL nyelvi dokumentációjában szereplő összes lekérdezési példa alapjául szolgál.
Megjegyzés:
A közösségi hálózat például a GDC (Graph Data Council) által közzétett LDBC SNB -ből (LDBC Social Network Benchmark) származik. További részletekért lásd a "The LDBC Social Network Benchmark" (Az LDBC közösségi hálózati teljesítményteszt) című cikket. Lásd a közösségi hálózat példa gráfdataset-et , hogy hogyan szerezhetsz másolatot a származtatott adathalmazból.
Tartomány specifikációja
A közösségi hálózat tartománya egy átfogó közösségi platformot modellez az alábbi entitásokkal:
- Demográfiai és viselkedési tulajdonságokkal rendelkező személyek
- Oktatási intézményeket (egyetemeket ) és munkáltatókat (vállalatokat) is beleértve
- Földrajzi hierarchia városoktól országokon/régiókon át kontinensekig
- Tartalomrendszer fórumokkal, bejegyzésekkel és szálas megjegyzésekkel
- Osztályozási rendszer címkékkel és címkebesorolásokkal
- Emberek és szervezetek közötti társadalmi és szakmai kapcsolatok
A tartomány entitásainak részletesebb ismertetését a GQL nyelvi útmutatójában találja.
A bemutatott sémafunkciók
Ez a gráftípus speciális GQL-képességeket mutat be:
-
Csomóponttípus-öröklés absztrakt alaptípusokkal (
Message,Organization,Place) - Több öröklési minta megosztott tulajdonságdefiníciókkal
- Peremhálózati típuscsaládok , ahol ugyanaz a kapcsolatcímke különböző csomóponttípus-kombinációkat kapcsol össze
- Az adatintegritást kulcskorlátozásokkal biztosító átfogó kényszerrendszer
- Vegyes kapcsolati minták, beleértve a hierarchikus elszigetelést, a közösségi kapcsolatokat és a tartalom interakcióit
Sémadefiníció befejezése
A következő gráftípus teljes sémadefiníciót biztosít a GQL szintaxisában:
(: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)
Sémaelemzés
Csomóponttípus-hierarchia
A séma három öröklési hierarchiát határoz meg:
Földrajzi hierarchia:
-
Place(absztrakt) →City,CountryContinent
Szervezeti hierarchia:
-
Organization(absztrakt) →University,Company
Tartalomhierarchia:
-
Message(absztrakt) →Post,Comment
Peremhálózat-típuscsaládok
Több élfelirat típuscsaládja különböző csomópontkombinációkat köt össze:
Helykapcsolatok (isPartOf):
- A városok országokhoz/régiókhoz tartoznak:
(:City)-[:isPartOf]->(:Country) - Az országok/régiók kontinensekhez tartoznak:
(:Country)-[:isPartOf]->(:Continent)
Tartalom-interakciók (likes):
- A bejegyzéseket kedvelő személyek:
(:Person)-[:likes]->(:Post) - A felhasználók szeretik a megjegyzéseket:
(:Person)-[:likes]->(:Comment) - A felhasználók szeretik az üzeneteket:
(:Person)-[:likes]->(<:Message)
Földrajzi hely (isLocatedIn):
- Az emberek városokban élnek:
(:Person)-[:isLocatedIn]->(:City) - Városokban található egyetemek:
(:University)-[:isLocatedIn]->(:City) - Országokban/régiókban található vállalatok:
(:Company)-[:isLocatedIn]->(:Country) - Országokban/régiókban található posztok:
(:Post)-[:isLocatedIn]->(:Country) - Hozzászólások országokban/régiókban:
(:Comment)-[:isLocatedIn]->(:Country)
Fő megkötések
Minden csomóponttípus rendelkezik egy megfelelő kulcskényszerrel, amely tulajdonságonként egyedi azonosítást id biztosít:
-
tag_class_pk,tag_pk,place_pk,organization_pkperson_pk,forum_pkmessage_pk