- From: Kingsley Idehen <kidehen@openlinksw.com>
- Date: Sun, 27 Jan 2013 15:16:41 -0500
- To: public-ldp-wg@w3.org
- Message-ID: <51058B29.8040607@openlinksw.com>
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
Attachments
- application/pkcs7-signature attachment: S/MIME Cryptographic Signature
Received on Sunday, 27 January 2013 20:17:11 UTC