Re: An LDP example with and without membershipSubject predicate

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. 

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 Tuesday, 21 May 2013 17:18:05 UTC