image provider

HTML Glossary Presenter


Disclaimer

This essay does not describe an existing computer program, just one that should exist. This essay is about a suggested student project in Java programming. This essay gives a rough overview of how it might work. I have no source, object, specifications, file layouts or anything else useful to implementing this project. Everything I have prepared to help you is right here.

This project outline is not like the artificial, tidy little problems you are spoon-fed in school, when all the facts you need are included, nothing extraneous is mentioned, the answer is fully specified, along with hints to nudge you toward a single expected canonical solution. This project is much more like the real world of messy problems where it is up to you to fully the define the end point, or a series of ever more difficult versions of this project and research the information yourself to solve them.

Everything I have to say to help you with this project is written below. I am not prepared to help you implement it; or give you any additional materials. I have too many other projects of my own.

Though I am a programmer by profession, I don’t do people’s homework for them. That just robs them of an education.

You have my full permission to implement this project in any way you please and to keep all the profits from your endeavour.

Please do not email me about this project without reading the disclaimer above.

It takes a glossary and imports it into an SQL (Standard Query Language) database with crosslinks between entries. You might maintain it as a database and export HTML (Hypertext Markup Language) periodically for the Java challenged, or you might maintain it as HTML and periodically import it into the SQL database. The SQL database may reside on a server or locally on each person’s machine who wants to read the database. They could get updates of just the changes. You might use Java Web Start to automatically distribute and install the changes.

You might even implement this with a simple flat file list of glossary entry names in alphabetical order and a list of corresponding URLs (Uniform Resource Locators) where you can find them.

You use a Java program to browse the glossary. When you are reading an entry, in the background, it tries to guess what you will read next and reads links and also the alphabetically previous and next entries. The Applet just hands the HTML record off to the browser to render.

If all goes well you should be able to browse almost as fast as if the entire database were already downloaded in RAM (Random Access Memory).

A simpler implementation would take See xxx,yyy entries in the glossary and verify/build/rebuild HTML links for them, generating plausible, unique NAME targets. You also want a tool to let the author build a cross link to some indexed word just clicking on it in the text. You also want the authoring tool to find ever instance of a word for potential including as a cross link. You might even say, what the heck and cross, link every instance of the word, appropriate or not.

Your local Java viewer might gradually cache the entire glossary. Each entry would have a timestamp, so that it would not redownload an entry unless it had changed. It would thereafter take only a few minutes to download the most recent entries into the cache for offline browsing.

You might consider exporting the glossary in WinHelp or JavaHelp format, or of adding WinHelp-like features to your viewer. It might contain a Java code presenter. The problem then is keeping the client’s copies of the giant jar files up-to-date without having to redownload them every half hour. See Automatic Update Project.

Sun has written a simple

Learning More

Oracle’s Technetwork glossary presenter

.

It does not have embedded links, but it has scrolling of both terms and definitions.

A simpler tool would be an Applet index that runs in a browser. All it does is help you find links and feed the ones you want to the browser. The browser does all the fetching, rendering and cross link chasing. You could scroll through an alphabetical list of all possible glossary entries in the Applet with thumbtabs for the A B C D etc entries and within that the Aa Ab Ac Ad etc. entries to help you rapidly navigate to the word you wanted. When you found an interesting word, you would click it and your browser would load that HTML page where that entry was and take you to the proper page on the page.

You could also navigate by keyboard, typing the first few letters of a word to let you navigate to any place in the list, with backspace support to back up one char, or Esc to start over.

Communicating with the browser is fairly easy. You just pass it a URL (Uniform Resource Locator) to jump to and render like this:

java.net.URL url = new java.net.URL( fileName ) ;
getAppletContext().showDocument( url );
You need a tool to periodically scan the website to collect a list of DT entries and the corresponding URLs. The main problem with this approach is the index would not have the latest and greatest entries. It also would take a fair bit of RAM in the Applet for all the entries. I have program already written that scans for DT entries to rebuild the meta KEYWORDS. It could be enhanced slightly to also grab the NAME targets for each glossary entry.

Once you get that working see my eBook essay and my essay on SCIDs. Then think about how you might implement some of those techniques for dealing with information overload in this context.

You could also implement margin notes, information overload filtering, change bars and what’s new lists in the same fashion I describe in the online books essay .

I have done some work on this project. I generate an index of all the DT entries and let people jump directly to the entry by selecting it from a pulldown list. See the Java glossary to try it out. I call this the com.mindprod.QF package. I would be happy to share that code with you.

I also generate the headers and footers of new glossary entries automatically and refresh them should they change. I also generate indexes to the glossaries.


This page is posted
on the web at:

http://mindprod.com/project/htmlglossarypresenter.html

Optional Replicator mirror
of mindprod.com
on local hard disk J:

J:\mindprod\project\htmlglossarypresenter.html
logo
Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

IP:[65.110.21.43]
Your face IP:[54.197.66.254]
You are visitor number