qzdl / Samplify

A sample retrieval engine, powered by whosampled.
GNU General Public License v3.0
28 stars 5 forks source link

Graph Visualization of output #11

Open qzdl opened 4 years ago

qzdl commented 4 years ago

Could look at using neo4j, or datomic.

Similarities between the syntax as found in examples/*, and Cypher. Trivial to parse the current datastructure into (NODE)->-[EDGE]->-(NODE)

( Move Somethin' )->-[ Contains samples of ]->-( Can't Stop Loving You, by Soul Dog )
( Move Somethin' )->-[ Contains samples of ]->-( Shaft's Mama, by Charlie Whitehead )

e.g. print output from examples Sample Info: ( Move Somethin' )->-[ Contains samples of ]->-( Can't Stop Loving You, by Soul Dog ) ( Move Somethin' )->-[ Contains samples of ]->-( Shaft's Mama, by Charlie Whitehead ) ( Blast )->-[ Contains samples of ]->-( Boogie Nights, by Heatwave ) ( Blast )->-[ Contains samples of ]->-( Say My Name, by Destiny's Child ) ( This Means You )->-[ Contains samples of ]->-( Clouds in My Sunshine, by Redbone ) ( This Means You )->-[ Contains samples of ]->-( Let the Drums Speak, by The Fatback Band ) ( Too Late )->-[ Contains samples of ]->-( Passepied (Suite Bergamasque, No. 4), by Isao Tomita ) ( Too Late )->-[ Contains samples of ]->-( Reverie, by Isao Tomita ) ( Too Late )->-[ Contains samples of ]->-( Top Billin', by Audio Two ) ( Memories Live )->-[ Contains samples of ]->-( Carol Ann, by Soft Machine ) ( Memories Live )->-[ Contains samples of ]->-( I Can't Stand the Rain, by Ann Peebles ) ( Down For The Count )->-[ Contains samples of ]->-( Bitch Please II, by Eminem and Dr. Dre feat. Nate Dogg, Snoop Dogg and Xzibit ) ( Ghetto Afterlife )->-[ Contains samples of ]->-( Royalty, by Gang Starr feat. K-Ci & JoJo ) ( Soul Rebels )->-[ Contains samples of ]->-( Funky Music, by Patti LaBelle ) ( Eternalists )->-[ Contains samples of ]->-( Fly Me to the Moon, by Dick Hyman ) ( Eternalists )->-[ Contains samples of ]->-( Follow the Leader, by Eric B. & Rakim ) ( Good Mourning )->-[ Contains samples of ]->-( Dizzy, by Hugo Montenegro ) ( Good Mourning )->-[ Contains samples of ]->-( C.R.E.A.M., by Wu-Tang Clan ) ( Good Mourning )->-[ Contains samples of ]->-( My Philosophy, by Boogie Down Productions ) ( Expansion Outro )->-[ Contains samples of ]->-( Teenage Love, by Slick Rick )

qzdl commented 4 years ago

Worth some research into graph vis libraries in clojure / JS (to consume in cljs); would be nicer to only deal with primitives, or feed something to D3 that makes sense.

A good base might be neo4j's browser implementation, if the algorithmic code and D3 calls can be separated out and ported to cljs then winner winner.

A CLJS front end would lean on react in some way or other, so it may just be that the visualisation component can be re-implemented with just a map as the graph (no complex weighting or any funny business is required at this point)

Neo4j browser Motivation (trawl for Viz specific) mapper code from neo4j browser