Moved from [Ideas].

I have started investigating a simple bread crumb implementation.

--KenLiu, 10-Jan-03

Mostly done.  13-Jan-03

;:''This feature (based 90% on KenLiu's code) has now been integrated in the 2.0.19 version of JSPWiki.''


One thing I have seen in another Wiki, was a history of pages (last 5) visited in the Wiki at the top of every page (like Breadcrumbs).  It was just a simple array that popped and pushed the new pages visited as the individual worked their way through the Wiki.  As my JSPWiki grows, I find that I really miss this feature.  A lot of my pages follow a hierarchical structure of reference (although I know everything is placed in the same location physically).  As I finish a new page, it would be nice to be able to go back to one of the previous pages without having to going back to the "Main" or using the Back button and go though a couple of pages.  Just an idea.


Hm.  Is there some reason why you can't use the pop-up history feature of most browsers?  (I.e. in Mozilla, click on the small arrow next to the back button, in IE click-and-hold the back button).

How is this feature different from that?   I'm asking because quite a lot of people have been asking for it, but so far I have not understood the difference between the browser history and this feature.

--[JanneJalkanen], 20-Dec-2002

In truth, None.  It is just a little more convenient to see where you are and where you just came from and makes navigation a little quicker.  In my opinion, it is just a way of working that most (especially me) have come accustomed to with big websites and (breadcrumb) navigation.

--[TraceyMonroe|], 2002-12-20

One distinct benefit from using breadcrumbs is that you are always guaranteed to get an updated page.  When you use the browser history to go back, you are using a locally cached version.  Furthermore, it's a bit easier to navigate backwards.  To go back say five pages, you use a single click.  To use the browser history, you have to either click the back arrow five times, or click the (tiny) dropdown back menu and then move down to the appropriate page.

--[KenLiu], 9-Jan-2003

An interesting twist might be to make this history a graphical view. It's not the same thing, but take a look at:


-- [PaulDownes], 12/20/02

[Torsten Hildebrandt] sent me a very interesting patch (though very large =) which had among other things, a way to do graphical views.  I'll see if I can integrate anything from that.[#1]

-- JanneJalkanen, 03-Jan-2003.


!!May 3, 2002 -- [MattMower]
!!Track path through Wiki

I've used a program called [PersonalBrain] for quite a while now as a PIM and thought organizer.  One neat feature that is has that I think could be incorporated in the Wiki is its idea of a "path of thoughts."

That is, at the bottom of the screen it shows the path of thoughts you have traversed to get where you are (in that session).

I thought we could replicate this in JSPWiki using referrer information?

What I had in mind was that we would use the cookie to track each Wiki page you traversed and display them as a series of links somewhere useful on the screen.  We would consider the start of a session to be arriving at a [WikiPage] with an off-site referrer.

[JanneJalkanen]: Well, most browsers give you an easily accessible history anyway from the back button.

[MattMower]: I appreciate that.  However, for the most part, you don't see it - it's hidden away by the browser interface.  I find being able to just see the path I've taken, right there in front of me, thought provoking.  It may be one of those things that you don't appreciate until you don't have it.  I guess if I think it's important I can implement it using a Plugin (when I learn how) and contribute it back in case anyone else likes it too...

[GarethSB]: I've been thinking about this too. One variant I considered was to be able to show the shortest path from the Main page to the current page (in the same way that many hierarchically structured sites do). Another option would be to weight the shortest path algorithm by associating costs based on how often a given link is traversed (more traversals, either by you the individual user or by the [WikiCommunity] as a whole, equals lower cost). What do you guys think?

[JanneJalkanen]: Sounds like an interesting excercise... Volunteers? :-)

KenLiu: Just a brainstorm, but it might be useful to analyze all the pages and sort them by distance from the Main page (excluding the Index page).  Not particularly useful, but it might help to show pages which aren't easily accessible.  Probably good from an administration standpoint.  You could easily find orphan pages this way too.

[Torsten|TorstenH]: The patch Janne mentioned above[1] contains exactly that. You can
also build a sitemap-like structure from this information. Currently not implemented
is a display of pages not reachable from Main, but this could be added very easily.

Actually I find it quite usefull not only for administration as it doesn't (necessarily) show you the pages you have already seen, and it presents a kind of categorization of a page (if the Wiki is well structured).

[JanneJalkanen]: Yeah, it's a cool patch.  The problem is, finding out the shortest distance between nodes is a NP-complete problem, and thus difficult to do in less than O(N^2) time :-).

I've pushed it back for now, but I'll very probably be including something like it in the future.  I just want enough free time to finish the current problems and release 2.0 stable... Waa...

[Torsten|TorstenH]: I understand that you don't want to include it in 2.0 as the the new
ReferenceManager is quite a substantial change (what actually about URL-upload and allowing
property-references in the configuration? IMO only very small changes). Please give me some
hints in what direction you want to push development, I'm certainly willing to make
any necessary changes to ease integration. Unless you want to do it yourself of course ...

About NP-completeness: I'm not trying to minimize arbitrary edge weights (as the original idea
suggested), it's just a breadth-first traversal. Still O(n^2), but not NP-complete.

To do a bit of advertising, I'll add two screenshots. Feedback appreciated...

Torsten, did you take a look at the [Visual Tour on WikiWikiWeb|], it looks kind of similar to what you did.

Methinks that this should be an optional feature of the wiki.  I think it could be too processor intensive
-- [KenLiu]

It was exactly meant to be similar to it, also the NerveCenter (just see above, 
thanks to PaulDownes for the links). So it's just a me-too
feature of JSPWiki. :-) Btw, dot from
[AT&T Graphviz|] is used
for the actual visualization.

I don't think it's too CPU-intensive
* if you don't use one of the plugins there is no additional cost at all
* caching is used as much as possible. Graph images/image maps are
 calculated on request and then cached till the next edit operation. Same
 applies to path information, if a path is requested after an edit operation 
 all paths are recalculated and valid for all pages till the next edit. NerveCenter 
 is basically the same.

Yes it is O(n²), but this is not really an argument as keeping track of
all references in ReferenceManager is at least O(n²) anyway, and 2*O(n²) 
doesn't really make it much worse. If you're using JSPWiki with a very 
large number of pages you should get into trouble anyway (did anyone do 
a test with a very large number (>>1000) of pages?). My largest test consisted
of 1000 pages each referencing each other and it took about 300ms on a
Duron 1GHz to calculate the paths but about 2s to parse each page.

-- [Torsten|TorstenH]