Conformance Conundrums
by Bijan Parsia
December has be an active time on the RIF working group mailing list and the OWL Dev list, especially about “conformance” (and compatibility). Conformance clauses of standards are one of the stickier tar pits since they serve (or are thought to serve) as the basis of interoperability. Put your TRUST in the MUST, as it were.
Conformance clauses are tricky for several reasons both technical and political. Technically, no standard is a tight enough spec to exactly determine everything about a system, nor would you want it too. Performance, for example, is typically an axis of differentiation of (conforming) products. Politically, every vendor (commercial or non) wants it to be as easy as possible for their system to fully conform. (Some may want it to be difficult for competitor systems to fully conform…but not always.) If the spec is ambiguous, it may be possible for two conforming systems to fail to be interoperable. Similarly, if the spec has optional aspects. Then there is the issue of determining or certifying conformance (who does it; what the procedure is; etc.).
Conformance clauses can be a handy thing for customers. For example, though obviously we knew how to implement Qualified Number Restrictions in Pellet—- and there was clear user demand for them—- we didn’t implement them until the pressure of OWL 1.1 came along. After all, it was work, not interesting or research supporting work, and in the end we’d have a implementation of a very boring extension (from the publication perspective) to the OWL language. Not exactly a strong motivator in the absence of specific funding. However, “fully supporting OWL 1.1” is nice and punchy and valuable to us.
I leave it to the interested reader to sort through the conformance debate on the RIF list. I made a little contribution which isn’t a bad place to start (though it’s not at the beginning). Michael Kifer defined a (contentious) notion of conformance for RIF systems and, in a reply to me, distinguished between conforming to a RIF dialect (which really is a property of documents) and implementing a dialect. (This just goes to show the trickiness…these raucous threads may have stemmed from a terminology confusion!)




