Re: categories and tagging

2006-11-02 Thread Thomas Broyer


[redirecting to atom-syntax]

2006/11/1, Houghton,Andrew:


  concept scheme URI: http://my.scheme.net/my-vocabulary/
  concept URI:http://my.concept.net/my-vocabulary/13745


category
  scheme=http://my.scheme.net/my-vocabulary/;
  term=http://my.concept.net/my-vocabulary/13745;
  label=cats
  /

--
Thomas Broyer



Re: categories and tagging

2006-11-02 Thread Henry Story


On 2 Nov 2006, at 08:59, Thomas Broyer wrote:

[redirecting to atom-syntax]


This is also a protocol issue, because we are asking what to do with  
the information in the atom feed. [1]



2006/11/1, Houghton,Andrew:


  concept scheme URI: http://my.scheme.net/my-vocabulary/
  concept URI:http://my.concept.net/my-vocabulary/13745

category
  scheme=http://my.scheme.net/my-vocabulary/;
  term=http://my.concept.net/my-vocabulary/13745;
  label=cats
  /


Thomas, I don't think that this is a natural reading of term in the  
atom syntax list.


[[
The term attribute is a string that identifies the category to  
which the entry or feed belongs. Category elements MUST have a term  
attribute.

]]

nowhere is there mentioned a IRI there, whereas just below

[[
The scheme attribute is an IRI that identifies a categorization  
scheme. Category elements MAY have a scheme attribute.

]] [2]

The scheme attribute is defined in terms of an  IRI .

To give a bit more context to what Andrew was saying, he was arguing  
that for a mapping between the SKOS [3] vocabulary and the atom  
vocabulary. SKOS is indeed very interesting. It allows one to say  
something like



http://my.concept.net/my-vocabulary/13745 a skos:Concept;
 skos:inScheme http://my.scheme.net/my-vocabulary/;
 skos:prefLabel cats .

and much more.

The question remains as to how this can be well mapped to atom.

If I take one of Tim Bray's examples

category scheme='http://www.tbray.org/ongoing/What/'
  term='Places' /

I can translate this to the AtomOwl ontology [4]

[] a :Category;
   :scheme  http://www.tbray.org/ongoing/What/;
   :term Places .

Practically, this seems to mean that one can get all the nice info  
about Places at the url


   http://www.tbray.org/ongoing/What/Places

And this seems to be becoming quite a common way people are setting  
things up, and also it has some continuity with what the RSS2 folks  
were doing.


[[
category is an optional sub-element of item.

It has one optional attribute, domain, a string that identifies a  
categorization taxonomy.


The value of the element is a forward-slash-separated string that  
identifies a hierarchic location in the indicated taxonomy.  
Processors may establish conventions for the interpretation of  
categories. Two examples are provided below:

]] [5]

It follows that what we have is something that can be expressed in  
RDF by saying that the
:scheme and the :term relation form a CIFP [8], ie: together they  
uniquely identify one thing, and furthermore that the identity of the  
thing is given by the concatenation of those two strings.


This seems therefore to capture behavior that is not present in skos,  
but apart from that the two should be quite complimentary. Let us see  
how we can make them more so.


What we need perhaps is some way to make clear what the url of the  
category is.

We could do this as follows:

   1. add a new attribute to identify the category (lets call it catid)
   2. Assume that if a catid is not present, and we have scheme and  
a term attribute, that the catid is formed by the concatenation of  
the scheme+term


we could then write out

http://my.concept.net/my-vocabulary/13745 a skos:Concept;
 skos:inScheme http://my.scheme.net/my-vocabulary/;
 skos:prefLabel cats .

like this

category catid=http://my.concept.net/my-vocabulary/13745;
  scheme=http://my.scheme.net/my-vocabulary/;
  term='cats' /


Now because the term is mandatory in atom (and not the scheme), I  
suggest that one use the skos:prefLabel for it. I know there is a  
label too, but well, it certainly makes it easier to search for  
similar categories using the SPARQL type queries I put forward in [1].


Henry




--
Thomas Broyer



[1] for the atom-syntax people who may not have been following this  
thread then, see
http://blogs.sun.com/bblfish/entry/ 
folksonomies_ontologies_atom_and_the

[2] http://www.atompub.org/rfc4287.html#element.category
[3] http://www.w3.org/TR/swbp-skos-core-guide/
(though I would suggest rewriting the rules using N3, rather  
than the Jena language)

[4] https://sommer.dev.java.net/atom/
[5] http://blogs.law.harvard.edu/tech/ 
rss#ltcategorygtSubelementOfLtitemgt

[6] http://esw.w3.org/topic/CIFP



Re: categories and tagging

2006-11-02 Thread Thomas Broyer


2006/11/2, Henry Story:


On 2 Nov 2006, at 08:59, Thomas Broyer wrote:
 [redirecting to atom-syntax]

This is also a protocol issue, because we are asking what to do with
the information in the atom feed. [1]


Not sure how atom-protocol is concerned but let's keep it in
atom-protocol too...


 2006/11/1, Houghton,Andrew:

   concept scheme URI: http://my.scheme.net/my-vocabulary/
   concept URI:http://my.concept.net/my-vocabulary/13745
 category
   scheme=http://my.scheme.net/my-vocabulary/;
   term=http://my.concept.net/my-vocabulary/13745;
   label=cats
   /

Thomas, I don't think that this is a natural reading of term in the
atom syntax list.


Andrew Houghton was talking about SKOS (which I don't know anything
about) and said:
[[
However, in SKOS you have a URI to the concept cats, period.
You could map the domain to be the SKOS concept scheme's URI
and use the concepts label as the category content in Atom.  But
concatenating the SKOS concept scheme URI and the concept label
doesn't necessarily produce the URI to the concept.  For example,
in SKOS you might have the following:

concept scheme URI: http://my.categories.net/
concept URI for cats: http://my.categories.net/13745
concept label for cats: cats
]]

My answer is a bare mapping of this description into an atom:category element.


[[
The term attribute is a string that identifies the category to
which the entry or feed belongs. Category elements MUST have a term
attribute.
]]

nowhere is there mentioned a IRI there,


IRIs are not forbidden either, and Andrew's description makes me think
the concept URI *is* the term.

--
Thomas Broyer



Re: categories and tagging

2006-11-02 Thread Henry Story


On 2 Nov 2006, at 12:19, Thomas Broyer wrote:



[[
The term attribute is a string that identifies the category to
which the entry or feed belongs. Category elements MUST have a term
attribute.
]]

nowhere is there mentioned a IRI there,


IRIs are not forbidden either, and Andrew's description makes me think
the concept URI *is* the term.


The question is: how does this help any of us? It may look like it is  
a term, but what is a client meant to do with all this information?


So if Tim Bray uses

category scheme='http://www.tbray.org/ongoing/What/'
  term='Places' /

Then what am I meant to do with this info? Since scheme is a URL I  
can presumably go there to find something. But what?


Term is not defined to be a URI, and in the above example it is not,  
and so why should I do anything with the term below?


category
  scheme=http://my.scheme.net/my-vocabulary/;
  term=http://my.concept.net/my-vocabulary/13745;
  label=cats
  /


What I am proposing is that we put forward some best practice to  
formalize a useful and RESTful way to publish this information, so  
that clients can use it. With APP we could do something like this: we  
could define for example that when entries are published and they  
contain categories that have a scheme that is accepted by the  
collection, then the entry will be found in the feed that is to be  
found either by appending scheme+term or in the catid location I  
mentioned previously.


So if Tim Bray posts an entry containing

entry
   ...
   category scheme='http://www.tbray.org/ongoing/What/'
 term='Places' /
/entry

and his collection manages the http://www.tbray.org/ongoing/What/  
scheme, as defined perhaps in the service document, (and perhaps we  
can place the list of available categories at that scheme location!)  
then his client will know that the entry will also be found in the  
http://www.tbray.org/ongoing/What/Places collection.


Now this would be useful for an APP publishing client, and it would  
be useful for an APP reader, because it could find some useful  
information at these various locations, and it would save us having  
to define an unending number of link relations that parallel the  
categories we have, when it is in fact clear that everybody intends  
to use scheme+term as a uri.


Henry




html content, xml:base and xml:lang

2006-11-02 Thread Henry Story


Does xml:base and xml:lang apply to html encoded content?

There is the notion of language sensitivity and content is language  
sensitive. So it makes sense to apply it to html content. But what  
about the xml:base?


Henry





Re: categories and tagging

2006-11-02 Thread Thomas Broyer


2006/11/2, Henry Story:


On 2 Nov 2006, at 12:19, Thomas Broyer wrote:

 [[
 The term attribute is a string that identifies the category to
 which the entry or feed belongs. Category elements MUST have a term
 attribute.
 ]]

 nowhere is there mentioned a IRI there,

 IRIs are not forbidden either, and Andrew's description makes me think
 the concept URI *is* the term.

The question is: how does this help any of us? It may look like it is
a term, but what is a client meant to do with all this information?


Nothing.
A client is not meant to do anything with atom:category elements other
than for categorizing the entry or feed.


So if Tim Bray uses

category scheme='http://www.tbray.org/ongoing/What/'
   term='Places' /

Then what am I meant to do with this info?


You can tell the reader that the entry is in the Places category,
you can provide a show other entries within this category feature,
you can group entries by their category (in a treeview: root nodes are
the list of schemes, their child nodes are the list of terms,
presented using the provided @label; if there are different @label
used, you can default to the latest and provide a tooltip or other
contextual info such as a.k.a. Locations, Where), etc.


Since scheme is a URL I can presumably go there to find something. But what?


Some people also want to dereference XML Namespaces' URIs.


Term is not defined to be a URI, and in the above example it is not,
and so why should I do anything with the term below?

category
   scheme=http://my.scheme.net/my-vocabulary/;
   term=http://my.concept.net/my-vocabulary/13745;
   label=cats
   /


There's no reason you would do anything with it either.


What I am proposing is that we put forward some best practice to
formalize a useful and RESTful way to publish this information, so
that clients can use it. With APP we could do something like this: we
could define for example that when entries are published and they
contain categories that have a scheme that is accepted by the
collection, then the entry will be found in the feed that is to be
found either by appending scheme+term or in the catid location I
mentioned previously.


-1
But you can still do it yourself in your own implementation,
eventually with the use of an f:feature to communicate the feature to
clients.


So if Tim Bray posts an entry containing

entry
...
category scheme='http://www.tbray.org/ongoing/What/'
  term='Places' /
/entry

and his collection manages the http://www.tbray.org/ongoing/What/
scheme, as defined perhaps in the service document, (and perhaps we
can place the list of available categories at that scheme location!)
then his client will know that the entry will also be found in the
http://www.tbray.org/ongoing/What/Places collection.


I don't see how this is useful, but you might have good reasons.


Now this would be useful for an APP publishing client, and it would
be useful for an APP reader, because it could find some useful
information at these various locations,


I understand the need to provide a category URI in some scenarios
but that should be an extension to the atom:category element or a
mapping mechanism communicated by a feed-level or entry-level
extension, but please no global assumption.


and it would save us having
to define an unending number of link relations that parallel the
categories we have, when it is in fact clear that everybody intends
to use scheme+term as a uri.


Do you mean scheme+term, scheme+/+term or scheme+#+term?
or maybe scheme+/+term+.atom? or scheme+/tags/+term?

--
Thomas Broyer



RE: categories and tagging

2006-11-02 Thread Houghton,Andrew

 From: [EMAIL PROTECTED] 
 [mailto:[EMAIL PROTECTED] On Behalf Of Thomas Broyer
 Sent: 02 November, 2006 06:19
 To: Atom-Protocol; [EMAIL PROTECTED]; Atom-Syntax
 Subject: Re: categories and tagging
 
 
 2006/11/2, Henry Story:
 
  On 2 Nov 2006, at 08:59, Thomas Broyer wrote:
   [redirecting to atom-syntax]
 
  This is also a protocol issue, because we are asking what 
 to do with 
  the information in the atom feed. [1]
 
 Not sure how atom-protocol is concerned but let's keep it in 
 atom-protocol too...

It is both a feed issue and a protocol issue because of section 7 in
the APP draft.  The APP draft puts forth category documents where I
think there are three concerns: 1) the specification of the category
element (overlap issue), 2) how could SKOS be used as a possible
alternative to category documents, 3) scalability issues with the 
specification of category documents.

1) Because category documents reuse the Atom syntax for the category
element, this becomes an overlap issue between Atom syntax and Atom
protocol.

2) It would be an ideal convergence between Atom and SKOS to be able 
to use APP to CRUD (Create, Read, Update, Delete) SKOS concept schemes 
and concepts in an APP server.  Or for that matter, other controlled 
vocabulary XML grammars such as MARC-XML and Zthes.  Providing a 
generalized solution would plug multiple communities into APP.

3) The current specification of the category document doesn't scale
since it appears to me that this is one document in the APP server.
Lets just say you are dealing with a folksonomy of tags from say
Flickr.  There may be several thousand categories, if not several
hundred thousand.  It is doubtful that an APP server could return
such a document without HTTP timing out the request.  For controlled
vocabularies such as LCSH and MeSH there are about 300,000 and 500,000
categories respectively.  Just create a simple category document and
copy and paste a single category element 500,000 times and look at the
size of the category document.  It is just not going to be returned
by any HTTP server.

As a side note, it seems to me that APP could be used to access and 
maintain controlled vocabularies in SKOS, MARC-XML, Zthes, etc.  
Basically APP provides collections of resources.  There is a direct 
analogy in SKOS where a controlled vocabulary in SKOS contains a 
collection of skos:Concept resources.

If I understand these concepts correctly, then each skos:Concept 
could be stored within an app:collection.  The same would be true 
for each skos:ConceptScheme associated with a controlled vocabulary.
The app:collection for both skos:Concept and skos:ConceptScheme 
would comprise an app:workspace.  There could be multiple 
app:collection containing skos:Concept in an app:workspace.

To draw an analogy to the DDC (Dewey Decimal Classification, another
controlled vocabulary), each app:collection containing skos:Concept 
would represent the concepts found in a single edition of the DDC.  
Each app:workspace represents a complete controlled vocabulary.  This 
means that a single APP server, app:service, could access and maintain 
multiple controlled vocabularies.  Given this mapping, it seems to me 
that APP could replace the SKOS API and may be a better alternative to 
library centric protocols such as ADL Thesaurus protocol, OpenURL, SRU
and SRU Record Update.

The current Atom category element is just another instance of an item
in an app:collection.  Thus a category document could be used to point
to the individual concepts in an app:collection rather than embedding
the category elements inside the category document.  Using this approach
any XML grammar, Atom, MARC-XML, SKOS, Zthes, etc., could be used.

   2006/11/1, Houghton,Andrew:
  
 concept scheme URI: http://my.scheme.net/my-vocabulary/
 concept URI:http://my.concept.net/my-vocabulary/13745
   category
 scheme=http://my.scheme.net/my-vocabulary/;
 term=http://my.concept.net/my-vocabulary/13745;
 label=cats
 /
 
  Thomas, I don't think that this is a natural reading of 
 term in the 
  atom syntax list.

I agree that this is not natural since term is not specified as a URI,
per my reading of the draft, and gets back to my point that you can 
smush stuff in these attributes, but that may not be the smartest thing 
to do in the long term.


BTW, generally I prefer not to cross post, this discussion is now
spread across three lists... please confine the discussion to the
Atom protocol list so people can get the complete thread rather than
bits and pieces.


Thanks, Andy.



Re: html content, xml:base and xml:lang

2006-11-02 Thread A. Pagaltzis

 Does xml:base and xml:lang apply to html encoded content?

Yes, definitely.
-- 
GMX DSL-Flatrate 0,- Euro* - Überall, wo DSL verfügbar ist!
NEU: Jetzt bis zu 16.000 kBit/s! http://www.gmx.net/de/go/dsl



Re: html content, xml:base and xml:lang

2006-11-02 Thread James M Snell

+1

A. Pagaltzis wrote:
 Does xml:base and xml:lang apply to html encoded content?
 
 Yes, definitely.



How to do RESTful SEARCH (was Re: Adding POST capability to atom:link)

2006-11-02 Thread Lisa Dusseault
On Oct 26, 2006, at 1:02 PM, Jan Algermissen wrote:If you aim to provide a REST interface, do not mimick a query interface (at least not a complex one). Think of your 'asset space' in terms of pre-defined, useful collections that you expose as resources (feeds) and provide light weight query interfaces to them that fit with GET requests.Think in terms of browsing and drilling-down; REST interfaces guide the client into the content instead of assuming the knowledge to constructa query does reside in the client.This is an interesting assertion about REST.  I don't yet agree with it as stated though I might after further discussion and elaboration.  To provide a possible counter-example, I always found the HTTP SEARCH proposal http://www.greenbytes.de/tech/webdav/draft-reschke-webdav-search-latest.html to be RESTful because	- The results of a search are returned as a set of resource identifiers	- It doesn't necessarily break for dynamic resources as long as the server can handle that	- It doesn't break the layering of representations, or use of connectors, or caching of resources	- It's general -- can be used for WebDAV resources but also for any HTTP server, CalDAV resources or probably (with some thought) Atom resourcesA server that instead provides light-weight query interfaces as you describe, or guides the client into the content, does not work with a client that doesn't do HTML (a CalDAV, WebDAV or possibly Atom authoring client); correct?Lisa

Re: How to do RESTful SEARCH (was Re: Adding POST capability to atom:link)

2006-11-02 Thread Ernest Prabhakar
A server that instead provides light-weight query interfaces as you describe, or guides the client into the content, does not work with a client that doesn't do HTML (a CalDAV, WebDAV or possibly Atom authoring client); correct?My understanding (for what it is worth) is that REST *requires* hypermedia.  Your choice of hypermedia then constrains your problem domain.  Once you select a domain (HTML, Atom, whatever), then to be RESTful it is important give clients within that domain a way to discover the appropriate syntax using hypermedia.It sounds like you're asking about the protocol independent of how it is presented on the Web.  In that case, I think it is fine to say that, e.g., SEARCH *can* be used RESTfully, but I don't think it is *necessarily* RESTful unless we know the rest of the application.My $.02.-enpOn Nov 2, 2006, at 12:06 PM, Lisa Dusseault wrote:On Oct 26, 2006, at 1:02 PM, Jan Algermissen wrote:If you aim to provide a REST interface, do not mimick a query interface (at least not a complex one). Think of your 'asset space' in terms of pre-defined, useful collections that you expose as resources (feeds) and provide light weight query interfaces to them that fit with GET requests.Think in terms of browsing and drilling-down; REST interfaces guide the client into the content instead of assuming the knowledge to constructa query does reside in the client.This is an interesting assertion about REST.  I don't yet agree with it as stated though I might after further discussion and elaboration.  To provide a possible counter-example, I always found the HTTP SEARCH proposal http://www.greenbytes.de/tech/webdav/draft-reschke-webdav-search-latest.html to be RESTful because	- The results of a search are returned as a set of resource identifiers	- It doesn't necessarily break for dynamic resources as long as the server can handle that	- It doesn't break the layering of representations, or use of connectors, or caching of resources	- It's general -- can be used for WebDAV resources but also for any HTTP server, CalDAV resources or probably (with some thought) Atom resourcesA server that instead provides light-weight query interfaces as you describe, or guides the client into the content, does not work with a client that doesn't do HTML (a CalDAV, WebDAV or possibly Atom authoring client); correct?Lisa

Re: AD Evaluation of draft-ietf-atompub-protocol-11

2006-11-02 Thread Lisa Dusseault
On Oct 18, 2006, at 1:04 AM, Sylvain Hellegouarch wrote: My assumption: a client cannot create a media resource without also creating a media link entry.  When I POST a media resource to a collection, a media link entry is *always* created.  Same here. Lisa what do you mean by creating a media resource manually? If you do not use an APP service to create a media resource then it does not fall into APP to tell how this resource will be accessible. To me it's like it's not even part of the collection. I was assuming the opposite of what James assumed, so under my personal world-view "create a media resource manually" meant to create a media resource without also creating the media link entry at the same time.To illustrate my disconnect more, I'll borrow James Snell's concrete example and show what I thought would obtain instead:On 2006/10/17, at 4:40 PM, James M Snell wrote:My assumption: The relationship between a media link entry and a mediaresource is always 1-to-1.  If I want an entry to point to multiplemedia resources, then I would create one media link entry for each mediaresource, then create a separate entry that points to each of theindividually created media resources.e.g.,   entry1 -- pic1   entry2 -- pic2   entry3 -- pic3   entry4 -- pic1          -- pic2          -- pic3Entries 1, 2 and 3 will always point to their respective media resources(using atom:content/@src).My idea was that if I want to create an entry to point to multiple media resources, I might first create the entry as I edit text about my fabulous trip to Lisbon,    entries:	entry1Then when I add pictures to the entry I'm editing, my client would "manually" create the media resources by posting to the media collection, such that no media link entry was created for each of them.  At the same time, the client would probably PUT to the entry each time to update and add the link to the pictures.    entries:	entry1 -- pic1		 -- pic2	        -- pic3   media resources:	pic1	pic2	pic3Of course this can be done in fewer steps if the client is implemented to do editing offline and only upload the whole kaboodle when I'm done.  In that scenario, entry2 with images pic4 and pic5 would be created with a minimum of POSTs and no PUTs, step 1 is POSTing the images:    entries: 	entry1 -- pic1, pic2, pic3    media resources:	pic1, pic2, pic3	NEW pic4	NEW pic5Step 2 is POSTing the entry with the links obtained from creating the images:    entries: 	entry1 -- pic1, pic2, pic3	NEW entry2 -- pic4, pic5    media resources:	pic1, pic2, pic3	pic4	pic5I may be wrong about this model and James is likely to be right as having followed the discussion more carefully, but I don't believe the draft clearly leads the reader to James' model.  Lisa 

Re: How to do RESTful SEARCH (was Re: Adding POST capability to atom:link)

2006-11-02 Thread Jan Algermissen


Lisa,

first, I think I misread Mark's point when I quoted his blog entry:

The Web doesn’t do generic query
http://www.markbaker.ca/blog/2006/08/09/sparql-useful-but-not-a-game- 
changer/


He does talk about hiding the actual query by merely passing in  
parameters; he does not talk about dividing the query space into  
subsets. Sorry about that.




On Nov 2, 2006, at 9:06 PM, Lisa Dusseault wrote:



On Oct 26, 2006, at 1:02 PM, Jan Algermissen wrote:

If you aim to provide a REST interface, do not mimick a query  
interface (at least not a complex one). Think of your 'asset  
space' in terms of pre-defined, useful collections that you expose  
as resources (feeds) and provide light weight query interfaces to  
them that fit with GET requests.
Think in terms of browsing and drilling-down; REST interfaces  
guide the client into the content instead of assuming the  
knowledge to construct

a query does reside in the client.


This is an interesting assertion about REST.  I don't yet agree  
with it as stated though I might after further discussion and  
elaboration.  To provide a possible counter-example, I always found  
the HTTP SEARCH proposal http://www.greenbytes.de/tech/webdav/ 
draft-reschke-webdav-search-latest.html to be RESTful


I did not mean to say that using very many parameters was breaking  
REST, I only meant to say that dividing the space is propably  
decreasing the level of coupling as the client needs to know fewer  
parameters. Of course it needs to OTH understand the meaning of the  
subsets but it might already do that anyway. Hard to evaluate in the  
absence of the domain context.


Maybe think about a resource representing all items of 'last week' as  
opposed to providing start-date and end-date parameters to narrow  
down the result set to 'last week'.



because
	- The results of a search are returned as a set of resource  
identifiers
	- It doesn't necessarily break for dynamic resources as long as  
the server can handle that
	- It doesn't break the layering of representations, or use of  
connectors, or caching of resources
	- It's general -- can be used for WebDAV resources but also for  
any HTTP server, CalDAV resources or probably (with some thought)  
Atom resources


A server that instead provides light-weight query interfaces as you  
describe, or guides the client into the content, does not work with  
a client that doesn't do HTML (a CalDAV, WebDAV or possibly Atom  
authoring client); correct?


I wouldn't say so; the question of MIME type is orthogonal to the  
question of parameters vs. collections. Or am I misreading you?


Jan




Lisa





Re: categories and tagging

2006-11-02 Thread A. Pagaltzis

* Henry Story [EMAIL PROTECTED] [2006-11-02 16:55]:
 The question is: how does this help any of us? It may look like
 it is a term, but what is a client meant to do with all this
 information?

Simple: when the scheme and term of two different entries are
identical, then you have confidence that they refer to the same
concept. When the scheme URI is absent, the term is ambiguous.

That’s what scheme and term mean, and that’s all that they mean.

If you want to use a dereferencable protocol scheme for your
category’s scheme URI, and want to run a service providing
resources at the given URI, that’s fine, and more power to you.
But nothing like that is mandated, much less is any approach for
deriving a dereferencable URI for a single term.

Regards,
-- 
Aristotle Pagaltzis // http://plasmasturm.org/