PDQ: Queries with Objects in 1986
I've specialized in formal language design and implementation since the 80's,
often as a consultant, and built some successful systems.
In 1986, I consulted to a former client in silicon valley that had changed
names from CADTec to Sherpa. They were building what would later be called
'configuration management' systems. These always needed human interfaces,
and so I designed and built a few with them. One language was just called
PDQ, or 'product data query', essentially a query translator in front of
PDQ became the heart of a system called Sherpa DMS (Data Management System),
a customizable design-and-construction workflow application that became heavily used
by the aerospace industry throughout the 90's. It helped with logistics and
engineering management, a field then called 'Product Data Management' which
would later be called 'Product Information Management' and later 'Lifecycle
Management'. Most jetliners produced in the 90's were designed using Sherpa DMS.
It was still in use after the dotcom boom, and might still be embedded in some
legacy systems today.
PDQ might have been the first object-oriented query language in a successful
commercial product. It's hard to tell, since such subsystems are often hidden,
and most products are lost.
Also, it's hard to call PDQ an object-oriented query language, in our contemporary
sense (I'm writing in 2017) since the intention was not to integrate with o-o
languages, whose compilers were still not yet considered reliable commercial products
in 1986, but instead to offer an optional approach to describing relations among
products, parts, and attributes -- an approach simpler than relational query languages
of mid-80's database products, but which would be implemented on top of them.
Utimately, this set of features propagated into almost all general-purpose query
languages. The ideas had been floating around in labs for years, so I'm not sure
if this implementation was a primary influence -- but it was certainly successful
enough to be influential.
A few years later, several of my colleagues at Sherpa formed a successful rival
company known as Agile Software.
Here are my working papers for the initial implementation, finished in the summer
of 1986. It's a nice example of the process required to delineate any query language's