- From: Nandana Mihindukulasooriya <nmihindu@fi.upm.es>
- Date: Tue, 21 May 2013 18:30:14 +0200
- To: "public-ldp-wg@w3.org" <public-ldp-wg@w3.org>, Henry Story <henry.story@bblfish.net>, Roger Menday <Roger.Menday@uk.fujitsu.com>
- Message-ID: <CAAOEr1n78KrYut0OnNdieBLbDczEiq-D2b88XNYJ6DwzW3QJyg@mail.gmail.com>
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
Attachments
- image/jpeg attachment: Model1.jpg
- image/jpeg attachment: Model2.jpg
Received on Tuesday, 21 May 2013 16:31:07 UTC