30 tabs deep — How can we build a tool to track our journeys around the Internet?

These days curiosity is likely to lead you on a long trek through the depths of the Internet. You read one article and you stop at a shiny hyperlink that screams, “click me!” Before you know it, you are 30 tabs deep and way off topic. I value these journeys for the unexpected treasures that lie along the way, but sometimes the connection of that treasure to your origin isn’t clear.

Though you have the back button, your browser history, and perhaps multiple tabs to save you, it still may be hard to understand how all of the webpages connect to each other. How do we make them feel more connected? If you could visualize the connections you could see how the information spreads across the web, or, in the case of web articles, how the story has grown.

This fall, I set out to make a tool that would track an internet browsing session and then map out the journey a user took in the form of a force-directed graph. The nodes of the graph would represent the links that a user visited and the paths would show journey to and from these links in relation to the origin of the session. Ideally the nodes would grow larger based on the number of links that are connected to it and the links would be able to show the direction that the user took to get there, where they went, and whether or not they returned.

[sc:pull-left pulltext="As I delved deeper into building out this idea, I came across more and more questions as to how this would work. " ]I figured that the user would want their browsing session to be undisturbed by the tool so the interface would have to be pretty easy and pretty discreet. The obvious direction to take was to to create a browser extension that would track your session and compile the data. The not so obvious part about that would be finding a place to display the graph of your session. Creating a web app with user profiles would allow not only for displaying the graphs but also save your sessions for later use.

When I started, my experience with any of the technologies that could produce this tool were slim to none. I decided to start with a Firefox extension to work on tracking sessions. I quickly learned about the limitations of browser extensions due to browser security protocols. I could easily grab the current URL of the user and grab the new one when a page was moved to, but I could not get the information from other tabs in the browser. This was a problem because it's not uncommon to see hyperlinks open the link in a new tab. The webpage in the new tab may have several hyperlinks itself and there isn't a way to differentiate a link in its relation to other links. When trying visualize the network, this would make it hard to differentiate between different paths of nodes. There are several libraries that allow for the production of force-directed graphs and I took a stab at using D3 because of how the graphs get rendered by a JSON object. The idea would be to expand upon that object to add a URL to every node. If you expand it to have to and from URL, you could allow for some differentiation in the paths of the links.

I am still looking for the correct data structure to accurately represent each web page, but the model for to and from links may be a start. The next steps I'll take are to modify how D3 renders the graphs to include these added features in the JSON object. The links between the nodes would then be determined by the "to" and "from" URLs. If everything goes according to plan then I will be able to render a network of webpages as a force-directed graph. But there is still the problem of writing the object and sending it to the web app for rendering.

As I delved deeper into building out this idea, I came across more and more questions as to how this would work. I think my next step should be to hit the drawing board again and focus more on the design of the whole tool (which is something I usually pass too quickly to start building). Ending up with a partially developed browser extension and some experimental D3 graphs did not point me in the right direction. I think that sticking with this project will help my development as a programmer and taking a swing at D3 could prove helpful for future work with data visualization. Hopefully some solid progress will be made in a few months time, especially with figuring out a good name for the project—that’s really what I get excited about!

About the author

Michael Martinez

Student Fellow

Latest Posts

  • Introducing StorylineJS

    Today we're excited to release a new tool for storytellers.

    StorylineJS makes it easy to tell the story behind a dataset, without the need for programming or data visualization expertise. Just upload your data to Google Sheets, add two columns, and fill in the story on the rows you want to highlight. Set a few configuration options and you have an annotated chart, ready to embed on your website. (And did we mention, it looks great on phones?) As with all of our tools, simplicity...

    Continue Reading

  • Join us in October: NU hosts the Computation + Journalism 2017 symposium

    An exciting lineup of researchers, technologists and journalists will convene in October for Computation + Journalism Symposium 2017 at Northwestern University. Register now and book your hotel rooms for the event, which will take place on Friday, Oct. 13, and Saturday, Oct. 14 in Evanston, IL. Hotel room blocks near campus are filling up fast! Speakers will include: Ashwin Ram, who heads research and development for Amazon’s Alexa artificial intelligence (AI) agent, which powers the...

    Continue Reading

  • Bringing Historical Data to Census Reporter

    A Visualization and Research Review

    An Introduction Since Census Reporter’s launch in 2014, one of our most requested features has been the option to see historic census data. Journalists of all backgrounds have asked for a simplified way to get the long-term values they need from Census Reporter, whether it’s through our data section or directly from individual profile pages. Over the past few months I’ve been working to make that a reality. With invaluable feedback from many of you,......

    Continue Reading

  • How We Brought A Chatbot To Life

    Best Practice Guide

    A chatbot creates a unique user experience with many benefits. It gives the audience an opportunity to ask questions and get to know more about your organization. It allows you to collect valuable information from the audience. It can increase interaction time on your site. Bot prototype In the spring of 2017, our Knight Lab team examined the conversational user interface of Public Good Software’s chatbot, which is a chat-widget embedded within media partner sites.......

    Continue Reading

  • Stitching 360° Video

    For the time-being, footage filmed on most 360° cameras cannot be directly edited and uploaded for viewing immediately after capture. Different cameras have different methods of outputting footage, but usually each camera lens corresponds to a separate video file. These video files must be combined using “video stitching” software on a computer or phone before the video becomes one connected, viewable video. Garmin and other companies have recently demonstrated interest in creating cameras that stitch......

    Continue Reading

  • Publishing your 360° content

    Publishing can be confusing for aspiring 360° video storytellers. The lack of public information on platform viewership makes it nearly impossible to know where you can best reach your intended viewers, or even how much time and effort to devote to the creation of VR content. Numbers are hard to come by, but were more available in the beginning of 2016. At the time, most viewers encountered 360° video on Facebook. In February 2016, Facebook......

    Continue Reading

Storytelling Tools

We build easy-to-use tools that can help you tell better stories.

View More