The Profiles Vocabulary is an RDF vocabulary created to allow the machine-readable description of profiles of specifications for information resources. It can be used to describe profile hierarchies wherein profiles of specifications may themselves have profiles indicated. It can also link multiple profile resources that make up a profile - guidelines, validation tools, schemas, term lists and so on - to it and allows for those profile resources to be described with formats, roles, and digital artifacts.
The namespace for PROF terms is http://www.w3.org/ns/dx/prof/
.
The PROF vocabulary, defined in OWL and encoded in RDF Turtle, is available at prof.ttl.
This document is one from a set of documents on profiles, edited by the W3C Dataset Exchange Working Group (DXWG) and the Internet Engineering Taskforce (IETF). The documents are:
This Profiles Vocabulary (PROF) provides a standardized, structured and human- & machine-readable set of terms to describe profiles. Its development was triggered by the appearance of multiple profiles of the Dataset Catalog Vocabulary (DCAT) [[VOCAB-DCAT]] and examples of profile description and implementation guidance systems such as the Guidelines for Dublin Core Application Profiles [[DCAP]] and the OpenGeospatial Consortium's Standard for Modular specifications [[MODSPEC]].
Profiles aim to increase interoperability within a community of users by introducing constraints, extensions or combinations on the use of more general specifications. PROF is an RDF vocabulary created to describe relations between specifications and profiles and the profile resources that define and implement profiles. A specification is "A basis for comparison; a reference point against which other things can be evaluated." (see the definition below) and a profile, perhaps an application profile, is defined as "A [data/application] specification that constrains, extends, combines, or provides guidance or explanation about the usage of other [data/application] specifications". Profile resources may be human-readable documents (PDFs, textual documents), vocabularies, schemas or ontologies (XSD, RDF), constraint language resources used by specific validation tools (SHACL, ShEx, Schematron), or any other files or profile resources that support the profile. In this specification, each profile resource is able to have roles assigned to it that define its functions within the profile.
This vocabulary's ontological basis for specification/profile relations is a specialization of the
dct:Standard
class which is defined here as a prof:Profile
. A prof:Profile
instance is related to either dct:Standard
or prof:Profile
instances by being a profile of
them, formally, prof:isProfileOf
. Resources that conform to either a
dct:Standard
or a prof:Profile
are formally described as doing so with the use of the
dct:conformsTo
predicate.
Data that conforms to a profile, in PROF, must conform to anything the profile is a profile of. To represent this formally, this vocabulary
includes the property chain axiom dct:conformsTo owl:propertyChainAxiom ( prof:isProfileOf dct:conformsTo )
.
Individual communities may define what conformance to their profiles and the things they profile means and how to
test for conformance if indeed they wish to.
In recognition of the existence of specifications and profiles that are made up of multiple resources –
perhaps PDF documents, machine-readable constraint language files, code lists etc. – this vocabulary also
provides for the description of the parts that constitute a profile or a specification. It defines a
prof:ResourceDescriptor
class which is used to qualify the
relationship between a profile and profile resources. A prof:Profile
may have any number of
prof:hasResource
predicates indicating prof:ResourceDescriptor
instances which then indicate the location (a URI) of the actual profile resource artifact with a
prof:hasArtifact
predicate and then may describes the artifact's
format and any specifications it conforms to with dct:format
&
dct:conformsTo
predicates respectively. The role that the profile resource
plays with respect to the profile may be indicating using a prof:ResourceRole
class instance linked to it with the prof:hasRole
predicate.
A vocabulary of prof:ResourceRole
instances is provided in but
communities are encouraged to create additional prof:ResourceRole
instances with definitions suited to
their purposes and, in the best case, to publish those additional instances for others to reuse.
For the purpose of compliance, the normative sections of this document are:
All diagrams in this specification, apart from , use elements defined in this key. The namespace prefixes in the key are defined in .
A basis for comparison; a reference point against which other things can be evaluated.
Source: DCMI Metadata Terms [[DCTERMS]]'s definition for a Standard
.
A specification, with human- and/or machine-processable representations, that defines the content and structure of data used in a given context.
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 profiles", or "metadata profiles". In this document, "data profile" and these other variants are all referred to as just "profiles".
A short name identifying something.
In the context of this specification, it is a profile that is usually identified by a token.
The namespace for PROF is http://www.w3.org/ns/dx/prof/
,
however, PROF makes use of terms from other vocabularies, in particular Dublin Core [[!DCTERMS]].
PROF itself only defines a small set of classes and properties of its own.
PROF also makes use of derivative namespaces of its own namespace for auxiliary vocabulary elements, such as instances
of the prof:ResourceRole
which are within the http://www.w3.org/ns/dx/prof/role/
namespace.
A full set of namespaces and prefixes used in this specification is given in the table below.
Prefix | Namespace |
---|---|
dcat | http://www.w3.org/ns/dcat# |
dct | http://purl.org/dc/terms/ |
owl | http://www.w3.org/2002/07/owl# |
prof | http://www.w3.org/ns/dx/prof/ |
role | http://www.w3.org/ns/dx/prof/role/ |
prov | http://www.w3.org/ns/prov# |
rdf | http://www.w3.org/1999/02/22-rdf-syntax-ns# |
rdfs | http://www.w3.org/2000/01/rdf-schema# |
skos | http://www.w3.org/2004/02/skos/core# |
xsd | http://www.w3.org/2001/XMLSchema# |
(others) | All other namespace prefixes are used in examples only. In particular, IRIs starting with "http://example.org" represent some application-dependent IRI [[RFC3987]] |
Until this vocabulary's creation, there was no formal W3C method for describing profile objects (Internet resources).
There are a multitude of possible ways to describe the components needed to define a profile and support validation of data claiming conformance to profiles, such as:
Describing the components within a profile with documents or constraint languages only does not indicate many things that may be important or interesting to know about a profile such as:
Regarding profile/specification relations, a mechanism to relate profiles to specifications and other profiles, would allow both immediate knowledge of what things a profile profiles and also allow profile hierarchies to be established which could:
For the purposes of dataset exchange and with the lack of a formal W3C method for describing the objects related to profiles, the DXWG undertook a process of Use Case and Requirements gathering. They established the Dataset Exchange Use Case and Requirements document (the UCR document) [[DCAT-UCR]] which groups requirements for profiles into the following sections:
PROF addresses many of those Requirements – those that can be addressed by describing profile components and relations – and those Requirements link back to the Use Cases that motivated them.
The UCR document lists a further profiles Requirements section: 6.14 Profile and content negotiation however those are not addressed here but by the related [[DX-PROF-CONNEG]] document.
This vocabulary is for describing relationships between standards/specifications, profiles of them and supporting artifacts such as validating resources.
The model takes the dct:Standard
Class as a starting point and defines a specialization, a Profile
, which is a dct:Standard
that profiles a dct:Standard
or another Profile
. Standards
s or Profile
s can have Resource Descriptor
s associated with
them that define rules for implementation, provide guidance on how to implement, or play some other role. Resource Descriptor
s must indicate the role they
play (to guide, to validate etc.), the formalism they adhere to (dct:format
)
and any dct:Standard
that they themselves conform to (dct:conformsTo
).
Any rdfs:Resource
MAY indicate conformance to a profile as per
by using dct:conformsTo
. Individual communities MAY determine what constitutes an appropriate URI to
identify a profile.
The remainder of this section is informative.
The example below illustrates the use of most parts of PROF and indicates how non-PROF profile metadata is stored alongside PROF metadata.
@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#> . <http://example.org/profile/x> # a Profile; it's identifying URI a prof:Profile ; # common metadata for the Profile # the Profile's label rdfs:label "Profile X" ; # regular metadata, a basic description of the Profile rdfs:comment """This is a Profile of Dublin Core Terms used to describe items in CSIRO's publications catalogue."""@en ; # regular metadata, URI of publisher dct:publisher <http://catalogue.linked.data.gov.au/org/O-000886> ; # PROF metadata # this is a profile of Dublin Core Terms, referenced by its namespace prof:isProfileOf <http://purl.org/dc/terms/> ; # this profile has a SHACL profile resource that constrains it's use of Dublin Core prof:hasResource [ a prof:ResourceDescriptor ; # it's in Turtle format dct:format <https://w3id.org/mediatype/text/turtle> ; # it conforms to SHACL, here refered to by its namespace URI as a Profile dct:conformsTo <https://www.w3.org/TR/shacl/> ; # this profile resource plays the role of "Validation" # described in this ontology's accompanying Roles vocabulary prof:hasRole role:Validation ; # this profile resource's actual file prof:hasArtifact <http://example.org/profile/x/resource/validator.ttl> ] ; # other profile resources this profile contains prof:hasResource ... ; # a short code to refer to the Profile with when a URI can't be used prof:hasToken "profx" .
The following example demonstrates how data resources can indicate conformance to a profile. Note that in
, there is also an example of this pattern whereby the ResourceDescriptor
is indicated as conforming to the [[SHACL]] specification, which is also understood to be a profile to which
things may conform.
# Profile X <http://example.org/profile/x> a prof:Profile ; dct:title "Profile X" . # A data resource indicating conformance to Profile X. # In this example it's a DCAT Dataset's Distribution <http://example.org/dataset/001> a dcat:Dataset ; dcat:distribution :dataset-001-x . :dataset-001-x a dcat:Distribution ; dct:title "Distribution of imaginary dataset 001 that conforms to Profile X" ; dcat:downloadURL <http://www.example.org/files/001.x> ; dct:conformsTo <http://example.org/profile/x> .
This next example shows how a conclusion about conformance can be drawn due to this vocabulary's inclusion of a property chain axiom about conformance.
# Profile X, is a profile of Specification Y <http://example.org/profile/x> a prof:Profile ; prof:isProfileOf <http://example.org/specification/y> dct:title "Profile X" . # A data resource indicating conformance to Profile X is given <http://example.org/resource/a> dct:conformsTo <http://example.org/profile/x> . # Due to the property chain axiom: # dct:conformsTo owl:propertyChainAxiom ( prof:isProfileOf dct:conformsTo ) # the data resource above can be inferred to conform to Specification Y <http://example.org/resource/a> dct:conformsTo <http://example.org/specification/y> . # this triple is inferred
A starting point vocabulary of Resource Role
instances that is expected to be extended by
implementers of PROF to suite specialised needs is provided within this vocabulary in
.
The PROF vocabulary is available in RDF via the vocabulary namespace (https://www.w3.org/ns/dx/prof/
). Alongside the primary artifact, there is
a set of other RDF files that provide additional information, including:
These other artifacts are linked to throughout this document.
This vocabulary makes use of [[DCTERMS]] properties conformsTo
& format
in its
normative specification.
OWL Class | prof:Profile |
---|---|
Label: | Profile |
Definition: |
A specification that constrains, extends, combines, or provides guidance or explanation about the usage of other specifications. This definition includes what are sometimes called "application profiles", "metadata application profiles", or "metadata profiles". |
Sub class of: | dct:Standard |
Source: | https://www.w3.org/2017/dxwg/wiki/ProfileContext |
Usage Note: | The Profile class "may be used to model aspects of data structure and content (as per profile) or any other declared behaviour where a base specification can be identified and further requirements asserted. |
RDF Property: | prof:hasResource |
---|---|
OWL type: | owl:ObjectProperty |
Label: | has resource |
Definition: | A resource which describes the nature of an artifact and the role it plays in relation to the Profile |
Range: | prof:ResourceDescriptor |
RDF Property: | prof:isProfileOf |
---|---|
OWL type: | owl:ObjectProperty |
Label: | is profile of |
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 |
Sub property of: | prof:isTransitiveProfileOf |
Domain: | prof:Profile |
Range: | dct:Standard |
Usage Note: |
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.
Note that the axiom within this vocabulary that allows the inference that conformance to a profile means conformance to anything it profiles is part of the definition The use of this prof:isTransitiveProfileOf as a super-property of prof:isProfileOf allows communities of practice to exploit transitive interpretations of hierarchical network of profiles as they see fit, while not interfering with the semantics of prof:isProfileOf, which cannot enforce such transitivity. Intuitively, one can interpret prof:isProfileOf statements as explicitly asserted direct profiling links, while prof:isTransitiveProfileOf is used to reflect more-general (and possibly indirect) ancestor relationships. |
RDF Property: | prof:isTransitiveProfileOf |
---|---|
OWL type: | owl:ObjectProperty |
Label: | is a transitive profile of |
Definition: | A specification this Profile conforms to |
Super property of: | prof:isProfileOf |
Domain: | prof:Profile |
Range: | dct:Standard |
Usage note: |
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. |
# A profile that is within a hierarchy of profiles may wish to indicate it profiles # things "further up the chain". To do this, prof:isTransitiveProfileOf can be used # to indicate anything the profile is related to by a series of one or more # prof:isProfileOf properties. # Here the New Zealand profile of the ISO addressing standard is presented in a chain # of profiles: @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#> . <http://linked.data.gov.au/def/iso19160-1-address-nz-profile> a prof:Profile ; rdfs:label "New Zealand Profile of ISO19160-1" ; rdfs:comment """This is a country-specific profile of the international addressing standard, ISO19160-1:2015 (Address)""" ; prof:isProfileOf <http://linked.data.gov.au/def/iso19160-1-address> . # The ISO thing that the NZ Profile profiles is actually a Web Ontology Language # (OWL) version of the original ISO addressing standard <http://linked.data.gov.au/def/iso19160-1-address> a prof:Profile ; rdfs:label "OWL Profile of ISO19160-1" ; rdfs:comment """This profile profiles both ISO19160-1 (Addressing) and also the Web Ontology Language (OWL)""" ; prof:isProfileOf <https://www.iso.org/standard/61710.html> , <http://www.w3.org/2002/07/owl#> . <https://www.iso.org/standard/61710.html> a dct:Standard ; rdfs:label "ISO 19160-1:2015 Addressing -- Part 1: Conceptual model" . # Now, according to the semantics of prof:isTransitiveProfileOf, using the # prof:isProfileOf statements above, one can infer the following additional # statements: <http://linked.data.gov.au/def/iso19160-1-address-nz-profile> prof:isTransitiveProfileOf <http://linked.data.gov.au/def/iso19160-1-address> , <https://www.iso.org/standard/61710.html> , <http://www.w3.org/2002/07/owl#> . # These statements may help consumers understand which broad, well-known # profiles data they have conforms to when they are presented only with its # conformance to most specialised (lowest) profile in a hierarchy which they # may not understand. # In this example too, a user of the profile # <http://linked.data.gov.au/def/iso19160-1-address-nz-profile> will also # understand that data conforming to it is also conformant with OWL which is not # in the direct hierarchy of addressing standards (iso19160-1-address-nz-profile > # iso19160-1-address > ISO 19160-1:2015) but is critical to know about when using # the specialised standard as it can indicate reasoning possibilities.
RDF Property: | prof:hasToken |
---|---|
OWL type: | owl:DatatypeProperty |
Label: | has token |
Definition: | The preferred identifier for the Profile, for use in circumstances where its URI cannot be used. |
Domain: | prof:Profile |
Range: | xsd:token |
Usage note: | A simple lexical form of identifier that may be accepted in some circumstances, such as API arguments or in content negotiation, to reference a profile. This is a “preferred term”, since alternative identifiers may be declared and used by any implementation |
OWL Class | prof:ResourceDescriptor |
---|---|
Label: | Resource Descriptor |
Definition: | A resource that defines an aspect - a particular part or feature - of a Profile |
Usage note: | Used 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) |
RDF Property: | prof:hasArtifact |
---|---|
Label: | has artifact |
Definition: | The URL of a downloadable file with particulars such as its format and role indicated by the Resource Descriptor |
Domain: | prof:ResourceDescriptor |
Usage Note: | A property to link from a Resource Descriptor to an actual information resource (rdfs:Resource; an individual) that implements it |
This property is from the [[DCTERMS]] specification however the property chain axiom declared here is new in PROF.
RDF Property: | dct:conformsTo |
---|---|
Label: | Conforms To |
Definition: | An established standard to which the described resource conforms |
Sub property of: | dct:relation |
Property Chain Axiom: | owl:propertyChainAxiom ( prof:isProfileOf dct:conformsTo ) |
Usage note: |
This property is to be used to show conformance of a data resource to a specification (
The property chain axiom declared for this property means that if the thing conformed to is a profile of
something else (indicated by PROF does not specify the nature of conformance: communities using specifications and profiles are free to define appropriate conformance for their purposes. |
This property's details are from the [[DCTERMS]] specification.
RDF Property: | dct:format |
---|---|
Label: | Format |
Definition: | The file format, physical medium, or dimensions of the resource |
Sub property of: | dc:format |
RDF Property: | prof:hasRole |
---|---|
Label: | has role |
Definition: | A description of a resource that defines an aspect - a particular part, feature or role - of a Profile |
Domain: | prof:ResourceDescriptor |
Range: | skos:Concept |
Usage note: | 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 profile resource may perform multiple roles |
RDF Property: | prof:isInheritedFrom |
---|---|
Label: | is inherited from |
Definition: | A base specification, a Resource Descriptor from which is to be considered a Resource Descriptor for this Profile also |
Domain: | prof:ResourceDescriptor |
Range: | prof:Profile |
Usage note: | This property is created for the convenience of clients. When profile describers wish to allow clients to discover all profile 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 profile resources a client may need to utilise the profile should be present and described using this predicate |
To illustrate the use of prof:isInheritedFrom
, the following example is given in both pictorial
and code forms.
# If Standard X, described using PROF, is given as having a Resource # Descriptor, RD_1, with role "Full Constraints" as follows: @prefix ex1: <http://example.org/profile1/> . @prefix ex2: <http://example.org/profile2/> . @prefix dct: <http://purl.org/dc/terms/> .Property isInheritedFrom in use. @prefix prof: <http://www.w3.org/ns/dx/prof/> . @prefix role: <http://www.w3.org/ns/dx/prof/role/> . # example standard # with a single resource indicated for this Standard ex1:Standard_X a dct:Standard ; dct:title "Standard X" ; prof:hasResource ex1:RD_1 . # Example ResourceDescriptor for Standard X # * conforms to the ShEx Expression Language # * in the JSON format # * used to validate instance data claiming conformance to Standard X # * the actual file described is ex1:constraints.json ex1:RD_1 a prof:ResourceDescriptor ; dct:conformsTo <http://shex.io/shex-semantics-20191008/> ; dct:format <https://w3id.org/mediatype/application/json> ; prof:hasRole role:validation ; prof:hasArtifact ex1:constraints.json . # then, a profile of Standard X, perhaps Profile Y, may use # prof:isInheritedFrom to re-use that Resource Descriptor RD_1 ex2:Profile_Y a prof:Profile ; dct:title "Profile Y" ; prof:isProfileOf ex1:Standard_X ; # this is a profile of Standard X prof:hasResource [ # Resource Descriptor 2 in diagram # * inherited from Standard X # * conforms to SHACL # * in the Turtle format # * with an example role Part Constraints - not defined. A changed role from # the Resource Descriptor's role in relation to Profile_X # * the actual file described is ex1:constraints.json a prof:ResourceDescriptor ; prof:isInheritedFrom ex1:Standard_X ; dct:conformsTo <https://www.w3.org/TR/shacl/> ; dct:format <https://w3id.org/mediatype/text/turtle> ; prof:hasRole ex:partConstraints ; prof:hasArtifact ex1:constraints.ttl ] , [ # Resource Descriptor 3 in diagram. Not inherited from anywhere # * constraints are Profile Y's on top of Standard X's # * this is indicate with example Role Extension Constraints a prof:ResourceDescriptor ; dct:conformsTo <http://www.w3.org/ns/shacl#> ; dct:format <https://w3id.org/mediatype/text/turtle> ; prof:hasRole ex:extensionConstraints ; prof:hasArtifact ex2:extension_constraints.ttl ] .
OWL Class | prof:ResourceRole |
---|---|
Label: | Resource Role |
Definition: | A role that an profile resource, described by a Resource Descriptor, plays |
Sub class of: | skos:Concept |
Usage note: | Specific terms must come from a vocabulary. Such a vocabulary is provided in but other terms may also be used |
Here are a small set of Resource Role instances developed during the creation of this vocabulary. Applications may choose to extend this list as required with new and specialised Resource Role instances for their purposes.
These instances are both owl:NamedIndividual
s and skos:Concept
s and have basic SKOS
[[SKOS-REFERENCE]] properties.
SKOS Concept | role:constraints |
---|---|
Pref Label: | Constraints |
Definition: | Descriptions of obligations, limitations or extensions that the profile defines |
Usage Note: | Use this Role when you want to indicate the constraints that the associated Profile imposes on top of base specifications |
SKOS Concept | role:example |
---|---|
Pref Label: | Example |
Definition: | Sample instance data conforming to the profile |
Usage Note: | Use this Role when you want to provide instances of data conforming to the profile to inform users |
SKOS Concept | role:guidance |
---|---|
Pref Label: | Guidance |
Definition: | Documents, in human-readable form, how to use the profile |
Usage Note: | 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 Specification. |
SKOS Concept | role:mapping |
---|---|
Pref Label: | Mapping |
Definition: | Describes conversions between two specifications |
SKOS Concept | role:schema |
---|---|
Pref Label: | Schema |
Alternate Label: | Shape, Structure |
Definition: | Machine-readable structural descriptions of data defined by the profile |
SKOS Concept | role:specification |
---|---|
Pref Label: | Specification |
Definition: | Defining the profile in human-readable form |
Usage Note: | This role indicates authoritativeness. For a role for a human-readable resource that is not authoritative, see Guidance |
SKOS Concept | role:validation |
---|---|
Pref Label: | Validation |
Definition: | Supplies instructions about how to verify conformance of data to the profile |
Usage Note: | This role implies inclusion or import of inherited constraints |
SKOS Concept | role:vocabulary |
---|---|
Pref Label: | Vocabulary |
Definition: | Defines terms used in the profile specification |
This section contains a few examples of PROF in use to demonstrate aspects of this vocabulary. While efforts have been made to ensure they are accurate at the time of this document's publication, they are not to be considered authoritative; their purpose is only to illustrate this vocabulary's use.
This example showcases this vocabulary's description of parts of an existing, well-known, profile.
DCAT-AP is the widely used European Application Profile of DCAT. DCAT-AP is described in document form (PDF & DOCX) and a constraints profile resource for instance validation is available, formulated using the W3C's Shapes Constraints Language constraints language [[SHACL]]. An image of the DCAT-AP model is also provided.
The figure uses elements from this vocabulary to describe part of the DCAT-AP Profile graphically - PDF & RDF profile resources only - to simplify the example.
In words this vocabulary's descriptions of DCAT-AP is:
In RDF (turtle format), DCAT-AP is described using the Profiles Vocabulary, with many properties not listed in the summary figure and description above as:
@prefix dc: <http://purl.org/dc/elements/1.1/> . @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://joinup.ec.europa.eu/release/dcat-ap-v11> a prof:Profile ; prof:hasToken "dcat-ap" ; rdfs:label "DCAT-AP" ; rdfs:comment "DCAT Application Profile for data portals in Europe" ; dc:publisher "European Union" ; prof:isProfileOf <http://www.w3.org/ns/dcat> ; # SHACL constraints for the profile, guidance doc in Word & PDF & an image of the profile components prof:hasResource # Guidance doc in Word (DOCX) <https://joinup.ec.europa.eu/rdf_entity/http_e_f_fdata_ceuropa_ceu_fw21_f6f27f059_bf785_b4d7d_bb602_b6448aab73bd5> , # Guidance doc in PDF <https://joinup.ec.europa.eu/rdf_entity/http_e_f_fdata_ceuropa_ceu_fw21_f17e18570_b1d77_b4171_b9df5_bb53cb4f017d4> , # profile image (PNG) <https://joinup.ec.europa.eu/rdf_entity/http_e_f_fdata_ceuropa_ceu_fw21_f1131a208_b92e9_b4427_ba40c_b6c47746cd422> , # Constraints in SHACL <https://joinup.ec.europa.eu/rdf_entity/http_e_f_fdata_ceuropa_ceu_fw21_f016d88c3_ba0b3_b4506_bae4e_b758e7401c096> ; . # The DCAT-AP profile itself has profiles: here GeoDCAT-AP v1.0 is given <https://joinup.ec.europa.eu/release/geodcat-ap-v10> a prof:Profile ; rdfs:label "GeoDCAT-AP" ; prof:isProfileOf <https://joinup.ec.europa.eu/release/dcat-ap-v11> ; <https://joinup.ec.europa.eu/rdf_entity/http_e_f_fdata_ceuropa_ceu_fw21_f6f27f059_bf785_b4d7d_bb602_b6448aab73bd5> a prof:ResourceDescriptor; rdfs:label "DCAT-AP Guidance Document (Word)" ; dct:format <https://w3id.org/mediatype/application/msword> ; prof:hasRole role:Guidance ; . <https://joinup.ec.europa.eu/rdf_entity/http_e_f_fdata_ceuropa_ceu_fw21_f17e18570_b1d77_b4171_b9df5_bb53cb4f017d4> a prof:ResourceDescriptor; rdfs:label "DCAT-AP Guidance Document (PDF)" ; dct:format <https://w3id.org/mediatype/application/pdf> ; prof:hasRole role:Guidance ; . <https://joinup.ec.europa.eu/rdf_entity/http_e_f_fdata_ceuropa_ceu_fw21_f1131a208_b92e9_b4427_ba40c_b6c47746cd422> a prof:ResourceDescriptor; rdfs:label "DCAT-AP Image" ; dct:format <https://w3id.org/mediatype/image/png> ; prof:hasRole role:Guidance ; . <https://joinup.ec.europa.eu/rdf_entity/http_e_f_fdata_ceuropa_ceu_fw21_f016d88c3_ba0b3_b4506_bae4e_b758e7401c096> a prof:ResourceDescriptor; rdfs:label "DCAT-AP Constraints" ; dct:conformsTo <http://www.w3.org/ns/shacl>; # the namespace for SHACL dct:format "text/turtle" ; prof:hasRole role:FullConstraints ; .
This example showcases this vocabulary being used to indicated profiles within a complex hierarchy.
DCAT-AP, a profile of DCAT, has itself been profiled for various European countries, such as Belgium who has issued DCAT-BE. Additionally, there are several domain profiles of DCAT-AP, such as [[GeoDCAT-AP]] - for describing geospatial datasets, dataset series and services - and [[StatDCAT-AP]] for enhancing interoperability between descriptions of statistical datasets. Further to this, there is even an Italian profile of GeoDCAT-AP, GeoDCAT-AP_IT.
This profile hierarchy is represented graphically in the figure and RDF (turtle) below.
@prefix prof: <http://www.w3.org/ns/dx/prof/> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . <http://www.w3.org/ns/dcat> a dct:Standard ; <https://joinup.ec.europa.eu/release/dcat-ap-v11> a prof:Profile ; rdfs:label "DCAT-AP" ; prof:isProfileOf <http://www.w3.org/ns/dcat> ; <http://dcat.be> a prof:Profile ; rdfs:label "DCAT-BE" ; prof:isProfileOf <https://joinup.ec.europa.eu/release/dcat-ap-v11> ; <https://joinup.ec.europa.eu/release/geodcat-ap-v10> a prof:Profile ; rdfs:label "GeoDCAT-AP" ; prof:isProfileOf <https://joinup.ec.europa.eu/release/dcat-ap-v11> ; <https://joinup.ec.europa.eu/solution/statdcat-application-profile-data-portals-europ> a prof:Profile ; rdfs:label "StatDCAT-AP" ; prof:isProfileOf <https://joinup.ec.europa.eu/release/dcat-ap-v11> ; <https://joinup.ec.europa.eu/news/geodcat-apit1> a prof:Profile ; rdfs:label "GeoDCAT-AP_IT" ; prof:isProfileOf <https://joinup.ec.europa.eu/release/geodcat-ap-v10> ; # an example as per the Figure above, not an existing profile <http://example.org/profile/questionmark> a prof:Profile ; rdfs:label "?" ; prof:isProfileOf <https://joinup.ec.europa.eu/solution/statdcat-application-profile-data-portals-europ> , <http://dcat.be> .
Since there are no cardinality restrictions on either the property prof:isProfileOf
or other restrictions on the class definition of
prof:Profile
that prevent them from being used to represent polyhierarchies, Belgium could release a
profile of [[StatDCAT-AP]] (e.g., StatDCAT-BE), that would be both a profile of DCAT-BE and [[StatDCAT-AP]]. This
imagined profile, '?' in the figure above, would not be a profile of GeoDCAT-AP.
This example uses a dummy profile created for this document to show how PROF describes profiles created according to the Guidelines for Dublin Core Application Profiles [[DCAP]].
The DCAP Guidelines document "explains the key components of a Dublin Core Application Profile and walks through the process of developing a profile". It "does not address the creation of machine-readable implementations of an application profile" which is what PROF does.
In this example, a dummy profile of Dublin Core TERMS [[DCTERMS]] is created to characterise documents in a hypothetical "ePublish" platform. The dummy profile contains many parts:
# # This document is a description, according to the Profiles Vocabulary (see https://www.w3.org/TR/dx-prof/) # of a dummy "CSIRO ePublish Repository" profile of the Dubline Core standard. This profile is known as a DCAP - # Dublin Core Application Profile # # See http://dublincore.org/documents/profile-guidelines/ for more information about Dublin Core Application Profiles # @prefix dct: <http://purl.org/dc/terms/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix prof: <http://www.w3.org/ns/dx/prof/> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix role: <http://www.w3.org/ns/dx/prof/role/> . # Base Specification being profiled <http://dublincore.org/documents/2012/06/14/dcmi-terms/> a dct:Standard ; rdfs:label "DCMI Metadata Terms" . # dummy CSIRO profile of DC for ePublish repository # URIs not dereferencable <http://test.linked.data.gov.au/test/def/CSIRO-ePub-DCAP> a prof:Profile ; rdfs:label "CSIRO's profile of DC for ePublish" ; prof:isProfileOf <http://dublincore.org/documents/2012/06/14/dcmi-terms/> ; prof:token "ePubDC"^^xsd:Token ; prof:hasResource _:1 , _:2 , _:3 , _:4 . # example's code repository home _:1 a prof:ResourceDescriptor ; rdfs:label "Profile Specifcation" ; dct:format <https://w3id.org/mediatype/text/html> ; # the official written text specifying the Profile prof:hasRole role:Specification ; prof:hasArtifact <http://linked.data.gov.au/def/CSIRO-ePub-DCAP/> . # this is an RDF (turtle) version of the DSP constraints for this profile _:2 a prof:ResourceDescriptor ; rdfs:label "Full constraints in RDF" ; dct:conformsTo <http://dublincore.org/documents/2008/03/31/dc-dsp/> ; # the constraints conform to the DSP spec dct:format <https://w3id.org/mediatype/text/turtle> ; # it's in Turtle format # this is full constraints: if your instance passes these, you're compliant with the profile prof:hasRole role:Constraints ; prof:hasArtifact <http://test.linked.data.gov.au/test/def/CSIRO-ePub-DCAP/constraints.ttl> . _:3 a prof:ResourceDescriptor ; rdfs:label "Full constraints in DSP constraint language" ; dct:conformsTo <http://dublincore.org/documents/2008/03/31/dc-dsp/> ; # the constraints conform to the DSP spec dct:format <https://w3id.org/mediatype/text/plain> ; # it's in plain text format # this is full constraints: if your instance passes these, you're compliant with the profile prof:hasRole role:Constraints ; prof:hasArtifact <http://test.linked.data.gov.au/test/def/CSIRO-ePub-DCAP/constraints-dcap-syntax.txt> . # this profile resource is a PDF file in the def about how to use the CSIRO-ePub-DCAP _:4 a prof:ResourceDescriptor ; rdfs:label "Guidance document" ; dct:format <https://w3id.org/mediatype/application/pdf> ; # general guidance info on how to use/implement this Profile prof:hasRole role:Guidance ; prof:hasArtifact <http://test.linked.data.gov.au/test/def/CSIRO-ePub-DCAP/HowTo.pdf> .
This DCAP example shows, among other things, that a Profile
may contain multiple
Resource Descriptor
individuals that perform the same Resource Role
(here
Constraints
) that are differentiated on other bases, here on format: plain text & RDF (turtle).
This example shows a non-RDF profile of a non-RDF standard: ISO19115-1:2014 (Geographic information) [[ISO-19115-1-2014]].
Communities commonly make profiles of the International Organization for Standardization's standard ISO19115-1:2014 Geographic information -- Metadata -- Part 1: Fundamentals used for cataloguing spatial datasets. Geoscience Australia, Australia's national geological survey agency, has created a profile that constrains ISO19115-1:2014 in ways such as making optional properties in the standard mandatory for profile conformance.
The GA Profile of ISO19115 is published online as a collection of profile resources with an index document with the persistent URI http://pid.geoscience.gov.au/def/schema/ga/ISO19115-1-2014.
Although not initially formulated with PROF in mind, nevertheless the various parts of the GA Profile of ISO19115 can be characterised using PROF as per and the example RDF below. Note that the persistent URIs assigned to the profile by Geoscience Australia are used within the PROF description.
@prefix : <http://www.w3.org/ns/dx/prof/examples/ga.ttl#> . @prefix prof: <http://www.w3.org/ns/dx/prof/> . @prefix roles: <http://www.w3.org/ns/dx/prof/roles/> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix dct: <http://purl.org/dc/terms/> . @prefix dc: <http://purl.org/dc/elements/1.1/> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix dcat: <http://www.w3.org/ns/dcat#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . :ISO19115-1-2014 a dct:Standard ; rdfs:label "ISO ISO19115-1:2014" ; rdfs:comment "The international standard ISO19115-1:2014 Geographic information - Metadata" ; dc:publisher "International Organization for Standardization" ; dct:source <https://www.iso.org/standard/53798.html> . <http://pid.geoscience.gov.au/def/schema/ga/ISO19115-1-2014> a prof:Profile ; prof:token "iso19115-ga" ; rdfs:label "ISO19115-1:2014 GA Profile"; rdfs:comment """Provides a means to declare, and discover implementation profile resources to check, implementations of geographic metadata schema conforming to GA's profile."""@en; dct:publisher <http://pid.geoscience.gov.au/org/ga/geoscienceaustralia> ; prof:profileOf :ISO19115-1-2014 ; prof:hasResource :web , :spec , :schema , :constraints ; . :web a prof:ResourceDescriptor ; rdfs:label "GA Profile guidance document online" ; prof:hasRole roles:guidance ; dct:conformsTo :WebPage ; dct:format <https://w3id.org/mediatypes/text/html> ; prof:hasArtifact <http://pid.geoscience.gov.au/def/schema/ga/ISO19115-1-2014> ; . :spec a prof:ResourceDescriptor ; rdfs:label "GA Profile specification document"; prof:hasRole roles:specification ; dct:format <https://w3id.org/mediatypes/application/pdf> ; prof:hasArtifact <http://pid.geoscience.gov.au/dataset/ga/122551> ; . :schema a prof:ResourceDescriptor ; rdfs:label "GA Profile XML Schema"; prof:hasRole roles:specification ; dct:conformsTo :XSDSchema ; dct:format <https://w3id.org/mediatypes/text/xml> ; prof:hasArtifact <http://pid.geoscience.gov.au/def/schema/ga/ISO19115-3-2016/gapm.xsd> ; . :constraints a prof:ResourceDescriptor ; rdfs:label "GA Profile Schematron" ; prof:hasRole roles:fullConstraints ; dct:conformsTo :Schematron ; dct:format <https://w3id.org/mediatypes/text/xml> ; prof:hasArtifact <http://pid.geoscience.gov.au/def/schema/ga/schematron-rules-ga.sch> ; . :WebPage a dct:MediaTypeOrExtent ; rdfs:label "Web Page" ; rdfs:comment "A document written in HyperText Markup Language designed for human reading via a web browser." ; dct:source <https://www.w3.org/html/> ; . :Schematron a dct:MediaTypeOrExtent ; rdfs:label "Schematron" ; rdfs:comment "A language for making assertions about the presence or absence of patterns in XML documents." ; dct:source <http://schematron.com> ; .
This example shows a Profile
, some of whose Resource Descriptors
conform to standards.
The Asset Description Metadata Schema (ADMS) [[VOCAB-ADMS]] is a profile of DCAT, used to describe semantic
assets. Both ADMS the Profile
and two of its Resource Descriptors
are published
according to W3C specifications for Recommendations and Working Group Notes.
@prefix : <http://www.w3.org/ns/dx/prof/examples/adms.ttl#> . @prefix prof: <http://www.w3.org/ns/dx/prof/> . @prefix roles: <http://www.w3.org/ns/dx/prof/roles/> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix dct: <http://purl.org/dc/terms/> . @prefix owl: <http://www.w3.org/2002/07/owl#> . # # A series of standards defined in this examples document # :W3Cnote rdf:type dct:Standard ; rdfs:label "W3C Working Group Note Document" ; . :W3Crec rdf:type dct:Standard ; rdfs:label "W3C Recommendation Document" ; . # # ADMS, described as a profile of DCAT (original) # :ADMS a prof:Profile ; rdfs:label "ADMS" ; # this URI is for DCAT (original) as defined in the DCAT examples prof:profileOf <http://www.w3.org/ns/dx/prof/examples/dcat.ttl#dcat2014> ; prof:hasResource :ADMS-note , :ADMS-rdf , . :ADMS-note a prof:ResourceDescriptor ; rdfs:label "ADMS specification document" ; prof:hasRole roles:specification ; dct:conformsTo prof:W3Cnote ; dct:format <https://w3id.org/mediatypes/text/html> ; prof:hasArtifact <https://www.w3.org/TR/vocab-adms/> ; . :ADMS-rdf a prof:ResourceDescriptor ; rdfs:label "ADMS RDF vocabulary" ; prof:hasRole roles:vocabulary ; dct:conformsTo <https://www.w3.org/TR/owl2-rdf-based-semantics/> , <https://www.w3.org/TR/rdf-schema/> ; dct:format <https://w3id.org/mediatypes/text/turtle> ; prof:hasArtifact <https://www.w3.org/ns/adms> ; . # additional information about DCAT (original) not present in the DCAT example <http://www.w3.org/ns/dx/prof/examples/dcat.ttl#dcat-orig> dct:conformsTo :W3Crec .
A software suite is made available to test implementations of this vocabulary for compliance. This suite comprises of [[SHACL]] RDF graph validation templates and instructions for the application of those templates to implementations.
Implementation conformance reports for this vocabulary are given in:
This section lists alignments between PROF and other, related, ontologies.
PROF is considered a specialisation of the revised version of the Dataset Catalogue Vocabulary [[VOCAB-DCAT-2]]
for the purpose of cataloguing profiles. With this in mind, the main PROF classes - Profile
and
Resource Descriptor
- specialise (are sub classes of) DCAT's Resource
and
Distributions
respectively. This alignment is not normative, but is provided as a recommended way
to consider general metadata needs when describing profiles.
These specialisations are indicated in below as well as the data element mapping table that follows it.
The following table relates PROF and DCAT elements.
PROF element | Mapping property | DCAT element | Notes |
---|---|---|---|
prof:Profile | rdfs:subClassOf | dcat:Resource | prof:Profile is not a sub class of dcat:Dataset |
prof:ResourceDescriptor | rdfs:subClassOf | dcat:Distribution |
While DCAT is referenced in the main PROF RDF file, the following separate RDF file contains just the mappings included in the table above too:
The Asset Description Metadata Schema (ADMS) [[VOCAB-ADMS]] is a profile of DCAT, used to describe semantic assets. PROF is aligned with ADMS as per and table below.
Due to PROF being aligned with the revised version of DCAT and ADMS also being aligned with DCAT, classes and
properties of the two vocabularies may be sensibly used beyond the mappings presented here. In particular the fact
that both prof:Profile
and adms:Asset
are non-disjoint sub classes of
dcat:Resource
, albeit that the latter is such via being a sub class of dcat:Dataset
which subclasses dcat:Resource
, means that data resources could easily be dually typed as being of both
prof:Profile
and adms:Asset
.
The following table relates PROF and ADMS elements.
PROF element | Mapping property | ADMS element |
---|---|---|
prof:ResourceDescriptor | rdfs:subClassOf | adms:AssetDistribution |
The following RDF file contains just the mappings included in the table above:
PROF makes use of Dublin Core Terms [[DCTERMS]] directly with the PROF class prof:Profile
being a
sub class of dct:Standard
and two Dublin Core Terms properties, dct:format
&
dct:conformsTo
being recommended within PROF for use in describing instances of the
prof:ResourceDescriptor
class.
PROF is aligned with Dublin Core Terms as per and table below.
The following table relates PROF and Dublin Core Terms elements.
PROF element | Mapping property | DCT element |
---|---|---|
prof:Profile | rdfs:subClassOf | dct:Standard |
While Dublin Core Terms is referenced in the main PROF RDF file, the following RDF file contains just the mappings included in the table above:
PROF is a vocabulary formulated using the Web Ontology Language (OWL) [[OWL2-OVERVIEW]]. In addition to the basic
modelling mechanics of PROF that use OWL, for example PROF classes being defined as owl:Class
objects and PROF properties being OWL owl:ObjectProperty
or other OWL property types, some of the
core PROF modelling concepts relate to OWL ontology concepts.
PROF is aligned with OWL at a conceptual modelling level as per and table below.
PROF element | Mapping property | OWL element |
---|---|---|
prof:isProfileOf | ? | owl:imports |
The following RDF file contains just the mappings included in the table above:
Vocabulary of a Friend (VOAF) is a vocabulary specification providing elements allowing the description of
vocabularies (RDFS vocabularies or OWL ontologies) [[VOAF]]. Due to VOAF being defined for use with RDF data resources instances
only, PROF has an alignment with VOAF which is instance-specific: data resources described by instances of PROF's
prof:ResourceDescriptor
class with the property prof:resourceRole
linking to the
Resource Role role:Vocabulary
, or a specialized version of it, may be a voaf:Vocabulary
.
PROF element | Mapping property | VOAF element |
---|---|---|
instance of rdf:Resource | related to an instance of a prof:ResourceDescriptor via
prof:hasArtifact that also relates to the Role role:Vocabulary or specialisation
thereof
|
instance of voaf:Vocabulary |
The following RDF file contains just the mappings included in the table above:
The Simple Knowledge Organization System (SKOS) [[SKOS-REFERENCE]] is a data model knowledge organization
systems, such as thesauri, taxonomies, classification schemes and subject heading systems. PROF declares its
instances of Resource Role
to be instances of the skos:Concept
class to indicate that
they should be considered a hierarchy of concepts within a skos:ConceptScheme
. Since they are SKOS
hierarchy and it is recommended that implementers of PROF extend the hierarchy for their own needs, implementers
should consider creating new Resource Role
(also skos:Concept
) and relating them to the
existing instances with SKOS properties, particularly skos:narrower
/skos:broader
.
PROF element | Mapping property | SKOS element |
---|---|---|
prof:ResourceRole | rdfs:subClassOf | skos:Concept |
While SKOS is referenced in the main PROF RDF file, the following RDF file contains just the mappings included in the table above:
The PROF vocabulary, when used with likely extensions such as [[DCTERMS]], supports the attribution of data and metadata to various participants such as data 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.
Changes since the Second Public Working Draft, 02 April 2019, are:
dct:conformsTo
axiomdct:conformsTo
added, a second & third Initial Example addeddct:conformsTo
axiom added, diagrams updatedThe following features of in this specification are considered AT RISK pending evidence of implementation:
prof:Profile
prof:ResourceDescriptor
prof:hasArtifact
dct:conformsTo
dct:conformsTo
's axiom: dct:conformsTo owl:propertyChainAxiom ( prof:isProfileOf dct:conformsTo )
dct:format
prof:hasRole
prof:isInheritedFrom
prof:ResourceRole
– all instancesThe 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.