W3C home > Mailing lists > Public > public-ldp-wg@w3.org > January 2013

Re: What are profiles?

From: Kingsley Idehen <kidehen@openlinksw.com>
Date: Sun, 27 Jan 2013 15:16:41 -0500
Message-ID: <51058B29.8040607@openlinksw.com>
To: public-ldp-wg@w3.org
On 1/27/13 6:37 AM, Henry Story wrote:
> The thread on how to make containers is getting sidetracked into
> what Profiles are, which is an interesting topic. So I thought
> about it and tried to clarify it below.
>
> The basic general idea is that one may want to specify certain types
> of documents as satisfying some restrictions, so that for example an
> LDPC could say that it only accepts POSTS of graphs of certain types:
> perhaps something like a graph containing shopping artefacts.
>
> This idea would be to have something somewhat similar to
>    http://tools.ietf.org/html/draft-wilde-profile-link-04#section-3.1
> but with a more semantic twist to it, and completely orthogonal
> to syntactic issues as specified by a mime type.
>
> Any well formed document with a mime type should have semantics,
> and there may be different types of documents that have the
> same semantics ( say Atom/XML and  a future atom/json version ).
>
> What is a Profile?
> ------------------
>
> Having said that one could start very minimally by naming
> the class of Profiles
>
> {
>    @prefix webarch: <http://sw.nokia.com/WebArch-1/> .
>
>    :Profile a rdf:Class;
>        rdfs:comment "the class of things that are profiles" .
>
>    :profile a rdf:Property;
>       rdfs:comment "the relation of a particular information resource to the Profile it satisfies";
>       rdfs:domain webarch:InformationResource ;
>       rdfs:range :Profile .
>
> }
>
> One can think of many classes of Information Resources as being  related implicitly
> to such a Profile.
>
>    { ?x a foaf:PersonalProfileDocument } => { ?x :profile ?y }
>
> It is just that the profile of a foaf:PersonalProfile document has not been
> stated yet. What could it be? My guess is that for a foaf:PersonalProfileDocument
> the restriction is something like the following
>
> {
>    @prefix log: <http://www.w3.org/2000/10/swap/log#>.
>
>    # a foaf:PersonalProfileDocument states that it is a document and has a primary topic
>   
>    {
>      ?x a foaf:PersonalProfileDocument
>    } => {
>      ?x log:semantics [ log:includes { ?x a foaf:PersalProfileDocument;
>                                           foaf:primaryTopic ?y . } ] .
>    }
> }
>
> A foaf:PersonalProfileDocument must have a primaryTopic. This is just a rough
> sketch of course.
>
> Similarly one could say that an LDPC states  that it is an ldp:Container
>
> {
>    @prefix log: <http://www.w3.org/2000/10/swap/log#>.
>    # see http://www.w3.org/2000/10/swap/doc/CwmBuiltins
>    # and http://www.w3.org/2000/10/swap/doc/Reach
>    
>    { ?c a ldp:Container . } => { ?c log:semantics [ log:includes { ?c a ldp:Container } ] }
>       
> }
>
> The inverse is not true. It is not because something states that it is an ldp:Container
> that it is. The thing also needs to behave like one.  So this is false:
>
>   { { ?c a ldp:Container . } <= { ?c log:semantics [ log:includes { ?c a ldp:Container } ] } }
>
> Perhaps this is where the notion of a profile comes in:
>
>   { ldp:ContainerProfile rdfs:subClassOf :Profile }
>
>   we can now go the other way, and say that something that says it is a container satisfies
> the ContainerProfile
>
> { ?c log:profile ldp:ContainerProfile }  <= { ?c log:semantics [ log:includes { ?c a ldp:Container } ] }
>
> Now here we relate an information resource to a containerProfile. Perhaps
> Container profiles are then graphs such that the following holds
>
>   { ?g a ldp:ContainerProfile . } <=> { ?g log:includes { <> a ldp:Container . } }
>
> I am hoping it says: a graph is a ldp:ContainerProfile, if the graph contains a statement about it being a ldp:Container.
>
> ( I say I am hoping, because I am not sure if N3 allows <> to refer to the graph inside of which it is placed -
>    perhaps an improvement for N3... )
>
> In any case it seems quite clear that profiles are restrictions on graphs given
> what statements they contain, without it making a claim on the truth value of the claim.
> This then explains why people wish to add profiles to mime types: if something is
> not related to a truth evaluatable statement one may come to think that it is a syntactic
> one. But that is to forget that different languages can express the same thing,
> and so why profiles can be expressed semantically - in a somewhat modal manner I think.
>
> This is why I mentioned SPARQL as the obvious way to proceed to defined profiles,
> in a way that is independent of any syntax. One could then defined profiles for
> ldp:Containers, and if one has a GRDDL of Atom, one could independently of
> the media type assert that an atom Container satisfies an ldp:ContainerProfile.
>
>
>
> Henry
>
> Social Web Architect
> http://bblfish.net/
>
+1


Good stuff!

-- 

Regards,

Kingsley Idehen	
Founder & CEO
OpenLink Software
Company Web: http://www.openlinksw.com
Personal Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca handle: @kidehen
Google+ Profile: https://plus.google.com/112399767740508618350/about
LinkedIn Profile: http://www.linkedin.com/in/kidehen







Received on Sunday, 27 January 2013 20:17:11 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:11:44 UTC