[oslc-rm] Discussion during today's bi-weekly call - link naming
Ian Green1
ian.green at uk.ibm.com
Mon Aug 9 13:57:53 EDT 2010
During today's call there was an interesting discussion on the RM resource
model. (I don't pretend here to have summarized the discussion.)
In 1.0, we had fairly general relationships between requirements and other
resources. For example, "validatedBy" was motivated by a scenario in which
a requirement was validated by a QM resource. The QM resource was
considered to be a "test case". A related scenario used "validatedBy" to
capture a similar relationship between a collection of requirements and a
test plan. We discussed other forms of validation (indeed, there was a
call, during 1.0 effort, to call the relation "qualified by" since that is
often recognised as more general that "validated by". (Please put to the
back of your minds thoughts that it should be "verified by", since here
I'm making a different point - one of generality.)
Of course the RM workgroup did some thinking about the names of relations:
we produced [1].
OSLC RM 2.0 formally specifies the names of these relations - they are
part of the spec., and the names are important. The QM and CM workgroups
[2,3] have adopted a style of naming which we need to consider adopting in
RM. There are also ramifications for OSLC generally that we might
consider.
The naming convention is to include in the type of the object resource in
the name of the predicate. So for example, QM has "validatesRequirement"
and "validatesRequirementCollection". The former is from a test case to a
requirement, the latter from a test plan to a requirement collection. In
addition to naming, OSLC specifications have also introduced a "range"
specifier, in the specification and in the OSLC Shape resource, which
describes what type of resource is at the other end of such a link. For
these examples, it's "Requirement" and "RequirementCollection".
With this design, we have a number of issues, I think:
- the number of predicates grows exponentially in the number of
resources. I can't judge if this will impact OSLC in a practical way.
- the names are suggestive/indicative of an unstated (?) contract
that OSLC providers may not be aware of, or want to offer. This might be
an onerous contract.
- consumers use this denormalized data to avoid fetching/querying
the resource.
- does an authority have to check that nothing breaks this
invariant
- does it prevent the resource from changing type (eg a
test case changes into a test plan)
- a client does not have access to the richness of the
model - a resource may have more than one type (for example, a requirement
may also be a model element)
Consistency suggests that RM follows the draft CM and QM specs in this
regard ("implementedByChangeRequest", validatedByTestCase) etc. But my
feeling is that consistency should not compromise our design. I'm minded
to use the more general predicates: "implementedBy", and "validatedBy",
and to leave the "range" as unspecified.
Clients wanting to establish the type of the resource at the other end of
a link can GET that resource, or they can query for the type of the
object, and react accordingly. Looking at the name of the predicate or
the range specifier in the spec. is fragile, and almost bound to break in
the future, and/or limit the extent to which OSLC can reuse these
vocabulary terms, or to unnecessarily narrow their interpretation.
I don't believe that any such decision by RM on this topic will affect the
other OSLC workgroup specifications, or be conflicting with the OSLC Core.
Any reactions?
[1] http://open-services.net/bin/view/Main/RmDiscussionLinkTypes
[2] http://open-services.net/bin/view/Main/QmSpecificationV2
[3] http://open-services.net/bin/view/Main/CmSpecificationV2
best wishes,
-ian
ian.green at uk.ibm.com (Ian Green1/UK/IBM at IBMGB)
Chief Software Architect, Requirements Definition and Management
IBM Rational
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
More information about the Oslc-Rm
mailing list