OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

oslc-promcode message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: resource value-type and container resource lifecycle


Kaz,

We discussed this topic on the TC telecon yesterday. Here is a summary
of what I said, and some additional clarification. Please refer to the
current version of the spec [1].

Fig. 6 shows all of the resource types. All of the resources types
except for Target and Measure are top-level resources. A top-level
resource has a URI that you can GET, PUT, and DELETE.

Any property of a top-level resource that refers to another top-level
resource should be described in the shape as having:
oslc:valueType = oslc:Resource
oslc:representation = oslc:Reference

Target and Measure are "inline resources". This means that they are
created when their parent top-level resource is created, and they have
URIs that are relative to the URIs of their parent top-level resource.

Artifact is the parent of Target and Measure resources.
Measurement is the parent of Measure resources.

I recommend that we give Target and Measure resources URIs that use
fragment identifiers. The alternative is to use blank nodes
(oslc:LocalResource), but that prevents references to Target and
Measure, e.g. in SPARQL queries or PATCH requests. We should avoid
blank nodes and use fragment identifiers.

For example, suppose http://example.com/promcode/item/42 is the URI of
an Artifact resource and http://example.com/promcode/measurement/137
is the URI of a Measurement resource.  Then the URIs of Target and
Measure resources might be:
http://example.com/promcode/item/42#target-3
http://example.com/promcode/item/42#measure-12
http://example.com/promcode/measurement/137#measure-58

There are three properties that refer to inline resources. These are:
promcode:target (from Artifact to Target)
promcode:determines (from Target to Measure)
promcode:observes (from Measurement to Measure).

These properties should be described in the shape as having:
oslc:valueType = oslc:Resource
oslc:representation = oslc:Inline

During the telecon, I referred to Target and Measure as "local
resources", but that would only be correct if we used blank nodes for
them. Experience has shown that blank nodes are problematic and should
be avoided. The only situation in which a blank node should be used is
when the URI of a resource is unknown. But that is not the situation
here since we can easily created URIs using fragment identifiers.
Therefore, let's refer to Target and Measure as inline resources from
now on.

When any resource is deleted, all of the resources that depend on it
must also be deleted. This includes all top-level or inline resources.
Therefore, when an Artifact is deleted, the MeasurementContainer and
all inlined Target resources must be deleted. When a Target is
deleted, all inlined Measure resources must be deleted. When
MeasurementContainer is deleted, all Measurement resources must be
deleted. When a Measurement resource is deleted, all inlined Measure
resources must be deleted.

Note that Target and Measurement link to distinct instances of Measure
resources. Therefore, when comparing a Target to Measurements, we need
to compare Measure resources by value, not reference.


[1] https://tools.oasis-open.org/version-control/browse/wsvn/oslc-promcode/shape/trunk/spec.html

-- Arthur

On Sun, Jun 7, 2015 at 9:57 PM, Kazuhiro Funakoshi <k-f@bk.jp.nec.com> wrote:
> Hi Arthur,
>
> We had a local discussion with sample implementation team last Friday.
> I think we had not discussed value-type specification in shape documents
> yet, especially about those links from/to LDP container resources.
> One question is, which resources can be a local resource? We need re-think
> of that.
>
> Followings are my poor understanding relates to LDP containers. Could you
> please point out if they are wrong?
>
> When a Project resource is created, PlanContainer, ReportContainer,
> ManagedItemContainer, RiskCollectionContainer and IssueCollectionContainer
> will automatically be generated.
>
> These container resources should be identified with a URI, thus their
> inbound links are restricted to be oslc:Resource (not oslc:LocalResource).
> Same for out-bound ldp:contains links, right?
>
> We need support deletion of resources like Artifact. When we delete an
> Artifact, a MeasurementContainer and Measurement(s) may also be deleted.
> What happens to a Target? Since a Target may have exactly one out-bound link
> to an Artifact, should the Target resource also be deleted?
>
> Thank you in advance,
> Kaz
>


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]