-
Type: Bug
-
Status: Open
-
Priority: Major
-
Resolution: Unresolved
-
Component/s: TRS
-
Labels:None
-
Proposal:
The TRS 1.0 specification did not define a trs:Base class, but rather referred to the object of a trs:base predicate as an "RDF container". The Base Resources does not specify and rdf:type for the base resource. The members of this RDF container are captured using rdfs:member predicates.
TRS 2.0 also does not define a trs;Base class, it also refers to the Base resource as the target of the trs:base predicate whose range is specified to be ldp:DirectContainer. The TRS 2.0 spec does define some properties of this unspecified resource type, so when I created the resource shapes for TRS 3.0, I added a trs:Base resource shape that oslc:describes ldp:DirectContainer in order to formerly reflect what was in the 2.0 specification.
It is not clear what TRS 1.0 implementations exist, but any TRS implementations done using eclipse/Lyo oslc-trs as a reference implementation may not be entirely compatible with TRS 2.0 as specified. It appears oslc-trs does utilize LDP, but it sues ldp:Container, not ldp:DirectContainer (a subclass), and uses rdfs:member, not ldp:member (ldp:member is a subPropertyOf rdfs:member). A TRS provider I recently implemented (https://github.com/OSLC/iotp-adaptor) using oslc-trs does produce ldp:Container with rdfs:member, and this base is consumed without any problem by IBM LQE.
So it appears we have a mixture of container and member specifications that we may need to maintain for backward compatibility.