Roy T. Fielding | 4 Feb 01:55
Favicon
Gravatar

URI Template spec has been approved

Hello folks,

It seems that I need to close the loop, since the independent
submission process doesn't feed back here (unlike an open WG).

After a large number of constructive last call comments and
a draft 08 to address them

  http://www.ietf.org/internet-drafts/draft-gregorio-uritemplate-08.txt

the spec has been approved by the IESG as a Proposed Standard.
Now we just have to wait for the RFC Editor queue to get final
wording edits and publish it.

A diff from 07 is at

  http://uri-templates.googlecode.com/svn/trunk/spec/draft-gregorio-uritemplate-08-from-7.diff.html

Note that the one substantive change is the processing of
{;list*}, {?list*}, and {&list*} to allow for repeated
parameters with the same name, based on an earlier discussion
here.  Happy implementing.

Cheers,

Roy T. Fielding                     <http://roy.gbiv.com/>
Principal Scientist, Adobe Systems  <http://adobe.com/enterprise>

Begin forwarded message:

(Continue reading)

Peter Johanson | 5 Dec 18:40
Gravatar

URI-Templates: "^" allowed in literals or not?

I have been working on an implementation of URI Templates in C#, and
came upon some ambiguity in the spec. In section 2.1 Literals, the ABNF
includes %x5D-5F in the set for literals, but the comment mentions that
literals should be 'any Unicode character except ... , "^", .. ' but "^" is
%x5E. Is "^" in the set of literals or no?

Thanks in advance,
-pete

Sebastian Hellmann | 28 Nov 08:43
Picon
Favicon

ANN: NLP Interchange Format (NIF) 1.0 Spec, Demo and Reference Implementation

Dear all,
we discussed the URI schemes on this list and I wanted to give some 
short feedback, how it turned out.
In a nutshell, I benchmarked if the URLs are stable between Wikipedia 
revisions and it turned out that the context-hash based approach had 
quite high probability (80-90 %) to stay stable between the revisions. 
Details can be found in the technical report.
All the best,
Sebastian

***ANNOUNCEMENT***
The Natural Language Processing Interchange Format (NIF) is an 
RDF/OWL-based format that aims to achieve interoperability between 
Natural Language Processing (NLP) tools, language resources and 
annotations. The core of NIF consists of a vocabulary, which can 
represent Strings as RDF resources. A special URI Design is used to 
pinpoint annotations to a part of a document. These URIs can then be 
used to attach arbitrary annotations to the respective character 
sequence. Employing these URIs, annotations can be published on the Web 
as Linked Data and interchanged between different NLP tools and 
applications.

In order to simplify the combination of tools, improve their 
interoperability and facilitating the use of Linked Data we developed 
the NLP Interchange Format (NIF). NIF addresses the interoperability 
problem on three layers: the structural, conceptual and access layer. 
NIF is based on a Linked Data enabled URI scheme for identifying 
elements in (hyper-) texts (structural layer) and a comprehensive 
ontology for describing common NLP terms and concepts (conceptual 
layer). NIF-aware applications will produce output (and possibly also 
(Continue reading)

Murray S. Kucherawy | 25 Oct 16:56

TTLs for templates

What general guidance is there on how often one should query for a template from a well-known URI, in case it changes?  A long-running client might have trouble if the server wants a new template for some reason, and the client doesn’t know it should get a new one.

 

-MSK

Murray S. Kucherawy | 25 Oct 11:46

Another idea for URI templates

Hi all,

 

I don’t have the URI template draft handy unfortunately (on a long flight), so I can’t confirm this, but I think I found something useful that I don’t believe the template draft currently handles.


If you have a template that includes “/{foo}”, then the “/” is always inserted into the template regardless of whether or not “foo” is actually defined.  It might be nice to have the “/” be there only if “foo” is set.  Maybe something like “{?foo/}”, which means:

 

-          If “foo” is not set, append the empty string.

-          If “foo” is set but empty, append “/” and the name “foo” only.

-          If “foo” is set to a string, append “/”, then the name, then “=”, then the value.

-          If “foo” is set to a list, append “/”, then the name, then “=”, then the list elements separated by “,”.

-          If “foo” is set to a key-value set, append “/”, then the first key, then “=”, then the first value; for all remaining key-value pairs, append “&”, the next key, then “=”, then its matching value. (The name is not actually inserted into the template.)

 

So then a template of http://example.com/query.php{?foo?} expands thus:

 

-          “foo” undefined: http://example.com/query.php

-          “foo” defined, but empty: http://example.com/query.php?foo

-          “foo” defined to string “bar”: http://example.com/query.php?foo=bar

-          “foo” defined to list “a,b,c”: http://example.com/query.php?foo=a,b,c

-          “foo” defined to key-value set “{a, 1}, {b, 2}, {c, 3}”: http://example.com/query.php?a=1&b=2&c=3

 

Am I wrong, and the URI template spec handles this?  Or does this warrant some consideration and development?

Thanks,

-MSK

 

Bob Van Zant | 7 Oct 18:07
Favicon

URI scheme best practices

Hello everyone,
I've been reading through RFC 4395 and some of the mailing list
archives. We're working on iOS and Android apps that we'd like to have
be able to respond to URIs in the mail applications of each of those
devices. For example, if we generate a password reset email and send
it to the user and they click on that link in their mail application
we'd like that to fire up our app instead of the web browser.

I recognize that this is a fairly standard thing to do and in reading
through what must be a somewhat memorable thread (fb: URIs?
http://lists.w3.org/Archives/Public/uri/2010Feb/0013.html) I see that
this has been beaten around a bit.

Based on the fb: URIs thread I get the feeling that people wish we
could register with iOS and Android to have our app handle URIs of the
form http://www.eventbrite.com/resetpassword. I'm pretty sure that
this is not possible?

Given that we don't think we can use http and given RFC 4395 we're
planning to use a scheme com-eventbrite-attendee: and generate URIs
like com-eventbrite-attendee:resetpassword?parameters&go&here

Is this the current best practice? Is the intent of 4395 that we
attempt registration of the scheme com-eventbrite-attendee:? I'm happy
to go through the process described in section 5 of 4395 but the
extremely tiny URI scheme registration list almost makes me think that
IANA doesn't want us in there.

Thanks,

Bob

James Manger | 7 Sep 17:13
Picon

URI templates: commas

Commas don't have a particularly special role in URIs. They are just 1 of 11 characters in the <reserved> set
that are not used as delimiters of the generic URI components.

URI templates (draft-gregorio-uritemplate-06), however, gives commas special meaning. They are the
only <reserved> character that can appear when expanding {var}.

I'm not aware of any reason why URI templates should single out commas for this special treatment.
It simultaneously encourages servers to use commas as separators, while also causing problems for some
servers that have (quite reasonably) chosen to use commas as separators.

Consider a bank server that accepts payment transactions such as:
  https://example.com/pay/{amount},{to},{from},{comment}

The template processor might be a trusted front-end inserting the "from" variable value based on the
authenticated user, but accepting "amount" and "to" values from the user.
This should be able to be safe. But it isn't with the current draft spec.
If the user provides a "to" value that is actually a list [ "me", "victim" ] then the expansion puts the second
"to" value where the bank was expecting the "from" account -- and a fraudulent transaction occurs.

Perhaps the bank could switch to using a different delimiter -- but that rather defeats one of the purposes
of URI templates of being able to match the server's choice of URI structure.

If the server can provide extra information *outside of the template* about which variables are
mandatory, which can or cannot be lists, and which can or cannot be composite values, then it may be able to
avoid these problems. But templates should be usable without those limitations.

Almost any URI structure using commas as delimiters can face problems with even the most basic level 1
templates since the server cannot distinguish a comma from expanding a user-provided value from a comma
that was a literal expression delimiter in the template.

I suggest that commas not be given special treatment by URI templates.
Expanding {var} should only be able to produce <unreserved> and <pct-encoded> characters -- regardless
of the variable values a user provides.

--
James Manger

Robbie Gates | 5 Sep 09:54

Uri Templates: Questions on draft-gregorio-uritemplate-06

Hi All,
 i am having trouble reconciling some of the examples in the 06 draft
with both the descriptions of the expansions and the sample
implementation.

The first set hinge on the handling of expansions where named (in the
sense of the table in appendix A) is true. The variable list has the
list value ["red", "green", "blue"]. The example expansions are:

        {;list}        ;list=red,green,blue
        {;list*}        ;red;green;blue
        {?list}        ?list=red,green,blue
        {?list*}        ?list=red&list=green&list=blue
        {&list}        &list=red,green,blue
        {&list*}        &list=red&list=green&list=blue

I don't understand why the expansions of ? and & include list= for
each entry when exploded. The description of the handling for the case
of an exploded list makes no mention of the use of the name, and there
is no separate section (as there is for the unexploded case). Also,
the table makes ; the same as ? and & for named, and yet their
handling appears different. The descriptions in 3.2.7 and 3.2.8 /
3.2.9 are likewise similar. In short, i can't see why the examples
differ, given the rest of the document, i was expecting

        {?list*}        ?red&green&blue
        {&list*}        &red&green&blue

I know these don't look like valid form query or form continuation
strings - am i missing something in the description of ? and & (and
the implementation hints) regarding special handling for the name when
exploded ?

The second case is the examples for the variable foo with string value
"That's right!"

        {foo}        That%27s%20right%21
        {+foo}        That%27s%20right!
        {#foo}        #That%27s%20right!

As far as i can see, the single quote character between the t and the
s is in sub-delims (in section 1.5) between & and (. I don't
understand why it is treated differently to ! which is also in
sub-delims. I would have expected these last two expansions to be:

        {+foo}        That's%20right!
        {#foo}        #That's%20right!

since both + and # have allow U+R, and ', ! (but not space) are
sub-delims and hence reserved.

Thanks in advance for any enlightenment,

 - Robbie

James Manger | 24 Aug 15:50
Picon

URI templates: comma-separated variable lists

draft-gregorio-uritemplate-06.txt allows a comma-separated list of variables in any expression,
regardless of the expression operator.

However, a list should not be used with 5 of the 8 operators (+ # . / and no operator) because an expansion will
be ambiguous if any variable in the list is undefined. The server cannot tell which value goes with which variable.

Consider if the template "{alpha,beta,gamma}" is expanded to "23,6". The user could have provided
alpha=23 beta=6, or alpha=23 gamma=6, or beta=23 gamma=6 (or beta=[23,6] but that is a separate bug).

A template like "{alpha,beta,gamma}" is almost certainly a mistake by the template author. It only makes
any sense if all the variables are mandatory, but in that case it is clearer to use
"{alpha},{beta},{gamma}" -- with no chance of ambiguity (and simpler lower-level expressions).

I suggest changing the spec ABNF to only allow variable lists with operators that produce name=value pair
(or drop variable lists entirely).

--
James Manger

Sebastian Hellmann | 16 Aug 10:36
Picon
Favicon

Fwd: Re: Document fragment vocabulary

Dear all,
a topic came up on public-lod <at> w3.org , which might best be posted here.
I will summarize most of it here real quick, the details can be found attached.

Currently, I am working on an interchange format in RDF for Natural Language Processing(NLP), called NIF [1] (slides[2]), which is part of LOD2[3].
It heavily relies on URI Fragment IDs that address substrings of a plain/text document.
Although RFC5147 [4] exists it does not cover some requirements of the NLP Use Case.

RFC5147 provides integrity checks, but there is no proposal that produces robust fragment IDs. e.g. something that works on the context and not on line or position. A change in the document on position 0 might render all fragment ids obsolete. E.g. "#range=(574,585)" would not be valid any more, if one character was inserted at the beginning of the document, changing the index.
The RFC was already extended for CSV[5], but I would even go further and allow more extension and then collect them all in a structured format such as an RDF/OWL vocabulary. We have already done this for our cases [6]

For our purposes, we defined 2 fragment recipes, in this case to annotate the third occurrence of "Semantic Web":
http://www.w3.org/DesignIssues/LinkedData.html#offset__Semantic+Web_14406-14418
http://www.w3.org/DesignIssues/LinkedData.html#hash_md5_4__12_Semantic+Web_abeb272fe2deadd2cd486c4cea6cddf1

I'm quite unsure how to proceed now: Use our own fragment recipes, write another RFC or try to generalize the approach with the help of a vocabulary.
RFC5147 would then need to be extended by a "type=RFC5147" or "type=offset" or "type=hash" parameter and you would be able to lookup what "RFC5147", "offset" or "hash" meant. Could you give us some suggestions as we do not want to invent the 15th competing standard[7] .

Another problem, we have is that the fragment id is not sent to the server. Did this ever play a practical role up to now? For Linked Data it can be cumbersome: Let's say you have a 200 MB text file, with average 3 annotations per line (200,000 lines, 600,000 triples ).
Somebody attached an annotation on line 20000:
<http://example.com/text.txt#line=20000> my:comment "Please remove this line. It is so negative!" .
When making a query with RDF/XML Accept Header. You would always need to retrieve all annotations for all lines.
Then after transferring the 900k triples, the client would throw away all other triples, except the one for this line.
Currently, we do not care whether we will use "?nif=" or "/" or "#" and leave this up to the implementer.

The summary got quite long now and below are even more aspects mentioned. I hope this is not too confusing.
All the best,
Sebastian


[1] http://www.slideshare.net/kurzum/nif-nlp-interchange-format [2] http://aksw.org/Projects/NIF [3] http://lod2.eu [4] http://tools.ietf.org/html/rfc5147 [5] http://tools.ietf.org/html/draft-hausenblas-csv-fragment [6] http://nlp2rdf.lod2.eu/schema/string/ [7] http://xkcd.com/927/ -------- Original-Nachricht -------- Betreff: Weitersenden-Datum: Weitersenden-Von: Datum: Von: An: CC:
Re: Document fragment vocabulary
Tue, 16 Aug 2011 06:15:14 +0000
public-lod <at> w3.org
Tue, 16 Aug 2011 15:09:21 +0900
Sebastian Hellmann <hellmann <at> informatik.uni-leipzig.de>
Michael Hausenblas <michael.hausenblas <at> deri.org>
Michael Martin <martin <at> informatik.uni-leipzig.de>, public-lod <public-lod <at> w3.org>, Alexander Dutton <alexander.dutton <at> oucs.ox.ac.uk>


Am 16.08.2011 14:12, schrieb Michael Hausenblas: >> It is not really LinkedData friendly. > > Why? > It does not scale for large documents. Let's say you have a 200 MB text file, with average 3 annotations per line (200,000 lines, 600,000 triples ). Somebody attached an annotation on line 20000: <http://example.com/text.txt#line=20000> my:comment "Please remove this line. It is so negative!" . When making a query with RDF/XML Accept Header. You would always need to retrieve all annotations for all lines. Then after transferring the 200 MB, the client would throw away all other triples but the one. >> <at> Michael: is there some standardisation respective URIs for text >> going on? > > As you've rightly identified, an RFC already exists. What would this > new standardisation activity be chartered for? > > As and aside, this reminds me a bit of http://xkcd.com/927/ Hm, actually you created an extra standard yourself for csv, because the approach by Wilde and Dürst did not cover your use case. It does not cover mine either for 100%. Potentially, there are a lot of text based formats. So there should be a way to extend the pattern somehow. >> The approach by Wilde and Dürst[1] seems to lack stability. > I don't know what you mean by this. Lack of take-up, yes. Stability, > what's that? Wilde and Dürst provide integrity checks, but there is no proposal that produces robust fragment IDs. e.g. something that works on the context and not on line or position. A change in the document on position 0 might render all fragment ids obsolete. E.g. "#range=(574,585)" would not be valid, if one character was inserted at the beginning of the document. >> Do you think we could do such standardisation for document fragments >> and text fragments within the Media Fragments Group[3] ? > No. Disclaimer: I'm a MF WG member. Look at our charter [1] ... > Ok, thanks for clarifying that. > > Maybe this thread should slowly be moved over to uri <at> w3.org [2]? > The # part not being sent to the server might be interesting for this list as it is a linked data problem. Also I think we should create an OWL Vocabulary to describe, document and standardize different fragment identifiers, as Alexander has started. But we should only do it with the w3c. Otherwise it will truly become "competing standard 15" . The ontology could also just be descriptive, reflecting the RFCs. Should we cross-post? Alternatively I could just start another thread there. Sebastian > > Cheers, > Michael > > [1] http://www.w3.org/2008/01/media-fragments-wg.html > [2] http://lists.w3.org/Archives/Public/uri/ > -- > Dr. Michael Hausenblas, Research Fellow > LiDRC - Linked Data Research Centre > DERI - Digital Enterprise Research Institute > NUIG - National University of Ireland, Galway > Ireland, Europe > Tel. +353 91 495730 > http://linkeddata.deri.ie/ > http://sw-app.org/about.html > > On 16 Aug 2011, at 05:40, Sebastian Hellmann wrote: > >> Hi Michael and Alex, >> sorry to answer so late, I was in holiday in France. >> I looked at the three provided resources [1,2,3] and there are still >> some comments and questions I have. >> >> 1. The part after the # is actually not sent to the server. Are there >> any solutions for this? It is not really LinkedData friendly. >> Compare >> http://linkedgeodata.org/triplify/near/51.033333,13.733333/1000/class/Amenity >> (Currently not working, but it gives all points within a 1000m radius) >> >> The client would be required to calculate the subset of triples from >> the resource, that are addressed. >> >> 2. [1] is quite basic and they are basically using position and >> lines. I made a qualitative comparison of different fragment id >> approaches for text in [4] slide 7. >> I was wondering if anybody has researched such properties of URI >> fragments. Currently, I am benchmarking stability of these uris using >> Wikipedia changes. >> Has such work been done before? >> >> 3. <at> Alex: In my opinion, your proposed fragment ontology can only be >> used to provide documentation for different fragments. >> I would rather propose to just use one triple: >> <http://www.w3.org/DesignIssues/LinkedData.html#offset__14406-14418> >> a <http://nlp2rdf.lod2.eu/schema/string/OffsetBasedString> >> The ontology I made for Strings might be generalized for formats >> other than text based [5] >> One triple is much shorter. As you can see I also tried to encode the >> type of fragment right into the fragment "offset", although a >> notation like "type=offset" might be better. >> >> 4. <at> Michael: is there some standardisation respective URIs for text >> going on? >> I heard there would be a Language Technology W3C group. The approach >> by Wilde and Dürst[1] seems to lack stability. >> Do you think we could do such standardisation for document fragments >> and text fragments within the Media Fragments Group[3] ? >> I really thought the liveUrl project was quite good, but it seems >> dead[6]. >> >> >> In LOD2[7] and NIF[8] we will need some fragment identifiers to >> Standardize NLP tools for the LOD2 stack. >> It would be great to reuse stuff instead of starting from scratch. I >> had to extend [1] for example, because it did not produce stable uris >> and also it did not contain the type of algorithm used to produce the >> URI. >> >> All the best, >> Sebastian >> >> >> [1] http://tools.ietf.org/html/rfc5147 >> [2] http://tools.ietf.org/html/draft-hausenblas-csv-fragment >> [3] http://www.w3.org/TR/media-frags/ >> [4] http://www.slideshare.net/kurzum/nif-nlp-interchange-format >> [5] http://nlp2rdf.lod2.eu/schema/string/ >> [6] http://liveurls.mozdev.org/index.html >> [7] http://lod2.eu >> [8] http://aksw.org/Projects/NIF >> >> Am 04.08.2011 22:37, schrieb Michael Hausenblas: >>> >>> >>> Alex, >>> >>>> Has something already done this? Is it even (mostly?) sane? >>> >>> Sane yes, IMO. Done, sort of, see: >>> >>> + URI Fragment Identifiers for the text/plain [1] >>> + URI Fragment Identifiers for the text/csv [2] >>> >>> Cheers, >>> Michael >>> >>> [1] http://tools.ietf.org/html/rfc5147 >>> [2] http://tools.ietf.org/html/draft-hausenblas-csv-fragment >>> >>> -- >>> Dr. Michael Hausenblas, Research Fellow >>> LiDRC - Linked Data Research Centre >>> DERI - Digital Enterprise Research Institute >>> NUIG - National University of Ireland, Galway >>> Ireland, Europe >>> Tel. +353 91 495730 >>> http://linkeddata.deri.ie/ >>> http://sw-app.org/about.html >>> >>> On 4 Aug 2011, at 14:22, Alexander Dutton wrote: >>> >>>> >>>> -----BEGIN PGP SIGNED MESSAGE----- >>>> Hash: SHA1 >>>> >>>> Hi all, >>>> >>>> Say I have an XML document, <http://example.org/something.xml>, and I >>>> want to talk about about some part of it in RDF. As this is XML, being >>>> able to point into it using XPath sounds ideal, leading to >>>> something like: >>>> >>>> <#fragment> a fragment:Fragment ; >>>> fragment:within <http://example.org/something.xml> ; >>>> fragment:locator "/some/path[1]"^^fragment:xpath . >>>> >>>> (For now we can ignore whether we wanted a nodeset or a single node, >>>> and how to handle XML namespaces.) >>>> >>>> More generally, we might want other ways of locating fragments >>>> (probably with a datatype for each): >>>> >>>> * character offsets / ranges >>>> * byte offsets / ranges >>>> * line numbers / ranges >>>> * some sub-rectangle of an image >>>> * XML node IDs >>>> * page ranges of a paginated document >>>> >>>> Some of these will be IMT-specific and may need some more thinking >>>> about, but the idea is there. >>>> >>>> >>>> Has something already done this? Is it even (mostly?) sane? >>>> >>>> >>>> Yours, >>>> >>>> Alex >>>> >>>> >>>> NB. Our actual use-case is having pointers into an NLM XML file >>>> (embodying a journal article) so we can hook up our in-text reference >>>> pointer¹ URIs to the original XML elements (<xref/>s) they were >>>> generated from. This will allow us to work out the context of each >>>> citation for use in further analysis of the relationship between the >>>> citing and cited articles. >>>> >>>> ¹ See >>>> <http://opencitations.wordpress.com/2011/07/01/nomenclature-for-citations-and-references/> >>>> >>>> for an explanation of the terminology. >>>> >>>> - -- >>>> Alexander Dutton >>>> Developer, data.ox.ac.uk, InfoDev, Oxford University Computing >>>> Services >>>> Open Citations Project, Department of Zoology, University >>>> of Oxford >>>> -----BEGIN PGP SIGNATURE----- >>>> Version: GnuPG v1.4.11 (GNU/Linux) >>>> Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/ >>>> >>>> iEYEARECAAYFAk46nS4ACgkQS0pRIabRbjDVZQCdGblvoMgNqEietlE5EwAkPJY8 >>>> pikAn2KApM0HjcXj6TZegA+Dek/DJIQX >>>> =UcCr >>>> -----END PGP SIGNATURE----- >>>> >>>> >>> >>> >> >> >> -- >> Dipl. Inf. Sebastian Hellmann >> Department of Computer Science, University of Leipzig >> Homepage: http://bis.informatik.uni-leipzig.de/SebastianHellmann >> Research Group: http://aksw.org > > -- -- Dipl. Inf. Sebastian Hellmann Department of Computer Science, University of Leipzig Homepage: http://bis.informatik.uni-leipzig.de/SebastianHellmann Research Group: http://aksw.org
Marc Portier | 9 Aug 08:50
Picon
Gravatar

uri-templates implementation feedback.

Hi all,

I've finally come round to updating my js implementation to the latest 
state of the spec (that is currently r71 at 
http://code.google.com/p/uri-templates/)

I know this has no official 0.6 label (yet), but since it fixed some 
samples and removed some more requirements (e.g. the 'default') lazy me 
thought this to be an easier goal.

Anyway, here some findings:

[unnamed list expansion for ; matrix-params]
Anyway: I only have one case that made me add some quirk to comply to:
   {;list*}              ;red;green;blue

Without the quirk my implementation produced:
   {;list*}              ;list=red;list=green;list=blue

Well, I obviously don't like quirks, but sentiments aside I am left to 
wonder if the matrix-parameters are not always expected to carry a name?

[encoded names]

If I understood the spec correctly the varspec-names can contain 
pcnt-encoded characters, and should be decoded to translate onto 
context-keys.

Thus the following expansions should work out as listed, right?

>     var context = {
>         "!":  "exclamation-mark",
>         "%21": "encoded exclamation-mark"
>     }
>
>     var testset = {
>         "{!}"   : "{!}",
>         "{%21}" : "exclamation_mark"
>     };
>

[nesting context variables]

The spec doesn't play out dereferencing nested structures by using . (or 
some other notation) between variable-names.

I'm not sure if this on purpose or just a wicked idea from me:

>     var context = {
>         "a.b"       : "value-at-a.b",
>         "x"         : { "y": "value-at-y-via-x"}
>     }
>
>     var testset = {
>         "{a.b}"       : "value-at-a.b",
>         "{x.y}"       : "value-at-y-via-x"
>     };

Dunno if this makes sense to add, but it seems like a fairly easy thing 
to add in the implementation.

On the other hand, it can be overcome by preprocessing the context 
structure (pretty much similar to how we currently would be adding the 
removed 'defaults' behavior, no?)

Note there is a challenge to correctly define 'preference of finding' 
which of possibly multiple matching keys with this approach. "a.b.c" 
might be found at any of: "a.b.c" "a"->"b.c", "a"->"b"->"c", "a.b"->"c"

All for now.
My implementation can be found at 
https://github.com/marc-portier/uri-templates  (The two failing tests 
(src/test/webenv/test.html) at the moment are the ones mentioned just 
above, I'll gladly fix taking into account your responses and 
clarifications.  If time permits I'll try to add some more edge-case tests)

regards,
-marc=


Gmane