QueryCapability in Rational Model Manager (v7.0.2)
Hello!
The query capability was discovered by next way:
Thank you!
Accepted answer
Side Note:
Rational Design Manager (RDM) is End of Service (EOS), and does not ship with ELM 7.0.2. You are actually talking about Rhapsody Model Manager (RMM).
To avoid confusion for readers, and make this thread more discoverable for users looking for RMM topics vs DM topics, I have updated the question/title to mention RMM instead of DM.
Answer:
RMM currently provides very limited support for Query Capabilities (only specific OSLC queries that DNG and DOORS are running against RMM)
Ex:
/am/oslc-am/query/_db8iYNNZEeerUJltAj9C5Q?oslc.where=*%3D%3Chttps%3A%2F%2Flocalhost%3A9443%2Frm%2Fresources%2F_dO_yAdRKEeehXdBOsttb4Q%3E&oslc.select=*
We do not support:
-oslc.searchTerms
and only support * for:
The request to expand on the OSLC query support is tracked in: Support query capabilities in the OSLC AM API. (62419)
Comments
David, look like your answer got messed up some how. The example query looks incomplete, as does (other than ).
Thanks for noticing that. Looks like the asterisk character needs to be escaped (with a backslash).
But yes, the current OSLC query support only works with 'oslc.select' and 'oslc.where' to the extend that DOORS/DNG <-> RMM use cases work.
The two work items might have more information (or may be an additional/different place to have further discussions, etc.).
You should probably include at least the
Oslc-Core-Version: 2.0
header, and an
Accept
header for an RDF media type, such as
text/turtle
or
application/rdf+xml
. https://docs.oasis-open-projects.org/oslc-op/query/v3.0/os/oslc-query.html#using-a-query-capability says:
oslc:queryBase
neither specifiesoslc.where
noroslc.searchTerms
, the server MUST return a query response describing all the resources that have one or more of the RDF types specified by theoslc:resourceType
of theoslc:QueryCapability
that defines theoslc:queryBase
.[QUERY-10]
If a GET or POST on a query base without
oslc.where
is not accepted, I think you should submit a defect against RMM since it is not compliant with the specification. It is acceptable to not support
olsc.searchTerms
or
oslc.paging
because these are optional.
Thank you David L. and everybody who was participating in this discussion! It seems that David's sample definitely works.
4 other answers
Get on the queryBase resource is not defined in OSLC Query. Some servers do implement this, often by returning the URLs of all available resources. But servers are not required to support this. This behavior may have changed between RDM and RMM. Try an actual OSLC Query.
Comments
Jim, I find that surprising. According to https://docs.oasis-open.org/oslc-core/oslc-query/v3.0/csprd01/oslc-query-v3.0-csprd01.html#using-a-query-capability the server MUST support a GET on the query base.
a GET on the query base URI of a query capability, with zero, one or more query parameters shown in the table below.
Servers must support a GET on the query base URI of a query capability. [query-6]
Your request is missing an
oslc.where
query expression. Perhaps the server requires it. It would be bad practice to attempt to query for all resources by omitting a query expression.
Comments
The OSLC Query specification says that the OSLC query parameters are optional. So while it should be valid to omit all parameters such as
oslc.where
, I think this should be discouraged. Effectively trying to query for every resource in the scope of a query capability may not be scalable or performant. Having said that, if RMM doesn't accept such a query, I would submit a defect against RMM because it is not compliant with the OSLC Query specification.
> The request to expand on the OSLC query support is tracked in: Support query capabilities in the OSLC AM API. (62419)
Is there anywhere accessible that give more information on this ?
Comments
The links used to be accessible. See https://jazz.net/blog/index.php/2024/02/29/jazz-net-is-evolving/ for what is changing. This information is no longer openly accessible.