Skip to content

Commit

Permalink
Merge branch 'gh-pages' into dcat-issue-971
Browse files Browse the repository at this point in the history
  • Loading branch information
riccardoAlbertoni committed Sep 16, 2019
2 parents ea5b088 + 60a4222 commit 27a3eb7
Show file tree
Hide file tree
Showing 3 changed files with 102 additions and 86 deletions.
182 changes: 99 additions & 83 deletions conneg-by-ap/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -848,33 +848,36 @@ <h3>Token</h3>
<p>
When used in a <code>Link</code> header field,
the attribute <code>token</code> is used to specify
the mapping between the profile URI
(specified using the <code>anchor</code> attribute)
and a <a>token</a> used as an alternative to the full profile URI.
a <a>token</a> that a client MAY use
as an alternative to the full profile URI
given in the <code>anchor</code> attribute.
</p>
<p>
It should be noted that the scope of the mapping between the token and the profile URI
It should be noted that the use of the token as an alternative to the profile URI
is per default limited to the current resource
(i. e. the resource identified by the current request URI).
Servers MAY use a larger scope for their mappings
Servers MAY use a larger scope for this
but clients should not depend on that
unless the server documentation explicitly gives other instructions.
unless the server documentation explicitly gives other instructions through some other means.
</p>
<p>
The ABNF for the profile attribute's value is <code>token</code>,
where "token" is defined as in
The ABNF for the profile attribute's value is <code>(token / quoted-string)</code>,
where "token"and "quoted-string" are defined as in
<a href="https://tools.ietf.org/html/rfc7230#section-3.2.6">section 3.2.6</a>
of [[RFC7230]].
of [[RFC7230]]. The rules for <code>link-param</code> values defined in
<a href="https://tools.ietf.org/html/rfc8288#section-3">section 3</a> of [[RFC8288]] apply.
</p>
<pre id="eg-link-attribute-token" class="example nohighlight" aria-busy="false" aria-live="polite"
title="Using the Link attribute "token" to link a profile URI to a token">
# The profile URI in the "anchor" element is linked to the token "px"
title="Using the Link attribute ''token'' to link a profile URI to a token">
# The profile URI in the "anchor" element is linked to the token "igsn-r1"

# Further, the relation "type" is used to inform
# that the anchor resource is of type "prof:Profile"

Link:
&lt;http://www.w3.org/ns/dx/prof/Profile&gt;; rel="type"; token="px"; anchor=&lt;urn:example:profile:x&gt;
Link: &lt;http://www.w3.org/ns/dx/prof/Profile&gt;;
rel="type";
token="igsn-r1";
anchor=&lt;http://schema.igsn.org/description/1.0&gt;
</pre>
</section>
</section>
Expand Down Expand Up @@ -908,7 +911,13 @@ <h3>Hypertext Transfer Protocol Headers</h3>
<code>Accept-Profile</code> and <code>Content-Profile</code> that are to be defined in an upcoming
Internet-Draft [[PROF-IETF]].
</p>
<div class="issue" data-number="678"></div>
<div class="note" title="Feature at risk">
<p>
The use of HTTP headers to transport information
about which profiles the response message's content conforms to
is <strong>at risk</strong> pending the IETF standardisation work.
</p>
</div><div class="issue" data-number="678"></div>
<div class="note" title="Issue 678: POST/PUT out of scope">
<p>
POST &amp; PUT methods are considered out-of-scope for this Functional Profile. It is not clear what functions of
Expand Down Expand Up @@ -1154,16 +1163,45 @@ <h4>HTTP Alternate Representations Data Model Implementation</h4>
<section id="listprofiles-tokens">
<h3>Token mappings</h3>
<p>
If HTTP <a>server</a>s wish to allow <a>client</a>s to identify <a>profile</a>s via <a>token</a>,
If HTTP <a>server</a>s wish to allow <a>client</a>s to identify <a>profile</a>s via <a>token</a>s,
in addition to the the mandatory identification of <a>profile</a>s via via URI, the <a>server</a>s will
need to provide a <a>token</a> / URI mapping via this <strong>list profiles</strong> function. In this
HTTP functional profile of this specification, this may be implemented in a number of ways. The preferred
way is to add "token" parameters to the HTTP Content-Profile and Link HTTP headers.
need to provide a <a>token</a> / URI mapping via this <strong>list profiles</strong> function.
When implementing the HTTP functional profile of this specification,
a server MUST include a <code>Link</code> header ([[RFC8288]])
for each <code>profile</code>/<code>token</code> pair in its response.
Each <code>Link</code> header MUST use the <code>Link Target</code>
"<code>http://www.w3.org/ns/dx/prof/Profile</code>"
and MUST contain the following <code>Target Attribute</code>s:
</p>
<table>
<thead>
<tr>
<th>Target Attribute</th>
<th>Target Attribute value</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>rel</code></td>
<td><code>"type"</code></td>
</tr>
<tr>
<td><code>token</code></td>
<td>The token mapped to the profile URI in the <code>anchor</code> attribute
</tr>
<tr>
<td><code>anchor</code></td>
<td>The profile URI of the profile mapped to the token in the <code>token</code> attribute
</tr>
</tbody>
</table>
<p>
Servers MAY add more attributes to that <code>Link</code> header.
</p>
<pre id="eg-uri-token" class="example nohighlight" aria-busy="false" aria-live="polite"
title="HTTP headers with profile URI / token mappings using 'token' parameters">
# The Profile with urn:example:profile:x is mapped to token px and URI
# and the Profile with URI http://example.org/profile/y is mapped to py
# The Profile with URI urn:example:profile:marc21-dnb is mapped to the token "dnb"
# and the Profile with URI http://example.org/profiles/marc21-loc is mapped to the token "loc"

HEAD /resource/a HTTP/1.1
Accept: text/turtle
Expand All @@ -1176,67 +1214,15 @@ <h3>Token mappings</h3>
Content-Location: http://example.org/resource/a.profx.ttl
Content-Profile: &lt;urn:example:profile:x&gt;
Link:
&lt;http://www.w3.org/ns/dx/prof/Profile&gt;; rel="type"; token="px"; anchor=&lt;urn:example:profile:x&gt;,
&lt;http://www.w3.org/ns/dx/prof/Profile&gt;; rel="type"; token="py"; anchor=&lt;http://example.org/profile/2&gt;,
&lt;http://example.org/resource/a.profx.ttl&gt;; rel="self"; type="text/turtle"; profile="urn:example:profile:x",
&lt;http://example.org/resource/a.profy.ttl&gt;; rel="alternate"; type="text/turtle"; profile="http://example.org/profile/2",
&lt;http://example.org/resource/a.profx.xml&gt;; rel="alternate"; type="application/xml"; profile="urn:example:profile:x",
&lt;http://example.org/resource/a.profy.xml&gt;; rel="alternate"; type="application/xml"; profile="http://example.org/profile/2",
&lt;http://www.w3.org/ns/dx/prof/Profile&gt;; rel="type"; token="dnb"; anchor=&lt;urn:example:profile:marc21-dnb&gt;,
&lt;http://www.w3.org/ns/dx/prof/Profile&gt;; rel="type"; token="loc"; anchor=&lt;http://example.org/profiles/marc21-loc&gt;,
&lt;http://example.org/resource/a.profdnb.ttl&gt;; rel="self"; type="text/turtle"; profile="urn:example:profile:marc21-dnb",
&lt;http://example.org/resource/a.profloc.ttl&gt;; rel="alternate"; type="text/turtle"; profile="http://example.org/profiles/marc21-loc",
&lt;http://example.org/resource/a.profdnb.xml&gt;; rel="alternate"; type="application/xml"; profile="urn:example:profile:marc21-dnb",
&lt;http://example.org/resource/a.profloc.xml&gt;; rel="alternate"; type="application/xml"; profile="http://example.org/profiles/marc21-loc",
&lt;http://example.org/resource/a.html&gt;; rel="alternate"; type="text/html"
[more response headers]
</pre>
<div class="note" title="Alternate ways of conveying URI / token mappings">
<p>
There are several alternate methods that many be used to convey URI / token mappings in addition to the recommended
method described and exemplified above.
</p>
<p><strong>Option 1: registered tokens</strong></p>
<p>
Tokens are registered in a global registry and servers may use them in place of a URI, e.g.
<code>Content-profile: token1, &lt;URI2></code>
</p>
<p>
<em>Pros</em>: compact<br />
<em>Cons</em>: a global registry for profiles not manageable when many systems define profiles and such a registry
limits other capabilities of profile description by forcing generic profiles
</p>
<p><strong>Option 2: allow namespace declarations</strong></p>
<p>
As per the use of CURIEs [[CURIE]] whose specification "...defines a generic, abbreviated syntax for
expressing URIs." within JSON-LD [[JSON-LD]], a token may be indicated for use in place of a URI within
a namespacing context. In this method, key/value pairs of tokens/URIs are defined within an HTTP header
such as <code>Content-Profile</code> e.g:
</p>
<p>
<code>Content-Profile: @:http://example.org/profiles/,@w3c:http://w3.org/knownprofiles#, :token1, w3c:token2</code>
</p>
<p>
Here the first key/value pair of token/URI is key: &lt;nothing&gt;, value: http://example.org/profiles/
and the second, is key: &lt;w3c&gt;, value: http://w3.org/knownprofiles#.
</p>
<p>
<em>Pros</em>: compact, no registry requirement<br />
<em>Cons</em>: clients have more parsing to do<br />
<em>Note</em>: could easily be a JSON-LD payload<br />
(alternative syntax using parameter ns2;ns=http://example.org/profiles/)
</p>
<p><strong>Option 3: namespace header</strong></p>
<p>
In this method, a new HTTP header could be introduced to specifically convey token/URI profile key/value
pairs. If <code>Content-Profile-Namespaces</code> is to be the new HTTP header, then a <a>server</a> may
respond to a request with the following pair of headers:
</p>
<p>
<code>
Content-Profile-Namespaces: :http://example.org/profiles/,w3c:http://w3.org/knownprofiles#<br />
Content-Profile: :token1, w3c:token2
</code>
</p>
<p>
<em>Pros</em>: dedicated, unambiguous, mechanics<br />
<em>Cons</em>: clients have another header to deal with, registration of another HTTP header (and thus alternation to [[PROF-IETF]]<br />
</p>
</div>
</section>
</section>
<section id="http-getresourcebyprofile">
Expand Down Expand Up @@ -1754,7 +1740,7 @@ <h4>QSA key discovery</h4>
<a href="#eg-qsa-keydisco-altprofiles"></a> shows that for resource <code>/resource/a</code> there is a
representation of it that conforms to the specification/profile
<code>http://www.w3.org/ns/dx/conneg/altprofiles</code> which is the URI identifying the Alternate Profiles
Data Model defined in <a href="#altprofiles-model"></a>. Since the example also shows the QSA
Data Model defined in <a href="#altr"></a>. Since the example also shows the QSA
<code>view=altprofiles</code> can be used to formulate a request for this representation, dereferencing
<code>http://example.org/resource/a?view=altprofiles</code> will generate a response that also yields the
content of the request in <a href="#eg-qsa-keydisco-altprofiles"></a> but, since it is conformant to the
Expand Down Expand Up @@ -1848,9 +1834,25 @@ <h2>Acknowledgements</h2>
</section>
<section id="changes" class="informative">
<h2>Changes</h2>
<p>Changes since the <a href="https://www.w3.org/TR/2019/WD-dx-prof-conneg-20190430/">2nd Public Working Draft, 30 April 2019</a> are:</p>
<p>
A full change-log is available on <a href="">GitHub</a>.
</p>
<section id="changes-since-20190430">
<h3>Changes since the <a href="https://www.w3.org/TR/2019/WD-dx-prof-conneg-20190430/">2nd Public Working Draft, 30 April 2019</a> are</h3>
<ul>
<li>Metadata: Two authors (Car & Svensson) changed affiliation</li>
<li>Clarification on order of content negotiation (<a href="https://github.com/w3c/dxwg/issues/500">Issue 500</a>).</li>
<li>Updated definitions (part of <a href="https://github.com/w3c/dxwg/issues/575">Issue #575</a>.</li>
<li>Introduction and specification of <a href="#functional-profiles">conformance profiles</a>.</li>
<li>Major re-write of the <a href="#qsa">QSA</a> section (<a href="https://github.com/w3c/dxwg/issues/575">Issue #538</a>).</li>
<li>Clarification on the use of 303 redirects (<a href="https://github.com/w3c/dxwg/issues/1040">Issue #1040</a>.</li>
<li>Introduction and specification of a <a href="#altr">data model for linking profiles to alternate representations</a>.</li>
<li>Clarifications on the use of tokens as substitutes for profile URIs
incl. specification of the Link header attribute "token"
(Issues <a href="https://github.com/w3c/dxwg/issues/1064">#1064</a>,
<a href="https://github.com/w3c/dxwg/issues/648">#648</a>,
<a href="https://github.com/w3c/dxwg/issues/501">#501</a> and
<a href="https://github.com/w3c/dxwg/issues/290">#290</a>).</li>
<!--<li>Metadata: Two authors (Car & Svensson) changed affiliation</li>
<li><a href="#abstract"></a>: slight wording change</li>
<li><a href="#sotd">Status of this Document</a>: slight changes to listing of other docs</li>
<li><a href="#introduction"></a>: small changes to wording</li>
Expand Down Expand Up @@ -1884,7 +1886,7 @@ <h2>Changes</h2>
</ul>
</li>
<li><a href="#testsuites"></a>: text replaced with link to official repo</li>
<li><a href="#implementations">: text replaced with link to official repo</a></li>
<li><a href="#implementations"></a>: text replaced with link to official repo</li>
<li>
<a href="#appendices"></a>:
<ul>
Expand All @@ -1894,7 +1896,9 @@ <h2>Changes</h2>
</li>
<li><a href="#references"></a>: additional of several informative references</li>
</ul>
<p>Changes since the <a href="https://www.w3.org/TR/2018/WD-dx-prof-conneg-20181218/">1st Public Working Draft, 18 December 2018</a> are:</p>
</section>
<section id="changes-since-20181218">
<h3>Changes since the <a href="https://www.w3.org/TR/2018/WD-dx-prof-conneg-20181218/">1st Public Working Draft, 18 December 2018</a> are</h3>
<ul>
<li>
Added Related Work subsections for
Expand All @@ -1916,7 +1920,19 @@ <h2>Changes</h2>
(<a href="https://github.com/w3c/dxwg/issues/782">Issue 782</a>)</li>
<li>Added a not about length restrictions in URLs to the <a href="#qsa">QSA</a> section.
(<a href="https://github.com/w3c/dxwg/issues/592">Issue 592</a>)</li>
-->
</ul>
</section>
<section id="features-at-risk">
<h3>Features at Risk</h3>
<p>
The following features in this version are considered <strong>AT RISK</strong>:
</p>
<ul>
<li>Use of <a href="#http">HTTP protocol headers</a>
for information about which profiles the response's message conforms to.
</ul>
</section>
</section>
<section id="security_and_privacy" class="informative">
<h2>Security and Privacy</h2>
Expand Down
2 changes: 1 addition & 1 deletion dcat/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ var respecConfig = {
href: "http://difi.github.io/dcat-ap-no/"
},
"DCAT-AP.de": {
title: "DCAT-AP.de als formaler Metadatenstandard für offene Verwaltungsdaten bestätigt",
title: "Vokabulare und Dokumente für DCAT-AP.de",
href: "https://dcat-ap.de/def/"
},
"DDI" : {
Expand Down
4 changes: 2 additions & 2 deletions dcat/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3906,9 +3906,9 @@ <h2>Security and Privacy</h2>

<h2>Acknowledgments</h2>

<p>The editors gratefully acknowledge the contributions made to this document by <a href="https://www.w3.org/2000/09/dbwg/details?group=99375&public=1">all members of the working group</a>, especially Annette Greiner, Antoine Isaac, Dan Brickley, Ine de Visser, Jaroslav Pullmann, Linda van den Brink, Makx Dekkers, Nicholas Car, Rob Atkinson.</p>
<p>The editors gratefully acknowledge the contributions made to this document by <a href="https://www.w3.org/2000/09/dbwg/details?group=99375&public=1">all members of the working group</a>, especially Annette Greiner, Antoine Isaac, Armin Haller, Dan Brickley, Ine de Visser, Jaroslav Pullmann, Lars G. Svensson, Linda van den Brink, Makx Dekkers, Nicholas Car, Rob Atkinson, Tom Baker.</p>

<p>The editors would also like to thank comments received from Addison Phillips, Andreas Kuckartz, Armando Stellato, Bert van Nuffelen, Chris Sweeney, Chris Wood, Clemens Portele, Daniel Pop, Guillaume Duffes, Ian Davis, Jakob Voß, Jakub Klímek, James Passmore, Leigh Dodds, Luca Trani, Marco Brattinga, Melanie Barlow, Nuno Freire, Pano Maria, Peter Parslow, Renato Iannella, Ruth Duerr, Siri Jodha S. Khalsa, Stephane Fellah, Stephen Richard, Stijn Goedertier, Vladimir Alexiev, Yves Coene.</p>
<p>The editors would also like to thank comments received from Addison Phillips, Andreas Kuckartz, Armando Stellato, Bert van Nuffelen, Chris Sweeney, Chris Wood, Clemens Portele, Daniel Pop, Guillaume Duffes, Ian Davis, Jakob Voß, Jakub Klímek, James Passmore, Leigh Dodds, Luca Trani, Marco Brattinga, Melanie Barlow, Nuno Freire, Pano Maria, Peter Parslow, Renato Iannella, Ruth Duerr, Siri Jodha S. Khalsa, Stephane Fellah, Stephen Richard, Stijn Goedertier, Tom Kralidis, Vladimir Alexiev, Yves Coene.</p>

<p>The editors also gratefully acknowledge the chairs of this Working Group: Karen Coyle, Caroline Burle and Peter Winstanley &mdash; and staff contacts Phil Archer and Dave Raggett.</p>

Expand Down

0 comments on commit 27a3eb7

Please sign in to comment.