jazz discography represented as a structured property graph
poetry run python3 ./import/import-musicbrainz-release.py 065a2ee7-f9a2-4eb6-b8c0-722909072753 > ./cql/petrucciani-jazz-club-montmartre.cql
cd kuzu
python3 ./utils/cql_to_kuzu.py
sudo bash ./utils/import_all_into_kuzu.sh
scp -r /absolute_path/kuzu_db user@kuzu.example.com:/home/docker
docker restart <container_id_or_name>
kuzu> MATCH (r:Release {name: "The Roy Haynes Trio"})-[:HAS_TRACK]->(p:Performance)
MATCH (p)<-[part:PARTICIPATED_IN]-(person:Person)
RETURN p.name AS track, collect(person.name + "(" + part.instruments[1] + ")") AS performers;
βββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β track β performers β
β STRING β STRING[] β
βββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Wail β [John Patitucci(bass),Danilo PΓ©rez(piano),Roy Haynes(drums)] β
β Question and Answer β [John Patitucci(bass),Danilo PΓ©rez(piano),Roy Haynes(drums)] β
β Shulie a Bop β [John Patitucci(bass),Danilo PΓ©rez(piano),Roy Haynes(drums)] β
β Dear Old Stockholm β [John Patitucci(bass),Danilo PΓ©rez(piano),Roy Haynes(drums)] β
β It's Easy to Remember β [John Patitucci(bass),Danilo PΓ©rez(piano),Roy Haynes(drums)] β
β Prelude to a Kiss β [John Patitucci(bass),Danilo PΓ©rez(piano),Roy Haynes(drums)] β
β Sippin' at Bells β [John Patitucci(bass),Danilo PΓ©rez(piano),Roy Haynes(drums)] β
β Bright Mississippi β [John Patitucci(bass),Danilo PΓ©rez(piano),Roy Haynes(drums)] β
β Folk Song β [John Patitucci(bass),Danilo PΓ©rez(piano),Roy Haynes(drums)] β
β Green Chimneys β [John Patitucci(bass),Danilo PΓ©rez(piano),Roy Haynes(drums)] β
βββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
(10 tuples)
(2 columns)
Time: 1.15ms (compiling), 5.65ms (executing)
kuzu> MATCH (a:Person{ name: "Roy Haynes"})-[:PARTICIPATED_IN]->(p:Performance{begin_date: "1999-09-10"})-[:HAS_PLACE]->(plc:Place)
RETURN DISTINCT p.name, p.begin_date, plc.name;
ββββββββββββββββββββββ¬βββββββββββββββ¬βββββββββββββββββββββ
β p.name β p.begin_date β plc.name β
β STRING β STRING β STRING β
ββββββββββββββββββββββΌβββββββββββββββΌβββββββββββββββββββββ€
β Green Chimneys β 1999-09-10 β Scullers Jazz Club β
β Prelude to a Kiss β 1999-09-10 β Scullers Jazz Club β
β Sippin' at Bells β 1999-09-10 β Scullers Jazz Club β
β Bright Mississippi β 1999-09-10 β Scullers Jazz Club β
ββββββββββββββββββββββ΄βββββββββββββββ΄βββββββββββββββββββββ
(4 tuples)
(3 columns)
Time: 1.49ms (compiling), 9.42ms (executing)
kuzu> MATCH (p1:Person {name: "Roy Haynes"})-[:PARTICIPATED_IN]->(perf:Performance)<-[part:PARTICIPATED_IN]-(p2:Person)
WHERE "bass" IN part.instruments RETURN p2.name, COUNT(*) AS numberOfPerformances
ORDER BY numberOfPerformances DESC LIMIT 5;
βββββββββββββββββββββ¬βββββββββββββββββββββββ
β p2.name β numberOfPerformances β
β STRING β INT64 β
βββββββββββββββββββββΌβββββββββββββββββββββββ€
β Christian McBride β 12 β
β Gary Peacock β 12 β
β John Patitucci β 10 β
β Paul Chambers β 10 β
β David Wong β 10 β
βββββββββββββββββββββ΄βββββββββββββββββββββββ
(5 tuples)
(2 columns)
Time: 1.76ms (compiling), 4.56ms (executing)
kuzu> MATCH (p1:Person {name: "Roy Haynes"})-[:PARTICIPATED_IN]->(perf:Performance)<-[part:PARTICIPATED_IN]-(p2:Person)
WHERE "bass" IN part.instruments AND perf.begin_date STARTS WITH "1960" RETURN p2.name, COUNT(*) AS numberOfPerformances
ORDER BY numberOfPerformances DESC LIMIT 5;
βββββββββββββββββββ¬βββββββββββββββββββββββ
β p2.name β numberOfPerformances β
β STRING β INT64 β
βββββββββββββββββββΌβββββββββββββββββββββββ€
β Eddie DeHaas β 7 β
β George Duvivier β 6 β
β Paul Chambers β 4 β
βββββββββββββββββββ΄βββββββββββββββββββββββ
(3 tuples)
(2 columns)
Time: 1.79ms (compiling), 4.68ms (executing)
kuzu> MATCH (person:Person {name: "Roy Haynes"})-[part:PARTICIPATED_IN]->(performance:Performance)-[hp:HAS_PLACE]->(place:Place {name: "Van Gelder Studio"})
RETURN DISTINCT hp.begin_date as dates, place.name as place, count(performance) as performances
ORDER BY dates ASC;
ββββββββββββββ¬ββββββββββββββββββββ¬βββββββββββββββ
β dates β place β performances β
β STRING β STRING β INT64 β
ββββββββββββββΌββββββββββββββββββββΌβββββββββββββββ€
β 1958-11-14 β Van Gelder Studio β 6 β
β 1960-05-27 β Van Gelder Studio β 6 β
β 1960-07-05 β Van Gelder Studio β 7 β
β 1960-12-21 β Van Gelder Studio β 5 β
β 1961-02-23 β Van Gelder Studio β 6 β
β 1961-03-14 β Van Gelder Studio β 7 β
β 1962-05-16 β Van Gelder Studio β 4 β
β 1962-05-23 β Van Gelder Studio β 3 β
β 1963-04-10 β Van Gelder Studio β 6 β
β 1963-11-08 β Van Gelder Studio β 7 β
β 1963-11-10 β Van Gelder Studio β 5 β
β 1963-12-13 β Van Gelder Studio β 7 β
ββββββββββββββ΄ββββββββββββββββββββ΄βββββββββββββββ
(12 tuples)
(3 columns)
Time: 1.94ms (compiling), 8.21ms (executing)
kuzu> MATCH (person:Person {name: "Roy Haynes"})-[part:PARTICIPATED_IN]->(performance:Performance)-[:PERFORMANCE_OF]->(work:Work)<-[:COMPOSED]-(composer:Person {name: "Thelonious Monk"})
RETURN DISTINCT work.name;
ββββββββββββββββββββββββ
β work.name β
β STRING β
ββββββββββββββββββββββββ€
β Rhythm-a-Ning β
β βRound Midnight β
β Eronel β
β Think of One β
β Little Rootie Tootie β
β Reflections β
β Hackensack β
β Ask Me Now β
β Green Chimneys β
β Nutty β
β Β· β
β Β· β
β Β· β
β Epistrophy β
β Bemsha Swing β
β Trinkle Tinkle β
β Letβs Cool One β
β Off Minor β
β Blue Monk β
β Misterioso β
β Bright Mississippi β
β Light Blue β
β In Walked Bud β
ββββββββββββββββββββββββ
(21 tuples, 20 shown)
(1 column)
Time: 3.84ms (compiling), 3.42ms (executing)
kuzu> MATCH (p:Person)-[r:PARTICIPATED_IN]->(perf:Performance)
WHERE 'musician' IN r.roles
WITH perf, COLLECT(p.name) AS person_coll, COUNT(p) AS performerCount
WHERE performerCount = 3 AND "Roy Haynes" in person_coll
RETURN perf.name, person_coll;
ββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββ
β perf.name β person_coll β
β STRING β STRING[] β
ββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββ€
β Salt Peanuts β [Roy Haynes,Charles Mingus,Bud Powell] β
β Trio Improvisation, Part 3 β [Chick Corea,Roy Haynes,Miroslav VitouΕ‘] β
β Eronel β [Chick Corea,Roy Haynes,Miroslav VitouΕ‘] β
β Cold Bordeaux Blues β [Roy Haynes,Duke Jordan,Wilbur Little] β
β Flight to Japan β [Roy Haynes,Duke Jordan,Wilbur Little] β
β Cinco y quatro β [Jaki Byard,Ron Carter,Roy Haynes] β
β Sweet and Lovely β [Roy Haynes,Eddie DeHaas,Richard Wyands] β
β Bebop β [Kenny Barron,Charlie Haden,Roy Haynes] β
β Never Too Far Away β [Roy Haynes,Dave Holland,Pat Metheny] β
β Sippin' at Bells β [Roy Haynes,Danilo PΓ©rez,John Patitucci] β
β Β· β Β· β
β Β· β Β· β
β Β· β Β· β
β Spanish Moods β [Hampton Hawes,Roy Haynes,Cecil McBee] β
β To My Wife β [Jaki Byard,Ron Carter,Roy Haynes] β
β Wanton Spirit β [Kenny Barron,Charlie Haden,Roy Haynes] β
β Love Letters β [Roy Haynes,Dave Holland,John Scofield] β
β Lover Come Back to Me β [Roy Haynes,Oscar Pettiford,Bud Powell] β
β Speak Low β [Roy Haynes,Eddie DeHaas,Richard Wyands] β
β Processional β [George Cables,Roy Haynes,Kenneth Nash] β
β Think of One β [Chick Corea,Roy Haynes,Miroslav VitouΕ‘] β
β Mr. KJ β [Roy Haynes,Gary Peacock,Michel Petrucciani] β
β I've Got You Under My Skin β [Roy Haynes,Charles Mingus,Bud Powell] β
ββββββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββββ
(123 tuples, 20 shown)
(2 columns)
Time: 0.98ms (compiling), 17.62ms (executing)
kuzu> MATCH (p:Person)-[r:PARTICIPATED_IN]->(perf:Performance)
WHERE 'musician' IN r.roles
WITH perf, COLLECT(p.name) AS person_coll, COUNT(p) AS performerCount
WHERE performerCount = 3 AND "Roy Haynes" in person_coll
WITH count(perf) AS perf_count, person_coll as trio
ORDER BY perf_count DESC LIMIT 100
RETURN DISTINCT trio, perf_count;
ββββββββββββββββββββββββββββββββββββββββββββββββ¬βββββββββββββ
β trio β perf_count β
β STRING[] β INT64 β
ββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββ€
β [Chick Corea,Roy Haynes,Miroslav VitouΕ‘] β 20 β
β [Roy Haynes,Gary Peacock,Michel Petrucciani] β 12 β
β [Roy Haynes,Duke Jordan,Wilbur Little] β 11 β
β [Kenny Barron,Charlie Haden,Roy Haynes] β 10 β
β [Roy Haynes,Danilo PΓ©rez,John Patitucci] β 10 β
β [Roy Haynes,Dave Holland,Pat Metheny] β 9 β
β [Roy Haynes,Oscar Pettiford,Bud Powell] β 8 β
β [Jaki Byard,Ron Carter,Roy Haynes] β 7 β
β [Roy Haynes,Eddie DeHaas,Richard Wyands] β 7 β
β [Roy Haynes,Charles Mingus,Bud Powell] β 6 β
β Β· β Β· β
β Β· β Β· β
β Β· β Β· β
β [Hampton Hawes,Roy Haynes,Cecil McBee] β 4 β
β [Roy Haynes,Fred Lacey,Rodney Richardson] β 3 β
β [Roy Haynes,Dave Holland,John Scofield] β 2 β
β [Roy Haynes,Tommy Potter,Bud Powell] β 2 β
β [Kenny Barron,Roy Haynes,Christian McBride] β 1 β
β [Richard Davis,Roy Haynes,Andrew Hill] β 1 β
β [Roy Haynes,Chick Corea,Miroslav VitouΕ‘] β 1 β
β [Adrian Acia,Joe Benjamin,Roy Haynes] β 1 β
β [Chick Corea,Roy Haynes,Christian McBride] β 1 β
β [George Cables,Roy Haynes,Kenneth Nash] β 1 β
ββββββββββββββββββββββββββββββββββββββββββββββββ΄βββββββββββββ
(21 tuples, 20 shown)
(2 columns)
Time: 1.20ms (compiling), 13.60ms (executing)
kuzu> MATCH p = (a)-[part:PARTICIPATED_IN* SHORTEST 1..3 ]-(b)
WHERE a.name = 'Roy Haynes' AND b.name = 'Chick Corea'
RETURN length(part) AS length;
ββββββββββ
β length β
β INT64 β
ββββββββββ€
β 2 β
ββββββββββ
(1 tuple)
(1 column)
Time: 1.93ms (compiling), 4.72ms (executing)
kuzu> MATCH p = (a)-[part:PARTICIPATED_IN* ALL SHORTEST 1..3 ]-(b)
WHERE a.name = 'Roy Haynes' AND b.name = 'Chick Corea'
RETURN COUNT(*) AS num_shortest_path;
βββββββββββββββββββββ
β num_shortest_path β
β INT64 β
βββββββββββββββββββββ€
β 53 β
βββββββββββββββββββββ
(1 tuple)
(1 column)
Time: 2.04ms (compiling), 5.46ms (executing)
What is the shortest path between Roy Haynes and Horace Silver where both participated as musicians?
MATCH p = ((a:Person {name: "Roy Haynes"})-[part:PARTICIPATED_IN* SHORTEST (r, _ | WHERE "musician" in r.roles)]-(b:Person {name: "Horace Silver"}))
RETURN p
MATCH p = ((a:Person {name: "Roy Haynes"})-[part:PARTICIPATED_IN* SHORTEST]-(b:Person {name: "Jason Moran"}))
RETURN p

