Re: Using Poco to embed simple personal information directly in XRD

8 views
Skip to first unread message

Joseph Smarr

unread,
Sep 10, 2009, 10:56:11 PM9/10/09
to webf...@googlegroups.com, PortableContacts
[+CC portablecontacts]

I think this is a great use case for Portable Contacts (certainly, it was designed to be "the last contact schema we'll ever need"), so I welcome input on how best to accomplish this. For the XML namespace, is it just as simple as making up a URI like http://portablecontacts.net/spec/1.0 (which we use for XRD) and declaring that in the spec? 

The only other complexity is maintaining wire-alignment with the OpenSocial RESTful Protocol for accessing people data. Right now PoCo is essentially a clean subset of OpenSocial, which means OpenSocial providers like MySpace are also PoCo providers. But it also means we can't just change PoCo without either also changing OS REST or providing some other way to have our cake and it too. The reason we use "entry" as the root tag is because during that alignment process, OS was already using "entry" to be AtomPub-like, and they didn't want to change it (I'd initially proposed "contact" as you suggest). Perhaps there's a handy way to refer to all the PoCo contact fields (displayName, emails, etc.) with a common namespace/schema that could be embedded in a differently-named root element inside webfinger's XRD? Or could you have a wrapper tag that then has <entry> inside it, so that at least the confusing/lame naming is well contained? :)

Anyway, let's definitely find a way to make this work, so please suggest some concrete ways to proceed.
Thanks, js

On Thu, Sep 10, 2009 at 7:39 PM, Eran Hammer-Lahav <er...@hueniverse.com> wrote:

We have a requirement to include basic profile information about the person/group identifier by an account and described by an XRD. This was the primary use of the original finger protocol. So far we are only linking from the XRD to another document which will contain such information, but given that this is common across many use cases, we need to either:

* define a standard link and media type for such information
* embed it inside the XRD

One suggestion for embedding it directly in the XRD (which gives instant value without another document and roundtrip). I think the Portable Contacts schema works well for this:

<XRD>
       <Subject>acct:j...@example.com</Subject>
       <Entry>
               <displayName>Mork Hashimoto</displayName>
               <name>
                       <familyName>Hashimoto</familyName>
                       <givenName>Mork</givenName>
               </name>
               <birthday>0000-01-16</birthday>
               <gender>male</gender>
               <drinker>heavily</drinker>
       </Entry>
</XRD>

Or

<XRD>
       <Subject>acct:j...@example.com</Subject>
       <Link>
               <Rel>describedby</Rel>
               <Entry>
               </Entry>
       </Link>
</XRD>

The main issues are:

* Poco does not have an XML NS defined.
* The contact element name 'Entry' is idiotic and will be very confusing in an XRD. It should be <Contact>.

I *think* I prefer it inside the <Link> but structure-wise, it is better at the XRD level.

Thoughts?

EHL

Chris Messina

unread,
Nov 6, 2009, 8:43:53 PM11/6/09
to PortableContacts
...as well, we're using the PoCo schema in ActivityStrea.ms, so the
proliferation of data in this format should help drive adoption.

Putting this data in XRD or WebFinger is a logical progression.

On Sep 10, 6:56 pm, Joseph Smarr <jsm...@gmail.com> wrote:
> [+CC portablecontacts]
>
> I think this is a great use case for Portable Contacts (certainly, it was
> designed to be "the last contact schema we'll ever need"), so I welcome
> input on how best to accomplish this. For the XML namespace, is it just as
> simple as making up a URI likehttp://portablecontacts.net/spec/1.0(which
> we use for XRD) and declaring that in the spec?
> The only other complexity is maintaining wire-alignment with the OpenSocial
> RESTful Protocol for accessing people data. Right now PoCo is essentially a
> clean subset of OpenSocial, which means OpenSocial providers like MySpace
> are also PoCo providers. But it also means we can't just change PoCo without
> either also changing OS REST or providing some other way to have our cake
> and it too. The reason we use "entry" as the root tag is because during that
> alignment process, OS was already using "entry" to be AtomPub-like, and they
> didn't want to change it (I'd initially proposed "contact" as you suggest).
> Perhaps there's a handy way to refer to all the PoCo contact fields
> (displayName, emails, etc.) with a common namespace/schema that could be
> embedded in a differently-named root element inside webfinger's XRD? Or
> could you have a wrapper tag that then has <entry> inside it, so that at
> least the confusing/lame naming is well contained? :)
>
> Anyway, let's definitely find a way to make this work, so please suggest
> some concrete ways to proceed.
> Thanks, js
>
> On Thu, Sep 10, 2009 at 7:39 PM, Eran Hammer-Lahav <e...@hueniverse.com>wrote:
>
>
>
>
>
> > We have a requirement to include basic profile information about the
> > person/group identifier by an account and described by an XRD. This was the
> > primary use of the original finger protocol. So far we are only linking from
> > the XRD to another document which will contain such information, but given
> > that this is common across many use cases, we need to either:
>
> > * define a standard link and media type for such information
> > * embed it inside the XRD
>
> > One suggestion for embedding it directly in the XRD (which gives instant
> > value without another document and roundtrip). I think the Portable Contacts
> > schema works well for this:
>
> > <XRD>
> >        <Subject>acct:j...@example.com <acct%3A...@example.com></Subject>
> >        <Entry>
> >                <displayName>Mork Hashimoto</displayName>
> >                <name>
> >                        <familyName>Hashimoto</familyName>
> >                        <givenName>Mork</givenName>
> >                </name>
> >                <birthday>0000-01-16</birthday>
> >                <gender>male</gender>
> >                <drinker>heavily</drinker>
> >        </Entry>
> > </XRD>
>
> > Or
>
> > <XRD>
> >        <Subject>acct:j...@example.com <acct%3A...@example.com></Subject>

Mason Lee

unread,
Nov 22, 2009, 4:30:17 PM11/22/09
to PortableContacts
What is the latest on linking one's own poco contact card info to
one's webfinger XRD? Should portablecontacts.net declare a URI that
means, in XRD, "Here is where you can fetch a PoCo XML doc that
contains all the contact info describing this resource." (as opposed
to a general address book of friends and what not, which might be
another URI.)

So, something along the lines of: "tag:portablecontacts.net,2009:my-
contact-info" (<- Aside, I've been liking this RFC4151 tag format for
persistent uris lately, as minting control never changes hands, unlike
domain names and http:// based uris.)

<link rel="tag:portablecontacts.net,2009:my-contact-info">

Or what's the latest thinking on this?

Thanks,

Mason
http://masonlee.org

Chris Messina

unread,
Nov 23, 2009, 12:01:14 PM11/23/09
to portable...@googlegroups.com
I think there's a query for /me or /self... in which case discovery would be performed as with any PoCo endpoint — the server would just return the set of data that pertains to the current user.

Perhaps Joseph has another idea?

Chris

--

You received this message because you are subscribed to the Google Groups "PortableContacts" group.
To post to this group, send email to portable...@googlegroups.com.
To unsubscribe from this group, send email to portablecontac...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/portablecontacts?hl=.





--
Chris Messina
Open Web Advocate

Personal: http://factoryjoe.com
Follow me on Twitter: http://twitter.com/chrismessina

Citizen Agency: http://citizenagency.com
Diso Project: http://diso-project.org
OpenID Foundation: http://openid.net

This email is:   [ ] shareable    [X] ask first   [ ] private

John Panzer

unread,
Nov 23, 2009, 12:24:38 PM11/23/09
to portable...@googlegroups.com
Theoretically the Right Way to do this in general is to at least have each service define a way to construct a URL that means "me", that can then be published in an XRD.  People reading the XRD neither know nor care how the URL was constructed.  (This is also simpler -- no discovery or APIs or URL munging needed -- just do a GET and you get the person's contact info.)

--
John Panzer / Google
jpa...@google.com / abstractioneer.org / @jpanzer
Reply all
Reply to author
Forward
0 new messages