- From: Jeremy Carroll <jjc@hpl.hp.com>
- Date: Thu, 20 Dec 2007 12:21:15 +0000
- To: "Web Ontology Language ((OWL)) Working Group WG" <public-owl-wg@w3.org>
I get the feeling that some of the differences between me (probably at one extreme) and maybe boris (for example) at another, has to do with the relationship we perceive between an implementation and a specification. Several times I seem to hear Boris wanting better guidance in the specifications for implementors. (The imports issue is one, the mapping rules is another ...) My point of view is that the specifications job is to specify, and only to specify what is needed for interoperability, (and at least in the normative sections), to do no more. I think where we know that implementators often need advice it is good to give some, where we can. Depending on how much effort we are prepared to put into reviewing such advice, it can be in informative Rec track document sections, or in WG Notes, or in some other form. One of the key documents that informs my point of view is RFC 2119, that defines the keywords MUST and SHOULD (amongst others). It hence gives guidance, and indeed constrains, about writing specifications (and what we refer to as normative specifications). http://www.ietf.org/rfc/rfc2119.txt One of my favourite sections is section 6 (how sad, having favourite sections in RFC 2119) [[ Imperatives of the type defined in this memo must be used with care and sparingly. In particular, they MUST only be used where it is actually required for interoperation or to limit behavior which has potential for causing harm (e.g., limiting retransmisssions) For example, they must not be used to try to impose a particular method on implementors where the method is not required for interoperability. ]] I personally would generalise that to all normative constraints, rather than simply those stated with MUSTs and SHOULDs Thus I see a specification as ideally a fairly abstract specification of externally visible behaviour (where in the Web context, externally means outside my local area network), and any attempts to help tools to solve the many difficult problems with implementing OWL must be carefully worded to avoid requiring the tools to solve those problems in the same way. I tend to see "interoperability" as a narrow concept, I think in accord with RFC 2119. For OWL, it amounts to can I publish an ontology using one tool, and read it, and reason with it, using another, and get results that do not surprise me. I don't think I think interoperability for us should include the use case of me phoning up Bijan, with us both looking at the same ontology in two different editors, and trying to have a meaningful conversation about it. If my editor and Bijan's editor present the ontology to us in different ways, but that as a reasoning tool, we don't get surprised, I am not dissatisfied. The desired benefits are as follows: - different tools can be different by solving the same problem differently. This gives choice to the end user, without sacrificing interoperability. - discussions in the WG are limited to agreeing what we actually need for interop, rather than trying to standardize the manner in which our favourite tool goes about solving a particular problem [[As an example of the latter problem, supposing I fail to convince people that we should avoid specifying how to do imports robustly with both a local copy and/or a web copy, then, since Jena provides a solution, I will be obliged to argue that that solution is the one that should be standardized. Clearly a parochial point of view, but it is in HP's interest, and my job is to argue HP's case. (Also I will have to understand HP's solution, which I don't at the moment :(, it not being a bit of the software that has been important to me personally) ]] Jeremy
Received on Thursday, 20 December 2007 12:21:51 UTC