GJXDM Wayfarer FAQ

Disclaimer: This access tool was developed for internal use at the National Center for State Courts. It was created by reverse engineering the data model from a number of linear reports. The National Center for State Courts does not claim that this tool provides an accurate representation of the GJXDM. For official and authoritative representations of the GJXDM, please visit the Office of Justice Programs GJXDM website.


for

What is the GJXDM Wayfarer? It's an exploration and discovery tool for the GJXDM.
What is the GJXDM? The GJXDM is the Global Justice XML Data Model. For all things GJXDM-related, please visit the Office of Justice Programs GJXDM website.
Why develop it? As part of a large grant, we needed to learn how the GJXDM was organized. However, the data model is very large and complicated. We were having problems "wrapping out heads around it." So we decided to develop an internal tool to help us out. Developing such a tool helps in two ways:
  1. The act of development forced us to learn more about the model's structure and contents.
  2. The tool itself then allowed us to easily explore the model.
Why release it to the outside world? We demonstrated early versions of Wayfarer (then called the Homebrew Viewer) at a couple of meetings of data model working groups. Feedback on it was very positive and people in the court community wanted access.
What's so special about it? There are two feature we particularly like about Wayfarer:
  1. It provides a dynamic tree view of container-element relationships in the model. You can open and close branches at will. You can drill down as deeply as you like.
  2. It provides a complete list of properties available for a specific element. It does this by tracing the type extension path up to SuperType.
Why "Wayfarer?" Because "Navigator" and "Explorer" were already taken. So we collected a list of rough synonyms and picked the one we liked best. Also, we couldn't find any other open-source projects using the name. (We almost named it "Vagabond.")
Is there an offline version available? There are three offline versions, two of which are available:
  1. Localized Version: This is simply a collection of static web pages. Searching the elements and types is not supported. (Trying to perform a search will send you to the online version.)
  2. Localized Version with Searching: This is also a collection of static web pages, but with the addition of searching capability. To provide this extra capability, you will also need to install Perl and a web server on the same computer as the static web pages reside.
  3. Palm Version: This version fits on a Palm PDA. It uses a third-party software package named Bonsai to present a dynamic hierarchical tree. Given the limitations of the Palm, it isn't terribly useful and is more of a technology demonstration than anything else. It's also not as complete as it could be. Due to all these limitations, we are not yet making it available.
Is it accurate? It's accurate enough that we use it internally for production work. But it has not yet been vetted by a large body of GJXDM experts. So we feel compelled to place a disclaimer on each page. Use Wayfarer, but double-check your work with an official source of the data model.
What if a mistake is found? Let us know so we can fix it. Contact Jim Harris at jharris@ncsc.dni.us.
How was it developed? Development was a multi-step process:
  1. First, we scoured the web for dynamic tree technology, preferably JavaScript-based. We found several. We chose the Dynamic Tree Menu System available from www.4guysfromrolla.com. It's free, works with most browsers, and uses an XML file to define the tree, which seems both smart and appropriate. (www.4guysfromrolla.com is a wonderful ASP resource.)
  2. Then we took the GJXDM spreadsheet and exported most of the sheets to tab-delimited files. We then hastily wrote a Perl program to parse the files and construct a series of SQL statements to build a database representation of the model.
  3. Using those SQL statements, we set up a database.
  4. Then we wrote a Visual Basic script, under ASP, to build the XML file from the database. That XML file feeds the Dynamic Tree Menu System in order to build the dynamic tree that fills the left pane of the page.
  5. Finally, we wrote a few more VB/ASP scripts to pull detailed information about individual elements and types from the database and present them in the right pane of the page. One of these scripts provides basic searching capability.
  6. Localized versions of Wayfarer were built using wget.
  7. Search capability in the localized version is provided via a small Perl program combined with a bit of data extracted from the database and stored in a pair of flat files.
Why does it take so long to load? The dynamic tree page itself is close to 2 megs in size. Additionally, your browser needs to take all this information and make an internal memory structure of everything. That all takes time. But, once the whole thing is loaded, there shouldn't be additional delays.
Why doesn't the dynamic tree change to reflect your selections in the right pane? That would be really nice. But, the dynamic tree software wasn't designed with that in mind. Modifying that software to enable this is most likely beyond our internal development resources.