How to build a Piloted Navigation Site

Building a website with Piloted Navigation allows users to find what they want on your site easily. This methodology is becoming more prevalent on the web as it allows users to find information very quickly and in an organized fashion. The technology is based on facets which is essentially answering these questions. "What other ways would people want to view this data? What's another way to slice it?" You can find very technical website that describe the underlying principles of faceted navigation also called guided navigation. However CeleriQ allows you to actually build a site.

Step 1

You probably already have a database and it is full of data. You have been told to use that data to build a website for user, customers, etc to use. The first step is to define what you want to display. The example used through-out this site is one based on automobiles. This is a very good example as it has many items or facets on which to slice data. It also has geo-code fields for location searching.

We start by defining how a user would look for data. He could search by make, model, location (state, city, or zip), dealer, price range, mileage range, or features. So we login to our CeleriQ account and create a new dGraph and name it "Auto". We then start to add fields and dimensions. This is much like a traditional database setup. Define a field or dimension and a datatype. There are differences of course from traditional databases. The most obvious being geo-code and list datatypes. You may also define hierarchies of dimensions. I will elaborate on two features that may not be intuitive to those who have only used standard relational databases.

Hierarchies

We define make and then model. Realizing that people wish to select a make (Ford, Toyota, etc) and then a model (Bronco, RAV4, etc), we define a dimension hierarchy. We can have the "Model" dimension depend on the "Make" dimension. Now users will not see a model list until the automobile Make is narrowed to exactly one value.

Lists

Another type of new field is a list. This is essentially a many-to-many relationship. A good example of this is the features of an automobile. Many cars have power steering, and FM radios, etc. So we specify that the "Features" field is a list that can hold many values.

Geo-code

In addition to the standard data types, there is a geocode type as well. This datatype allows you to create a latitude/longitude pair as a single field. These fields may be used to perform searches within a radius or plot on a map. In conjunction with Internet mapping services like Google Maps, this is a very powerful datatype.

Step 2

Now that we have defined a dGraph, we must implement it. Simply go to the graph details screen and follow the link labeled Implement. After confirmation a repository will actually be built (or updated) on the server. That is all that you need to do to create a repository. You are ready to add data.

Step 3

Now you can populate your repository with data. To use the repository, copy the web service URL and create a link to the web service in your development environment. You can use any web service enabled environment you wish, like .NET, Java, etc. After you create an interface with the web service you will see that there are strongly-typed objects. I have named my dGraph "Auto", so I see objects like AutoUrlQuery, AutoItemResults, and AutoItem. The AutoUrlQuery object is used to build a object oriented query for the engine. The AutoItemResults is used to return the results to the client. Each record is of type AutoItem and contains the actual properties I defined in my dGraph, like Make, Model, Dealer, etc. It is that easy. I can now add data and query data.

To create my website, I just add a web service reference to my project and query the engine to get data for my pages. To see an example of how to query the CeleriQ engine follow the link.