- From: Nandana Mihindukulasooriya <nmihindu@fi.upm.es>
- Date: Wed, 22 May 2013 10:06:40 +0200
- To: Henry Story <henry.story@bblfish.net>
- Cc: "public-ldp-wg@w3.org" <public-ldp-wg@w3.org>
- Message-ID: <CAAOEr1nHLjrUMOKaV5yDHVF0Uau4+uBztHUO5yNmUuACau791w@mail.gmail.com>
Hi Henry, On Tue, May 21, 2013 at 8:00 PM, Henry Story <henry.story@bblfish.net>wrote: > (resending to get w3c into issue tracker) > Let me take Nandana's first bug tracking example and show how one can do > without membershipPredicate as set out by ISSUE-71. > > On 21 May 2013, at 18:30, Nandana Mihindukulasooriya <nmihindu@fi.upm.es> > wrote > in the email at > http://lists.w3.org/Archives/Public/public-ldp-wg/2013May/0169.html > > > ----------------------- 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" . > > So a few remarks on this modelling, which I think is worth opening a new > issue > for by itself on. Your model is confusing a thing - a bug - and an > information resource > that describes it. > This means that it is not going to be possible later to identify two bugs > with owl:sameAs > without coming to the conclusion that it was created at different times, > by potentially two > people. It also means you cannot distinguish copyrights on the information > content - > a creative commons licence - from the bug itself, which is not something > that can be > licenced. > So this is a first reason why this type of modelling is not standard, and > not a good > idea. And another reason why the ldp:membershipPredicate is going to walks > straight > into the -1 of a lot of people at the w3c if it is kept like that. > > So let me here try to bypass this problem and see how far I can go. > Let us say </bugs/> is our container with the following content: > > ~~~~~~~~~~ > <> a ldp:Container, bt:BugReport; > val:primaryTopicRestriction [ onProperty bt:product > hasValue < > http://example.org/app/BugTracker/ProductA> ]; > bt:member <bug1>, <bug2>, <bug3> . > > # note that we add metadata on the information resource > # note also that the creator is the creator of the bug report, not the > creator of the bug > > <bug1> dcterms:title "Product A crashes crashes when starting up."; > dcterms:creator <http://example.org/jack#me>; > dcterms:created "2013-04-05T10:00"^^xsd:dateTime . > > <bug2> dcterms:title "Product A crashes when shutting down."; > dcterms:creator <http://example.org/users/johndoe#i>; > dcterms:created "2013-05-05T10:00"^^xsd:dateTime . > > <bug3> dcterms:title "My pictures looks funny when I click the red buton"; > dcterms:creator <http://facebook.com/users/grannySmith#>; > dcterms:created "2013-05-06T11:23"^^xsd:dateTime . > ~~~~~~~~~~~ > > So we assume we have some validation description that will be > arrived at by the rdf-validation group: > https://www.w3.org/2012/12/rdf-val/Overview.php > and that allows us to restrict the primary topics of posted content to > be about ProductA . > > From this a client would know that all members of the container are > bug reports, and that the bugs must be about about a specific topic. > > We publish metadata about <bug1> and <bug2> which are bug REPORTS, not > bugs. The Bug reports may themselves be buggy, for example. > These bug reports would then say something simple like > > <bug1> log:semantics { > > <bug1> dcterms:title "Product A crashes crashes when starting up."; > dcterms:creator <http://example.org/jack#me>; > dcterms:created "2013-04-05T10:00"^^xsd:dateTime ; > foaf:primaryTopic <bug1#y> > > <bug1#y> a bt:Bug; > bt:product <http://example.org/app/BugTracker/ProductA> ; > bt:isInState "closed"; > bt:cause <http://other.project.org/bugs/bug100#y> . > } > > And now the bug report <bug2> > > <bug2> log:semantics { > > <bug2> dcterms:title "Product A crashes when shutting down."; > dcterms:creator <http://example.org/users/johndoe#i>; > dcterms:created "2013-05-05T10:00"^^xsd:dateTime . > foaf:primaryTopic <bug2#y> > > <bug2#y> a bt:Bug; > bt:product <http://example.org/app/BugTracker/ProductA> ; > bt:isInState "open"; > owl:sameAs <bug3#y> . > } > > > 3. we correctly make the distinction between information resource and > thing talked about > > Thank you very much for pointing this out. So if I change the example like the following, will it address your concern #3 ? ----------------------- Model 1 -------------------------------------- </app/BugTracker> a ldp:Container, bt:BugTracker ; ldp:membershipPredicate bt:hasProductDescription ; bt:hasProductDescription </app/BugTracker/ProductA> . ------ </app/BugTracker/ProductA> a ldp:Container, bt:ProductDescription; ldp:membershipPredicate bt:hasBugReport ; foaf:primaryTopic <#p>; dcterms:title "The Ace Product Page"; bt:hasBugReport </app/BugTracker/ProductA/Bug1> . <#p> a bt:Product . ------ </app/BugTracker/ProductA/Bug1> a bt:BugReport; foaf:primaryTopic <#b> ; dcterms:title "Product A crashes when shutting down."; dcterms:creator </users/johndoe#me>; dcterms:created "2013-05-05T10:00"^^xsd:dateTime . <#b> a bt:Bug; bt:relatedProduct </app/BugTracker/ProductA#p>; bt:isInState "New" . ------------------------------------------------------------------------------- Best Regards, Nandana
Received on Wednesday, 22 May 2013 08:07:29 UTC