RE: XML Digital Signatures in Atom feeds and entries

2006-09-05 Thread Granqvist, Hans

James,

There is an interop service for Atom 1.0 feed/entry signature 
validation available (with source code for both service and 
Wordpress plugin) as part of the Signed Ping initiative at 
  http://signedping.com

Let me know if you need more info.
-Hans 

 -Original Message-
 From: [EMAIL PROTECTED] 
 [mailto:[EMAIL PROTECTED] On Behalf Of James M Snell
 Sent: Monday, September 04, 2006 12:02 PM
 To: atom-syntax
 Subject: XML Digital Signatures in Atom feeds and entries
 
 
 I'm currently looking for other Atom implementations that 
 support the option to digitally sign feeds and entries.  
 Apache Abdera supports digital signatures and encryption and 
 I'd like to do some interop testing against other impls.
 
 - James
 
 
 



Re: atom license extension (Re: [cc-tab] *important* heads up)

2006-09-05 Thread James M Snell

Hello Thomas,

Thank you for taking the time to review the draft.  I have cc'd this
response to the atom-syntax list so that others in the Atom community
can comment.

Comments below.

Thomas Roessler wrote:
 Hi Mike, James, pleased to meet you.
 
 I'm adding Wendy Seltzer to the CC list, who (I think) might have
 some points to add from a legal perspective.
 
 Here's the quick review that I did earlier today:
 
 - What's the relationship between licensing information contained in
  a license-type link and licensing information contained in an
  atom:rights element?
 
 (For the definition of atom:rights, see section 4.2.10 of RFC 4287.)
 
  The example under 2.1 in the I-D suggests that the atom:rights is
  expected to reflect the license that is identified in the link
  element.  However, there seems to be no machine-readable way to
  express that connection.
  
  Also, there can be multiple license links, but only one rights
  element.


This is the third time I've been asked this.  I guess I really do need
to add a clear statement about the relationship in the spec.  With
enough thumps on the head I usually come around ;-)

The relationship is relatively simple.  The atom:rights element is
always a human-readable statement of what rights are held over the feed
or entry.  It's is the equivalent of saying Copyright (c) James Snell
and cannot be relied upon to tell the consumer anything useful about
what the consumer can do with the feed or entry.  The license link, on
the other hand, is specifically intended to provide a reference to the
license applied to the feed/entry; that is, what kinds of things others
are allowed do with the feed/entry.

 - An atom:rights element on a feed sets the default for the
  atom:rights elements on entries; a license link on a feed,
  however, is expected to apply to the metadata and NOT to the
  entries.

  Why the difference in inheritance rules and semantics?

This is something that I've debated back and forth on but the difference
comes down to an issue with aggregated feeds.

Take, for instance, Sam Ruby's Planet feed
(http://planet.intertwingly.net/atom.xml).  This feed consists of
entries that originated from many different sources, some of which may
have license links, some that might not.  If Sam decided to put a
license link at the feed level, and if license links were inherited, it
would mean that Sam's license would be extended over resources he may
have no right to license.  Obviously, that's wrong.

One two possible solution would be for Sam to some how indicate that an
entry in his feed did not have a license link, but doing so could cause
other problems (such as invalidating any XML digital signatures that may
be covering the entry).  Also, it's possible that the entry originally
came from a feed that did include a license link, but that some
intermediary along the way failed to properly carry over the license
link into the entry after separating it from the feed.  The bottom line
is that license inheritance opens too many potentially significant
issues. (and yes, these issues apply equally to the atom:rights element).

The simple solution, then, is to specify that license links only cover
the feed or entry containing the link.


 - It's probably worth noting that there are jurisdictions in which
  databases enjoy sui generis legal protection (e.g., the EU).  In
  such jurisdictions, it might be reasonable to have license
  information that refers to the collection, not just to its
  metadata.


The selection and arrangement of entries in the feed is covered by feeds
license.

 - The following statement:

Entry content might include or reference material from other
sources. Licenses associated with an entry MUST NOT be assumed
to cover such material.  Implementations cannot necessarily
trust that publishers have the right to license material claimed
to be covered by any associated license.  Care should be taken
when making decisions based on the referenced license.

  ... takes all of the value out of this scheme.  The very point of
  annotating content (even aggregate content) with a license is that
  this license be trusted.
 
 (I understand this to be, in part, a legal layman's overstatement;
 I'll leave it to the lawyers to comment. ;)
 

Yes, I don't like this either.  But the fact remains that an entries
content may include content from other sources that cannot be assumed to
be covered by the license associated with the entry.  The analogous
situation occurs in Open Source Software distributions in which
dependencies shipped with a project may have their own licenses that are
distinct from the license used for the project code itself.

The question really is whether or not this is worth calling out
explicitly in the spec.

 Summary: The relationship to atom:rigts should be cleaned up.  The
 questions above about what precisely a license applies to probably
 points at a problem in terms of expressivity of the linking scheme
 

Re: [cc-tab] *important* heads up

2006-09-05 Thread James M Snell

Hey Mike,

Thanks for taking another look.  Comments below.

Mike Linksvayer wrote:
 Hi James,
 
 The atom license extension was brought to my attention again.  I'm not
 sure what concerns Thomas Roessler (cc'd) has below (I've also cc'd Lisa
 Dusseault as she mentioned the extension to me recently and appears to
 be involved in the process), but upon re-reading the draft I have one.
 I obviously did not read very carefully in the past and must apologize
 for that.
 
 In any case, the draft says the referenced license only applies to feed
 or entry metadata, not content.  This strikes me as not particularly
 useful and does not match analogous extentions for RSS 1.0 and RSS 2.0:
 

The difference in semantics is precisely why I'm not using either the
RSS 1.0 or RSS 2.0 extensions for this as I see problems with both the
former approaches.

 http://web.resource.org/rss/1.0/modules/cc/ is RDF, so it is as clear as
 it can be what license annotations apply to, and in the examples they
 apply to the content at the feed (channel) URL (the feed itself) and the
 content at individual entry URLs (content of individual posts).
 

It is helpful to take a look at the RSS 1.0 rdf:license definition.

From http://web.resource.org/rss/1.0/modules/cc/:

!-- start --
  This module aims to give metadata regarding the copyright license
  under which the RSS feed, and the objects it points to, are released
  under.

  [snip]

  cc:license rdf:resource=URI OF LICENSE /

  cc:license rdf:resource= can be a sub-element of an RSS item,
  channel or image. The license it refers to is applied to the parent
  element. As with any RDF elements, an occurance of cc:license within
  any element implies the copyright of the document contained with the
  rdf:about attribute of that parent element, and not the document
  pointed to by the link sub-element.

  The element contains a single rdf:resource attribute which contains
  the URI of the license applied.
!-- end --

From this description, and the example that is illustrated in
specification of the rdf:license module, it is evident to me, at least,
that rss 1.0 channels and items are licensed independently from one
another and that an item does not inherit the license of the channel,
otherwise, you could end up with significant problems if two feeds
referenced the same content item with two difference licenses, e.g.

  rdf:RDF
channel rdf:about=http://example.org/feed1;
  cc:license rdf:resource=http://example.org/license1; /
  items
rdf:Seq
  rdf:li resource=http://blog.example.com/2006/08/foo; /
/rdf:Seq
  /items
/channel
item rdf:about=http://blog.example.com/2006/08/foo;
  ...
/item
  /rdf:RDF

  rdf:RDF
channel rdf:about=http://example.org/feed2;
  cc:license rdf:resource=http://example.org/license2; /
  items
rdf:Seq
  rdf:li resource=http://blog.example.com/2006/08/foo; /
/rdf:Seq
  /items
/channel
item rdf:about=http://blog.example.com/2006/08/foo;
  ...
/item
  /rdf:RDF

Because of RDF's data model and the definition of mod_cc, if licenses
are inherited by the items, these two feeds are either making
contradictory claims about the licensing of a single resource, neither
or which the channel publishers may actually have the right to license,
or they are claiming that the resource has been dual-licensed.
Unfortunately, neither claim can be substantiated by looking at the item
itself.

Note that, because of the RDFs data model, the same problem occurs if
the items in each of the above channels each contain their own
contradictory cc:license links.

Further, there is also the problem that the channel element is
describing a different resource that the item element.  The definition
of cc:license says that the license applies to the parent element and
therefore the resource being described by the parent element.  It is not
specified whether or not that license applies to other resources linked
to the channel.

Also, there is a bug in the spec that, in certain situations causes the
spec to contradict itself.  Consider the sentence: an occurance of
cc:license within any element implies the copyright of the document
contained with the rdf:about attribute of that parent element, and not
the document pointed to by the link sub-element then look at the
example given in the spec itself.

  item rdf:about=http://c.moreover.com/click/here.pl?r123;
titleXML: A Disruptive Technology/title
linkhttp://c.moreover.com/click/here.pl?r123/link
cc:license rdf:resource=... /
  /item

The link and the rdf:about attribute point to exactly the same resource,
making the assertion in the spec self-contradictory.


 http://backend.userland.com/creativeCommonsRssModule says license
 annotations apply to the content of the RSS file and content of that
 item, mirroring the RSS 1.0 use.
 

I do not believe that the RSS 2.0 definition mirrors the RSS 1.0 use.
I've already noted the 

Re: atom license extension (Re: [cc-tab] *important* heads up)

2006-09-05 Thread James M Snell

Hello Wendy,

Thanks for the feedback.  I've cc'd the atom-syntax list so the rest of
the Atom community can comment.

Comments below.

Wendy Seltzer wrote:
 Hi all,
 So my first thoughts upon seeing the draft are to wonder why it's
 necessary to make assertions about the legal effects of including a
 license -- especially since some of those assertions seem to obviate the
 purpose of using a license declaration.   While it's helpful to tell
 people how to indicate, technically, what they mean for a license to
 attach to, it's not useful to offer guidance on how to interpret the
 license.
 
 Namely:
 
 1.1   It must also be noted that licenses associated with feeds or entries
using these mechanisms are advisory and are not, by themselves,
legally binding.  Nor can a license associated with a feed or entry
restrict or forbid access to, redistribution, aggregation, caching
and display of those items by third party intermediaries such as
search engines and so-called online aggregators.
 
 Why can't they be legally binding?  They're not self-executing, but
 licenses outside of feeds aren't either, and likewise may or may not be
 legally binding depending upon other things than just the form of their
 expression.
 

To this point I've received exactly the opposite feedback from others
(all of whom weren't lawyers, btw, but who have had experience with
licensing issues in the past).

It is my understanding that the licenses cannot be considered legally
binding *by themselves*.  That is, precisely as you indicate, they are
not self-executing.

 
 2   License link relations appearing within a feed MUST apply to the
metadata of the containing feed element only and do not extend over
the metadata or content of any contained entries.
 
 Why? Why would a feed need a license separate from its content?  Lots of
 the metadata elements would be functional or would give users fair use
 claims, absent a license.
 

Sam Ruby's planet feed is a prime example.  Sam does not own rights over
the individual entries that appear within his feed, however, Sam does
own the rights over the feed itself, including the selection and
arrangement of entries within that feed.

I've mentioned before that it's roughly equivalent to distributing
dependencies with an open source project.  Each of the dependencies have
their own license, distinct from the projects license.

Entry content might include or reference material from other sources.
Licenses associated with an entry MUST NOT be assumed to cover such
material.  Implementations cannot necessarily trust that publishers
have the right to license material claimed to be covered by any
associated license.  Care should be taken when making decisions based
on the referenced license.
 
 This seems to be going down a road of legal interpretation that's
 unnecessary and not necessarily correct. The current CC licenses are
 offered on a taker beware basis -- the licensor offers the rights he
 has, and doesn't guarantee a licensee's rights (or even his own) to
 anything he might have incorporated.  That's not the only way to write a
 license, though.  (Even within CC, version 1 had an explicit
 representation and warranty section that was dropped in v.2.)
 
 Implementations should trust the legal representations only as much or
 as little as they trust any other claim made by the feed.  How licenses
 chain is a matter of individual legal interpretation.
 

Ok, so if I'm interpreting this comment correctly, the recommendation
would be to simply remove the paragraph in question?

 
 Forgive me (but please clarify!) if I'm misinterpreting some of the draft.
 
 Thanks,
 --Wendy
 

Thanks for taking the time to review,

- James



Re: atom license extension (Re: [cc-tab] *important* heads up)

2006-09-05 Thread Wendy Seltzer


At 04:08 PM 9/5/2006 -0700, James M Snell wrote:

Hello Wendy,

Thanks for the feedback.  I've cc'd the atom-syntax list so the rest of
the Atom community can comment.


Thanks James,
I'm still not clear on what's happening in 1.1.

 1.1   It must also be noted that licenses associated with feeds or entries

using these mechanisms are advisory and are not, by themselves,
legally binding.  Nor can a license associated with a feed or entry
restrict or forbid access to, redistribution, aggregation, caching
and display of those items by third party intermediaries such as
search engines and so-called online aggregators.

 Why can't they be legally binding?  They're not self-executing, but
 licenses outside of feeds aren't either, and likewise may or may not be
 legally binding depending upon other things than just the form of their
 expression.

To this point I've received exactly the opposite feedback from others
(all of whom weren't lawyers, btw, but who have had experience with
licensing issues in the past).

It is my understanding that the licenses cannot be considered legally
binding *by themselves*.  That is, precisely as you indicate, they are
not self-executing.


What I meant by that is that they don't actively restrict 
non-compliant use, as a technological protection measure does: I can 
receive a feed and choose to breach its license.   They can have 
legal effect, though:  Unless I have some legal excuse such as fair 
use, I'm then not compliant and possibly infringing copyright.  (You 
still have to come after me for copyright infringement.)


Are you trying to say that the license-rel in the feed is merely a 
notification to those who are curious that this is probably (but 
we're not certain) the license under which the feed may be used 
?  That's the way it reads.  If so, what's the point?  Don't you 
either want to assert take the feed under this license or not at 
all or say nothing and make people come to you and ask?


I'd recommend dropping this paragraph, as it may give incorrect legal advice.


 2   License link relations appearing within a feed MUST apply to the
metadata of the containing feed element only and do not extend over
the metadata or content of any contained entries.

 Why? Why would a feed need a license separate from its content?  Lots of
 the metadata elements would be functional or would give users fair use
 claims, absent a license.

Sam Ruby's planet feed is a prime example.  Sam does not own rights over
the individual entries that appear within his feed, however, Sam does
own the rights over the feed itself, including the selection and
arrangement of entries within that feed.


That seems minimally useful to me (the license, not Sam's feed!), but 
why prohibit people from licensing their feeds' content too? Or am I 
just misreading this, and you're saying that depending on where you 
put the tag, the license's coverage differs?



Entry content might include or reference material from other sources.
Licenses associated with an entry MUST NOT be assumed to cover such
material.  Implementations cannot necessarily trust that publishers
have the right to license material claimed to be covered by any
associated license.  Care should be taken when making decisions based
on the referenced license.

 This seems to be going down a road of legal interpretation that's
 unnecessary and not necessarily correct. The current CC licenses are
 offered on a taker beware basis -- the licensor offers the rights he
 has, and doesn't guarantee a licensee's rights (or even his own) to
 anything he might have incorporated.  That's not the only way to write a
 license, though.  (Even within CC, version 1 had an explicit
 representation and warranty section that was dropped in v.2.)

 Implementations should trust the legal representations only as much or
 as little as they trust any other claim made by the feed.  How licenses
 chain is a matter of individual legal interpretation.


Ok, so if I'm interpreting this comment correctly, the recommendation
would be to simply remove the paragraph in question?


Yes.

Thanks,
--Wendy


--
Wendy Seltzer -- [EMAIL PROTECTED]
Visiting Assistant Professor of Law, Brooklyn Law School
Fellow, Berkman Center for Internet  Society
http://cyber.law.harvard.edu/seltzer.html
Chilling Effects: http://www.chillingeffects.org



Re: atom license extension (Re: [cc-tab] *important* heads up)

2006-09-05 Thread James M Snell

Comments below.

Wendy Seltzer wrote:
 [snip]
 Thanks James,
 I'm still not clear on what's happening in 1.1.

 [snip]

 To this point I've received exactly the opposite feedback from others
 (all of whom weren't lawyers, btw, but who have had experience with
 licensing issues in the past).

 It is my understanding that the licenses cannot be considered legally
 binding *by themselves*.  That is, precisely as you indicate, they are
 not self-executing.
 
 What I meant by that is that they don't actively restrict non-compliant
 use, as a technological protection measure does: I can receive a feed
 and choose to breach its license.   They can have legal effect, though: 
 Unless I have some legal excuse such as fair use, I'm then not compliant
 and possibly infringing copyright.  (You still have to come after me for
 copyright infringement.)
 
 Are you trying to say that the license-rel in the feed is merely a
 notification to those who are curious that this is probably (but we're
 not certain) the license under which the feed may be used ?  That's the
 way it reads.  If so, what's the point?  Don't you either want to assert
 take the feed under this license or not at all or say nothing and make
 people come to you and ask?
 

What I'm saying is that feed consumers have no guarantee as to who added
the license link to the feed/entry and whether whoever did had the legal
right to do so.  Nor is there any guarantee that license links within a
feed or entry have not been inappropriately modified. Feed publishers
can digitally sign Atom feeds and entries to provide some
non-repudiation protection, but doing so is optional and is not a
guaranteed solution.

 I'd recommend dropping this paragraph, as it may give incorrect legal
 advice.
 

Ok.

  2   License link relations appearing within a feed MUST apply to the
 metadata of the containing feed element only and do not extend over
 the metadata or content of any contained entries.
 
  Why? Why would a feed need a license separate from its content? 
 Lots of
  the metadata elements would be functional or would give users fair use
  claims, absent a license.
 
 Sam Ruby's planet feed is a prime example.  Sam does not own rights over
 the individual entries that appear within his feed, however, Sam does
 own the rights over the feed itself, including the selection and
 arrangement of entries within that feed.
 
 That seems minimally useful to me (the license, not Sam's feed!), but
 why prohibit people from licensing their feeds' content too? Or am I
 just misreading this, and you're saying that depending on where you put
 the tag, the license's coverage differs?
 

It's the latter.  The license's coverage differs depending on where it
appears.

[snip]

- James



Re: atom liense extension (was Re: [cc-tab] *important* heads up)

2006-09-05 Thread James M Snell



Mike Linksvayer wrote:
 On Tue, 2006-09-05 at 15:53 -0700, James M Snell wrote:
 Mike Linksvayer wrote:
 In any case, the draft says the referenced license only applies to feed
 or entry metadata, not content.  This strikes me as not particularly
 useful and does not match analogous extentions for RSS 1.0 and RSS 2.0:
 The difference in semantics is precisely why I'm not using either the
 RSS 1.0 or RSS 2.0 extensions for this as I see problems with both the
 former approaches.
 
 I understand having problems with RSS 1.0 and RSS 2.0 approaches but I
 don't see an inherent and important difference in semantics,
 particularly between Atom 1.0 and RSS 2.0.  Of course my vision is
 probably foggy. :)
 

The difference boils down to one very simple point: contained resources
do not necessarily inherit the license of the container.  The RSS 1.0
and RSS 2.0 modules both assume that the rights holder of the channel
also holds rights over all of the contained items, which works fine when
I'm publishing my own blogs entries in my own feed, but breaks down when
I'm republishing entries from multiple sources.

[snip]
(I'm still stewing over the bit of comments that I snipped out of this
:-) ...)

 I agree that assuming entries inherit licenses specified at a feed level
 is problematic.  My concern, at the feed and entry level, is that the
 atom license extension draft says that a link relation can (only) be
 used to associate a license with feed or entry metadata, rather than
 content.  Unlike other children of feed and entry the license
 extension is not metadata for the feed or entry but metametadata for the
 feed or entry metadata, which strikes me as not particularly useful and
 contrary to both RSS 1.0 and RSS 2.0 modules, whatever differences exist
 between those.
 

My apologies if I haven't been clear on this.  If you look again at
section 1.3, you should find the following:

   For entry elements, metadata refers to the values and attributes of
   the author, category, content, contributor, id, link, published,
   rights, source, summary, title, and updated elements, as well as all
   extension elements appearing as children of the entry element and all
   elements appearing as children of the author and contributor
   elements.

Note that the value and attributes of the content, summary, title, etc
elements are all included in entry metadata.  What isn't covered are
any linked resources.  So any content actually appearing within the
entry is covered by the entry license.

(Note that paragaph 4 of section two will be removed in the next
iteration per Wendy's suggestion)

- James



Re: atom liense extension (was Re: [cc-tab] *important* heads up)

2006-09-05 Thread John Panzer




James M Snell wrote:

  

Mike Linksvayer wrote:
  
  
On Tue, 2006-09-05 at 15:53 -0700, James M Snell wrote:


  Mike Linksvayer wrote:
  
  
In any case, the draft says the referenced license only applies to feed
or entry metadata, not content.  This strikes me as not particularly
useful and does not match analogous extentions for RSS 1.0 and RSS 2.0:

  
  The difference in semantics is precisely why I'm not using either the
RSS 1.0 or RSS 2.0 extensions for this as I see problems with both the
former approaches.
  

I understand having problems with RSS 1.0 and RSS 2.0 approaches but I
don't see an inherent and important difference in semantics,
particularly between Atom 1.0 and RSS 2.0.  Of course my vision is
probably foggy. :)


  
  
The difference boils down to one very simple point: contained resources
do not necessarily inherit the license of the container.  The RSS 1.0
and RSS 2.0 modules both assume that the rights holder of the channel
also holds rights over all of the contained items, which works fine when
I'm publishing my own blogs entries in my own feed, but breaks down when
I'm republishing entries from multiple sources.
  

Here's my rationale:  Atom has explicit support in the core RFC 4287
syntax  for 'synthetic' feeds containing entries from multiple sources
produced by multiple authors with different copyrights.  RSS 2.0
doesn't have this core support.  So in the case of Atom, the issue is a
bit more urgent.  So tackling the Atom case first makes sense to me.

(Aside: Is there any reason why an Atom extension couldn't also be used
as an RSS 2.0 extension too?  In this case, there would be a valid
reason to add to the already crowded space of license extensions: 
Because it lets you specify the feed license terms separately from the
individual entry license terms, whereas the other RSS licensing schemes
don't.)


  
  
  
[snip]

  
  (I'm still stewing over the bit of comments that I snipped out of this
:-) ...)

  
  
I agree that assuming entries inherit licenses specified at a feed level
is problematic.  My concern, at the feed and entry level, is that the
atom license extension draft says that a link relation can (only) be
used to associate a license with feed or entry metadata, rather than
content.  Unlike other children of feed and entry the license
extension is not metadata for the feed or entry but metametadata for the
feed or entry metadata, which strikes me as not particularly useful and
contrary to both RSS 1.0 and RSS 2.0 modules, whatever differences exist
between those.


  
  
My apologies if I haven't been clear on this.  If you look again at
section 1.3, you should find the following:

   For entry elements, "metadata" refers to the values and attributes of
   the author, category, content, contributor, id, link, published,
   rights, source, summary, title, and updated elements, as well as all
   extension elements appearing as children of the entry element and all
   elements appearing as children of the author and contributor
   elements.

Note that the value and attributes of the content, summary, title, etc
elements are all included in entry "metadata".  What isn't covered are
any linked resources.  So any content actually appearing within the
entry is covered by the entry license.
  

(Is it just me, or is there too much overloading of "metadata" here?)

Also, does this mean that an entry license would apply to this content:

    content
type="image/gif"TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG/content

but not to the same content communicated through an indirect link?

    content type="image/gif"
src="" class="moz-txt-link-rfc2396E" href="http://example.org/catpicture001.gif">"http://example.org/catpicture001.gif"/

(I'm deliberately picking a GIF picture as I believe there's no good
solution for embedding license metadata inside GIFs.  )

-John Panzer