- From: Steve Speicher <sspeiche@gmail.com>
- Date: Fri, 24 May 2013 15:03:40 -0400
- To: Roger Menday <roger.menday@uk.fujitsu.com>
- Cc: "ashok.malhotra@oracle.com" <ashok.malhotra@oracle.com>, "public-ldp-wg@w3.org" <public-ldp-wg@w3.org>
- Message-ID: <CAOUJ7Jr5Hig-+62BKFrVWa6pkb1AtuKUstVD2oo3xv=KgcfRqw@mail.gmail.com>
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