Skip to content

Instantly share code, notes, and snippets.

@davebshow
Last active August 29, 2015 14:02
Show Gist options
  • Save davebshow/ade6744e046cca47ed4e to your computer and use it in GitHub Desktop.
Save davebshow/ade6744e046cca47ed4e to your computer and use it in GitHub Desktop.

Smoothies: Ingredient and Recipe Recommendation

//Graph written from NetworkX

//Graph written from NetworkX

CREATE (GroundCinnamon:Booster {
    UniqueId: "GroundCinnamon"})

CREATE (Carrot:Root {
    UniqueId: "Carrot"})

CREATE (Cantaloupe:Fruit {
    UniqueId: "Cantaloupe"})

CREATE (Banana:Fruit {
    UniqueId: "Banana"})

CREATE (AlmondButter:Booster {
    UniqueId: "AlmondButter"})

CREATE (CantaloupeGrapeSweetnessGreenSmoothie:Recipe {
    UniqueId: "CantaloupeGrapeSweetnessGreenSmoothie"})

CREATE (ChocolateCoveredCherryGreenSmoothie:Recipe {
    UniqueId: "ChocolateCoveredCherryGreenSmoothie"})

CREATE (Rasberry:Fruit {
    UniqueId: "Rasberry"})

CREATE (StrawberryPeachRefresherGreenSmoothie:Recipe {
    UniqueId: "StrawberryPeachRefresherGreenSmoothie"})

CREATE (OrangeJuice:Base {
    UniqueId: "OrangeJuice"})

CREATE (Celery:Green {
    UniqueId: "Celery"})

CREATE (Lemon:Fruit {
    UniqueId: "Lemon"})

CREATE (Cilantro:Herb {
    UniqueId: "Cilantro"})

CREATE (Parsley:Herb {
    UniqueId: "Parsley"})

CREATE (Spinach:Green {
    UniqueId: "Spinach"})

CREATE (ThanksgivingInYourMouthGreenSmoothie:Recipe {
    UniqueId: "ThanksgivingInYourMouthGreenSmoothie"})

CREATE (Ginger:Booster {
    UniqueId: "Ginger"})

CREATE (KiwiStrawberryTwistGreenSmoothie:Recipe {
    UniqueId: "KiwiStrawberryTwistGreenSmoothie"})

CREATE (honey:Sweetener {
    UniqueId: "honey"})

CREATE (Mint:Herb {
    UniqueId: "Mint"})

CREATE (SPASkinCleanseGreenSmoothie:Recipe {
    UniqueId: "SPASkinCleanseGreenSmoothie"})

CREATE (PinaColadaGreenSmoothie:Recipe {
    UniqueId: "PinaColadaGreenSmoothie"})

CREATE (CoconutWater:Base {
    UniqueId: "CoconutWater"})

CREATE (CranberryKaleCoolerGreenSmoothie:Recipe {
    UniqueId: "CranberryKaleCoolerGreenSmoothie"})

CREATE (Grapes:Fruit {
    UniqueId: "Grapes"})

CREATE (Water:Base {
    UniqueId: "Water"})

CREATE (Kiwi:Fruit {
    UniqueId: "Kiwi"})

CREATE (Peaches:Fruit {
    UniqueId: "Peaches"})

CREATE (BerryCherryJubileeGreenSmoothie:Recipe {
    UniqueId: "BerryCherryJubileeGreenSmoothie"})

CREATE (CoconutMilk:Base {
    UniqueId: "CoconutMilk"})

CREATE (LemonJuice:Fruit {
    UniqueId: "LemonJuice"})

CREATE (Pear:Fruit {
    UniqueId: "Pear"})

CREATE (StrawberryAndMintPopsicle:Recipe {
    UniqueId: "StrawberryAndMintPopsicle"})

CREATE (HealingCranberryCleanserGreenSmoothie:Recipe {
    UniqueId: "HealingCranberryCleanserGreenSmoothie"})

CREATE (BerryProteinBashGreenSmoothie:Recipe {
    UniqueId: "BerryProteinBashGreenSmoothie"})

CREATE (Apple:Fruit {
    UniqueId: "Apple"})

CREATE (KiwiBerryPunchGreenSmoothie:Recipe {
    UniqueId: "KiwiBerryPunchGreenSmoothie"})

CREATE (BloodOrange:Fruit {
    UniqueId: "BloodOrange"})

CREATE (NavelOrangeJuice:Fruit {
    UniqueId: "NavelOrangeJuice"})

CREATE (BeginnersLuckWithTopsGreenSmoothie:Recipe {
    UniqueId: "BeginnersLuckWithTopsGreenSmoothie"})

CREATE (Strawberry:Fruit {
    UniqueId: "Strawberry"})

CREATE (ASweetPearGreenSmoothie:Recipe {
    UniqueId: "ASweetPearGreenSmoothie"})

CREATE (Kale:Green {
    UniqueId: "Kale"})

CREATE (CacaoPowder:Booster {
    UniqueId: "CacaoPowder"})

CREATE (StrawberryBananaBlueberryGreenSmoothie:Recipe {
    UniqueId: "StrawberryBananaBlueberryGreenSmoothie"})

CREATE (GroundNutmeg:Booster {
    UniqueId: "GroundNutmeg"})

CREATE (CucumberPeeled:Fruit {
    UniqueId: "CucumberPeeled"})

CREATE (SunshineInAJarGreenSmoothie:Recipe {
    UniqueId: "SunshineInAJarGreenSmoothie"})

CREATE (Raspberries:Fruit {
    UniqueId: "Raspberries"})

CREATE (Almond:Booster {
    UniqueId: "Almond"})

CREATE (Cinnamon:Booster {
    UniqueId: "Cinnamon"})

CREATE (Pineapple:Fruit {
    UniqueId: "Pineapple"})

CREATE (Collards:Green {
    UniqueId: "Collards"})

CREATE (SweetPotato:Root {
    UniqueId: "SweetPotato"})

CREATE (Grape:Fruit {
    UniqueId: "Grape"})

CREATE (AvoBananaKaleGreenSmoothie:Recipe {
    UniqueId: "AvoBananaKaleGreenSmoothie"})

CREATE (PeachCoconutDreamGreenSmoothie:Recipe {
    UniqueId: "PeachCoconutDreamGreenSmoothie"})

CREATE (Avocado:Fruit {
    UniqueId: "Avocado"})

CREATE (Peache:Fruit {
    UniqueId: "Peache"})

CREATE (CranberryJuice:Base {
    UniqueId: "CranberryJuice"})

CREATE (Cherries:Fruit {
    UniqueId: "Cherries"})

CREATE (LimeJuice:Fruit {
    UniqueId: "LimeJuice"})

CREATE (Mango:Fruit {
    UniqueId: "Mango"})

CREATE (CoconutFlakes:Booster {
    UniqueId: "CoconutFlakes"})

CREATE (AlmondButterAndJellyGreenSmoothie:Recipe {
    UniqueId: "AlmondButterAndJellyGreenSmoothie"})

CREATE (AlmondMilk:Base {
    UniqueId: "AlmondMilk"})

CREATE (Orange:Fruit {
    UniqueId: "Orange"})

CREATE (Blueberry:Fruit {
    UniqueId: "Blueberry"})

CREATE (PomegranateCitrusPunchGreenSmoothie:Recipe {
    UniqueId: "PomegranateCitrusPunchGreenSmoothie"})

CREATE (CoconutOil:Booster {
    UniqueId: "CoconutOil"})

CREATE (avocado:Fruit {
    UniqueId: "avocado"})

CREATE (MangoGingerImmuneSupportGreenSmoothie:Recipe {
    UniqueId: "MangoGingerImmuneSupportGreenSmoothie"})

CREATE (Lime:Fruit {
    UniqueId: "Lime"})

CREATE (BokChoy:Green {
    UniqueId: "BokChoy"})

CREATE (CilantroMangoDetoxGreenSmoothie:Recipe {
    UniqueId: "CilantroMangoDetoxGreenSmoothie"})

CREATE (FreeRadicalFightingSuperGreenSmoothie:Recipe {
    UniqueId: "FreeRadicalFightingSuperGreenSmoothie"})

CREATE (Cranberries:Fruit {
    UniqueId: "Cranberries"})

CREATE (PineappleKaleCoconutOilGreenSmoothie:Recipe {
    UniqueId: "PineappleKaleCoconutOilGreenSmoothie"})

CREATE (BeginnersLuck:Recipe {
    UniqueId: "BeginnersLuck"})

CREATE (CilantroLimeadeGreenSmoothie:Recipe {
    UniqueId: "CilantroLimeadeGreenSmoothie"})

CREATE (PomegranateSeeds:Fruit {
    UniqueId: "PomegranateSeeds"})

CREATE (GroundCinnamon)-[:IN {quantity: "0.0208cups"}]->(ThanksgivingInYourMouthGreenSmoothie)

CREATE (GroundCinnamon)-[:IN {quantity: "0.0208cups"}]->(ASweetPearGreenSmoothie)

CREATE (Carrot)-[:IN {quantity: "2"}]->(BeginnersLuckWithTopsGreenSmoothie)

CREATE (Cantaloupe)-[:IN {quantity: "2cups"}]->(FreeRadicalFightingSuperGreenSmoothie)

CREATE (Cantaloupe)-[:IN {quantity: "0.5"}]->(CantaloupeGrapeSweetnessGreenSmoothie)

CREATE (Banana)-[:IN {quantity: "3"}]->(AvoBananaKaleGreenSmoothie)

CREATE (Banana)-[:IN {quantity: "2"}]->(CranberryKaleCoolerGreenSmoothie)

CREATE (Banana)-[:IN {quantity: "1"}]->(PineappleKaleCoconutOilGreenSmoothie)

CREATE (Banana)-[:IN {quantity: "2"}]->(AlmondButterAndJellyGreenSmoothie)

CREATE (Banana)-[:IN {quantity: "1"}]->(BerryProteinBashGreenSmoothie)

CREATE (Banana)-[:IN {quantity: "1"}]->(ASweetPearGreenSmoothie)

CREATE (Banana)-[:IN {quantity: "1"}]->(PomegranateCitrusPunchGreenSmoothie)

CREATE (Banana)-[:IN {quantity: "1"}]->(BerryCherryJubileeGreenSmoothie)

CREATE (Banana)-[:IN {quantity: "2"}]->(ChocolateCoveredCherryGreenSmoothie)

CREATE (Banana)-[:IN {quantity: "1"}]->(KiwiBerryPunchGreenSmoothie)

CREATE (Banana)-[:IN {quantity: "2"}]->(HealingCranberryCleanserGreenSmoothie)

CREATE (Banana)-[:IN {quantity: "1"}]->(KiwiStrawberryTwistGreenSmoothie)

CREATE (Banana)-[:IN {quantity: "2"}]->(StrawberryBananaBlueberryGreenSmoothie)

CREATE (Banana)-[:IN {quantity: "2"}]->(BeginnersLuck)

CREATE (Banana)-[:IN {quantity: "3"}]->(CilantroLimeadeGreenSmoothie)

CREATE (Banana)-[:IN {quantity: "1"}]->(BeginnersLuckWithTopsGreenSmoothie)

CREATE (AlmondButter)-[:IN {quantity: "0.25cups"}]->(AlmondButterAndJellyGreenSmoothie)

CREATE (Rasberry)-[:IN {quantity: "0.5cups"}]->(KiwiBerryPunchGreenSmoothie)

CREATE (OrangeJuice)-[:IN {quantity: "0.75cups"}]->(StrawberryBananaBlueberryGreenSmoothie)

CREATE (OrangeJuice)-[:IN {quantity: "1cups"}]->(PomegranateCitrusPunchGreenSmoothie)

CREATE (OrangeJuice)-[:IN {quantity: "2cups"}]->(KiwiStrawberryTwistGreenSmoothie)

CREATE (Celery)-[:IN {quantity: "1cups"}]->(MangoGingerImmuneSupportGreenSmoothie)

CREATE (Lemon)-[:IN {quantity: "1"}]->(MangoGingerImmuneSupportGreenSmoothie)

CREATE (Cilantro)-[:IN {quantity: "0.5cups"}]->(CilantroLimeadeGreenSmoothie)

CREATE (Cilantro)-[:IN {quantity: "0.5cups"}]->(CilantroMangoDetoxGreenSmoothie)

CREATE (Parsley)-[:IN {quantity: "1cups"}]->(MangoGingerImmuneSupportGreenSmoothie)

CREATE (Spinach)-[:IN {quantity: "2cups"}]->(SPASkinCleanseGreenSmoothie)

CREATE (Spinach)-[:IN {quantity: "2cups"}]->(FreeRadicalFightingSuperGreenSmoothie)

CREATE (Spinach)-[:IN {quantity: "2cups"}]->(PinaColadaGreenSmoothie)

CREATE (Spinach)-[:IN {quantity: "1cups"}]->(SunshineInAJarGreenSmoothie)

CREATE (Spinach)-[:IN {quantity: "2cups"}]->(BerryCherryJubileeGreenSmoothie)

CREATE (Spinach)-[:IN {quantity: "2cups"}]->(AlmondButterAndJellyGreenSmoothie)

CREATE (Spinach)-[:IN {quantity: "2cups"}]->(BerryProteinBashGreenSmoothie)

CREATE (Spinach)-[:IN {quantity: "2cups"}]->(CantaloupeGrapeSweetnessGreenSmoothie)

CREATE (Spinach)-[:IN {quantity: "2 cups"}]->(PomegranateCitrusPunchGreenSmoothie)

CREATE (Spinach)-[:IN {quantity: "1.5cups"}]->(CilantroLimeadeGreenSmoothie)

CREATE (Spinach)-[:IN {quantity: "1.5cups"}]->(StrawberryAndMintPopsicle)

CREATE (Spinach)-[:IN {quantity: "2cups"}]->(ThanksgivingInYourMouthGreenSmoothie)

CREATE (Spinach)-[:IN {quantity: "2cups"}]->(ChocolateCoveredCherryGreenSmoothie)

CREATE (Spinach)-[:IN {quantity: "2cups"}]->(KiwiBerryPunchGreenSmoothie)

CREATE (Spinach)-[:IN {quantity: "2cups"}]->(ASweetPearGreenSmoothie)

CREATE (Spinach)-[:IN {quantity: "2cups"}]->(StrawberryBananaBlueberryGreenSmoothie)

CREATE (Spinach)-[:IN {quantity: "2cups"}]->(BeginnersLuck)

CREATE (Spinach)-[:IN {quantity: "2cups"}]->(PeachCoconutDreamGreenSmoothie)

CREATE (Spinach)-[:IN {quantity: "1.5cups"}]->(CilantroMangoDetoxGreenSmoothie)

CREATE (Spinach)-[:IN {quantity: "1.5cups"}]->(BeginnersLuckWithTopsGreenSmoothie)

CREATE (Ginger)-[:IN {quantity: "1inch"}]->(MangoGingerImmuneSupportGreenSmoothie)

CREATE (Ginger)-[:IN {quantity: "1inch"}]->(CilantroLimeadeGreenSmoothie)

CREATE (honey)-[:IN {quantity: "0.25"}]->(StrawberryAndMintPopsicle)

CREATE (Mint)-[:IN {quantity: "0.5cups"}]->(StrawberryAndMintPopsicle)

CREATE (Mint)-[:IN {quantity: "1"}]->(FreeRadicalFightingSuperGreenSmoothie)

CREATE (CoconutWater)-[:IN {quantity: "2cups"}]->(SPASkinCleanseGreenSmoothie)

CREATE (CoconutWater)-[:IN {quantity: "0.5cups"}]->(PinaColadaGreenSmoothie)

CREATE (CoconutWater)-[:IN {quantity: "1cups"}]->(PeachCoconutDreamGreenSmoothie)

CREATE (Grapes)-[:IN {quantity: "1cups"}]->(CantaloupeGrapeSweetnessGreenSmoothie)

CREATE (Water)-[:IN {quantity: "2cups"}]->(AvoBananaKaleGreenSmoothie)

CREATE (Water)-[:IN {quantity: "0.5cups"}]->(CranberryKaleCoolerGreenSmoothie)

CREATE (Water)-[:IN {quantity: "2cups"}]->(BerryCherryJubileeGreenSmoothie)

CREATE (Water)-[:IN {quantity: "2cups"}]->(MangoGingerImmuneSupportGreenSmoothie)

CREATE (Water)-[:IN {quantity: "1cups"}]->(FreeRadicalFightingSuperGreenSmoothie)

CREATE (Water)-[:IN {quantity: "0.5cups"}]->(CantaloupeGrapeSweetnessGreenSmoothie)

CREATE (Water)-[:IN {quantity: "1cups"}]->(PomegranateCitrusPunchGreenSmoothie)

CREATE (Water)-[:IN {quantity: "0.25cups"}]->(ThanksgivingInYourMouthGreenSmoothie)

CREATE (Water)-[:IN {quantity: "2cups"}]->(PineappleKaleCoconutOilGreenSmoothie)

CREATE (Water)-[:IN {quantity: "2cups"}]->(KiwiBerryPunchGreenSmoothie)

CREATE (Water)-[:IN {quantity: "1cup"}]->(HealingCranberryCleanserGreenSmoothie)

CREATE (Water)-[:IN {quantity: "0.75cups"}]->(StrawberryBananaBlueberryGreenSmoothie)

CREATE (Water)-[:IN {quantity: "2cups"}]->(BeginnersLuck)

CREATE (Water)-[:IN {quantity: "2cups"}]->(CilantroLimeadeGreenSmoothie)

CREATE (Water)-[:IN {quantity: "2cups"}]->(CilantroMangoDetoxGreenSmoothie)

CREATE (Water)-[:IN {quantity: "2cups"}]->(BeginnersLuckWithTopsGreenSmoothie)

CREATE (Kiwi)-[:IN {quantity: "1"}]->(KiwiBerryPunchGreenSmoothie)

CREATE (Kiwi)-[:IN {quantity: "2"}]->(KiwiStrawberryTwistGreenSmoothie)

CREATE (Peaches)-[:IN {quantity: "2cups"}]->(StrawberryPeachRefresherGreenSmoothie)

CREATE (CoconutMilk)-[:IN {quantity: "0.25"}]->(StrawberryAndMintPopsicle)

CREATE (LemonJuice)-[:IN {quantity: "1"}]->(KiwiStrawberryTwistGreenSmoothie)

CREATE (Pear)-[:IN {quantity: "4"}]->(ASweetPearGreenSmoothie)

CREATE (Apple)-[:IN {quantity: "1"}]->(FreeRadicalFightingSuperGreenSmoothie)

CREATE (BloodOrange)-[:IN {quantity: "2"}]->(CranberryKaleCoolerGreenSmoothie)

CREATE (NavelOrangeJuice)-[:IN {quantity: "3"}]->(SunshineInAJarGreenSmoothie)

CREATE (Strawberry)-[:IN {quantity: "2cups"}]->(StrawberryAndMintPopsicle)

CREATE (Strawberry)-[:IN {quantity: "1cups"}]->(BerryProteinBashGreenSmoothie)

CREATE (Strawberry)-[:IN {quantity: "2cups"}]->(KiwiStrawberryTwistGreenSmoothie)

CREATE (Strawberry)-[:IN {quantity: "1cups"}]->(StrawberryPeachRefresherGreenSmoothie)

CREATE (Strawberry)-[:IN {quantity: "1cups"}]->(StrawberryBananaBlueberryGreenSmoothie)

CREATE (Kale)-[:IN {quantity: "2cups"}]->(HealingCranberryCleanserGreenSmoothie)

CREATE (Kale)-[:IN {quantity: "2cups"}]->(AvoBananaKaleGreenSmoothie)

CREATE (Kale)-[:IN {quantity: "2cups"}]->(PineappleKaleCoconutOilGreenSmoothie)

CREATE (Kale)-[:IN {quantity: "2cups"}]->(CranberryKaleCoolerGreenSmoothie)

CREATE (Kale)-[:IN {quantity: "2cups"}]->(KiwiStrawberryTwistGreenSmoothie)

CREATE (CacaoPowder)-[:IN {quantity: "0.1875cups"}]->(ChocolateCoveredCherryGreenSmoothie)

CREATE (GroundNutmeg)-[:IN {quantity: "0.208cups"}]->(ThanksgivingInYourMouthGreenSmoothie)

CREATE (CucumberPeeled)-[:IN {quantity: "1"}]->(MangoGingerImmuneSupportGreenSmoothie)

CREATE (Raspberries)-[:IN {quantity: "0.5cups"}]->(BerryCherryJubileeGreenSmoothie)

CREATE (Almond)-[:IN {quantity: "0.5cups"}]->(BerryProteinBashGreenSmoothie)

CREATE (Cinnamon)-[:IN {quantity: "0.208cups"}]->(ChocolateCoveredCherryGreenSmoothie)

CREATE (Pineapple)-[:IN {quantity: "2cups"}]->(SPASkinCleanseGreenSmoothie)

CREATE (Pineapple)-[:IN {quantity: "2cups"}]->(PineappleKaleCoconutOilGreenSmoothie)

CREATE (Pineapple)-[:IN {quantity: "3cups"}]->(PinaColadaGreenSmoothie)

CREATE (Pineapple)-[:IN {quantity: "3cups"}]->(SunshineInAJarGreenSmoothie)

CREATE (Pineapple)-[:IN {quantity: "1cups"}]->(BeginnersLuck)

CREATE (Pineapple)-[:IN {quantity: "1cup"}]->(CilantroMangoDetoxGreenSmoothie)

CREATE (Pineapple)-[:IN {quantity: "1cups"}]->(BeginnersLuckWithTopsGreenSmoothie)

CREATE (Collards)-[:IN {quantity: "1cups"}]->(SunshineInAJarGreenSmoothie)

CREATE (SweetPotato)-[:IN {quantity: "1cups"}]->(ThanksgivingInYourMouthGreenSmoothie)

CREATE (Grape)-[:IN {quantity: "2cups"}]->(AlmondButterAndJellyGreenSmoothie)

CREATE (Grape)-[:IN {quantity: "2cups"}]->(PeachCoconutDreamGreenSmoothie)

CREATE (Avocado)-[:IN {quantity: "1"}]->(SPASkinCleanseGreenSmoothie)

CREATE (Avocado)-[:IN {quantity: "0.5"}]->(KiwiBerryPunchGreenSmoothie)

CREATE (Avocado)-[:IN {quantity: "0.5"}]->(CilantroMangoDetoxGreenSmoothie)

CREATE (Peache)-[:IN {quantity: "2"}]->(PeachCoconutDreamGreenSmoothie)

CREATE (CranberryJuice)-[:IN {quantity: "1.5cups"}]->(CranberryKaleCoolerGreenSmoothie)

CREATE (Cherries)-[:IN {quantity: "2cups"}]->(ChocolateCoveredCherryGreenSmoothie)

CREATE (Cherries)-[:IN {quantity: "1cup"}]->(BerryCherryJubileeGreenSmoothie)

CREATE (LimeJuice)-[:IN {quantity: "0.5"}]->(FreeRadicalFightingSuperGreenSmoothie)

CREATE (Mango)-[:IN {quantity: "3cups"}]->(MangoGingerImmuneSupportGreenSmoothie)

CREATE (Mango)-[:IN {quantity: "2cups"}]->(ThanksgivingInYourMouthGreenSmoothie)

CREATE (Mango)-[:IN {quantity: "1cups"}]->(BeginnersLuck)

CREATE (Mango)-[:IN {quantity: "1.5cups"}]->(CilantroMangoDetoxGreenSmoothie)

CREATE (Mango)-[:IN {quantity: "1cups"}]->(BeginnersLuckWithTopsGreenSmoothie)

CREATE (CoconutFlakes)-[:IN {quantity: "0.125cups"}]->(PinaColadaGreenSmoothie)

CREATE (AlmondMilk)-[:IN {quantity: "2cups"}]->(ThanksgivingInYourMouthGreenSmoothie)

CREATE (AlmondMilk)-[:IN {quantity: "2cups"}]->(ChocolateCoveredCherryGreenSmoothie)

CREATE (AlmondMilk)-[:IN {quantity: "1.5cups"}]->(PinaColadaGreenSmoothie)

CREATE (AlmondMilk)-[:IN {quantity: "2cups"}]->(ASweetPearGreenSmoothie)

CREATE (AlmondMilk)-[:IN {quantity: "2cups"}]->(AlmondButterAndJellyGreenSmoothie)

CREATE (AlmondMilk)-[:IN {quantity: "2cups"}]->(BerryProteinBashGreenSmoothie)

CREATE (AlmondMilk)-[:IN {quantity: "2cups"}]->(StrawberryPeachRefresherGreenSmoothie)

CREATE (AlmondMilk)-[:IN {quantity: "1cups"}]->(CantaloupeGrapeSweetnessGreenSmoothie)

CREATE (Orange)-[:IN {quantity: "2"}]->(HealingCranberryCleanserGreenSmoothie)

CREATE (Blueberry)-[:IN {quantity: "1cups"}]->(BerryProteinBashGreenSmoothie)

CREATE (Blueberry)-[:IN {quantity: "0.5cups"}]->(FreeRadicalFightingSuperGreenSmoothie)

CREATE (Blueberry)-[:IN {quantity: "1.5cups"}]->(KiwiBerryPunchGreenSmoothie)

CREATE (Blueberry)-[:IN {quantity: "0.5cups"}]->(BerryCherryJubileeGreenSmoothie)

CREATE (Blueberry)-[:IN {quantity: "1cups"}]->(StrawberryBananaBlueberryGreenSmoothie)

CREATE (CoconutOil)-[:IN {quantity: "0.125cups"}]->(PineappleKaleCoconutOilGreenSmoothie)

CREATE (CoconutOil)-[:IN {quantity: "0.125cups"}]->(CantaloupeGrapeSweetnessGreenSmoothie)

CREATE (avocado)-[:IN {quantity: "0.25"}]->(AvoBananaKaleGreenSmoothie)

CREATE (Lime)-[:IN {quantity: "1"}]->(CilantroLimeadeGreenSmoothie)

CREATE (Lime)-[:IN {quantity: "1"}]->(CranberryKaleCoolerGreenSmoothie)

CREATE (BokChoy)-[:IN {quantity: "2cups"}]->(StrawberryPeachRefresherGreenSmoothie)

CREATE (Cranberries)-[:IN {quantity: "1cups"}]->(HealingCranberryCleanserGreenSmoothie)

CREATE (PomegranateSeeds)-[:IN {quantity: "1cups"}]->(PomegranateCitrusPunchGreenSmoothie)

RETURN *

Find ingredients that are most frequently combined with strawberry.


Ingredient combination query

MATCH     (strawberry {UniqueId: "Strawberry"})-->(recipe)
MATCH     (ingredient)-->(recipe)
WHERE NOT ingredient.UniqueId IN ["Strawberry"]
RETURN    ingredient.UniqueId AS Ingredient,
          labels(ingredient)[0] AS Type,
          count(*) AS NumOccurances
ORDER BY count(*) DESC


Or with blueberry and water.


Ingredient combination query

MATCH     (blueberry {UniqueId: "Blueberry"})-->(recipe),
          (water {UniqueId: "Water"})-->(recipe)
MATCH     (ingredient)-->(recipe)
WHERE NOT ingredient.UniqueId IN ["Blueberry", "Water"]
RETURN    ingredient.UniqueId AS Ingredient,
          labels(ingredient)[0] AS Type,
          count(*) AS NumOccurances
ORDER BY  count(*) DESC

Find recipes similar to Recipe1 by doing some really simple collabortive filtering using the Jaccard similarity coefficient.

\( \LARGE J(A, B) = \frac{\|A \cap B\|}{\|A \cup B\|} \)

\(0 \leq J(A, B) \leq 1\)


Jaccard similarity coefficient query

I wrote the first query while learning cypher.

In a db where all recipes share at least one ingredient I think the first one will be faster.

MATCH     (sourceIngredients)-->(sourceRecipe {UniqueId: "PineappleKaleCoconutOilGreenSmoothie"})
WITH      sourceRecipe,
          collect(DISTINCT sourceIngredients) AS sourceIngr
MATCH     (targetIngr)-->(targetRecipes)
WHERE NOT targetRecipes = sourceRecipe
WITH      targetRecipes,
          collect(DISTINCT targetIngr) AS targets,
          sourceIngr AS sources
WITH      targetRecipes,
          filter(x in targets WHERE x in sources) AS intersect,
          filter(x in targets WHERE not x in sources) + sources AS union
RETURN    targetRecipes.UniqueId AS Recipe,
          extract(ingr in intersect | ingr.UniqueId) AS Intersect,
          extract(ingr in union | ingr.UniqueId)  AS Union,
          length(intersect) * 1.0 / length(union) AS SimilarityCOF
ORDER BY  SimilarityCOF DESC


William Lyon style.

This should be better if there are a lot of recipes that don’t share an ingredient.

MATCH     (sourceRecipe {UniqueId: "PineappleKaleCoconutOilGreenSmoothie"}), (r2:Recipe)
WHERE     sourceRecipe <> r2
MATCH     (sourceRecipe)<--(intersection)-->(r2)
WITH      sourceRecipe, r2, count(intersection) as intersect
MATCH     (sourceRecipe)<--(ingr1)
WITH      sourceRecipe, r2, intersect, collect(DISTINCT ingr1) AS coll1
MATCH     (r2)<--(ingr2)
WITH      sourceRecipe, r2, collect(DISTINCT ingr2) AS coll2, coll1, intersect
WITH      sourceRecipe, r2, intersect, length(coll1 + filter(x IN coll2 WHERE NOT x IN coll1)) as union
RETURN    r2.UniqueId as Recipe,
          intersect * 1.0 / union AS SimilarityCOF
ORDER BY  SimilarityCOF DESC

Recommendation- a simple example:


Recommend some combinations based on user input: Pineapple and Spinach. This sort of filtering would be done in the client, but to give an idea, we’ll do something here where we only recommend on base, booster, and green.

MATCH    (blueberry {UniqueId: "Blueberry"})-->(recipe),
         (water {UniqueId: "Water"})-->(recipe)
WITH     blueberry,
         water,
         [labels(blueberry)[0], labels(water)[0]] AS baseTypes,
         collect(DISTINCT recipe) AS recipes
WITH     recipes,
         filter(type in baseTypes WHERE NOT type in ["Fruit", "Herb", "Root"]) AS filter
MATCH    (ingredient)-->(recipe)
WHERE    recipe IN recipes
AND NOT  ingredient.UniqueId IN ["Blueberry", "Water"]
AND NOT  labels(ingredient)[0] IN filter
RETURN   ingredient.UniqueId AS Ingredient,
         labels(ingredient)[0] AS Type,
         count(*) AS NumOccurances
ORDER BY Type, count(*) DESC

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment