Σημείωμα
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να εισέλθετε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Σημείωμα
Αυτή η δυνατότητα βρίσκεται αυτήν τη στιγμή σε δημόσια προεπισκόπηση. Αυτή η προεπισκόπηση παρέχεται χωρίς σύμβαση παροχής υπηρεσιών και δεν συνιστάται για φόρτους εργασίας παραγωγής. Ορισμένες δυνατότητες ενδέχεται να μην υποστηρίζονται ή να έχουν περιορισμένες δυνατότητες. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Χρήση συμψηφικών όρων χρήσης για Microsoft Azure προεπισκοπήσεις.
Αυτό το άρθρο παρέχει την πλήρη τεχνική προδιαγραφή για τον τύπο γραφήματος κοινωνικών δικτύων που χρησιμοποιείται σε όλη την τεκμηρίωση GQL. Αυτό το σχήμα παρουσιάζει πολλές συνήθεις δυνατότητες σύνθετων γραφημάτων και χρησιμεύει ως βάση για όλα τα παραδείγματα ερωτημάτων στην τεκμηρίωση γλώσσας GQL.
Σημείωμα
Το παράδειγμα κοινωνικού δικτύου προέρχεται από το LDBC SNB (Στοιχείο αναφοράς κοινωνικών δικτύων LDBC) που δημοσιεύτηκε από την GDC (Graph Data Council).
Για περισσότερες πληροφορίες, ανατρέξτε στο άρθρο "The LDBC Social Network Benchmark". Για πληροφορίες σχετικά με τον τρόπο λήψης ενός αντιγράφου του παραγόμενου συνόλου δεδομένων, ανατρέξτε στο παράδειγμα γραφήματος γραφημάτων κοινωνικών δικτύων.
Προδιαγραφή τομέα
Ο τομέας κοινωνικών δικτύων διαμορφώνει μια ολοκληρωμένη πλατφόρμα κοινωνικής δικτύωσης με τις ακόλουθες οντότητες:
- Άτομα με δημογραφικές ιδιότητες και ιδιότητες συμπεριφοράς
- Οργανισμοί , συμπεριλαμβανομένων εκπαιδευτικών ιδρυμάτων (πανεπιστήμια) και εργοδοτών (εταιρείες)
- Γεωγραφική ιεραρχία από πόλεις μέσω χωρών/περιοχών σε ηπείρους
- Σύστημα περιεχομένου με φόρουμ, δημοσιεύσεις και σχόλια με νήμα
- Σύστημα ταξινόμησης με ετικέτες και ταξινομήσεις ετικετών
- Κοινωνικές και επαγγελματικές σχέσεις μεταξύ ατόμων και οργανισμών
Για μια λεπτομερέστερη εισαγωγή στις οντότητες αυτού του τομέα, ανατρέξτε στο θέμα Οδηγός γλώσσας GQL.
Παρουσιάζονται δυνατότητες σχήματος
Αυτός ο τύπος γραφήματος παρουσιάζει προηγμένες δυνατότητες GQL:
-
Μεταβίβαση τύπου κόμβου με χρήση αφηρημένων τύπων βάσης (
Message,Organization,Place) - Πολλαπλά μοτίβα μεταβίβασης με ορισμούς κοινόχρηστων ιδιοτήτων
- Οικογένειες τύπων άκρου όπου η ίδια ετικέτα σχέσης συνδέει διαφορετικούς συνδυασμούς τύπου κόμβου
- Ολοκληρωμένο σύστημα περιορισμών που εξασφαλίζει την ακεραιότητα δεδομένων μέσω βασικών περιορισμών
- Συνδυασμός μοτίβων σχέσεων , συμπεριλαμβανομένης της ιεραρχικής συγκράτησης, των κοινωνικών συνδέσεων και των αλληλεπιδράσεων περιεχομένου
Πλήρης ορισμός σχήματος
Ο ακόλουθος τύπος γραφήματος παρέχει έναν πλήρη ορισμό σχήματος στη σύνταξη 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)
Ανάλυση σχήματος
Ιεραρχία τύπου κόμβου
Το σχήμα ορίζει τρεις ιεραρχίες μεταβίβασης:
Γεωγραφική ιεραρχία:
-
Place(σύνοψη) →City, ,CountryContinent
Ιεραρχία οργανισμού:
-
Organization(σύνοψη) →University,Company
Ιεραρχία περιεχομένου:
-
Message(σύνοψη) →Post,Comment
Οικογένειες τύπου Edge
Πολλές ετικέτες άκρου σχηματίζουν οικογένειες τύπων που συνδέουν διαφορετικούς συνδυασμούς κόμβων:
Σχέσεις τοποθεσίας (isPartOf):
- Οι πόλεις ανήκουν σε χώρες/περιοχές:
(:City)-[:isPartOf]->(:Country) - Οι χώρες/περιοχές ανήκουν σε ηπείρους:
(:Country)-[:isPartOf]->(:Continent)
Αλληλεπιδράσεις περιεχομένου (likes):
- Στους χρήστες αρέσουν οι δημοσιεύσεις:
(:Person)-[:likes]->(:Post) - Στα άτομα αρέσουν τα σχόλια:
(:Person)-[:likes]->(:Comment) - Στους χρήστες αρέσουν τα μηνύματα:
(:Person)-[:likes]->(<:Message)
Γεωγραφική θέση (isLocatedIn):
- Οι άνθρωποι ζουν σε πόλεις:
(:Person)-[:isLocatedIn]->(:City) - Πανεπιστήμια που βρίσκονται σε πόλεις:
(:University)-[:isLocatedIn]->(:City) - Εταιρείες που βρίσκονται σε χώρες/περιοχές:
(:Company)-[:isLocatedIn]->(:Country) - Αναρτήσεις που βρίσκονται σε χώρες/περιοχές:
(:Post)-[:isLocatedIn]->(:Country) - Σχόλια που βρίσκονται σε χώρες/περιοχές:
(:Comment)-[:isLocatedIn]->(:Country)
Βασικοί περιορισμοί
Κάθε τύπος κόμβου έχει έναν αντίστοιχο βασικό περιορισμό που διασφαλίζει τη μοναδική αναγνώριση από την id ιδιότητα:
-
tag_class_pk, ,tag_pkplace_pk,organization_pk, ,person_pk,forum_pk,message_pk