Skip to content

Commit

Permalink
Merge branch 'gh-pages' into gh-pages-add-issue505-cneg3PWD
Browse files Browse the repository at this point in the history
  • Loading branch information
nicholascar committed Nov 19, 2019
2 parents beb092e + 12d7ea9 commit 2a19b26
Show file tree
Hide file tree
Showing 3 changed files with 348 additions and 0 deletions.
67 changes: 67 additions & 0 deletions connegp-implementation-report/config.js
@@ -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"
}
}
};
32 changes: 32 additions & 0 deletions connegp-implementation-report/extra.css
@@ -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;
}
249 changes: 249 additions & 0 deletions connegp-implementation-report/index.html
@@ -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> &ndash; the open source data portal &ndash; 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&amp;public=1">all members of the
working group</a>, especially Annette Greiner.
</p>
</section>
</body>
</html>

0 comments on commit 2a19b26

Please sign in to comment.