- From: Henry Story <henry.story@bblfish.net>
- Date: Wed, 8 May 2013 21:20:03 +0200
- To: Arnaud Le Hors <lehors@us.ibm.com>
- Cc: Henry Story <henry.story@bblfish.net>, public-ldp-wg@w3.org, Richard Cyganiak <richard@cyganiak.de>
- Message-Id: <47C621F5-3203-467A-BE79-F5DAA5130BA6@bblfish.net>
On 3 May 2013, at 18:41, Arnaud Le Hors <lehors@us.ibm.com> wrote:
> Hi Henry,
> I have to admit not to follow all of what you wrote. The basic idea is that containers have a list of members that are identified by triples of the form: membershipSubject membershipPredicate member
>
> By default membershipSubject is the container itself, and membershipPredicate is rdf:member but they can be set to something else so that a container can be defined "around" a different resource.
So if by default ldp:membershipPredicate is rdf:member then I can deduce from
<> ldp:Container .
that
<> ldp:Container ;
ldp:membershipPredicate rdf:member .
but when I now add to the <> container the triple { <> ldp:membershipPredicate foaf:depiction }
then I can no longer deduce that {<> ldp:membershipPredicate rdf:member } which
means that appending { <> ldp:membershipPredicate xxx } is a non-monotonic
process. This goes against RDF logic.
To help find a quick solution to this we need to be clear about what membershipPredicate
and membershipSubject are trying to accomplish in a more general way.
The above shows that there is a harmful confusion with the ldp:member relation. Seperate
what those relations are doing from the rdf:member logic, and I think we will have made a
step forward.
>
> More comments below.
> --
> Arnaud Le Hors - Software Standards Architect - IBM Software Group
>
> Henry Story <henry.story@bblfish.net> wrote on 05/02/2013 12:40:53 PM:
>
> > From: Henry Story <henry.story@bblfish.net>
> > To: Arnaud Le Hors/Cupertino/IBM@IBMUS,
> > Cc: public-ldp-wg@w3.org, Richard Cyganiak <richard@cyganiak.de>
> > Date: 05/02/2013 12:41 PM
> > Subject: Re: membershipSubject clarification
> >
> >
> > On 30 Apr 2013, at 18:11, Arnaud Le Hors <lehors@us.ibm.com> wrote:
> >
> > > Hi all,
> > > On Monday we agreed to close Issue-61 which suggested to drop
> > membershipSubject and focus on clarifying the spec instead.
> > > To get us started I'd like to highlight that the editor's draft
> > has an expanded example 3 which may clarify things a bit:
> > >
> > > # The following is an elaborated representation of
> > > # http://example.org/netWorth/nw1
> > > @prefix ldp: <http://www.w3.org/ns/ldp#>.
> > > @prefix o: <http://example.org/ontology/>.
> > > <>
> > > a o:NetWorth;
> > > o:netWorthOf <http://example.org/users/JohnZSmith>;
> > > o:asset
> > > <assetContainer/a1>,
> > > <assetContainer/a2>;
> > > o:liability
> > > <liabilityContainer/l1>,
> > > <liabilityContainer/l2>,
> > > <liabilityContainer/l3>.
> > >
> > > <assetContainer/>
> > > a ldp:Container;
> > > dcterms:title "The assets of JohnZSmith";
> > > ldp:membershipSubject <.>;
> > > ldp:membershipPredicate o:asset.
> > >
> > > <liabilityContainer/>
> > > a ldp:Container;
> > > dcterms:title "The liabilities of JohnZSmith";
> > > ldp:membershipSubject <.>;
> > > ldp:membershipPredicate o:liability.
> > >
> > > This defines two containers (assetContainer and
> > libabilityContainer) corresponding two different membership
> > predicates (respectively o:asset and o:liability) around the same
> > subject resource (netWorth/nw1).
> >
> > 1. does the ldp:membershipSubject have to be a document such as <> ?
> > ( which in the example above is a o:NetWorth )
> > a. if yes: how would one add a relation to a thing such as a
> > person <#me> a foaf:Person ?
> > b. if no: why is the relation called membership subject? Does
> > this imply that the o:asset relation is an rdf:subProperty of rdf:member.
> > I don't think that if I want to create a document I want to
> > necessarily think of the document I created in say <assetContainer>
> > as being a ldp:member of me.
> >
> > Consider the following example
> >
> > {
> > <#me> a foaf:Person;
> > foaf:depicts <portrait/img1> ;
> > cal:attending <meetings/meet1> .
> >
> > <portrait/> a ldp:Container;
> > dcterms:title "The assets of JohnZSmith";
> > ldp:membershipSubject <#me>;
> > ldp:membershipPredicate foaf:depicts.
> >
> > <meetings/>
> > a ldp:Container;
> > dcterms:title "The liabilities of JohnZSmith";
> > ldp:membershipSubject <.>;
> > ldp:membershipPredicate cal:attending.
> > }
> >
> > Is this ok?
>
> I don't think so. The first container is fine, I don't see any problems with setting membershipSubject to <#me>.
My problem is that then we no longer have any information about where the members of the container are. It
is very weird to have to look at a completely different resources foaf:depicts relation on #me to know what resource
the container created.
> On the other hand <.> would have to be the URL of the resource you actually GET, right? So that would be something like http://example.org/JohnZSmith and that's not the subject you want because there is no <http://example.org/JohnZSmith> cal:attending xxx triples.
I think I meant that to be <> . It's a bit confusing because the same content describes both containers.
>
> > 2. Would it not be a good thing if a GET on <portrait/> returned thefollowing
> >
> > <> a ldp:Container;
> > dcterms:title "The assets of JohnZSmith";
> > ldp:membershipSubject <#me>;
> > ldp:membershipPredicate foaf:depicts;
> > rdfs:member <img1>, <img2> .
> >
> > and of course if <meetings> mentioned its rds:member ?
> >
>
> The point of membershipSubject and membershipPredicate is to allow defining containers that map onto existing resources and allow several containers to be defined over the same resource.
I think what you want is rather some way of saying: "when you create a content
in this container, these other relations will be added in these other LDPRs to
the content created".
The current solution confuses the above need with container
membership, and produces a solution that is too constrained for
what people will inevitably need when they start using this.
> > 3. What if I want the object of the relation from the
> > ldp:membershipSubject to the the object to be something described by
> > the created
> > resource? Say I want to create a resource that contains a <#me> and
> > the ldp:membershipPredicate should be a foaf:knows relation to the object
> > ( perhaps a <#him> in the created document? )
>
> What about it? I'm afraid I don't understand this.
>
> >
> > 4. Can I have a number of different membershipSubjects?
>
> Not for a given container.
>
> >
> > Guess
> > -----
> >
> > My feeling is that what is wanted is some way to describe how
> > contents of the POSTed
> > graph get tied to other resources managed by the server. My feeling
> > is that this is
> > a good idea, but orthogonal to the rdf:member of an LDPC.
> >
> > Henry
> >
> > >
> > > I would appreciate if Henry and others could ask specific
> > questions about this design so we can try to answer them and see how
> > the spec needs to be clarified.
> > >
> > > Thanks.
> > > --
> > > Arnaud Le Hors - Software Standards Architect - IBM Software Group
> >
> > Social Web Architect
> > http://bblfish.net/
> >
Social Web Architect
http://bblfish.net/
Received on Wednesday, 8 May 2013 19:20:34 UTC