From f745a1415caacb2d952143680cd12a57644b4fd4 Mon Sep 17 00:00:00 2001
From: Nicholas Car
+ The editors acknowledge the chairs of this Working Group: Karen Coyle & Peter Winstanley and the staff
+ contact Dave Raggett.
+
+ The editors also gratefully acknowledge the contributions made to this document by all members of the Dataset
+ Exchange Working Group, specially the contributions received from Karen Coyle, Antoine Isaac, Andrea Perego and
+ Tom Baker.
+
+ The editors would also like to thank non-members of this working group for their comments, changes and ideas from
+ which have been incorporated into this document. In particular: Paul Walk, Leslie Sikos, Stephen Richard,
+ Kam Hay Fung, Heidi Vanparys and Irene Polikoff.
+ Changes
Appendices
+ Acknowledgements
+ Introduction
Section 8.
NB Profiles and specifications embody their own notions of conformance (of data), which are out of scope for this document.
+
+ This specification includes several profiles of it that may be conformed to by systems claiming to implement a form of this specification.
+ These profiles, given in the table below, are identified by their URIs and conformance to them by Internet resources should be indicated as per this document (use of
+ Content-Profile
HTTP header).
+
+ The namespace prefix for these profiles used in is: +
+pp
→ http://www.w3.org/ns/dx/prof/profile/
+ The namespace used for the above profiles, http://www.w3.org/ns/dx/prof/profile/
, is part of the Profiles Vocabulary [[PROF]]'s namespace and is used for
+ these instances of PROF's prof:Profile
class just as instances of PROF's prof:Role
class use http://www.w3.org/ns/dx/prof/role/
+ (see [[PROF]]).
+
+ If a system wishes to show conformance to this specification, conformance to at least one of the profiles listed in MUST be indicated. +
+/resource/a
's representation but something else as /resource/a
+ may conform to some (data) profile but that data profile has nothing to do with CONNEG. It's the systems mechanics that are conformant here, unless we have a required
+ resource that all implementations of this must implement that can describe the system function that conforms to the above.
+ pp
→ http://www.w3.org/ns/dx/prof/profile/
pc
→ http://www.w3.org/ns/dx/conneg/profile/
pp:abstract |
+ cp:abstract |
Abstract Model | For conformance with the model presented in . | Not to be used if a resource also conforms to a more concrete profile (all of the others) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pp:http |
+ cp:http |
HTTP Realization | For conformance with the realization presented in . | To be used if a resource conforms to the HTTP Realization | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pp:qsa-strict |
- QSA Realization (strict) | +cp:qsa |
+ QSA Realization | For conformance with the realization presented in . |
- To be used if a resource conforms to the strict form of the QSA Realization where the Query String Arguments _profile and _mediatype
- are used as per the recommendations in .
+ To be used if a resource conforms to the QSA Realization using the Query String Arguments _profile and _mediatype as per the recommendations
+ in .
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pp:qsa-loose |
- QSA Realization (loose) | +cp:qsa-alt |
+ QSA Realization (alternate keywords) | For conformance with the realization presented in . |
- To be used if a resource conforms to the loose form of the QSA Realization where the Query String Arguments may differ from _profile and
- _mediatype . Should not be used if the conforming implementation adheres to the QSA (strict) profile.
+ To be used if a resource conforms to the QSA Realization but uses alternate keywords for the Query String Arguments _profile and
+ _mediatype , as allowed by the recommendations in .
+ |
+ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cp:rrd |
+ Resource Representation Description | +For conformance with . | ++ To be used if a resource representation is able to indicate which profile(s) it conforms to, in its appropriate realization, as per the abstract specification in + . | Not to be used if a resource also conforms to a more concrete profile (all of the others) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cp:http |
+ cp:http |
HTTP Realization | For conformance with the realization presented in . | To be used if a resource conforms to the HTTP Realization | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cp:qsa |
+ cp:qsa |
QSA Realization | For conformance with the realization presented in . |
@@ -131,8 +131,8 @@ Profiles for Conformance |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cp:qsa-alt |
- QSA Realization (alternate keywords) | +cp:qsa-alt |
+ QSA Alternate Keywords Realization | For conformance with the realization presented in . |
To be used if a resource conforms to the QSA Realization but uses alternate keywords for the Query String Arguments _profile and
@@ -155,6 +155,9 @@ Profiles for Conformanceof it. ++ Non-normative, formal, descriptions of the profiles in are given in . +
The namespace used for the above profiles, Security and PrivacyAppendices+Profiles of this specification++ This specification contains a number of distinct profiles that are identified and described in words in . This appendix presents descriptions of + these profiles, and the relations between them, according to the Profiles Vocabulary [[PROF]]. + ++@prefix dct: <http://purl.org/dc/terms/> . +@prefix prof: <http://www.w3.org/ns/dx/prof/> . +@prefix role: <http://www.w3.org/ns/dx/prof/role/> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . + +<https://www.w3.org/TR/dx-prof-conneg/> a dct:Standard ; + rdfs:label "Content Negotiation by Profile" . + +<http://www.w3.org/ns/dx/conneg/profile/abstract> a prof:Profile ; + prof:isProfileOf <https://www.w3.org/TR/dx-prof-conneg/> ; + rdfs:label "Abstract Model profile of Content Negotiation by Profile" . + +<http://www.w3.org/ns/dx/conneg/profile/http> a prof:Profile ; + prof:isProfileOf <https://www.w3.org/TR/dx-prof-conneg/> ; + rdfs:label "HTTP Realization profile of Content Negotiation by Profile" . + +<http://www.w3.org/ns/dx/conneg/profile/qsa> a prof:Profile ; + prof:isProfileOf <http://www.w3.org/ns/dx/conneg/profile/abstract> ; + rdfs:label "QSA Realization profile of Content Negotiation by Profile" . + +<http://www.w3.org/ns/dx/conneg/profile/qsa-alt> a prof:Profile ; + prof:isProfileOf <http://www.w3.org/ns/dx/conneg/profile/abstract> ; + rdfs:label "QSA Alternate Keywords Realization profile of Content Negotiation by Profile" . + +<http://www.w3.org/ns/dx/conneg/profile/rrd> a prof:Profile ; + prof:isProfileOf <https://www.w3.org/TR/dx-prof-conneg/> ; + rdfs:label "Resource Representation Description profile of Content Negotiation by Profile" . ++
+ The code listing describes this Content Negotiation by Profile specification as a
+ Demonstrating conformance to profiles++ With the identification of profiles of this specification given in and their description of them using the Profiles Vocabulary [[PROF]] in this + appendix, it is possible for XXX to show conformance to one of more of these profiles as per + ++@prefix dct: <http://purl.org/dc/terms/> . + +<XXXX> dct:conformsTo <http://www.w3.org/ns/dx/conneg/profile/abstract> . ++ Requirements
diff --git a/conneg-by-ap/profile-hierarchy.svg b/conneg-by-ap/profile-hierarchy.svg
new file mode 100644
index 000000000..eabe9de14
--- /dev/null
+++ b/conneg-by-ap/profile-hierarchy.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
From 34605e5b6ed7d32fa52323e832f62b1423ef6378 Mon Sep 17 00:00:00 2001
From: Nicholas Car
Property: start dateDefinition: | The start of the period. | Domain: | dct:PeriodOfTime Range: | rdfs:Literal encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]]Range: | rdfs:Literal encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]] (xsd:gYear, xsg:gYearMonth, xsd:date, or xsd:dateTime). |
rdfs:Literal
- encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]](xsd:gYear, xsg:gYearMonth, xsd:date, or xsd:dateTime).
+ encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]](xsd:gYear, xsd:gYearMonth, xsd:date, or xsd:dateTime).
rdfs:Literal
- encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]]. (xsd:gYear, xsg:gYearMonth, xsd:date, or xsd:dateTime)
+ encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]]. (xsd:gYear, xsd:gYearMonth, xsd:date, or xsd:dateTime)
rdfs:Literal
- encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]] (xsd:gYear, xsg:gYearMonth, xsd:date, or xsd:dateTime).
+ encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]] (xsd:gYear, xsd:gYearMonth, xsd:date, or xsd:dateTime).
rdfs:Literal
- encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]] (xsd:gYear, xsg:gYearMonth, xsd:date, or xsd:dateTime).
+ encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]] (xsd:gYear, xsd:gYearMonth, xsd:date, or xsd:dateTime).
rdfs:Literal
- encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]] (xsd:gYear, xsg:gYearMonth, xsd:date, or xsd:dateTime).
+ encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]] (xsd:gYear, xsd:gYearMonth, xsd:date, or xsd:dateTime).
rdfs:Literal
- encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]] (xsd:gYear, xsg:gYearMonth, xsd:date, or xsd:dateTime).dct:PeriodOfTime
rdfs:Literal
encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]] (xsd:gYear, xsg:gYearMonth, xsd:date, or xsd:dateTime).rdfs:Literal
encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]] (xsd:gYear, xsd:gYearMonth, xsd:date, or xsd:dateTime).rdfs:Literal
- encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]](xsd:gYear, xsd:gYearMonth, xsd:date, or xsd:dateTime).
+ encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]] (xsd:gYear
, xsd:gYearMonth
, xsd:date
, or xsd:dateTime
).
rdfs:Literal
- encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]]. (xsd:gYear, xsd:gYearMonth, xsd:date, or xsd:dateTime)
+ encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]] (xsd:gYear
, xsd:gYearMonth
, xsd:date
, or xsd:dateTime
).
rdfs:Literal
- encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]] (xsd:gYear, xsd:gYearMonth, xsd:date, or xsd:dateTime).
+ encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]] (xsd:gYear
, xsd:gYearMonth
, xsd:date
, or xsd:dateTime
).
rdfs:Literal
- encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]] (xsd:gYear, xsd:gYearMonth, xsd:date, or xsd:dateTime).
+ encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]] (xsd:gYear
, xsd:gYearMonth
, xsd:date
, or xsd:dateTime
).
rdfs:Literal
- encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]] (xsd:gYear, xsd:gYearMonth, xsd:date, or xsd:dateTime).
+ encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]] (xsd:gYear
, xsd:gYearMonth
, xsd:date
, or xsd:dateTime
).
rdfs:Literal
- encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]] (xsd:gYear, xsd:gYearMonth, xsd:date, or xsd:dateTime).xsd:gYear
, xsd:gYearMonth
, xsd:date
, or xsd:dateTime
).
dct:PeriodOfTime
rdfs:Literal
encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]] (xsd:gYear, xsd:gYearMonth, xsd:date, or xsd:dateTime).rdfs:Literal
encoded using the relevant ISO 8601 Date and Time compliant string [[?DATETIME]] and typed using the appropriate XML Schema datatype [[!XMLSCHEMA11-2]] (xsd:gYear
, xsd:gYearMonth
, xsd:date
, or xsd:dateTime
).This definition includes what are sometimes called "application profiles", "metadata application - profiles", or "metadata profiles". In this document, these, and "data profiles", are just referred to as just "profiles". + profiles", or "metadata profiles". In this document, these, and "data profiles", are all referred to as just "profiles".
Source: deliberations of the DXWG.
From 082870f2273347fb56022381a37562c2802f2273 Mon Sep 17 00:00:00 2001 From: Nicholas Car/a/resource
's representation but something else as /a/resource
+ Another sentence/paragraph is needed here to indicate what shows conformance. It's not /a/resource
's representation but something else as /a/resource
may conform to some (data) profile but that data profile has nothing to do with CONNEG. It's the systems mechanics that are conformant here, unless we have a required
resource that all implementations of this must implement that can describe the system function that conforms to the above.
When online information about a resource adheres to one or more profiles, methods described here allow clients to list those profiles and request content according to one or more of them in order of preference. - For example, a catalog may offer a dataset description using alternative representations using [[VOID]], - [[VOCAB-DATA-CUBE]] and [[VOCAB-DCAT]]. Furthermore, the [[VOCAB-DCAT]] representation might conform to the - [[DCAT-AP]] profile, the [[GeoDCAT-AP]] profile and also an organisation specific profile "MyOrgDCATProfile" - which constrains various elements. These profiles may be related - for example "MyOrgDCATProfile" may be a - further profile of [[GeoDCAT-AP]]. A request for the information about this dataset description resource may - ask for the list of profiles available, or it may ask specifically for a response adhering to, for example - [[GeoDCAT-AP]]. When no profile or an unsupported profile is requested, a server returns default content, + For example, a catalog may offer a dataset description using alternative representations using [[VOID]], + [[VOCAB-DATA-CUBE]] and [[VOCAB-DCAT]]. Furthermore, the [[VOCAB-DCAT]] representation might conform to the + [[DCAT-AP]] profile, the [[GeoDCAT-AP]] profile and also an organisation specific profile "MyOrgDCATProfile" + which constrains various elements. These profiles may be related - for example "MyOrgDCATProfile" may be a + further profile of [[GeoDCAT-AP]]. A request for the information about this dataset description resource may + ask for the list of profiles available, or it may ask specifically for a response adhering to, for example + [[GeoDCAT-AP]]. When no profile or an unsupported profile is requested, a server returns default content, that is, content conforming to the default profile supported by the server.
@@ -71,10 +71,12 @@
Describing the parts of profiles and their relation to other profiles is the function of the Profiles Vocabulary [[PROF]], also produced by the DXWG. @@ -93,22 +95,26 @@
- A specification, with human- and/or machine-processable representations, that defines the content and structure of data used in a given context. + A basis for comparison; a reference point against which other things can be evaluated. +
+
+ Source: DCMI Metadata Terms [[DCTERMS]]'s definition for a Standard
.
- This document refers to both "data specifications" and also the more general "specifications". When the latter general case is referenced, its definition is taken - to be that of the DCMI Metadata Terms [[DCTERMS]]'s definition for a Standard, which is "A basis for comparison; a reference point against which other things - can be evaluated." + A specification, with human- and/or machine-processable representations, that defines the content and structure of data used in a given context.
Source: deliberations of the DXWG.
- A data specification that constrains, extends, combines, or provides guidance or explanation about the usage of other data specifications. + A data specification that constrains, extends, combines, or provides guidance or explanation about the usage of other data specifications.
This definition includes what are sometimes called "application profiles", "metadata application @@ -118,11 +124,11 @@
ARK (Archival Resource Key) [[ARK]] is an identifier scheme for the persistent identification of information objects. - ARK identifiers can contain an optional qualifier + ARK identifiers can contain an optional qualifier "that extends the base ARK in order to create a kind of service entry point into the object named by the NAA [sc. Name Assigning Authority]." Through a qualifier, any NMA (Name Mapping Authority, a service provider offering ARK resolution) @@ -338,7 +344,7 @@
[[CSW]] is the OGC standard used world-wide by the geospatial community to implement a machine-actionable interface
- to catalog services, providing access to metadata about datasets, geospatial services ([[WMS]], [[WFS]], etc.),
+ to catalog services, providing access to metadata about datasets, geospatial services ([[WMS]], [[WFS]], etc.),
as well as other types of resources. Besides supporting common functions such as free-text and faceted search, CSW supports the retrieval of metadata according to a given metadata schema and format, indicated respectively by using outputSchema
and outputFormat
query parameters. Commonly supported metadata schemas are [[DC11]], and [[ISO-19115]], and the default format is XML. A given CSW instance's supported metadata schemas and formats are described in the service "capabilities" -- a machine-readable description of the service interface, that is returned via a GetCapabilities
request.
@@ -366,9 +372,9 @@
An Internet resource may have many aspects over which a client/server pair of - agents might negotiate for content. These aspects are to be treated independently so content negotiation for a + agents might negotiate for content. These aspects are to be treated independently so content negotiation for a resource involving negotiation by profile and any other aspects of a resource will not affect - each other. For this reason, other than a directive to maintain independence, no further discussion of + each other. For this reason, other than a directive to maintain independence, no further discussion of negotiation by profile and the relations to other forms of negotiation are given. Specific realizations might require special handling of profile and other forms of negotiation.
@@ -410,13 +416,13 @@A server adhering to this specification MUST respond to each request with the following - responses. + responses.
A client wishes to know for which profiles a server is able to deliver conformant - representations of a resource. The content of the list can be known either before a request for a + representations of a resource. The content of the list can be known either before a request for a particular resource representation is made or it may only be known after an initial request for a resource representation is made.
@@ -715,21 +721,21 @@- While the HTTP-header approach to profiles enables fully automated retrieval of data conforming - to a desired profile, it is also advisable to enable humans to select data by profile without - requiring direct manipulation of request header content. This can be accomplished by existing - web development methods where an API supports a graphical interface. The user can be presented - with a list of available profiles and given the choice of which to retrieve for the dataset of - interest. They can even be asked to indicate a ranked choice of possible profiles, which could - then be used to retrieve multiple resources' data matching a query. + While the HTTP-header approach to profiles enables fully automated retrieval of data conforming + to a desired profile, it is also advisable to enable humans to select data by profile without + requiring direct manipulation of request header content. This can be accomplished by existing + web development methods where an API supports a graphical interface. The user can be presented + with a list of available profiles and given the choice of which to retrieve for the dataset of + interest. They can even be asked to indicate a ranked choice of possible profiles, which could + then be used to retrieve multiple resources' data matching a query.
- As one example of how an API for such a service can be implemented, a Query String Argument (QSA) - realization of the Abstract Model is presented here. Unlike the HTTP-header - realization, which is also the subject of an independent IETF document [[PROF-IETF]], this realization - is fully specified here but it is not normative. This realization does not preclude other URL schemes, - or even other QSA schemes, for profile negotiation, the general requirement being that any scheme - implements the functions of the Abstract Model. Whatever specific scheme is used, it should be fully + As one example of how an API for such a service can be implemented, a Query String Argument (QSA) + realization of the Abstract Model is presented here. Unlike the HTTP-header + realization, which is also the subject of an independent IETF document [[PROF-IETF]], this realization + is fully specified here but it is not normative. This realization does not preclude other URL schemes, + or even other QSA schemes, for profile negotiation, the general requirement being that any scheme + implements the functions of the Abstract Model. Whatever specific scheme is used, it should be fully documented and discoverable.
@@ -855,7 +861,7 @@
aaa,bbb,ccc
will receive a resource that meets the requirements of profile
+ a client requesting profiles as aaa,bbb,ccc
will receive a resource that meets the requirements of profile
aaa
if it is available, else one that meets profile bbb
if that is available, and so on.
To illustrate the use of prof:isInheritedFrom
, the following example is given in both pictorial
@@ -925,7 +925,7 @@
- The editors acknowledge the chairs of this Working Group: Karen Coyle & Peter Winstanley and the staff - contact Dave Raggett. -
-- The editors also gratefully acknowledge the contributions made to this document by all members of the Dataset - Exchange Working Group, specially the contributions received from Karen Coyle, Antoine Isaac, Andrea Perego and - Tom Baker. + The editors gratefully acknowledge the contributions made to this document by + all members of the working group, + especially Antoine Isaac, Tom Baker, Simon Cox, Alejandra Gonzalez-Beltran, Andrea Perego.
The editors would also like to thank non-members of this working group for their comments, changes and ideas from which have been incorporated into this document. In particular: Paul Walk, Leslie Sikos, Stephen Richard, Kam Hay Fung, Heidi Vanparys and Irene Polikoff.
++ Finally, the editors also gratefully acknowledge the chairs of this Working Group: Karen Coyle and Peter + Winstanley, former chair Caroline Burle and W3C staff contacts Phil Archer and Dave Raggett. +
- + The PROF vocabulary, when used with likely extensions such as [[DCTERMS]], supports the attribution of data and + metadata to various participants such as resource creators, + publishers and other parties or agents via qualified + relations and, as such, may define terms that may be related to personal information. In addition, it may also + be used with extensions that support the association of rights and + licenses with modelled Profiles and Resource Descriptors. + These rights and licenses could potentially include or reference sensitive information such as user and asset + identifiers as described in [[ODRL-VOCAB]]. + Implementations that produce, maintain, publish or consume such vocabulary terms must take steps to ensure security + and privacy considerations are addressed at the application level. +
++ For a more complete view of those issues, cf. the + + Security and Privacy Questionnaire for this specification.
-- Non-normative, formal, descriptions of the profiles in are given in . -
The namespace used for the above profiles, http://www.w3.org/ns/dx/conneg/profile/
, is part of the Dataset Exchange Working Group's reserved W3C namespace,
http://www.w3.org/ns/dx/
, which is provisioned for all namespace requirements to do with issues addressed by that Working Group. The /profile/
path segment
@@ -358,7 +355,7 @@
ARK (Archival Resource Key) [[ARK]] is an identifier scheme for the persistent identification of information objects. - ARK identifiers can contain an optional qualifier + ARK identifiers can contain an optional qualifier "that extends the base ARK in order to create a kind of service entry point into the object named by the NAA [sc. Name Assigning Authority]." Through a qualifier, any NMA (Name Mapping Authority, a service provider offering ARK resolution) @@ -424,7 +421,7 @@
[[CSW]] is the OGC standard used world-wide by the geospatial community to implement a machine-actionable interface
- to catalog services, providing access to metadata about datasets, geospatial services ([[WMS]], [[WFS]], etc.),
+ to catalog services, providing access to metadata about datasets, geospatial services ([[WMS]], [[WFS]], etc.),
as well as other types of resources. Besides supporting common functions such as free-text and faceted search, CSW supports the retrieval of metadata according to a given metadata schema and format, indicated respectively by using outputSchema
and outputFormat
query parameters. Commonly supported metadata schemas are [[DC11]], and [[ISO-19115]], and the default format is XML. A given CSW instance's supported metadata schemas and formats are described in the service "capabilities" -- a machine-readable description of the service interface, that is returned via a GetCapabilities
request.
@@ -452,9 +449,9 @@
An Internet resource may have many aspects over which a client/server pair of - agents might negotiate for content. These aspects are to be treated independently so content negotiation for a + agents might negotiate for content. These aspects are to be treated independently so content negotiation for a resource involving negotiation by profile and any other aspects of a resource will not affect - each other. For this reason, other than a directive to maintain independence, no further discussion of + each other. For this reason, other than a directive to maintain independence, no further discussion of negotiation by profile and the relations to other forms of negotiation are given. Specific realizations might require special handling of profile and other forms of negotiation.
@@ -496,13 +493,13 @@A server adhering to this specification MUST respond to each request with the following - responses. + responses.
A client wishes to know for which profiles a server is able to deliver conformant - representations of a resource. The content of the list can be known either before a request for a + representations of a resource. The content of the list can be known either before a request for a particular resource representation is made or it may only be known after an initial request for a resource representation is made.
@@ -801,21 +798,21 @@- While the HTTP-header approach to profiles enables fully automated retrieval of data conforming - to a desired profile, it is also advisable to enable humans to select data by profile without - requiring direct manipulation of request header content. This can be accomplished by existing - web development methods where an API supports a graphical interface. The user can be presented - with a list of available profiles and given the choice of which to retrieve for the dataset of - interest. They can even be asked to indicate a ranked choice of possible profiles, which could - then be used to retrieve multiple resources' data matching a query. + While the HTTP-header approach to profiles enables fully automated retrieval of data conforming + to a desired profile, it is also advisable to enable humans to select data by profile without + requiring direct manipulation of request header content. This can be accomplished by existing + web development methods where an API supports a graphical interface. The user can be presented + with a list of available profiles and given the choice of which to retrieve for the dataset of + interest. They can even be asked to indicate a ranked choice of possible profiles, which could + then be used to retrieve multiple resources' data matching a query.
- As one example of how an API for such a service can be implemented, a Query String Argument (QSA) - realization of the Abstract Model is presented here. Unlike the HTTP-header - realization, which is also the subject of an independent IETF document [[PROF-IETF]], this realization - is fully specified here but it is not normative. This realization does not preclude other URL schemes, - or even other QSA schemes, for profile negotiation, the general requirement being that any scheme - implements the functions of the Abstract Model. Whatever specific scheme is used, it should be fully + As one example of how an API for such a service can be implemented, a Query String Argument (QSA) + realization of the Abstract Model is presented here. Unlike the HTTP-header + realization, which is also the subject of an independent IETF document [[PROF-IETF]], this realization + is fully specified here but it is not normative. This realization does not preclude other URL schemes, + or even other QSA schemes, for profile negotiation, the general requirement being that any scheme + implements the functions of the Abstract Model. Whatever specific scheme is used, it should be fully documented and discoverable.
@@ -941,7 +938,7 @@
aaa,bbb,ccc
will receive a resource that meets the requirements of profile
+ a client requesting profiles as aaa,bbb,ccc
will receive a resource that meets the requirements of profile
aaa
if it is available, else one that meets profile bbb
if that is available, and so on.
- This specification contains a number of distinct profiles that are identified and described in words in . This appendix presents descriptions of - these profiles, and the relations between them, according to the Profiles Vocabulary [[PROF]]. -
--@prefix dct: <http://purl.org/dc/terms/> . -@prefix prof: <http://www.w3.org/ns/dx/prof/> . -@prefix role: <http://www.w3.org/ns/dx/prof/role/> . -@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . -@prefix cnpr: <http://www.w3.org/ns/dx/conneg/profile/> . - -<https://www.w3.org/TR/dx-prof-conneg/> a dct:Standard ; - rdfs:label "Content Negotiation by Profile" ; - rdfs:comment "The W3C Recommendation (a standard) for Content Negotiation by Profile" . - -cnpr:abstract a prof:Profile ; - prof:isProfileOf <https://www.w3.org/TR/dx-prof-conneg/> ; - rdfs:label "Abstract Model Profile" ; - rdfs:comment "Abstract Model profile of Content Negotiation by Profile" . - -cnpr:http a prof:Profile ; - prof:isProfileOf <https://www.w3.org/TR/dx-prof-conneg/> ; - rdfs:label "HTTP Realization Profile" ; - rdfs:comment "HTTP Realization profile of Content Negotiation by Profile" . - -cnpr:qsa a prof:Profile ; - prof:isProfileOf <http://www.w3.org/ns/dx/conneg/profile/abstract> ; - rdfs:label "QSA Realization Profile" ; - rdfs:comment "QSA Realization profile of Content Negotiation by Profile" . - -cnpr:qsa-alt a prof:Profile ; - prof:isProfileOf <http://www.w3.org/ns/dx/conneg/profile/abstract> ; - rdfs:label "QSA Alternate Keywords Realization Profile" ; - rdfs:comment "Query String Argument Alternate Keywords Realization profile of Content Negotiation by Profile" . - -cnpr:rrd a prof:Profile ; - prof:isProfileOf <https://www.w3.org/TR/dx-prof-conneg/> ; - rdfs:label "Resource Representation Description Profile" ; - rdfs:comment "Resource Representation Description profile of Content Negotiation by Profile" . --
- The code listing describes this Content Negotiation by Profile specification as a
- dct:Standard
and the 5 profiles of it in a profile hierarchy with the Abstract Model and Resource Representation Description
- profiles profiling the specification directly and the other four profiles profiling the Abstract Model profile. This is shown graphically in below.
-
- With the identification of profiles of this specification given in and their description of them using the Profiles Vocabulary [[PROF]] in this
- appendix, it is possible for services that deliver content according to the specification or any of the profiles to show conformance to the specification or any of the profiles by
- using the same mechanisms recommended in [[PROF]] for a data resource to show conformance to a profile. For data resources, the recommendation is that they declare an RDF statement
- such as </a/resource> dct:conformsTo <SPEC_OR_PROFILE_URI> .
. This, adapted for use with services, is shown in .
-
-@prefix dct: <http://purl.org/dc/terms/> . -@prefix cnpr: <http://www.w3.org/ns/dx/conneg/profile/> . - -<XXXX> dct:conformsTo cnpr:qsa-alt . --
From 48e61a26591a7b58a9d91f416189870dbf251420 Mon Sep 17 00:00:00 2001
From: Nicholas Car Profiles for Conformance
If a system wishes to show conformance to this specification, conformance to at least one of the profiles listed in MUST be indicated.
/a/resource
's representation but something else as /a/resource
- may conform to some (data) profile but that data profile has nothing to do with CONNEG. It's the systems mechanics that are conformant here, unless we have a required
- resource that all implementations of this must implement that can describe the system function that conforms to the above.
+ This section's identifications of profiles of this specification exemplifies functional profiles which profile a functional specification, rather than a
+ data profile which profiles a data specification. This specification describes how a system should behave and this section indicates different profiles of that behaviour, rather
+ than content (data).
NB Profiles and specifications embody their own notions of conformance (of data), which are out of scope for this document.
+Specifications and Profiles embody their own notions of conformance, which are out of scope for this specification.
From fe8640d14e973b08dbc21592709e5aa939564973 Mon Sep 17 00:00:00 2001
From: Nicholas Car get resource by profile
anything that the profile profiles (a more general specification or profile), perhaps transitively.
- If a client requests a profile but gets a narrower profile, the Server should set its responses
- Content-Profile header to the profile identifier that the Client requested, not the identifier of the
- narrower profile as the client might not understand the narrower profile identifier.
+ A server SHOULD set a Content-Profile
header in HTTP response to the profile
+ identifier (URI) that the Client requested, not the identifier of any narrower profile that is also applicable
+ since the client might not understand the narrower profile identifier.
# a request for Resource 1 according to Profile A is made @@ -502,11 +502,28 @@+get resource by profile
HTTP/1.1 200 OK [other response headers] -Content-Profile: http://example.org/profile/A +Content-Profile: <http://example.org/profile/A> [more response headers] [content according to Profile B and thus Profile A which it profiles]
+ When a resource is returned that conforms to two or more profiles not within a profile hierarchy
+ (i.e. none of the multiple profiles the resource conforms to is a profiles of another), the server MUST
+ indicate all profiles individually within the Content-Profile
header as such:
+
+ Content-Profile: <PROFILE_1>, <PROFILE_2>
+
+ For example, a response from a server that conforms to both [[?GeoDCAT-AP]] and also [[?statdcat-ap]], given + that neither profiles the other and thus no single indication of conformance will suffice for both, (note they + both do profile [[?DCAT-AP]], see the DCAT-AP Hierarchy + example in [[PROF]]), using profile URIs for [[?GeoDCAT-AP]] and [[?statdcat-ap]] could be: +
+
+ Content-Profile: <https://joinup.ec.europa.eu/release/geodcat-ap-v10>, <https://joinup.ec.europa.eu/release/statdcat-ap/101>
+
Tokens are registered in a global registry and servers may use them in place of a URI
- Content-profile: token1, URI2
+ Content-profile: token1, <URI2>
Pros: compact
Cons: 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
@@ -706,7 +723,7 @@
From 1bae1e20a553092adb7b429ffce3a36202ed1388 Mon Sep 17 00:00:00 2001
From: Andrea Perego The editors gratefully acknowledge the contributions made to this document by all members of the working group, especially Annette Greiner, Antoine Isaac, Dan Brickley, Ine de Visser, Jaroslav Pullmann, Makx Dekkers, Nicholas Car, Rob Atkinson. The editors gratefully acknowledge the contributions made to this document by all members of the working group, especially Annette Greiner, Antoine Isaac, Dan Brickley, Ine de Visser, Jaroslav Pullmann, Linda van den Brink, Makx Dekkers, Nicholas Car, Rob Atkinson. The editors would also like to thank comments received from Andreas Kuckartz, Armando Stellato, Bert van Nuffelen, Chris Sweeney, Clemens Portele, Daniel Pop, Guillaume Duffes, Ian Davis, Jakob Voß, Jakub Klímek, Leigh Dodds, Luca Trani, Marco Brattinga, Melanie Barlow, Nuno Freire, Pano Maria, Peter Parslow, Stephane Fellah, Stephen Richard, Stijn Goedertier, Vladimir Alexiev. 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. The editors also gratefully acknowledge the chairs of this Working Group: Karen Coyle, Caroline Burle and Peter Winstanley — and staff contacts Phil Archer and Dave Raggett.
- In the roles are taken from [[?ISO-19115-1]] which are available as linked data in a code list.
+ In the roles are taken from [[?ISO-19115-1]] which are available as Linked Data in a code list.
Security and Privacy
Acknowledgments
- Property: themes
Usage note:
- It is recommended that the taxonomy is organized in a
@@ -2367,7 +2367,7 @@ skos:ConceptScheme
, skos:Collection
, owl:Ontology
or similar, which allows each member to be denoted by an IRI and published as linked-data.
+ It is recommended that the taxonomy is organized in a skos:ConceptScheme
, skos:Collection
, owl:Ontology
or similar, which allows each member to be denoted by an IRI and published as Linked Data.
Property: endpoint URL
- RDF Property: dcat:endpointURL
+ Definition: The root location or primary endpoint of the service (a web-resolvable IRI). Definition: The root location or primary endpoint of the service (a Web-resolvable IRI). Domain: dcat:DataService
@@ -3917,7 +3917,7 @@ Range: rdfs:Resource
Relationships between datasets and agents