Subject: Re: PacePersonRef posted

From: Joe Gregorio <[email-masked]>
Date: Thu, 1 Jul 2004 08:13:03 -0400

On Thu, 01 Jul 2004 13:37:12 +1000, Eric Scheid
<[email-masked]> wrote:
> 
> 
> On 1/7/04 6:53 AM, "Asbjørn Ulsberg" <[email-masked]> wrote:
> 
> >> In most feeds, the author is the same for many, if not all, entries,
> >> leading to repetition of author metadata. This can be avoided by
> >> specifying the metadata in one place in the feed and referring to it
> >> from other parts of the feed.
> >
> > Would it be possible to extend this Pace to also include external
> > referring authors, which could be, e.g. a FOAF file? The file could of
> > course also be a centrally stored XML file with an <author> document in
> > it, but when referring externally, I guess it makes more sense to refer to
> > something more useful, like FOAF.
> 
> change the data type of @ref to URI, and we can refer to defined authors
> like this:
> 
>     <author ref="#someauthorinthisfeedinstance" />
>     <!-- note the simple extra bit of "#" -->

Reduce, reuse, recycle:

<author xlink:href="#someauthorinthisfeedinstance" />

Of course any sort of 'id' referencing gets you into 
the quagmire of XML ids, that is, the ability of processors 
to identify an XML element by an explicit identifier 
("IDness") has depended upon *validation*[1].
Unless we want to have a *mandatory* DTD and/or
Schema for Atom then xml:id[2], though only a 
working draft, is your best bet.

    -joe

[1] http://www.w3.org/TR/2003/WD-xml-id-req-20030806/
[2] http://www.w3.org/TR/2004/WD-xml-id-20040407/

---

From: Antone Roundy <[email-masked]>
Date: Thu, 1 Jul 2004 07:48:44 -0600

On Wednesday, June 30, 2004, at 09:37  PM, Eric Scheid wrote:
>     <author ref="http://example.org/foo.foaf#fred"
>         type="application/xml+foaf" />
>
> I'm in two minds for this: it provides an extensibility path, but it 
> opens
> awkward questions about what happens if the referenced element is not a
> <person> construct
Yeah, it would not contain the required elements of a Person construct 
(either a name or an email address or...).

I myself would be opposed to allowing external references because, with 
the exception of binary resources, I'm in favor of a feed being 
self-contained.  This is partly a result of my background--my 
connection to Atom is that I'm the author of a PHP script for 
processing RSS feeds.  I'd like to be able to load just the feed and 
get all the data I need to present it as HTML.  I want to be able to 
use HTML to instruct the viewer's browser to load anything that's not 
in the feed, like images.

>> 4.5.1.1 id Attribute
>> 3.2.1 "ref" attribute
>
> we need some extra language to explain that any given <person> 
> construct can
> have @id or @ref but NOT both.
Good point.  I've updated the proposal to state that a <person> element 
MUST NOT have a ref attribute.  Since the id attribute is listed under 
the <person> element (and not the Person construct), there is (should 
be!) no need to point out that other Person constructs cannot have an 
id attribute.

---

From: Antone Roundy <[email-masked]>
Date: Thu, 1 Jul 2004 07:53:28 -0600

> working draft, is your best bet.
xml:id sounds good to me.  Comments on xlink:href, anyone?

As mentioned elsewhere, I'm not in favor or allowing references to 
externally defined Person constructs, so if xlink:href were used (and 
my preference were to prevail!), we'd need to specify that constraint.  
I don't suppose there's a generic referencing mechanism already defined 
for local-only references, is there?

---

From: Bjoern Hoehrmann <[email-masked]>
Date: Thu, 01 Jul 2004 17:08:58 +0200

>("IDness") has depended upon *validation*[1].

Validation is not really relevant here, a processor only needs to read
the relevant schema information, which can be an external DTD subset or
an internal DTD subset. Or a schema reference. Or a built-in schema. We
could say, for example, that Atom implementations must consider specific
attributes as ID attributes as defined in the XML Recommendation. That
would not work for generic processors, but any IDness that does not come
from the internal DTD subset is not guranteed to work in such processors
anyway.

---

From: Joe Gregorio <[email-masked]>
Date: Thu, 1 Jul 2004 13:42:34 -0400

> from the internal DTD subset is not guranteed to work in such processors

From "xml:id Requirements" [1]
-----
Since XML 1.0, the ability of processors to identify an XML element by
an explicit identifier ("IDness") has depended upon validation. Both
DTDs and [XML Schema] have mechanisms to identify the structures
containing unique identifiers. But neither XML Schema nor DTDs are
required by all processors. A common processor type does not perform
validation, nor fetch external resources for the purpose of
acertaining whether the document contains unique identifiers.

This document sets out the requirements for a mechanism for
determining "IDness" applicable to all classes of XML processors.
-----

[1]

    -joe

---

From: Asbjørn Ulsberg <[email-masked]>
Date: Thu, 01 Jul 2004 21:57:17 +0200

On Thu, 1 Jul 2004 07:53:28 -0600, Antone Roundy <[email-masked]>  
wrote:

> xml:id sounds good to me.

+1.

> Comments on xlink:href, anyone?

I think the whole 'href', 'hreflang', 'lang' and 'base' attribute soup  
should be sorted out, as I've stated in another e-mail[1] to this list.

Until we've sorted it out, we should imho just use 'href' as is, just as  
we're using <link> as is, until we've figured out the whole LinkConstruct  
debacle.

> externally defined Person constructs, so if xlink:href were used (and my  
> preference were to prevail!), we'd need to specify that constraint.

I think using @href instead of @ref, and then prefix internally referenced  
authors with '#', would do the trick. Adding a @type would allow for other  
person identification formats than FOAF externally. E.g.:

   <author type="application/rdf+xml" href="http://example.com/me.foaf" />

This could, of course, be:

   <link rel="author" type="application/rdf+xml"
     href="http://example.com/me.foaf" />

as well, but that will be sorted out when the link discussion reaches  
consensus (on whatever). Here's an example of an internal reference:

   <author xml:id="author1">
     <name>Asbjørn Ulsberg</name>
   </author>

   <author href="#author1" />

> I don't suppose there's a generic referencing mechanism already
> defined for local-only references, is there?

Not for local-only, afaik, but prefixing local references with '#' is a  
standard mechanism.

____
[1] <url: http://www.imc.org/atom-syntax/mail-archive/msg06048.html>

-- 
Asbjørn Ulsberg         -=|=-        [email-masked]
«He's a loathsome offensive brute, yet I can't look away»