Re: An LDP example with and without membershipSubject predicate

On Tue, May 21, 2013 at 1:17 PM, Roger Menday
<roger.menday@uk.fujitsu.com>wrote:

>
> hi Ashok,
>
>  Hi Nandana:
> Can a bug be related to more than one product?
>
>
> Yes. Model 2 allows that as an "advanced feature".
>
> If yes, we need Model2.  If not, we need Model1
>
>
> In terms of primer material, it might be OK to do both (?)
> This get us wider coverage across more aspects of the specification.
>

Seems reasonable for a primer.  You could also provide some discussion
around considerations for either choice.

- Steve Speicher


>
> Roger
>
> All the best, Ashok
> On 5/21/2013 12:30 PM, Nandana Mihindukulasooriya wrote:
>
> Hi all,
>
>  Roger and I were discussing some examples to include in the primer and
> came up with two slightly different models; one having
> the membershipSubject predicate and one without. We thought sharing both
> examples as it might contribute the discussion about membershipSubject that
> Henry brought up in the last conf call.
>
>  Both examples involve a Bug Tracker which deals with Bugs of different
> Products. From these examples (and NetWorth example), on the one hand it
> seems membershipSubject is useful in scenarios where one resource comprises
> of two or more containers (collections / value sets). On the other hand, it
> seems it is possible to model the simple scenarios without
> membershipSubject predicate. This aligns with the explanation given in the
> spec after example 3.
>
>  Model 1 (Model1.jpg)
> Bug Tracker tracks Products.
> Products has Bugs.
>
>  Model 2 (Model2.jpg)
> Bug Tracker tracks Products and manages Bugs.
> Bugs are related to Products.
>
>  If we model this with LDP,
>
>  ----------------------- Model 1 --------------------------------------
>
>  <http://example.org/app/BugTracker> a ldp:Container, bt:BugTracker ;
>         ldp:membershipPredicate bt:tracksProduct ;
>  bt:tracksProduct <http://example.org/app/BugTracker/ProductA> .
> ------
> <http://example.org/app/BugTracker/ProductA> a ldp:Container, bt:Product;
>  ldp:membershipPredicate bt:hasBug ;
>  bt:hasBug <http://example.org/app/BugTracker/ProductA/Bug1> .
> ------
>  <http://example.org/app/BugTracker/ProductA/Bug1> a bt:Bug;
>       dcterms:title "Product A crashes when shutting down.";
>       dcterms:creator <http://example.org/users/johndoe>;
>       dcterms:created "2013-05-05T10:00"^^xsd:dateTime
>       bt:isInState "New" .
>
>  ----------------------- Model 2 -------------------------------------
>
>  <http://example.org/app/BugTracker> a bt:BugTracker;
>  tracksProduct
>            <http://example.org/app/BugTracker/products/ProductA> ,
>            <http://example.org/app/BugTracker/products/ProductB> ;
>         hasBug <http://example.org/app/BugTracker/bugs/1> .
> ------
> <http://example.org/app/BugTracker/products/> a ldp:Container;
>  ldp:membershipSubject <http://example.org/app/BugTracker>;
>          ldp:membershipPredicate bt:tracksProduct .
> ------
> <http://example.org/app/BugTracker/bugs/> a ldp:Container;
>  ldp:membershipSubject <http://example.org/app/BugTracker>;
>          ldp:membershipPredicate bt:hasBug .
> ------
> <http://example.org/app/BugTracker/products/ProductA> a bt:Product .
> ------
> <http://example.org/app/BugTracker/ProductA/Bug1> a bt:Bug;
>       dcterms:title "Product A and B doesn't interoperate ";
>       dcterms:created "2013-05-05T10:00"^^xsd:dateTime;
>       dcterms:creator <http://example.org/users/johndoe>;
>       bt:relatedProduct <
> http://example.org/app/BugTracker/products/ProductA>;
>       bt:relatedProduct <
> http://example.org/app/BugTracker/products/ProductB>;
>       bt:isInState "New" .
> ------------------------------------------------------------------------
>
>  Best Regards,
> Nandana
>
>
>
>

Received on Friday, 24 May 2013 19:04:08 UTC