-
Notifications
You must be signed in to change notification settings - Fork 7
Behaviour: Node and Edge Creation
In SenseMap, particularly the 'history map', the nodes represent the url/webpages user opened and the edges represent the relationships between the nodes.
Below are currently how the nodes and edges are created. However, they can (and will) change so long as it will make it easier for the users to understand what happened and/or conduct analysis (this is always the most important).
A new node is created in the SenseMap when the URL is changed. This can happen when user
- manually enters a URL (in the address bar);
- clicks a link on a page (doesn't matter whether the link is opened in the existing tab or a new tab/windows);
- performs any other interaction that causes change in the page but not the URL, such as Ajax call.
- This currently can't be detected.
- For tabs opened before SenseMap is run, currently no node is created in the history map when SenseMap is started. A node is added if such a tab is reloaded.
There are also a few exceptions:
-
Ignored URLs: Currently all Chrome URLs are ignored. Examples are 'new tab' (
chrome://newTab
) and extension page (chrome://extensions
). When such a page/url is opened, no new node is created in the history map. -
URL Redirection: In this case, user didn't perform any action, but rather the website changes the URL automatically. It often does not make much sense to show the intermediate URL (is there any case for showing it?).
- This currently can't be detected.
There are also cases that are not decided yet:
-
Duplicating URLs: what should happen when two tabs have the exact same url? Examples are the 'duplicate' option from the tab right-click menu and user types in the same url (such as google.com) in different tabs. Should there be one or two nodes?
- Two nodes, one for each duplicated URL.
-
Previous Tabs: what happens to the tabs opened before SenseMap is running? Currently SenseMap only add node for these tabs after they are manually refreshed.
- Keep it like that.
An edge is added to connect two nodes if there is some 'relationship' between the two. This only happens when a new node is created.
For case 2 & 3 under 'New Node', the newly created node should be linked to the node for the previous URL, whether it is in the same tab or not.
If there is no new node, there is no new edge.
For case 1 under 'New Node', the manually entered URL can be either related to current page or not. For the former, it should be linked; for the latter, it should not. The current implementation links the two.
Maybe we should ask user to always start a new empty tab for a manual url that is not relevant?
Missing Features for Online Study
Behaviour: Node and Edge Creation
Testing and Behaviour Driven Development (BDD)
Video: Testing with Jasmine and Sinon-Chrome
Video: overview of SenseMap code
Video: browser features in the old 'master' branch
How browserProvenance.js works
Video: create REST API for MongoDB using Node.js