OSLC Query capability parameters


Did OSLC Query Capability provides the only parameters mentioned OSLC Query Parameters or one can perform all parameters mentioned in SPARQL documentation?


Hi @talhashahid009,

OSLC Query is designed to allow implementers to provide query capability without having to use a triplestore. Providing full SPARQL feature set was an explicit non-goal. Only the properties listed in the spec may be supported.

What features are you missing?


Hi @andrew,

For example, if we have data for commits in a project and want to fetch all the commits based on year. For this case, SQL and SPARQL provide a parameter GROUP BY parameter to do this and get desired data with a single query.

But in the OSLC Query Capability document, there are some limited parameters mentioned, and as per the document, Query Capability is kind of based on SPARQL. So this means that OSLC Query Capability doesn’t provide all the capabilities of SPARQL.

What could be the solution to one who has a use case that is not covered by the mentioned parameters for a Query in the document of OSLC but that use case has a solution in SQL or SPARQL?

Let me know if my question is not clear.


One more question came after reading the

Change Management: Vocabularies

that timestamps such as created, closedDate, modified are declared as oslc_cm:property. Do they also have a URI, if yes than what could be the value for URI?


From the options known to me:

  1. If you have a triplestore behind your OSLC server, you could expose a readonly SPARQL endpoint to trusted clients. I would also look into exposing a Linked Data Fragments endpoint instead.
  2. IBM ELM Engineering Insights (I hope I got that right with all their renamings) has been used to make more complex queries, esp. across OSLC tools by fetching all of their data via TRS.
  3. At one of the previous OSLCfests, there was a presentation of an experimental effort to enable GraphQL on RDF.

So I guess we can conclude that the OSLC Query has limited expression capability. See for example another issue here OSLC Query should support test for exists and not exists · Issue #454 · oslc-op/oslc-specs · GitHub

Any other suggested approach would be implementation-specific.

This sounds more like a reporting requirement rather than an OSLC query requirement.

OSLC Query doesn’t support grouping. A server MAY support sorting. But if you want to aggregare or group the data in some form, then that’s up to the consumer of the returned data to perform.

If your data provider publishes the data in a Tracked Resource Set, and you are using IBM Rational Engineering Lifecycle Management, you might use the Lifecycle Query Engine to index data from your data provider. Then you might use Report Builder to define reports, or execute SPARQL queries directly on Lifecycle Query Engine.

You did not specify prefixes, but here is my guess:

  • http://open-services.net/ns/cm#closeDate aka oslc_cm:closeDate (without a d)
  • http://purl.org/dc/terms/created aka dcterms:created
  • http://purl.org/dc/terms/modified aka dcterms:modified