Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DAG visualized as D3 tree #1

Closed
2 tasks done
harlantwood opened this issue Jun 6, 2015 · 20 comments
Closed
2 tasks done

DAG visualized as D3 tree #1

harlantwood opened this issue Jun 6, 2015 · 20 comments
Assignees

Comments

@harlantwood
Copy link
Contributor

I've begun work on the tree visualization discussed in ipfs/ipfs-webui#56

Here is a screenshot of the work in progress:

The source code is here.

Remaining to do:

@jbenet
Copy link
Contributor

jbenet commented Jun 6, 2015

this looks great. I can't wait! i'll try to get someone to help with ipfs/kubo#1322 sooner

@harlantwood q; does it handle dags well? seems like it would show the same logical node as two different viz nodes (which is fine for exploration, getting the dag to work right would be a huge pain)

@harlantwood
Copy link
Contributor Author

Great question @jbenet! You're right that as of now it would show a repeated node as two viz nodes. I wonder what we would want it to look like (layout) if we deduplicated nodes... Open to exploring.

The simplest route is probably to have graph shaped visualizations available as well as tree shaped; graphs of course handle this sort of thing well.

Maybe there is a whole body of work on DAG visualization, sort of between tree and graph...

@harlantwood harlantwood mentioned this issue Jun 6, 2015
58 tasks
@rht
Copy link

rht commented Jun 6, 2015

+1 for two modes of viz.

Which nomenclature is more natural: unixfs and ipfs view, tree and dag view, (serialized) data and object view, local and web view?

@harlantwood
Copy link
Contributor Author

Which nomenclature is more natural: unixfs and ipfs view, tree and dag view, (serialized) data and object view, local and web view?

I imagine potentially lots of visualizations types, so I imagine just calling them by their viz type: tree, graph, circle packing, treemap, etc... open to other ideas tho.

http://gateway.ipfs.io/ipfs/QmTkzDwWqPbnAh5YiV5VwcTLnGdwSNsNTn2aDxdXBFca7D/example#/ipfs/QmThrNbvLj7afQZhxH72m5Nn1qiVn3eMKWFYV49Zp2mv9B/graphmd/README.md for some effort deduplication.

Thanks! Yup, I based the viz infrastructure on the example viewer infranstructure, and under the hood we're using the refs API like graphmd does.

@harlantwood
Copy link
Contributor Author

We're now reading the IPFS hash from the URL. To try it out, start up a permissive server:

ipfs daemon --unrestricted-api

Then

git clone git@github.com:ipfs/dataviz.git
cd dataviz
git checkout tree-ltr
cd webapps/tree-ltr
make

This should load up the tree viz in your browser. Change the IPFS hash at the end of the URL to see any other IPFS tree.

@jbenet
Copy link
Contributor

jbenet commented Jun 6, 2015

@harlantwood this is awesome. let's make sure to lobby next week to have the gateway changes we need to ship this for use on the public gateways

@harlantwood
Copy link
Contributor Author

Sounds great

@travisperson
Copy link
Member

I would love to help out changing the gateways to support this. I won't make the sprint this week, so unless anyone at the sprint really wants to do it, I can take a lead on it.

@harlantwood
Copy link
Contributor Author

Awesome @travisperson!

@harlantwood harlantwood self-assigned this Jun 8, 2015
This was referenced Jun 8, 2015
@whyrusleeping whyrusleeping mentioned this issue Jun 9, 2015
50 tasks
@jbenet jbenet mentioned this issue Jun 16, 2015
55 tasks
@jbenet
Copy link
Contributor

jbenet commented Jun 23, 2015

@harlantwood btw i just tried this with the geoip root (QmQQ3BUpPjgYiTdhp4H9YWSCtoFXs8t91njhpvXNNLd3yB) and realized that because the refs are retrieved recursively, it wont work well for massive graphs. maybe it should grab the refs for each expanded node + its children, but stop there until a child is expanded.

@harlantwood
Copy link
Contributor Author

I've thought the same thing. Do we have any kind of API calls currently which can specify recursive, depth=1 ?

@harlantwood
Copy link
Contributor Author

If not, we could fetch each one.

@harlantwood
Copy link
Contributor Author

Incidentally, I'm working on a graph viz in http://famo.us which will address the DAG data structure much better.

@jbenet what is a good example DAG hash? One that's not just tree data, but has lots of shared leaf nodes?

@jbenet
Copy link
Contributor

jbenet commented Jul 4, 2015

@harlantwood not sure, maybe we could import the bitcoin blockchain (duplicates will be addresses), or the linux kernel source tree (probably not many duplicates) or something

@rht
Copy link

rht commented Jul 4, 2015

e.g. go-ipfs dependency graph, where some libs are reused.

@jbenet
Copy link
Contributor

jbenet commented Aug 7, 2015

cc @diasdavid

@daviddias
Copy link
Member

re: DAG hash - Can we use the one generated by adding all the openWrt versions?

@harlantwood
Copy link
Contributor Author

Closed with #5

@harlantwood
Copy link
Contributor Author

Thanks all for the large DAG ideas. We will test working with these and similar in the new breed of visualizations we are making, ala #4.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants