The client
The Canadian Pacific Historical Association is a special interest group and registered society in British Columbia, Canada. They publish a twice-yearly magazine on topics related to the Canadian Pacific Railway and maintain an extensive collection of historical documents.
The need
In 1985, Canadian Pacific Railway’s corporate historian, Omer Lavallée, published a book titled “Canadian Pacific Steam Locomotives” which included several data tables. In my early 2000s university days, while learning about databases, it occurred to me that putting these data tables into a database would be a good first step towards making them searchable. I reached out to the Canadian Pacific Historical Association to see if they would be interested in partnering on this project, and they were very interested and provided a lot of helpful advice.
The solution
In the first phase of this project, a custom-designed search engine was built in PHP on the back-end using XHTML+RDFa and CSS on the front-end. RDFa is used to add semantics to the information presented. OpenSearch allows modern browsers to recognize it as a search engine, and results can be delivered in HTML, RSS, or ATOM formats. Some maintenance work has been done over the years to keep up with changes in PHP and HTML5, and to make the interface mobile-friendly.
The database is slowly being populated with data from the book. The search engine has context-aware intelligence built-in, enabling it to make search refinement suggestions.
In the future second phase of this project, rebuild information will be added from another book by the same author, titled “Canadian Pacific Diagrams and Data”.
Ideas for additional future phases, in no particular order, include adding data analytics, photo gallery integration, diesel locomotive data, passenger car data, and freight car data.

