diff --git a/README.md b/README.md index e2d048e63..49cc4af21 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ - [The Profiles Vocabulary (Editors' Draft)](https://w3c.github.io/dxwg/prof/) - [The Profiles Vocabulary Second Public Working Draft](https://www.w3.org/TR/2019/WD-dx-prof-20190402/) - [The Profiles Vocabulary First Public Working Draft](https://www.w3.org/TR/2018/WD-dx-prof-20181218/) -- [Content Negotiation by Profile (Editors' Draft)](https://w3c.github.io/dxwg/conneg-by-ap/) +- [Content Negotiation by Profile (Editors' Draft)](https://w3c.github.io/dxwg/connegp/) - [Content Negotiation by Profile Second Public Working Draft](https://www.w3.org/TR/2019/WD-dx-prof-conneg-20190430/) - [Content Negotiation by Profile First Public Working Draft](https://www.w3.org/TR/2018/WD-dx-prof-conneg-20181218/) diff --git a/charter/index.html b/charter/index.html index a61327b25..bca483a8e 100644 --- a/charter/index.html +++ b/charter/index.html @@ -138,11 +138,11 @@

Dataset Exchange Working Group Charter

Chairs Peter Winstanley, The Scottish Government,
- A N Other + Caroline Burle (NIC.br - Brazilian Network Information Center) Team Contacts - Dave Raggett (0.1 FTE) + Philippe Le Hegaret (0.05 FTE) Meeting Schedule @@ -159,7 +159,7 @@

Goals

DCAT has known gaps in coverage, for example around time series and versions. DCAT has been successful and is in wide use, but these gaps must be addressed if usage is to continue to grow across different communities and the variety of metadata schemas is to reduce.

Maximizing interoperability between services such as data catalogs, e-Infrastructures and virtual research environments requires not just the use of standard vocabularies but of application profiles. These define how a vocabulary is used, for example by providing cardinality constraints and/or enumerated lists of allowed values such that data can be validated. The development of several application profiles based on DCAT, such as the European Commission's DCAT-AP is particularly noteworthy in this regard.

-

Rather than limit the number of metadata standards and application profiles in use, systems should be able to expose and ingest (meta)-data according to multiple standards through transparent and sustainable interfaces. We thus need a mechanism for servers to indicate the available standards and application profiles, and for clients to choose an appropriate one. This leads to the concept of content negotiation by application profile, which is orthogonal to content negotiation by data format and language that is already part of HTTP. A new RFC on this topic currently under development at IETF with input from the Dataset Exchange Working Group, is based on the draft presented at the SDSVoc workshop. The combination of DXWG's definition of what is meant by "application profile", together with the DXWG view of how clients and servers may interact in different ways based on these profiles, together with this external work will provide a powerful means to exchange data in any format (JSON, RDF, XML etc.) according to declared structures against which the data can be validated.

+

Rather than limit the number of metadata standards and application profiles in use, systems should be able to expose and ingest (meta)-data according to multiple standards through transparent and sustainable interfaces. We thus need a mechanism for servers to indicate the available standards and application profiles, and for clients to choose an appropriate one. This leads to the concept of content negotiation by application profile, which is orthogonal to content negotiation by data format and language that is already part of HTTP. A new Internet Draft on profile negotiation currently under development at IETF with input from the Dataset Exchange Working Group, is based on the draft presented at the SDSVoc workshop. The combination of DXWG's definition of what is meant by "application profile", together with the DXWG view of how clients and servers may interact in different ways based on these profiles, together with this external work will provide a powerful means to exchange data in any format (JSON, RDF, XML etc.) according to declared structures against which the data can be validated.

The goals of the working group are to maintain the version 2 of DCAT and extend the standard to version 3 in line with work done to date and the ongoing work on dataset exchange being undertaken by communities more generally, and to develop to a recommendation the work undertaken in the 2017-2019 charter period on content negotiation by profile.

@@ -253,7 +253,10 @@

Timeline - Expected Delivery Dates

  • Get to CR all Recommendation Track documents - Q4 2021
  • Transition to Evergreen Standards Process

    -

    It is expected that within the charter period the deliverables will enter the W3C "evergreen" standards process and procedures and deliverables will transition at an appropriate time.

    +

    The participants of the Working Group look forward to + moving this work to an "Evergreen standard" model + as is being discussed for Process 2020. +

    @@ -278,14 +281,14 @@

    W3C Groups

    Shape Expressions Community Group

    The work of this CG is of direct relevance to the concept of application profiles.

    -
    The RDF Data Shapes Working Group
    -

    This WG is expected to have completed its work shortly after the DXWG is formed, however, efforts should be made to liaise with its community.

    +
    SHACL Community Group
    +

    This CG is continuing work on the W3C Shapes Constraint Language Recommendation. Efforts should be made to liaise with its community.

    schema.org for datasets Community Group

    This CG is clearly of high relevance to the DXWG

    Open Digital Rights Language (ODRL) Community Group
    -

    Ensure that the mechanisms being standardized by the ODRL Community Group for machine readable permissions, obligations, licenses, rights etc. are given due consideration.

    +

    Ensure that the mechanisms of the W3C ODRL Recommendation being maintained by the ODRL Community Group for machine readable permissions, obligations, licenses, rights etc. are given due consideration.

    diff --git a/connegp-implementation-report/config.js b/connegp-implementation-report/config.js new file mode 100644 index 000000000..1c55b1cbe --- /dev/null +++ b/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" + } + } +}; diff --git a/conneg-by-ap/extra.css b/connegp-implementation-report/extra.css similarity index 100% rename from conneg-by-ap/extra.css rename to connegp-implementation-report/extra.css diff --git a/connegp-implementation-report/index.html b/connegp-implementation-report/index.html new file mode 100644 index 000000000..65fc7c359 --- /dev/null +++ b/connegp-implementation-report/index.html @@ -0,0 +1,249 @@ + + + + + Content Negotiation by Profile Implementation Report + + + + + + +
    +

    + This document reports implementations of the Content Negotiation by Profile Candidate Recommendation [[DX-PROF-CONNEG]]. +

    +
    +
    +
    +
    +

    Introduction

    +

    + Content Negotiation by Profile describes how Internet clients may negotiate for content provided by servers based on data profiles to which the content conforms. +

    +
    +

    Namespace prefixes

    +

    + In this document we will employ the following namespace prefixes: +

    +
    +
    cnpr
    +
    + http://www.w3.org/ns/dx/conneg/profile/
    + Instances of Functional Profiles of Content Negotiation by Profile +
    +
    earl
    +
    + http://www.w3.org/ns/earl#
    + Evaluation and Report Language +
    +
    +
    +
    +

    Methodology

    +

    We followed the steps described below to collect evidence for the revisions proposed in [[DX-PROF-CONNEG]]:

    +
      +
    1. + Identified the Functional Profiles of [[DX-PROF-CONNEG]] that describe how to implement the specification in specific environments +
        +
      • As originally published, the specification has four Functional Profiles however new ones created by users can be added at any time
      • +
      • New Functional Profiles will be listed here with implementations as they become known
      • +
      +
    2. +
    3. + Listed the individual normative instructions per Functional Profile, per function or data model +
    4. +
    5. + Identified implementations +
    6. +
    7. + Tabulated the implementations' claims per Functional Profile, per function or data model +
    8. +
    9. + Tabulated the implementations' claims per individual normative instructions implemented +
    10. +
    +

    + We verified the claims made by the various implementations using a test suite which is detailed in +

    +
    + +
    +
    +

    Test Suite

    +

    + To verify the claims of implementations, test suite software was created. The software used the + Apache jMeter application to run a series of external tests against + implementations, testing for each aspect of the normative instructions per functional profile. +

    +

    + The code for the test suite is stored in the following code repository: +

    + +

    + That repository contains notes on how to apply the test suite. +

    +

    Test Suite Results

    +

    + The results from applying this test suite to implementations are given in the tables in . +

    +
    +
    +

    Implementation Evidence

    +
    +

    Functional Profiles Identified

    +

    The namespace prefixes for the functional profiles used in Table 1 below, are:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table 1: Known Functional Profiles of Content Negotiation by Profile Identified
    URINameDescription
    cnpr:httpHTTP Headers Functional ProfileFor systems operating with the HTTP [[RFC7230]] protocols
    cnpr:qsaURL QSA Functional ProfileFor 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 _profile argument key and _profile=all key/value pair
    cnpr:qsa-altURL QSA Alternate Keywords Functional ProfileFor 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
    cnpr:rrdResource Representation DescriptionFor systems wanting to indicate that they are able to indicate which profile(s) responses returned conform to
    +
    +
    +

    Normative Instructions per Functional Profile

    +
    +
    +

    Implementations

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table 3: Known implementations
    IDNameDescriptionImplementer(s)Location online
    I1pyLDAPIA Python module that adds Linked Data API functionality to a Python Flask (a web framework) installation.Nicholas J. Car + +
    I2PHP ConnegPA library of PHP functions for HTTP Content Negotiation by ProfileNicholas J. Car + +
    I3OGC Definitions ServerRob Atkinsonwrite-up
    I4CKAN DCAT PluginA existing extension module for the CKAN – 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 +
      +
    • Original ckan-dcat plugin authors (original plugin code)
    • +
    • Nicholas J. Car (extension of plugin to meet ConnegP specifications)
    • +
    +
    + +
    +
    +

    Implementation claims per Functional Profile

    +
    +
    +

    Implementation claims per Normative Instruction

    +
    +
    +
    +

    General analysis

    +
    +
    +

    Acknowledgements

    +

    + The editors gratefully acknowledge the contributions made to gathering evidence for [[DX-PROF-CONNEG]] and reviewing + this report by all members of the + working group, especially Annette Greiner. +

    +
    + + diff --git a/conneg-by-ap/altr.svg b/connegp/altr.svg similarity index 100% rename from conneg-by-ap/altr.svg rename to connegp/altr.svg diff --git a/conneg-by-ap/altr.ttl b/connegp/altr.ttl similarity index 100% rename from conneg-by-ap/altr.ttl rename to connegp/altr.ttl diff --git a/conneg-by-ap/config.js b/connegp/config.js similarity index 67% rename from conneg-by-ap/config.js rename to connegp/config.js index 6709a905d..cfa75308c 100644 --- a/conneg-by-ap/config.js +++ b/connegp/config.js @@ -1,24 +1,22 @@ var respecConfig = { specStatus: "WD", shortName: "dx-prof-conneg", - edDraftURI: "https://w3c.github.io/dxwg/conneg-by-ap/", + edDraftURI: "https://w3c.github.io/dxwg/connegp/", previousPublishDate: "2019-04-30", previousMaturity: "PWD", - prevRecURI: "https://www.w3.org/TR/2019/WD-dx-prof-conneg-20190430/", - testSuiteURI: "https://github.com/w3c/conneg-prof-testing", - implementationReportURI: "https://github.com/w3c/conneg-prof-testing", + testSuiteURI: "https://github.com/w3c/prof-conneg-testing", + implementationReportURI: "https://w3c.github.io/dxwg/connegp-implementation-report/", 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", + orcid: "0000-0002-8714-9718", w3cid: 44603 }, { name: "Rob Atkinson", company: "Metalinkage, Open Geospatial Consortium", - companyURL: "http://www.opengeospatial.org/", + companyURL: "http://www.opengeospatial.org", orcid: "0000-0002-7878-2693" }, { @@ -56,17 +54,6 @@ var respecConfig = { date: "2008-05-22", status: "Internet-Draft" }, - "PROF-CONNEG": { - editors: [ - "Lars G. Svensson", - "Rob Atkinson", - "Nicholas J. Car" - ], - href: "https://www.w3.org/TR/2018/WD-dx-prof-conneg-20181218/", - title: "Content Negotiation by Profile", - date: " 2018-12-18", - status: "W3C First Public Working Draft" - }, "PROF-GUIDANCE": { editors: [ "Rob Atkinson", @@ -88,16 +75,6 @@ var respecConfig = { title: "Indicating and Negotiating Profiles in HTTP", date: " 2019-07-11", status: "IETF Internet Draft" - }, - "PROF": { - editors: [ - "Rob Atkinson", - "Nicholas J. Car" - ], - href: "https://www.w3.org/TR/2018/WD-dx-prof-20181218/", - title: "Profile Descriptions ontology", - date: "2018-12-18", - status: "W3C First Public Working Draft" } } }; diff --git a/connegp/extra.css b/connegp/extra.css new file mode 100644 index 000000000..7cb545304 --- /dev/null +++ b/connegp/extra.css @@ -0,0 +1,35 @@ +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: 5px; + background-color: #eee; + border-left: solid 0.5em #999; + display: block; + font-family: Menlo, Consolas, "DejaVu Sans Mono", Monaco, monospace; + font-size: 0.9em; + white-space: pre; +} + +.codelisting-title { + font-family: sans-serif; + font-size: medium; + line-height: 1.5; + text-transform: none; + color: #666; +} diff --git a/conneg-by-ap/index.html b/connegp/index.html similarity index 89% rename from conneg-by-ap/index.html rename to connegp/index.html index 998ee9089..d0b94054b 100644 --- a/conneg-by-ap/index.html +++ b/connegp/index.html @@ -24,7 +24,7 @@

    Overview of DXWG documents on profiles

    and the Internet Engineering Taskforce (IETF). The documents are:

    - each with a prof:hasArtifact value of an implementing resource object in the + each with a prof:hasArtifact value of an implementing profile resource object in the European Commission's 'joinup' data catalogue @@ -2008,11 +1994,11 @@

    Features at risk

    The following features of in this specification are considered AT RISK pending evidence of implementation:

    -
    - At the time of initial release of this specification as a Candidate Recommendation, the list below +
    +
  • prof:ResourceRole
  • -
  • – its presence in the specification at all
  • +
  • – all instances
  • diff --git a/prof/rdf/prof.rdf b/prof/rdf/prof.rdf index aaff36255..9914447fe 100644 --- a/prof/rdf/prof.rdf +++ b/prof/rdf/prof.rdf @@ -5,102 +5,133 @@ xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dct="http://purl.org/dc/terms/" + xmlns:sdo="https://schema.org/" xmlns:skos="http://www.w3.org/2004/02/skos/core#" > - - - This property indicates a Resource Descriptor described by this Profile’s base specification that is to be considered a Resource Descriptor for this Profile also - This property is created for the convenience of clients. When profile describers wish to allow clients to discover all resources relevant to a Profile without having to navigating an inheritance hierarchy of prof:profileOf relations, this predicate may be used to directly associate inherited Profile Descriptors with the Profile. If this property is present, it should be used consistently and all relevant resources a client may need to utilise the profile should be present and described using this predicate - is inherited from - - - - Alejandra Gonzalez-Beltran - - Simon Cox - Nicholas Car - 1.0 - 2018-02-16 - Rob Atkinson - - Profiles Vocabulary - 2018-11-15 - This vocabulary is for describing relationships between standards/specifications, profiles of them and supporting artifacts such as validating resources. - -This model starts with [http://dublincore.org/2012/06/14/dcterms#Standard](dct:Standard) entities which can either be Base Specifications (a standard not profiling any other Standard) or Profiles (Standards which do profile others). Base Specifications or Profiles can have Resource Descriptors associated with them that defines implementing rules for the it. Resource Descriptors must indicate the role they play (to guide, to validate etc.) and the formalism they adhere to (dct:format) to allow for content negotiation. A vocabulary of Resource Roles are provided alongside this vocabulary but that list is extensible. - - - - The function of the described artifactresource in the expression of the Profile, such as a specification, guidance documentation, SHACL file etc. - A set of common roles are defined by the Profiles Vocabulary. These are not exhaustive or disjoint, and may be extended for situations where finer grained description of purpose is necessary. A resource may perform multiple roles - - - has role - + + A simple lexical form of identifier that may be accepted in some circumstances, such as API arguments to reference this profile. This is a “preferred term”, since alternative identifiers may be declared and used by any implementation + + + The preferred identifier for the Profile, for use in circumstances where its URI cannot be used + has token + - An established standard to which the described resource conforms + conforms to + - - - - Resource Role - Specific terms must come from a vocabulary - The role that an Resource plays - - - has resource - This property is analogous to dcat:distribution however the domain is not necessarily dcat:Dataset. dcat:Dataset and prof:Profile are not disjoint, so it is up to implementations to decide if these are equivalent properties - A resource which describes the nature of an artifact and the role it plays in relation to a profile - + + The URL of a downloadable file with particulars such as its format and role indicated by a Resource Descriptor + + has artifact + A Profile is a profile of a dct:Standard (or a Base Specification or another Profile) - A Profile may define constraints on the usage of one or more specifications. All constraints of these specifications are inherited, in the sense that an object conforming to a profile conforms to all the constraints specified the targets of prof:isProfileOf relations. This property is optional, allowing any specification to be declared at the root of a profile hierarchy using the Profile class + is profile of + + - is transitive profile of + + is transitive profile of This is a convenience predicate that may be used to declare all specifications (including profiles) that the subject profile requires an information resource to conform to. This avoids forcing clients to traverse a profile hierarchy to find all conformance implications and available resources. If present all such relationships should be present so a client can safely avoid hierarchy traversal A base specification an Profile conforms to - - - is profile of - + A Profile may define constraints on the usage of one or more specifications. All constraints of these specifications are inherited, in the sense that an object conforming to a profile conforms to all the constraints specified the targets of prof:isProfileOf relations. This property is optional, allowing any specification to be declared at the root of a profile hierarchy using the Profile class - - has artifact + + Makx Dekkers + 1.0 + Profiles Vocabulary + Simon Cox + + 2019-10-25 + + This vocabulary is for describing relationships between standards/specifications, profiles of them and supporting artifacts such as validating resources. + +This model starts with [http://dublincore.org/2012/06/14/dcterms#Standard](dct:Standard) entities which can either be Base Specifications (a standard not profiling any other Standard) or Profiles (Standards which do profile others). Base Specifications or Profiles can have Resource Descriptors associated with them that defines implementing rules for the it. Resource Descriptors must indicate the role they play (to guide, to validate etc.) and the formalism they adhere to (dct:format) to allow for content negotiation. A vocabulary of Resource Roles are provided alongside this vocabulary but that list is extensible. + Antoine Isaac + 2018-02-16 + + + + + Nicholas J. Car + + + SURROUND Australia Pty Ltd + + + + + + + + + + + Open Geospatial Consortium + + + + + Rob Atkinson + + + Metalinkage + + + + + Alejandra Gonzalez-Beltran + + + + has resource + A resource which describes the nature of an artifact and the role it plays in relation to a profile + This property is analogous to dcat:distribution however the domain is not necessarily dcat:Dataset. dcat:Dataset and prof:Profile are not disjoint, so it is up to implementations to decide if these are equivalent properties + + - - The URL of a downloadable file with particulars such as its format and role indicated by a Resource Descriptor + has role + A set of common roles are defined by the Profiles Vocabulary. These are not exhaustive or disjoint, and may be extended for situations where finer grained description of purpose is necessary. A resource may perform multiple roles + + The function of the described artifactresource in the expression of the Profile, such as a specification, guidance documentation, SHACL file etc. - - - - has token - A preferred alternative identifier for the Profile - A simple lexical form of identifier that may be accepted in some circumstances, such as API arguments to reference this profile. This is a “preferred term”, since alternative identifiers may be declared and used by any implementation - + + This property indicates a Resource Descriptor described by this Profile’s base specification that is to be considered a Resource Descriptor for this Profile also + This property is created for the convenience of clients. When profile describers wish to allow clients to discover all resources relevant to a Profile without having to navigating an inheritance hierarchy of prof:profileOf relations, this predicate may be used to directly associate inherited Profile Descriptors with the Profile. If this property is present, it should be used consistently and all relevant resources a client may need to utilise the profile should be present and described using this predicate + is inherited from + + + + + Resource Role + The role that an Resource plays + + Specific terms must come from a vocabulary + + Profile + A named set of constraints on one or more identified base specifications or other profiles, including the identification of any implementing subclasses of datatypes, semantic interpretations, vocabularies, options and parameters of those base specifications necessary to accomplish a particular function. This definition includes what are often called "application profiles", "metadata application profiles", or "metadata profiles". - - + Can be use to indicate the formalism (via dct:format) and any adherence to a dct:Standard (via dct:conformsTo) to allow for machine mediation as well as its purpose via relation to a ResourceRole (via hasRole) A resource that defines an aspect - a particular part or feature - of a Profile Resource Descriptor - Can be use to indicate the formalism (via dct:format) and any adherence to a dct:Standard (via dct:conformsTo) to allow for machine mediation as well as its purpose via relation to a ResourceRole (via hasRole) diff --git a/prof/rdf/prof.ttl b/prof/rdf/prof.ttl index bfda804c7..f7e2cbe6e 100644 --- a/prof/rdf/prof.ttl +++ b/prof/rdf/prof.ttl @@ -4,25 +4,46 @@ @prefix owl: . @prefix rdf: . @prefix rdfs: . +@prefix sdo: . @prefix skos: . @prefix xsd: . @base . rdf:type owl:Ontology ; - owl:versionIRI ; - rdfs:label "Profiles Vocabulary" ; - dct:contributor ; - dc:creator "Rob Atkinson" ; - rdfs:comment """This vocabulary is for describing relationships between standards/specifications, profiles of them and supporting artifacts such as validating resources. + owl:versionIRI ; + rdfs:label "Profiles Vocabulary" ; + dct:contributor ; + dct:creator [ + sdo:name "Nicholas J. Car" ; + sdo:identifier ; + sdo:email ; + sdo:affiliation [ + sdo:name "SURROUND Australia Pty Ltd" ; + sdo:url ; + ] ; + ] , + [ + sdo:name "Rob Atkinson" ; + sdo:identifier ; + sdo:email ; + sdo:affiliation [ + sdo:name "Open Geospatial Consortium" ; + sdo:url ; + ] , + [ + sdo:name "Metalinkage" ; + ] ; + ] ; + rdfs:comment """This vocabulary is for describing relationships between standards/specifications, profiles of them and supporting artifacts such as validating resources. This model starts with [http://dublincore.org/2012/06/14/dcterms#Standard](dct:Standard) entities which can either be Base Specifications (a standard not profiling any other Standard) or Profiles (Standards which do profile others). Base Specifications or Profiles can have Resource Descriptors associated with them that defines implementing rules for the it. Resource Descriptors must indicate the role they play (to guide, to validate etc.) and the formalism they adhere to (dct:format) to allow for content negotiation. A vocabulary of Resource Roles are provided alongside this vocabulary but that list is extensible."""@en ; - owl:versionInfo "1.0" ; - dc:contributor "Nicholas Car" , - "Simon Cox" , - "Alejandra Gonzalez-Beltran"; - dct:modified "2018-11-15"^^xsd:date ; - dct:contributor ; - dct:created "2018-02-16"^^xsd:date . + owl:versionInfo "1.0" ; + dc:contributor "Antoine Isaac" , + "Simon Cox" , + "Alejandra Gonzalez-Beltran" , + "Makx Dekkers" ; + dct:modified "2019-10-25"^^xsd:date ; + dct:created "2018-02-16"^^xsd:date . ################################################################# # Annotation properties @@ -48,17 +69,17 @@ dct:format rdf:type owl:AnnotationProperty ; ### http://www.w3.org/ns/dx/prof/hasArtifact :hasArtifact rdf:type owl:ObjectProperty ; - skos:definition "The URL of a downloadable file with particulars such as its format and role indicated by a Resource Descriptor"@en ; + skos:definition "The URL of a downloadable file with particulars such as its format and role indicated by the Resource Descriptor"@en ; rdfs:domain :ResourceDescriptor ; rdfs:label "has artifact" ; - skos:usageNote ""@en . + skos:usageNote "A property to link from a Resource Descriptor to an actual information resource (rdfs:Resource; an individual) that implements it"@en . ### http://www.w3.org/ns/dx/prof/isInheritedFrom :isInheritedFrom rdf:type owl:ObjectProperty ; rdfs:domain :ResourceDescriptor ; rdfs:range :Profile ; - skos:definition "This property indicates a Resource Descriptor described by this Profile’s base specification that is to be considered a Resource Descriptor for this Profile also"@en ; + skos:definition "A base specification, a Resource Descriptor from which is to be considered a Resource Descriptor for this Profile also"@en ; skos:usageNote "This property is created for the convenience of clients. When profile describers wish to allow clients to discover all resources relevant to a Profile without having to navigating an inheritance hierarchy of prof:profileOf relations, this predicate may be used to directly associate inherited Profile Descriptors with the Profile. If this property is present, it should be used consistently and all relevant resources a client may need to utilise the profile should be present and described using this predicate"@en ; rdfs:label "is inherited from" . @@ -69,7 +90,7 @@ dct:format rdf:type owl:AnnotationProperty ; rdfs:range dct:Standard ; rdfs:subPropertyOf :isTransitiveProfileOf ; skos:usageNote "A Profile may define constraints on the usage of one or more specifications. All constraints of these specifications are inherited, in the sense that an object conforming to a profile conforms to all the constraints specified the targets of prof:isProfileOf relations. This property is optional, allowing any specification to be declared at the root of a profile hierarchy using the Profile class"@en ; - skos:definition "A Profile is a profile of a dct:Standard (or a Base Specification or another Profile)"@en ; + skos:definition "A specification for which this Profile defines constraints, extensions, or which it uses in combination with other specifications, or provides guidance or explanation about its usage"@en ; rdfs:label "is profile of" . @@ -77,15 +98,15 @@ dct:format rdf:type owl:AnnotationProperty ; :isTransitiveProfileOf rdf:type owl:ObjectProperty ; rdfs:domain :Profile ; rdfs:range dct:Standard ; - skos:definition "A base specification an Profile conforms to"@en ; + skos:definition "The transitive closure of the prof:isProfileOf property. Relates a profile to another specification that it is a profile of, possibly via a chain of intermediate profiles that are in prof:isProfileOf relationships"@en ; rdfs:label "is transitive profile of" ; - skos:usageNote "This is a convenience predicate that may be used to declare all specifications (including profiles) that the subject profile requires an information resource to conform to. This avoids forcing clients to traverse a profile hierarchy to find all conformance implications and available resources. If present all such relationships should be present so a client can safely avoid hierarchy traversal"@en . + skos:usageNote "This is a convenience property that may be used to access all specifications (including other profiles) that could provide useful information and related resources for the Profile (for example, for better identifying conformance requirements). This avoids forcing clients to traverse a profile hierarchy to find all relevant resources. If this property is used, then all such relationships should be present so a client can safely avoid hierarchy traversal"@en . ### http://www.w3.org/ns/dx/prof/hasResource :hasResource rdf:type owl:ObjectProperty ; rdfs:range :ResourceDescriptor ; - skos:definition "A resource which describes the nature of an artifact and the role it plays in relation to a profile"@en ; + skos:definition "A resource which describes the nature of an artifact and the role it plays in relation to the Profile"@en ; rdfs:label "has resource"@en ; skos:usageNote "This property is analogous to dcat:distribution however the domain is not necessarily dcat:Dataset. dcat:Dataset and prof:Profile are not disjoint, so it is up to implementations to decide if these are equivalent properties"@en . @@ -95,7 +116,7 @@ dct:format rdf:type owl:AnnotationProperty ; rdfs:domain :ResourceDescriptor ; rdfs:range skos:Concept ; skos:usageNote "A set of common roles are defined by the Profiles Vocabulary. These are not exhaustive or disjoint, and may be extended for situations where finer grained description of purpose is necessary. A resource may perform multiple roles"@en ; - skos:definition "The function of the described artifactresource in the expression of the Profile, such as a specification, guidance documentation, SHACL file etc."@en ; + skos:definition "The function of an artifact described by a Resource Descriptor, such as specification, guidance etc."@en ; rdfs:label "has role" . @@ -107,8 +128,8 @@ dct:format rdf:type owl:AnnotationProperty ; :hasToken rdf:type owl:DatatypeProperty ; rdfs:domain :Profile ; rdfs:range xsd:token ; - skos:definition "A preferred alternative identifier for the Profile"@en ; - skos:usageNote "A simple lexical form of identifier that may be accepted in some circumstances, such as API arguments to reference this profile. This is a “preferred term”, since alternative identifiers may be declared and used by any implementation"@en ; + skos:definition "The preferred identifier for the Profile, for use in circumstances where its URI cannot be used"@en ; + skos:usageNote "A simple lexical form of identifier that may be accepted in some circumstances, such as API arguments to reference this profile. This is the “preferred term”, since alternative identifiers may be declared and used by any implementation"@en ; rdfs:label "has token" . @@ -120,14 +141,14 @@ dct:format rdf:type owl:AnnotationProperty ; ### http://www.w3.org/ns/dx/prof/ResourceDescriptor :ResourceDescriptor rdf:type owl:Class ; rdfs:label "Resource Descriptor"@en ; - skos:definition "A resource that defines an aspect - a particular part or feature - of a Profile"@en ; + skos:definition "A description of a resource that defines an aspect - a particular part, feature or role - of a Profile"@en ; skos:usageNote "Can be use to indicate the formalism (via dct:format) and any adherence to a dct:Standard (via dct:conformsTo) to allow for machine mediation as well as its purpose via relation to a ResourceRole (via hasRole)"@en . ### http://www.w3.org/ns/dx/prof/ResourceRole :ResourceRole rdf:type owl:Class ; rdfs:label "Resource Role" ; - skos:definition "The role that an Resource plays"@en ; + skos:definition "A role that an profile resource, described by a Resource Descriptor, plays"@en ; rdfs:subClassOf skos:Concept ; skos:usageNote "Specific terms must come from a vocabulary"@en . @@ -137,7 +158,7 @@ dct:format rdf:type owl:AnnotationProperty ; rdfs:subClassOf dct:Standard ; dct:source ; rdfs:label "Profile" ; - skos:definition """A named set of constraints on one or more identified base specifications or other profiles, including the identification of any implementing subclasses of datatypes, semantic interpretations, vocabularies, options and parameters of those base specifications necessary to accomplish a particular function. + skos:definition """A specification that constrains, extends, combines, or provides guidance or explanation about the usage of other specifications. This definition includes what are often called \"application profiles\", \"metadata application profiles\", or \"metadata profiles\"."""@en . diff --git a/prof/rdf/profile.ttl b/prof/rdf/profile.ttl index 1f65d9a10..3b42d8c52 100644 --- a/prof/rdf/profile.ttl +++ b/prof/rdf/profile.ttl @@ -1,4 +1,3 @@ -@prefix : . @prefix prof: . @prefix roles: . @prefix rdfs: . @@ -8,12 +7,12 @@ @prefix xsd: . - + a owl:Ontology , prof:Profile ; prof:hasToken "prof" ; rdfs:label "The Profiles Ontology" ; prof:isProfileOf owl: , dct: ; - prof:hasResource _:1 , _:2 , _:3 , _:4 ; + prof:hasResource _:1 , _:2 , _:3 , _:4 , _:5 ; . _:1 @@ -29,9 +28,17 @@ _:2 dct:conformsTo owl: ; dct:format ; prof:hasRole roles:specification ; - prof:hasArtifact prof: . + prof:hasArtifact prof:prof.ttl . _:3 + a prof:ResourceDescriptor ; + rdfs:label "Ontology specification document in RDF (XML)"@en ; + dct:conformsTo owl: ; + dct:format ; + prof:hasRole roles:specification ; + prof:hasArtifact prof:prof.rdf . + +_:4 a prof:ResourceDescriptor ; rdfs:label "Constraints in SHACL"@en ; dct:conformsTo ; @@ -39,7 +46,7 @@ _:3 prof:hasRole roles:constraints ; prof:hasArtifact prof:constraints.ttl . -_:4 +_:5 a prof:ResourceDescriptor ; rdfs:label "Examples of the Profiles Ontology profile in use"@en ; dct:conformsTo ; diff --git a/prof/roles/resource_roles.ttl b/prof/roles/resource_roles.ttl index 11f765f9e..c9494d36e 100644 --- a/prof/roles/resource_roles.ttl +++ b/prof/roles/resource_roles.ttl @@ -8,84 +8,107 @@ @prefix prov: . @prefix rdf: . @prefix rdfs: . +@prefix sdo: . @prefix skos: . @prefix xml: . @prefix xsd: . -:aggregatedConstraints a owl:NamedIndividual, - skos:Concept, - prof:ResourceRole ; - skos:broader :fullConstraints ; - skos:definition "Full Constraints not only for this Profile but also for all dependencies (Profiles or dct:Standards)"@en ; - skos:usageNote "Use this Role when you want to provide a resource that validates data according to this profile and also its dependents. You must include the Full Constraints of all dependencies within this resource" ; - skos:prefLabel "Aggregated Constraints"@en . -:codeRepository a owl:NamedIndividual, +: a skos:ConceptScheme ; + rdfs:label "Resource Roles vocabulary"@en ; + dct:creator [ + sdo:name "Nicholas J. Car" ; + sdo:identifier ; + sdo:email ; + sdo:affiliation [ + sdo:name "SURROUND Australia Pty Ltd" ; + sdo:url ; + ] ; + ] , + [ + sdo:name "Rob Atkinson" ; + sdo:identifier ; + sdo:email ; + sdo:affiliation [ + sdo:name "Open Geospatial Consortium" ; + sdo:url ; + ] , + [ + sdo:name "Metalinkage" ; + ] ; + ] ; + dct:created "2018-02-16"^^xsd:date ; + dct:modified "2019-11-25"^^xsd:date ; + rdfs:comment """A vocabulary of ResourceRole instances. + +This vocabulary is both a SKOS vocabulary and also a list of instances of the Profiles Vocabulary's [ResourceRole](www.w3.org/ns/dx/prof/ResourceRole) class."""@en . + +:constraints a owl:NamedIndividual, skos:Concept, prof:ResourceRole ; - skos:definition "Repository for source code and profile artifacts"@en ; - skos:prefLabel "Code repository"@en ; - skos:topConceptOf : . + skos:definition "Descriptions of obligations, limitations or extensions that the profile defines"@en ; + skos:prefLabel "Constraints"@en ; + skos:topConceptOf : ; + skos:scopeNote "Use this Role when you want to indicate the constraints that the associated Profile imposes on top of base specifications"@en ; +. -:vocabulary a owl:NamedIndividual, +:example a owl:NamedIndividual, skos:Concept, prof:ResourceRole ; - skos:definition "Examples of the Profile in use"@en ; - skos:prefLabel "Examples"@en ; - skos:topConceptOf : . + skos:definition "Sample instance data conforming to the profile"@en ; + skos:prefLabel "Example"@en ; + skos:topConceptOf : ; + skos:scopeNote "Use this Role when you want to provide instances of data conforming to the profile to inform users"@en ; +. -:extensionConstraints a owl:NamedIndividual, +:guidance a owl:NamedIndividual, skos:Concept, prof:ResourceRole ; - skos:broader :partConstraints ; - skos:definition "Constraints implemented by this Profile building on dependencies but not including them"@en ; - skos:usageNote "Use this Role when you want to provide a resource that validates data according to this profile but only in so far as it is a constraint on its dependents. Therefore, this resource must not also include any dependents' constraints" ; - skos:prefLabel "Extension Constraints"@en . + skos:definition "Documents, in human-readable form, how to use the profile"@en ; + skos:prefLabel "Guidance"@en ; + skos:topConceptOf : ; + skos:scopeNote "Many existing profiles treat their human-readable forms (PDF documents etc.) as authoritative. This role is suggestive of non-authoritativeness. For a role for a human-readable resource that is authoritative, see role:Specification."@en ; +. -:fullConstraints a owl:NamedIndividual, +:mapping a owl:NamedIndividual, skos:Concept, prof:ResourceRole ; - skos:definition "Complete set of constraints for a profile"@en ; - skos:prefLabel "Full Constraints"@en ; - skos:topConceptOf : . + skos:definition "Describes conversions between two specifications"@en ; + skos:prefLabel "Mapping"@en ; + skos:topConceptOf : ; +. -:guidance a owl:NamedIndividual, +:schema a owl:NamedIndividual, skos:Concept, prof:ResourceRole ; - skos:definition "Guidance notes of profile"@en ; - skos:prefLabel "Guidance"@en ; - skos:topConceptOf : . + skos:altLabel "Shape"@en , "Structure"@en ; + skos:definition "Machine-readable structural descriptions of data defined by the profile"@en ; + skos:prefLabel "Schema"@en ; + skos:topConceptOf : ; +. -:partConstraints a owl:NamedIndividual, +:specification a owl:NamedIndividual, skos:Concept, prof:ResourceRole ; - skos:definition "Partial set of constraints for a profile"@en ; - skos:prefLabel "Part Constraints"@en ; - skos:topConceptOf : . + skos:definition "Defining the profile in human-readable form"@en ; + skos:prefLabel "Specification"@en ; + skos:topConceptOf : ; + skos:scopeNote "This role indicates authoritativeness. For a role for a human-readable resource that is not authoritative, see role:Guidance"@en ; +. -:specification a owl:NamedIndividual, +:validation a owl:NamedIndividual, skos:Concept, prof:ResourceRole ; - skos:definition "Reference document which describes the standard"@en ; - skos:prefLabel "Specification document"@en ; - skos:topConceptOf : . + skos:definition "Supplies instructions about how to verify conformance of data to the profile"@en ; + skos:prefLabel "Validation"@en ; + skos:topConceptOf : ; + skos:scopeNote "This role implies inclusion or import of inherited constraints"@en ; +. :vocabulary a owl:NamedIndividual, skos:Concept, prof:ResourceRole ; - skos:definition "Machine readable definition of a vocabulary or schema. Typically expressed in RDF, XSD, UML DDL, Table Schema or similar"@en ; + skos:definition "Defines terms used in the profile specification"@en ; skos:prefLabel "Vocabulary"@en ; - skos:topConceptOf : . - -: a skos:ConceptScheme ; - rdfs:label "Resource Roles vocabulary"@en ; - dc:contributor "Nicholas Car", - "Simon Cox" ; - dc:creator "Rob Atkinson" ; - dct:contributor , - ; - dct:created "2018-02-16"^^xsd:date ; - dct:modified "2019-01-28"^^xsd:date ; - rdfs:comment """A vocabulary of ResourceRole instances. - -This vocabulary is both a SKOS vocabulary and also a list of instances of the Profiles Vocabulary's [ResourceRole](www.w3.org/ns/dx/prof/ResourceRole) class."""@en . + skos:topConceptOf : ; +. diff --git a/w3c.json b/w3c.json index 24f0d8352..0519e4040 100644 --- a/w3c.json +++ b/w3c.json @@ -1,7 +1,7 @@ { "group": 99375, "contacts": [ - "draggett" + "plehegar" ], "policy": "open", "repo-type": "rec-track"