diff --git a/cesi/intro_big_data/presentation/slides.md b/cesi/intro_big_data/presentation/slides.md index 4f98cbd..a1e35fa 100644 --- a/cesi/intro_big_data/presentation/slides.md +++ b/cesi/intro_big_data/presentation/slides.md @@ -117,10 +117,60 @@ William Petit - S.C.O.P. Cadoles --- +#### Le concept de "triplet" + +Un triplet est une structure de données pouvant être représenté sous la forme `(sujet, prédicat, objet)`. + +Un corpus de triplets permet de représenter un graphe orienté. + +Exemple: + +`` `` `` +`` `` `` +`` `` `Entreprise>` +etc... + +--- + #### Exemple avec le projet Cayley --- +#### Exercice + +Soit Jean, Silvia, Camille, Charlie et Nicolas cinq membres d'un même réseau social. + +- Jean est ami avec Silvia. +- Silvia est amie avec Jean. +- Camille est ami avec Charlie. +- Charlie est amie avec Jean. +- Nicolas est ami avec Camille. +- Nicolas est ami avec Silvia. + +Les relations sont évidemment bidirectionnelles. + +Chaque personne a également les attributs suivants: + +- Un age +- Un plat préféré + +--- + +##### Consignes + +1. Représenter sous forme de triplets ces 4 entités et leurs relations d'amitiés respectives. + +2. Écrire la requête (Gizmo) permettant de récupérer la liste des plats préférés d'une personne. + +3. Écrire la requête (Gizmo) permettant de récupérer la liste des "amis d'amis" d'une personne. + +4. Écrire la requête (Gizmo) permettant de récupérer la liste plats préférés partagés avec des "amis d'amis". + +[Documentation de l'API Gizmo](http://localhost:64210/docs/GizmoAPI) + +--- + + ## Exploitation des données et cadre légal --- diff --git a/cesi/intro_big_data/ressources/Fiche de préparation RIL B1 - Introduction au Big Data.doc b/cesi/intro_big_data/ressources/Fiche de préparation RIL B1 - Introduction au Big Data.doc index d8f6c70..9b11d48 100644 Binary files a/cesi/intro_big_data/ressources/Fiche de préparation RIL B1 - Introduction au Big Data.doc and b/cesi/intro_big_data/ressources/Fiche de préparation RIL B1 - Introduction au Big Data.doc differ diff --git a/cesi/intro_big_data/ressources/cayley-compose/docker-compose.yml b/cesi/intro_big_data/ressources/cayley-compose/docker-compose.yml new file mode 100644 index 0000000..0058dbc --- /dev/null +++ b/cesi/intro_big_data/ressources/cayley-compose/docker-compose.yml @@ -0,0 +1,7 @@ +version: '2.2' +services: + cayley: + image: quay.io/cayleygraph/cayley + ports: + - 64210:64210 + command: [ "--verbose", "10", "-l", "10" ] \ No newline at end of file diff --git a/cesi/intro_big_data/ressources/cayley-compose/queries.md b/cesi/intro_big_data/ressources/cayley-compose/queries.md new file mode 100644 index 0000000..8580254 --- /dev/null +++ b/cesi/intro_big_data/ressources/cayley-compose/queries.md @@ -0,0 +1,44 @@ +# Gizmo + +## Trouver les plats préférés de chaque personne + +```js +g.V().Has("").Tag("source").Out("").Tag("target").All() +``` + +## Afficher l'ensemble des relations du réseau social + +```js +g.V().Has("").Tag("source").Out("").Tag("target").All() +``` + +## Trouver les amis des amis de Jean + +```js +g.V("").Tag("source").Out("").ForEach(function(directFriend) { + + g.Emit({ id: directFriend.id, source: "", target: directFriend.id }); + + g.V(directFriend.id).Out("").ForEach(function(friendOfFriend) { + g.Emit({id: friendOfFriend.id, source: directFriend.id, target: friendOfFriend.id }); + }); + +}); +``` + +## Trouver les amis des amis de Jean qui aiment un plat commun + +```js +var jean = g.V(""); +var jeanFavoriteDishes = jean.Out(""); + +jean.Out("").ForEach(function(directFriend) { + g.V(directFriend.id).Out("").ForEach(function(friendOfFriend) { + jeanFavoriteDishes.Intersect(g.V(friendOfFriend.id).Out("")).ForEach(function(favoriteDish) { + g.Emit({ id: directFriend.id, source: "", target: directFriend.id }); + g.Emit({ id: friendOfFriend.id, source: directFriend.id, target: friendOfFriend.id }); + g.Emit({ id: favoriteDish.id, source: friendOfFriend.id, target: favoriteDish.id }); + }); + }); +}); +``` \ No newline at end of file diff --git a/cesi/intro_big_data/ressources/cayley-compose/social.nquad b/cesi/intro_big_data/ressources/cayley-compose/social.nquad new file mode 100644 index 0000000..59c13d9 --- /dev/null +++ b/cesi/intro_big_data/ressources/cayley-compose/social.nquad @@ -0,0 +1,21 @@ + . + . + . + . + . + . + . + . + . + . + . + + 25 . + 30 . + 26 . + 32 . + + "Boeuf bourguignon" . + "Boeuf bourguignon" . + "Gateau au chocolat" . + "Crepe" .