Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'gh-pages' into gh-pages-add-issue505-cneg3PWD
- Loading branch information
Showing
3 changed files
with
348 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
var respecConfig = { | ||
specStatus: "base", | ||
shortName: "dx-prof-conneg-implementation-report", | ||
edDraftURI: "https://w3c.github.io/dxwg/conneg-implementation-report", | ||
previousPublishDate: "2019-04-30", | ||
previousMaturity: "PWD", | ||
testSuiteURI: "https://github.com/w3c/prof-conneg-testing", | ||
canonicalURI: "TR", | ||
editors: [{ | ||
name: "Lars G. Svensson", | ||
company: "Invited Expert and before at Deutsche Nationalbibliothek", | ||
companyURL: "http://www.dnb.de/", | ||
orcid: "0000-0002-8714-9718", | ||
w3cid: 44603 | ||
}, | ||
{ | ||
name: "Rob Atkinson", | ||
company: "Metalinkage, Open Geospatial Consortium", | ||
companyURL: "http://www.opengeospatial.org/", | ||
orcid: "0000-0002-7878-2693" | ||
}, | ||
{ | ||
name: "Nicholas J. Car", | ||
mailto: "nicholas.car@surroundaustralia.com", | ||
company: "SURROUND Australia Pty Ltd and before at CSIRO", | ||
companyURL: "https://surroundaustralia.com", | ||
orcid: "0000-0002-8742-7730", | ||
w3cid: 70131 | ||
}], | ||
wg: "Dataset Exchange Working Group", | ||
wgURI: "https://www.w3.org/2017/dxwg/", | ||
processVersion: 2019, | ||
localBiblio: { | ||
"ARK" : { | ||
editors: [ | ||
"J. Kunze", | ||
"R. Rodgers" | ||
], | ||
href: "https://tools.ietf.org/id/draft-kunze-ark-15.txt", | ||
title: "The ARK Identifier Scheme" , | ||
date: "2008-05-22", | ||
status: "Internet-Draft" | ||
}, | ||
"PROF-GUIDANCE": { | ||
editors: [ | ||
"Rob Atkinson", | ||
"Karen Coyle", | ||
"Antoine Isaac", | ||
"Nicholas J. Car" | ||
], | ||
href: "https://w3c.github.io/dxwg/profiles/", | ||
title: "Profile Guidance", | ||
date: " 2019-04-24", | ||
status: "W3C Editor's Draft" | ||
}, | ||
"PROF-IETF": { | ||
authors: [ | ||
"L. Svensson", | ||
"R. Verborgh" | ||
], | ||
href: "https://profilenegotiation.github.io/I-D-Profile-Negotiation/I-D-Profile-Negotiation", | ||
title: "Indicating and Negotiating Profiles in HTTP", | ||
date: " 2019-07-11", | ||
status: "IETF Internet Draft" | ||
} | ||
} | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
table { | ||
width: 100%; | ||
border-collapse: collapse; | ||
} | ||
|
||
th { | ||
background-color: #f2f2f2; | ||
} | ||
|
||
th, td { | ||
border: 1px solid #ddd; | ||
} | ||
|
||
th, td { | ||
padding: 10px; | ||
text-align: left; | ||
} | ||
|
||
.codelisting { | ||
padding:0 5px 5px 5px; | ||
background-color: #eee; | ||
border-left: solid 0.5em #999; | ||
} | ||
|
||
.codelisting-title { | ||
font-family: sans-serif; | ||
font-size: medium; | ||
line-height: 1.5; | ||
text-transform: none; | ||
color: #666; | ||
margin-top: -1em; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,249 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset='utf-8'> | ||
<title>Content Negotiation by Profile Implementation Report</title> | ||
<script src="https://www.w3.org/Tools/respec/respec-w3c-common" async class="remove"></script> | ||
<script class="remove" src="config.js"></script> | ||
<style> | ||
table{width:100%;} | ||
.nr{text-align:center;} | ||
.small{font-size:.8em} | ||
</style> | ||
<!--<link rel="stylesheet" type="text/css" href="extra.css">--> | ||
</head> | ||
<body class="informative"> | ||
<section id='abstract'> | ||
<p> | ||
This document reports implementations of the Content Negotiation by Profile Candidate Recommendation [[DX-PROF-CONNEG]]. | ||
</p> | ||
</section> | ||
<section id='sotd'> | ||
</section> | ||
<section id="introduction"> | ||
<h2>Introduction</h2> | ||
<p> | ||
Content Negotiation by Profile describes how Internet clients may negotiate for content provided by servers based on data profiles to which the content conforms. | ||
</p> | ||
<section id="namespace-prefixes"> | ||
<h3>Namespace prefixes</h3> | ||
<p> | ||
In this document we will employ the following namespace prefixes: | ||
</p> | ||
<dl> | ||
<dt><code>cnpr</code></dt> | ||
<dd> | ||
<code>http://www.w3.org/ns/dx/conneg/profile/</code><br /> | ||
Instances of Functional Profiles of Content Negotiation by Profile | ||
</dd> | ||
<dt><code>earl</code></dt> | ||
<dd> | ||
<code><a href="http://www.w3.org/ns/earl#">http://www.w3.org/ns/earl#</a></code><br /> | ||
Evaluation and Report Language | ||
</dd> | ||
</dl> | ||
</section> | ||
<section id="methodology"> | ||
<h3>Methodology</h3> | ||
<p>We followed the steps described below to collect evidence for the revisions proposed in [[DX-PROF-CONNEG]]:</p> | ||
<ol> | ||
<li> | ||
Identified the Functional Profiles of [[DX-PROF-CONNEG]] that describe how to implement the specification in specific environments | ||
<ul> | ||
<li>As originally published, the specification has four Functional Profiles however new ones created by users can be added at any time</li> | ||
<li>New Functional Profiles will be listed here with implementations as they become known</li> | ||
</ul> | ||
</li> | ||
<li> | ||
Listed the individual normative instructions per Functional Profile, per function or data model | ||
</li> | ||
<li> | ||
Identified implementations | ||
</li> | ||
<li> | ||
Tabulated the implementations' claims per Functional Profile, per function or data model | ||
</li> | ||
<li> | ||
Tabulated the implementations' claims per individual normative instructions implemented | ||
</li> | ||
</ol> | ||
<p> | ||
We verified the claims made by the various implementations using a test suite which is detailed in | ||
</p> | ||
</section> | ||
<!-- | ||
<section id="exit-criteria"> | ||
<h3>Meeting the exit criteria</h3> | ||
<p>As described in the <abbr title="Dataset Exchange Working Group">DXWG</abbr> <a href="https://www.w3.org/2017/dxwg/charter">charter</a>, to advance to Proposed Recommendation, evidence will be adduced in order to demonstrate that each of the changes made to the original DCAT Recommendation [[VOCAB-DCAT]] has been published and consumed independently in catalogs and related systems at least once, although a higher number is expected for the majority of terms.</p> | ||
<p>Evidence of implementation was gathered from existing data catalogs, data services, and datasets, which already implement the proposed changes, as well as from existing application profiles of [[VOCAB-DCAT]].</p> | ||
</section> | ||
--> | ||
</section> | ||
<section id="testsuite"> | ||
<h3>Test Suite</h3> | ||
<p> | ||
To verify the claims of implementations, test suite software was created. The software used the | ||
<a href="https://jmeter.apache.org/">Apache jMeter</a> application to run a series of external tests against | ||
implementations, testing for each aspect of the normative instructions per functional profile. | ||
</p> | ||
<p> | ||
The code for the test suite is stored in the following code repository: | ||
</p> | ||
<ul> | ||
<li><a href="https://github.com/w3c/prof-conneg-testing">https://github.com/w3c/prof-conneg-testing</a></li> | ||
</ul> | ||
<p> | ||
That repository contains notes on how to apply the test suite. | ||
</p> | ||
<h4>Test Suite Results</h4> | ||
<p> | ||
The results from applying this test suite to implementations are given in the tables in <a href="#evidence"></a>. | ||
</p> | ||
</section> | ||
<section id="evidence"> | ||
<h2>Implementation Evidence</h2> | ||
<section id="functionalprofiles"> | ||
<h3>Functional Profiles Identified</h3> | ||
<p>The namespace prefixes for the functional profiles used in <a href="#table-functionalprofiles">Table 1</a> below, are: </p> | ||
<ul> | ||
<li><code>cnpr</code> → <code>http://www.w3.org/ns/dx/conneg/profile/</code> | ||
</code></li> | ||
</ul> | ||
<table id="table-functionalprofiles" class="simple"> | ||
<caption><strong>Table 1:</strong> Known Functional Profiles of Content Negotiation by Profile Identified</caption> | ||
<thead> | ||
<tr> | ||
<th>URI</th> | ||
<th>Name</th> | ||
<th>Description</th> | ||
</tr> | ||
</thead> | ||
<tbody> | ||
<tr> | ||
<td><code><a href="http://www.w3.org/ns/dx/conneg/profile/http">cnpr:http</a></code></td> | ||
<td>HTTP Headers Functional Profile</td> | ||
<td>For systems operating with the HTTP [[RFC7230]] protocols</td> | ||
</tr> | ||
<tr> | ||
<td><code><span style="white-space: nowrap"><a href="http://www.w3.org/ns/dx/conneg/profile/qsa">cnpr:qsa</a></span></code></td> | ||
<td>URL QSA Functional Profile</td> | ||
<td>For systems negotiating for content with the use of URL Query String Arguments (cf. [[RFC3986]] for a definition of Query String Arguments in the context of URIs) and using the <code>_profile</code> argument key and <code>_profile=all</code> key/value pair</td> | ||
</tr> | ||
<tr> | ||
<td><code><span style="white-space: nowrap"><a href="http://www.w3.org/ns/dx/conneg/profile/qsa-alt">cnpr:qsa-alt</a></span></code></td> | ||
<td>URL QSA Alternate Keywords Functional Profile</td> | ||
<td>For systems negotiating for content with the use the use of URL Query String Arguments (cf. [[RFC3986]] for a definition of Query String Arguments in the context of URIs) and using key values of their choice</td> | ||
</tr> | ||
<tr> | ||
<td><code><span style="white-space: nowrap"><a href="http://www.w3.org/ns/dx/conneg/profile/rrd">cnpr:rrd</a></span></code></td> | ||
<td>Resource Representation Description</td> | ||
<td>For systems wanting to indicate that they are able to indicate which profile(s) responses returned conform to</td> | ||
</tr> | ||
</tbody> | ||
</table> | ||
</section> | ||
<section id="instructions-per-fp"> | ||
<h3>Normative Instructions per Functional Profile</h3> | ||
</section> | ||
<section id="implementations"> | ||
<h3>Implementations</h3> | ||
</section> | ||
<table id="table-implementations" class="simple"> | ||
<caption><strong>Table 3:</strong> Known implementations</caption> | ||
<thead> | ||
<tr> | ||
<th>ID</th> | ||
<th>Name</th> | ||
<th>Description</th> | ||
<th>Implementer(s)</th> | ||
<th>Location online</th> | ||
</tr> | ||
</thead> | ||
<tbody> | ||
<tr> | ||
<td><strong>I1</strong></td> | ||
<td>pyLDAPI</td> | ||
<td>A Python module that adds Linked Data API functionality to a Python Flask (a web framework) installation.</td> | ||
<td><a href="https://orcid.org/0000-0002-8742-7730">Nicholas J. Car</a></td> | ||
<td> | ||
<ul> | ||
<li><a href="https://github.com/rdflib/pyLDAPI">Source code on GitHub</a></li> | ||
<li><a href="https://pypi.org/project/pyldapi/">Python Package Index (PyPI) module listing</a></li> | ||
<li> | ||
Demonstrations: | ||
<ul> | ||
<li> | ||
<a href="https://conneg.info/mediatypes-service/">Media Type Service</a>,<br /> | ||
see <a href="https://conneg.info/mediatypes-service/connegp">this demonstration's write-up</a> | ||
</li> | ||
</ul> | ||
</ul> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td><strong>I2</strong></td> | ||
<td>PHP ConnegP</td> | ||
<td>A library of PHP functions for HTTP Content Negotiation by Profile</td> | ||
<td><a href="https://orcid.org/0000-0002-8742-7730">Nicholas J. Car</a></td> | ||
<td> | ||
<ul> | ||
<li><a href="https://github.com/nicholascar/php-connegp">Source code on GitHub</a></li> | ||
<li><a href="https://packagist.org/packages/nicholascar/connegp">PHP Composer packagist module listing</a></li> | ||
<li> | ||
Demonstrations: | ||
<ul> | ||
<li> | ||
<a href="http://www.linked.data.gov.au/org/">Australian Government Linked Data Working Group's Linked Data Registers</a>,<br /> | ||
see <a href="http://www.linked.data.gov.au/org/connegp.html">this demonstration's write-up</a> | ||
</li> | ||
</ul> | ||
</li> | ||
</ul> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td><strong>I3</strong></td> | ||
<td>OGC Definitions Server</td> | ||
<td></td> | ||
<td><a href="https://orcid.org/0000-0002-7878-2693">Rob Atkinson</a></td> | ||
<td></td> | ||
<td><a href="https://docs.google.com/spreadsheets/d/10CLXudrMow0QGfo1X_Dzg3SNwIPuXBvMnOORwerxKKI/edit#gid=0">write-up</a></td> | ||
</tr> | ||
<tr> | ||
<td><strong>I4</strong></td> | ||
<td>CKAN DCAT Plugin</td> | ||
<td>A existing extension module for the <a href="https://ckan.org/">CKAN</a> – the open source data portal – that already had a non-standard way of conducting Content Negotiation by Profile that has now been enhanced to meet the ConnegP specification</td> | ||
<td> | ||
<ul> | ||
<li>Original ckan-dcat plugin authors (original plugin code)</li> | ||
<li><a href="https://orcid.org/0000-0002-8742-7730">Nicholas J. Car</a> (extension of plugin to meet ConnegP specifications)</li> | ||
</ul> | ||
</td> | ||
<td> | ||
<ul> | ||
<li><a href="https://github.com/ckan/ckanext-dcat">Source code on GitHub</a></li> | ||
</ul> | ||
</td> | ||
</tr> | ||
</tbody> | ||
</table> | ||
<section id="claims-per-fp"> | ||
<h3>Implementation claims per Functional Profile</h3> | ||
</section> | ||
<section id="claims-per-instruction"> | ||
<h3>Implementation claims per Normative Instruction</h3> | ||
</section> | ||
</section> | ||
<section id="analysis"> | ||
<h3>General analysis</h3> | ||
</section> | ||
<section id="acknowledgements"> | ||
<h2>Acknowledgements</h2> | ||
<p> | ||
The editors gratefully acknowledge the contributions made to gathering evidence for [[DX-PROF-CONNEG]] and reviewing | ||
this report 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. | ||
</p> | ||
</section> | ||
</body> | ||
</html> |