(This post is a place for my concluding remarks for the online wayfinding system project that I started this semester. It is also the starting point for my work on it in the next semester.)
In this project, I ventured to explore, design, and implement the concept of an online wayfinding system.
I started the process by trying to understand the problem further, including circulating a questionnaire about the tabs that the respondents had open in their browser window.
The problem, I found out, has three main challenging facets.
In particular, the representational aspect of the problem can be distilled by considering maps and graphs as two views of the same underlying data constructs. Each view has its own benefits, as shown below. Which of them is best for the problem at hand?
To explore the problem further, I followed a process that is abbreviated below throughout this semester.
Additionally, I found out that it is important to understand what a location is when we speak about an online session. There is the obvious, topographical definition of the term, where a web page is part of a domain hosted in a server. More pragmatic, however, is the view of a location as a point of time in a browsing session, as a particular page-visit.
From there, I started the process of designing the dynamic “map” I wanted to implement.
I worked on defining a modular visual language that allows for showing each visit according to its connectivity to other visits.
In terms of data structures, I experimented with a few. A graph, at least as a data structure, is the best fit for the job.
Next was mapping the parameters of visits to their visual representations. I experimented with a few combinations.
The final product, at least in its current iteration, is a Chrome extension I created using JavaScript, jsnetworkx, d3js, jQuery, among other framework.
The main map view is supplemented with a legend. The extension listens passively to the user’s activities, and accordingly categorises each action into a location in the current session, or in a new one.
As you progress into a browsing session, forks and intersections are introduced to the map view. The size of each node is proportional to the number of paths it led to.
The user also has the ability to “annotate” each node by selecting an element from the page, whether an image or a text, to be added to the node as a form of note-taking and highlighting for future reference.
The below is a rough estimation of how I’ve spent my time in this project. How I wish it was is more of the pink stuff and less of blue ones.
What about the future, you ask? The future sounds exciting.