- 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