This wiki is locked. Future workgroup activity and specification development must take place at our new wiki. For more information, see this blog post about the new governance model and this post about changes to the website.

OSLC Reporting Specification V1.0 - DRAFT

By: The OSLC Reporting Specification Workgroup

This is a DRAFT document that is under review. You can help by reviewing carefully, raising issues for discussion on the OSLC Reporting WG mailing list and document specific issues that need response on the issues page here OSLCReportingV1Issues.

This specification is based on the OSLC Reporting Workgroup’s drafted specification. This specification will refer to topics described in OSLC Core Specification V2 ( A good understanding of the OSLC Core Specification V2 is pre-requisite for reading this specification.


The Open Services for Lifecycle Collaboration (OSLC) initiative is creating a family of web services specifications for products, services and other tools that support all phases of the software and product lifecycle. The purpose of these specifications is to enable integration between products that support Application Life-cycle Management (ALM) and Product Life-cycle Management (PLM). Each part of the lifecycle or domain has its own work group and specification, for example there are Change Management, Quality Management, Estimation & Measurement and more. Each of the domain specifications are built upon the OSLC Core Specification.

Reporting is cross-cutting across all domains. Reporting is built upon the Core Specification. It specifies the additional requirements on top of domain specifications that would enable OSLC Service Providers providing OSLC Services that can be consumed by OSLC Reporting Consumers.

This document will makes references to the OSLC Core Specification. This document may tighten the constraints as specified in the OSLC Core Specification, but will not relax them.

Glossary of Terms

A basic set of terms are defined in Glossary of Terms in the OSLC Core Specification .

Here are the terminologies introduced by Reporting.

Reporting Consumer - A reporting system which consumes the OSLC services provided by OSLC Service Providers for the purpose of doing analysis and reporting on OSLC Resources.

Notation and Conventions

The key words "MUST", "MUST NOT", "REQUIRED, SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" and "OPTIONAL" in this document are to be interpreted as described in RFC2119.

Interface Sequence Diagram

This section illustrates the interaction between an OSLC Service Provider, a Reporting Consumer, and the reporting users. The specification assumes that the Reporting Consumer has no specific knowledge of the Service Provider or its domain resources. It relies wholly on the Service Provider for discovering the shape of resources and their properties and for the presence of an OSLC query capability. Based on the resource shape and query capabilities, a Reporting Consumer is able to offer its users the ability to design and run reports.


Service Provider Resources

An OSLC Service MUST have Query Capabilities defined in Service Resource for all resources intended for Reporting.

Each Query Capability for Reporting

  • MUST have oslc:queryBase pointing to the resource that has a list of resources intended for Reporting. The resources in the list MUST be identified as oslc:isMemberProperty in the Resource Shape Resource of the list resource.
  • MUST have oslc:resourceShape to describe the list resource.

Resource Shape Resource

For every Query Capability that an OSLC Service provides for reporting, there MUST be a corresponding Resource Shape Resource for the subject resource identified in the Query Capability.

Each Resource Shape Resource MUST have EXACTLY-ONE oslc.describes to identify the type of resource described by this shape.

For those properties in a Resource that are intended for Reporting, they MUST be described in the Resource Shape Resource. There is no requirement to describe all properties of a resource in Resource Shape Resource though.

If the value-type of a property is a resource type, the property MUST provide a shape value (oslc:valueShape) to indicate the Resource Shape that applies to the resource. This applies to properties of the referenced resource that are intended for Reporting and the Service Provider knows the shape. If the referenced resource is not managed by the Service Provider, then there is no need to provide a shape value (oslc:valueShape).


An OSLC Service MUST support OSLC Core Query Syntax for Query Capabilities that are intending for Reporting.

  • SHOULD support
  • SHOULD support
  • SHOULD support oslc.where
  • SHOULD support oslc.orderBy
  • MAY support oslc.searchTerms

An OSLC Service SHOULD support Resource Paging, even if the client does not specify oslc.paging=true or oslc.pageSize to the query component of the resource URI. It MUST include oslc:ResponseInfo as required in the response of a query. It MUST include oslc:nextPage in the oslc:ResponseInfo except the last page.

When a client requests a resource that an OSLC Service considers to be too large to return in one response, the OSLC Service MUST return a representation that contains partial information about the resource.

An OSLC Service MUST support* and* that returns at least those properties that were described in Resource Shape Resource. Reporting consumers MUST tolerate additional unknown properties that MAY be returned.

OSLC Resources SHOULD have a property dcterms:modified for modification timestamp. Reporting Consumer will use this property in oslc.where to effect delta loading for the data warehouse use case.

Resource Representation

An OSLC Service MUST provide XML representations of all Resources that are intended for Reporting following the Guidelines for application/xml.


An OSLC Service Provider MAY choose not to protect its resources. If it chooses to protect its resources, it SHOULD use either HTTP Basic Authentication, Form-based Authentication, or OAuth Authentication.

Appendix A: Guidelines for deletion

In delta loading data warehouse use case, there is a need to inform the Reporting Consumer on deleted resources.

If resources are soft deleted (i.e. logically deleted), there would be a delete flag as a property of the resource. Thus deleted resources will be treated as changed resources.

If resources are hard deleted (i.e. physically deleted), it will be the Reporting Consumer's responsibility to send query to get resource URL (or an unique identifier, if exist) for all current resources, and then map out what have been deleted in its data repository. An alternative approach would be the Provider has a "deleted resources resource" that can return deleted resource id's with dcterms:modified. This is a more optimum approach is the Provider can support.

Topic attachments
I Attachment Action Size Date Who Comment
jpgjpg oslc_reporting_sequence_diagram_100426.jpg manage 109.2 K 27 Apr 2010 - 02:52 TackTong OSLC Reporting Sequence Diagram
jpgjpg oslc_reporting_sequenece_diagram_110321.jpg manage 84.0 K 21 Mar 2011 - 19:51 TackTong  
Topic revision: r13 - 21 Mar 2011 - 20:16:09 - TackTong
This site is powered by the TWiki collaboration platform Copyright � by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Contributions are governed by our Terms of Use
Ideas, requests, problems regarding this site? Send feedback