Skip to content

Feature Request for a Paper->Paper Visualizer #2

Open

Description

@Kully

It would be super cool to be able to see a map of citations between the papers themselves?

I was not able to see support for this in citegraph and wanted to know if this is something that:

  • is currently possible?
  • can be added to citegraph?

Here is a quick mock up I put together in Figma that hopefully helps illustrate the intention:

image

Activity

  1. li-boxuan commented on Jan 29, 2024

    @li-boxuan
    Member
  2. Kully commented on Jan 29, 2024

    @Kully
    Author
  3. li-boxuan commented on Jan 29, 2024

    @li-boxuan
    Member

    With a cohesive
    picture if all nearby connections, it would be impactful to visually see
    what papers act as more a bedrock for other papers.

    I am trying to formulate what you describe here, and please correct me if I am wrong. Given a paper A, it would be helpful to see all papers it cites (A1, A2, A3, ... An), and also the papers those papers cite (A11, A12, A13, ... A1i, A21, A22, A23, ... A2j, ..., An1, An2, ...) - so called two-hop references. It could also be three-hop if required, but I presume two-hop would be enough. The visualization should also include links (citation relationships) among those papers. It should be visually straightforward to find the paper(s) that have most ingoing links (citations) in this network.

    Let's say paper A cites B, C, and D. B cites D, E, and F, while C cites D and G. D cites Z. We should draw a graph that shows A, B, C, D, E, F, G, Z, with D being highlighted because D is the bedrocks for these papers. Likely B and C are relational works or prior works of A, while D is the foundational work in this field.

  4. Kully commented on Feb 3, 2024

    @Kully
    Author

    Hi @li-boxuan apologies for the late response. I've been busy with work and just getting a chance to read now. 😄

    Yes this is pretty much what I am imagining, esp. with your last paragraph's framing: it is important to have a sense of bedrock for papers, so as to allow us (the thinker, researcher, etc) to help us proportion our confidence or significance of a paper with more ingoing links (citations) than fewer.

    I quickly designed picture to illustrate your example:

    image

    @li-boxuan What do you think?

    Misc Thoughts:

    • Maybe there are ways to organize the nodes so that the more "bedrock" float more near the bottom of the screen?
    • Two-hop references makes sense to me, but it would nice to be able to see the entire landscape at once, zoom in, pan around, etc (N-hop?) Obviously easier to say than to do, just a thought :)
  5. li-boxuan commented on Feb 4, 2024

    @li-boxuan
    Member

    @Kully

    Sounds good! I'll add this to my TODO list. Right now, I am re-processing all the data, enriching the data (adding paper descriptions, venue, tags, etc.) and cleaning up some cumbersome duplicate data points. After that, I'll work on this. Please expect a prototype by the end of this month or maybe next month.

    The major challenge I see is the limited computation power. In the real network, a 3-hop query could reach tens of thousands of nodes and poses great pressure on my server if we don't limit the fan-out factor. That being said, it might make sense to allow N-hop query with a fan-out factor, assuming that dropping out several random citations would not harm the ability to find the "bedrock".

    Computation power wouldn't be a bottleneck if the user runs the application on their own machine or even laptop. I could probably upload the cleaned dataset and package a Docker image for the application. It wouldn't be an one-click experience, though. Is that something you would be interested in? I imagine most users don't want bother doing that but I am just curious.

    Finally, I want to say that I've been a bit demotivated recently due to lack of attention. Feedback like this is of great help to me. If you like this project, a star would also be very appreciated :)

  6. Kully commented on Feb 4, 2024

    @Kully
    Author
  7. li-boxuan commented on Feb 4, 2024

    @li-boxuan
    Member

    I don't have specific longer term visions with respect to this app. I have some Azure credits to spend every month, so I started this project for fun (with the hope that it could help some people). That being said, I do want to enhance the UI experience in the long run, but that would depend on the feedback and popularity of the app. Worst case, I'll just leave the app as it is once I finish whatever I am doing right now.

    I may be able to use some of your help once I deliver the first (ugly) version. Stay tuned :)

  8. Kully commented on Feb 4, 2024

    @Kully
    Author

    I may be able to use some of your help once I deliver the first (ugly) version. Stay tuned :)

    Exciting! Staying tuned. 🙏 I would be curious to see what you come up and happy to help if it makes sense.

    I can also share some design portfolio work if interested. :)

    Also, gave you a star. ⭐️ (didn't know why I had not already done so)

  9. Kully commented on Feb 16, 2024

    @Kully
    Author

    @li-boxuan

    This is a node graph project I've been working on for a while with another collaborator. Feels relevant to share.

    image

    If you wanna play with it, you can go here: https://tok.shuttleapp.rs/

  10. li-boxuan commented on Feb 23, 2024

    @li-boxuan
    Member

    @Kully Do you have any example in your mind? Say, a paper (that exists in the citegraph database), and a potential bedrock paper that you want the tool to be able to find?

  11. li-boxuan commented on Feb 23, 2024

    @li-boxuan
    Member

    I have developed a prototype but the visualization just looks too messy. Even if we only consider two-hop queries, there could be hundreds of or even thousands of papers. I guess we have to include some criteria before we draw the nodes. But I am really not sure about 3-hop nodes - that could be a terrible workload unless we use some smart heuristics that can do the pruning efficiently. So, some examples would really be helpful here.

  12. Kully commented on Feb 26, 2024

    @Kully
    Author

    @Kully Do you have any example in your mind? Say, a paper (that exists in the citegraph database), and a potential bedrock paper that you want the tool to be able to find?

    Hmm, I don't have an example off the top of my head. I would need to go to citegraph and look for a relevant paper.

    I have developed a prototype but the visualization just looks too messy. Even if we only consider two-hop queries, there could be hundreds of or even thousands of papers. I guess we have to include some criteria before we draw the nodes. But I am really not sure about 3-hop nodes - that could be a terrible workload unless we use some smart heuristics that can do the pruning efficiently. So, some examples would really be helpful here.

    Wow amazing, thank you for doing that so quickly. ⚡️

    Hmm are you able to share what it looks like in a branch? I'm wondering if it makes more sense to start from the design and work from backwards there? Would you be open to doing this?

  13. li-boxuan commented on Feb 27, 2024

    @li-boxuan
    Member

    @Kully

    Here you go: https://www.citegraph.io/playground/citations

    One example: https://www.citegraph.io/playground/citations?id=573695516e3b12023e47bfa1

    Here the paper of interest (displayed in purple) is: How Good Are Query Optimizers, Really?

    One-hop references are in blue, and two-hop references are in green. A node's size reflects its pagerank (note: pagerank is computed by citegraph. It's not an authoritative score, but it reflects the importance or popularity of a paper. See https://www.citegraph.io/faq for more). But maybe the node's size should reflect its popularity in this subgraph (how many papers cited it)? I am not sure which would be better.

    image
  14. Kully commented on Mar 10, 2024

    @Kully
    Author

    @li-boxuan Finally getting a chance to respond to this.

    Amazing work putting this together. 👏 Open-source work can be taken for granted, so want to acknowledge what you did.

    Regarding your deliberation over what the node's size should reflect ... I like the idea of having the node size reflect # of citations in this subgraph. This feels more aligned with the goal of "let's find which paper(s) are more bedrock".

    I'm sure there are other visual variables that can be used to express some of these, but would require more thinking and use exampled, as you mentioned.

    One thing might be useful is to order the nodes like this: node of interest first, blue nodes lined up, then green nodes lined up.

    image

    What do you think?

    (note, maybe the really big green node represents the most popular node, and maybe that's the only one that gets a size change)

  15. li-boxuan commented on Mar 22, 2024

    @li-boxuan
    Member

    @Kully

    Your mockup looks really neat but unfortunately there's no such layout available for me to use. And if you think about it, the green nodes might also have edges among themselves, which would make the graph look messy.

    Here are a few builtin layouts I could use. What do you think? I personally prefer ForceAtlas2 and I have deployed it that layout: https://www.citegraph.io/playground/citations?id=573695516e3b12023e47bfa1

    1. Circlepack
    Screenshot 2024-03-22 at 12 56 06 PM
    1. Force
    Screenshot 2024-03-22 at 1 03 18 PM
    1. No Overlap
    Screenshot 2024-03-22 at 1 05 54 PM
    1. Force-Atlas2
    Screenshot 2024-03-22 at 1 07 44 PM
    1. Circular
    Screenshot 2024-03-22 at 1 09 20 PM
    1. Random
    image

    The best thing about Force-Atlas2 is it can show research communities in a vivid way (e.g. http://citegraph.io/playground/cluster?id=5448b9b7dabfae87b7e6d9ee)

    image
  16. Kully commented on May 25, 2024

    @Kully
    Author

    @li-boxuan Sorry for the super late response. I got very busy with work.

    Hmm, I do like the Force-Atlas2 one the best as you pointed out in the last slide. :) I'm curious what you mean by research communities as well.

    Thinking about all of this again, I am realizing that it is probably unrealistic (and maybe not that helpful) to just "see all the connections N-hop (N=2) connections from one paper". As you are showing, it's pretty messy.

    Thinking about this again, maybe a more clarified vision for what we want out of this is:

    Requirements (clarified)

    • Given some paper P, show me all the papers that have cited it (1-Hop?)
    • For each of these citations, visually show me the how many years ago they were cited (eg. this paper was cited 10 years ago by paper X, 12 years ago by paper Y, 1.2 years ago by paper Z, etc)
      • Visually indicate the general spread (eg. display the year values as a histogram? display just the mean and variance?)
    • visually see the significance of each of the citations
      • thicken the line (citation) between nodes based on some metric of "citation value" (not sure)

    How does this sound to you? If you are open, maybe I can diagram some stuff for this? :)

  17. li-boxuan commented on May 25, 2024

    @li-boxuan
    Member

    I'm curious what you mean by research communities as well.

    I used an algorithm to group people with collaborations. A research community is a group of people that have directly or indirectly collaborated before. What if a person collaborates with multiple groups of people? Well, the algorithm would decide which group (or so-called communities) they are best fit. Community detection is in general a research topic that has been popular for many years in the graph theory / data mining field.

    How does this sound to you? If you are open, maybe I can diagram some stuff for this

    YES that would be very helpful! I do want to point out that I don't have direct control on the layout algorithm (node distances, how nodes are spread over on the canvas), unless we write our own one - that would be very challenging, not impossible but could be time-consuming.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions