Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 15 additions & 24 deletions datavoc/vocabulary.rdf
Original file line number Diff line number Diff line change
Expand Up @@ -12,64 +12,55 @@
<dcterms:Standard rdf:about="https://w3id.org/inspec/datavoc/PROF">
<rdfs:label xml:lang="en">PROF</rdfs:label>
<rdfs:isDefinedBy rdf:resource="https://w3id.org/inspec/datavoc/"/>
<rdfs:comment xml:lang="en">This is a specification corresponding to a profile of PROF used to capture an interoperable specification. Corresponds to the rules INSPEC-1 — INSPEC-10.</rdfs:comment>
<rdfs:comment xml:lang="en">This is a specification corresponding to a profile of PROF used to capture an interoperable specification. Corresponds to the PROF rules.</rdfs:comment>
<rdfs:seeAlso rdf:resource="https://www.w3.org/TR/dx-prof/"/>
</dcterms:Standard>
<dcterms:Standard rdf:about="https://w3id.org/inspec/datavoc/RDFS">
<rdfs:label xml:lang="en">RDFS</rdfs:label>
<rdfs:isDefinedBy rdf:resource="https://w3id.org/inspec/datavoc/"/>
<rdfs:comment xml:lang="en">This is a specification corresponding to a profile of RDFS used to capture an expression of data vocabularies. Corresponds to the rules DV-1 — DV-6.</rdfs:comment>
<rdfs:comment xml:lang="en">This is a specification corresponding to a profile of RDFS used to capture an expression of data vocabularies. Corresponds to the DV rules.</rdfs:comment>
<rdfs:seeAlso rdf:resource="https://www.w3.org/TR/rdf12-schema/"/>
</dcterms:Standard>
<dcterms:Standard rdf:about="https://w3id.org/inspec/datavoc/SKOS">
<rdfs:label xml:lang="en">SKOS</rdfs:label>
<rdfs:isDefinedBy rdf:resource="https://w3id.org/inspec/datavoc/"/>
<rdfs:comment xml:lang="en">This is a specification corresponding to a profile of SKOS used to capture an expression of terminologies. Corresponds to the rules TE-1 — TE-5.</rdfs:comment>
<rdfs:comment xml:lang="en">This is a specification corresponding to a profile of SKOS used to capture an expression of terminologies. Corresponds to the TE rules.</rdfs:comment>
<rdfs:seeAlso rdf:resource="https://www.w3.org/TR/skos-reference/"/>
</dcterms:Standard>
<dcterms:Standard rdf:about="https://w3id.org/inspec/datavoc/SHACL">
<rdfs:label xml:lang="en">SHACL</rdfs:label>
<rdfs:isDefinedBy rdf:resource="https://w3id.org/inspec/datavoc/"/>
<rdfs:comment xml:lang="en">This is a specification corresponding to a profile of SHACL used to capture an expression of application profiles. Corresponds to the rules AP-1 — AP-16.</rdfs:comment>
<rdfs:comment xml:lang="en">This is a specification corresponding to a profile of SHACL used to capture an expression of application profiles. Corresponds to the AP rules.</rdfs:comment>
<rdfs:seeAlso rdf:resource="https://www.w3.org/TR/shacl"/>
</dcterms:Standard>
<dcterms:Standard rdf:about="https://w3id.org/inspec/datavoc/SVG">
<rdfs:label xml:lang="en">SVG</rdfs:label>
<rdfs:isDefinedBy rdf:resource="https://w3id.org/inspec/datavoc/"/>
<rdfs:comment xml:lang="en">This is a specification corresponding to a profile of SVG used to capture an expression of diagrams for interoperable specifications. Corresponds to the rules SVG-1 — SVG-5.</rdfs:comment>
<rdfs:comment xml:lang="en">This is a specification corresponding to a profile of SVG used to capture an expression of diagrams for interoperable specifications. Corresponds to the SVG rules.</rdfs:comment>
<rdfs:seeAlso rdf:resource="https://www.w3.org/TR/SVG11/"/>
</dcterms:Standard>
<rdf:Property rdf:about="https://w3id.org/inspec/datavoc/variant">
<rdfs:label xml:lang="en">variant</rdfs:label>
<rdfs:isDefinedBy rdf:resource="https://w3id.org/inspec/datavoc/"/>
<rdfs:comment xml:lang="en">A shape or profile is a variant of another if it relaxes some of its constraints</rdfs:comment>
<rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
<rdfs:domain>
<rdf:Description rdf:nodeID="naf255206f4f948d1bb5e5f5f0440d55db1">
<owl:unionOf rdf:parseType="Collection">
<rdf:Description rdf:about="http://www.w3.org/ns/shacl#Shape"/>
<rdf:Description rdf:about="http://www.w3.org/ns/dx/prof/Profile"/>
</owl:unionOf>
</rdf:Description>
</rdfs:domain>
<rdfs:range>
<rdf:Description rdf:nodeID="naf255206f4f948d1bb5e5f5f0440d55db4">
<owl:unionOf rdf:parseType="Collection">
<rdf:Description rdf:about="http://www.w3.org/ns/shacl#Shape"/>
<rdf:Description rdf:about="http://www.w3.org/ns/dx/prof/Profile"/>
</owl:unionOf>
</rdf:Description>
</rdfs:range>
<rdfs:domain rdf:nodeID="ShapeOrProfile"/>
<rdfs:range rdf:nodeID="ShapeOrProfile"/>
</rdf:Property>
<rdf:Property rdf:about="https://w3id.org/inspec/datavoc/refines">
<rdfs:label xml:lang="en">refines</rdfs:label>
<rdfs:isDefinedBy rdf:resource="https://w3id.org/inspec/datavoc/"/>
<rdfs:comment xml:lang="en">A shape refines another by adding additional constraints to it</rdfs:comment>
<rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/relation"/>
<rdfs:domain rdf:resource="http://www.w3.org/ns/shacl#Shape"/>
<rdfs:range rdf:resource="http://www.w3.org/ns/shacl#Shape"/>
<rdfs:seeAlso rdf:resource="http://www.w3.org/ns/dx/prof/isProfileOf"/>
<rdfs:domain rdf:nodeID="ShapeOrProfile"/>
<rdfs:range rdf:nodeID="ShapeOrProfile"/>
</rdf:Property>
<rdf:Description rdf:nodeID="ShapeOrProfile">
<owl:unionOf rdf:parseType="Collection">
<rdf:Description rdf:about="http://www.w3.org/ns/shacl#Shape"/>
<rdf:Description rdf:about="http://www.w3.org/ns/dx/prof/Profile"/>
</owl:unionOf>
</rdf:Description>
<rdf:Property rdf:about="https://w3id.org/inspec/datavoc/reuses">
<rdfs:label xml:lang="en">reuses</rdfs:label>
<rdfs:isDefinedBy rdf:resource="https://w3id.org/inspec/datavoc/"/>
Expand Down
19 changes: 11 additions & 8 deletions datavoc/vocabulary.ttl
Original file line number Diff line number Diff line change
Expand Up @@ -14,31 +14,31 @@ inspec: a owl:Ontology ;
inspec:PROF a dct:Standard ;
rdfs:label "PROF"@en ;
rdfs:isDefinedBy inspec: ;
rdfs:comment "This is a specification corresponding to a profile of PROF used to capture an interoperable specification. Corresponds to the rules INSPEC-1 — INSPEC-10."@en ;
rdfs:comment "This is a specification corresponding to a profile of PROF used to capture an interoperable specification. Corresponds to the PROF rules."@en ;
rdfs:seeAlso <https://www.w3.org/TR/dx-prof/> .

inspec:RDFS a dct:Standard ;
rdfs:label "RDFS"@en ;
rdfs:isDefinedBy inspec: ;
rdfs:comment "This is a specification corresponding to a profile of RDFS used to capture an expression of data vocabularies. Corresponds to the rules DV-1 — DV-6."@en ;
rdfs:comment "This is a specification corresponding to a profile of RDFS used to capture an expression of data vocabularies. Corresponds to the DV rules."@en ;
rdfs:seeAlso <https://www.w3.org/TR/rdf12-schema/> .

inspec:SKOS a dct:Standard ;
rdfs:label "SKOS"@en ;
rdfs:isDefinedBy inspec: ;
rdfs:comment "This is a specification corresponding to a profile of SKOS used to capture an expression of terminologies. Corresponds to the rules TE-1 — TE-5."@en ;
rdfs:comment "This is a specification corresponding to a profile of SKOS used to capture an expression of terminologies. Corresponds to the TE rules."@en ;
rdfs:seeAlso <https://www.w3.org/TR/skos-reference/> .

inspec:SHACL a dct:Standard ;
rdfs:label "SHACL"@en ;
rdfs:isDefinedBy inspec: ;
rdfs:comment "This is a specification corresponding to a profile of SHACL used to capture an expression of application profiles. Corresponds to the rules AP-1 — AP-16."@en ;
rdfs:comment "This is a specification corresponding to a profile of SHACL used to capture an expression of application profiles. Corresponds to the AP rules."@en ;
rdfs:seeAlso <https://www.w3.org/TR/shacl> .

inspec:SVG a dct:Standard ;
rdfs:label "SVG"@en ;
rdfs:isDefinedBy inspec: ;
rdfs:comment "This is a specification corresponding to a profile of SVG used to capture an expression of diagrams for interoperable specifications. Corresponds to the rules SVG-1 — SVG-5."@en ;
rdfs:comment "This is a specification corresponding to a profile of SVG used to capture an expression of diagrams for interoperable specifications. Corresponds to the SVG rules."@en ;
rdfs:seeAlso <https://www.w3.org/TR/SVG11/> .

inspec:variant a rdf:Property ;
Expand All @@ -58,9 +58,12 @@ inspec:refines a rdf:Property ;
rdfs:isDefinedBy inspec: ;
rdfs:comment "A shape refines another by adding additional constraints to it"@en ;
rdfs:subPropertyOf dcterms:relation ;
rdfs:domain sh:Shape ;
rdfs:range sh:Shape ;
rdfs:seeAlso prof:isProfileOf .
rdfs:domain [
owl:unionOf (sh:Shape prof:Profile)
] ;
rdfs:range [
owl:unionOf (sh:Shape prof:Profile)
].

inspec:reuses a rdf:Property ;
rdfs:label "reuses"@en ;
Expand Down
16 changes: 11 additions & 5 deletions docs/ap.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Let's clarify the words we are using in SHACL-INSPEC:

## Application Profile expression

If you have not already, take a look at the [sixteen rules of SHACL-INSPEC](rules.md#rules-for-application-profiles---shacl-inspec).
If you have not already, take a look at the [fifteen rules of SHACL-INSPEC](rules.md#rules-for-application-profiles---shacl-inspec).
These rules may be a bit hard to take in, especially since SHACL is a complex language. Hence, below we list what is to be expected based on the application profile as a whole as well as on the shapes.

First of all, for simplicity the requirement on multilinguality are not written explicitly below, i.e. labels, description / definition and usage note are all expected to be expressed with a language and potentially translated into several languages.
Expand All @@ -35,16 +35,13 @@ The following information MUST be provided for an application profile resource:
* The application profile resource must have a stable identity in the form of a URI (subject position in triples)
* The application profile resource must be typed as `prof:Profile`
* A label expressed via the property `sh:name`
* A list of public node shapes indicated via the property `dcterms:hasPart`
* A list of public property shapes indicated via the property `dcterms:hasPart`

The following information SHOULD/MAY be provided:

* A list of all classes and properties used in the application profile, indicated via the properties `inspec:reuses` or `inspec:introduces`
* A description / definition expressed via the property `sh:description`
* A usage note expressed via the property `skos:scopeNote`
* A reference to another application profile that expresses that it is a
* "subprofile" of another profile via `prof:isProfileOf`
* "subprofile" of another profile via `inspec:refines`
* "variant of" another profile via the `inspec:variant`

Note that for B being a subprofile of A:
Expand All @@ -54,6 +51,15 @@ Note that for B being a subprofile of A:

Note also that the concepts of Application profiles being subprofiles and variant of each other of are exclusive since for the variant relation there is a requirement that at least one of the node shapes has to be a variant.

### Interoperable specification resource

The following information derived from the Application Profile MAY be provided for a profil interoperable specification resource:

* A list of public node shapes in the application profile, indicated via the property `dcterms:hasPart`
* A list of public property shapes in the application profile, indicated via the property `dcterms:hasPart`
* A list of all classes and properties used in the application profile, indicated via the properties `inspec:reuses` or `inspec:introduces`
* A relation, indicated via the `prof:isProfileOf` property, to any specification introducing an application profile for which there is a subprofile relation from the application profile

### Main and supportive node shapes

Note that there are node shapes of more technical nature that are excluded from the requirements below, all those must have a `sh:severity` set to `sh:INFO` or `sh:WARNING`. For example this covers node shapes pointed to via `sh:node` used to express more complex constraints such as indicating which terminology to choose concepts from.
Expand Down
10 changes: 5 additions & 5 deletions docs/bootstrapping.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,23 @@ inspec | <https://w3id.org/inspec/datavoc/>

## inspec:PROF

This is a specification corresponding to a profile of PROF used to capture an interoperable specification. Corresponds to the rules INSPEC-1 — INSPEC-10.
This is a specification corresponding to a profile of PROF used to capture an interoperable specification. Corresponds to the PROF rules.

## inspec:RDFS

This is a specification corresponding to a profile of RDFS used to capture an expression of data vocabularies. Corresponds to the rules DV-1 — DV-6.
This is a specification corresponding to a profile of RDFS used to capture an expression of data vocabularies. Corresponds to the DV rules.

## inspec:SKOS

This is a specification corresponding to a profile of SKOS used to capture an expression of terminologies. Corresponds to the rules TE-1 — TE-5.
This is a specification corresponding to a profile of SKOS used to capture an expression of terminologies. Corresponds to the TE rules.

## inspec:SHACL

This is a specification corresponding to a profile of SHACL used to capture an expression of application profiles. Corresponds to the rules AP-1 — AP-16.
This is a specification corresponding to a profile of SHACL used to capture an expression of application profiles. Corresponds to the AP rules.

## inspec:SVG

This is a specification corresponding to a profile of SVG used to capture an expression of diagrams for interoperable specifications. Corresponds to the rules SVG-1 — SVG-5.
This is a specification corresponding to a profile of SVG used to capture an expression of diagrams for interoperable specifications. Corresponds to the SVG rules.

## inspec:UML_OSLO

Expand Down
26 changes: 13 additions & 13 deletions docs/example.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,21 +78,10 @@ ex:vi1 a prof:ResourceDescriptor ;
prof:hasRole profrole:specification .
```

The following triples can be provided as part of PROF-INSPEC, alternatively they can be auto generated as part of the harvesting process.
The following triples may be provided as part of the enrichment described in [ENRICH-INSPEC](rules.md#rules-for-enriching-the-interoperable-specifications---enrich-inspec), and are expected to be auto generated as part of the harvesting process.

```turtle
# referenced classes and properties - AP-16
ex:spec1 inspec:reuses foaf:Document ;
inspec:reuses dcterms:title ;
inspec:reuses dcterms:created ;
inspec:reuses dcterms:publisher ;
inspec:reuses dcterms:subject ;
inspec:reuses foaf:Person ;
inspec:reuses foaf:name ;
inspec:reuses foaf:mbox ;
inspec:introduces ex:personNumber .

# public shapes - generated as part of the harvesting process
# public shapes - ENRICH-1
ex:spec1 dcterms:hasPart ex:ns-document ;
dcterms:hasPart ex:ps-title ;
dcterms:hasPart ex:ps-created ;
Expand All @@ -102,6 +91,17 @@ ex:spec1 dcterms:hasPart ex:ns-document ;
dcterms:hasPart ex:ps-name ;
dcterms:hasPart ex:ps-mbox ;
dcterms:hasPart ex:ps-pnr .

# referenced classes and properties - ENRICH-2
ex:spec1 inspec:reuses foaf:Document ;
inspec:reuses dcterms:title ;
inspec:reuses dcterms:created ;
inspec:reuses dcterms:publisher ;
inspec:reuses dcterms:subject ;
inspec:reuses foaf:Person ;
inspec:reuses foaf:name ;
inspec:reuses foaf:mbox ;
inspec:introduces ex:personNumber .
```

## RDFS-INSPEC expression
Expand Down
8 changes: 4 additions & 4 deletions docs/harvesting.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# Harvesting interoperable specifications

The starting point when you harvest is an expression according to PROF-INSPEC, see rules INSPEC-1 - INSPEC-10.
The starting point when you harvest is an expression according to PROF-INSPEC, see rules PROF-1 - PROF-10.

## Native harvesting according to INSPEC profile

Below we will refer to the interoperable specification resource as INSPEC resource, see by INSPEC-1 what we require of it.
Below we will refer to the interoperable specification resource as INSPEC resource, see by PROF-1 what we require of it.

### Data vocabulary

If the data vocabulary is reused, i.e. `prof:isInheritedFrom` is provided, no loading is done. If the referenced interoperable specification does not exist already in the system a warning is logged.

If the data vocabulary is not reused it is attempted to be retrieved from either the `prof:hasArtifact` value or the subject. The retrieved RDF datasource is checked against RDFS-INSPEC before being loaded into the triplestore. All classes and properties should be available in the triplestore. The ontology resource should also be available for easy access in the triplestore and also pointed to via `dcterms:subject` from the corresponding `prof:ResourceDescriptor`. (The classes and properties will only be pointed to via the `inspec:reuses` or `inspec:introduces` properties from the INSPEC resource if they are explicitly used as indicated in the application profile, see below.)
If the data vocabulary is not reused it is attempted to be retrieved from either the `prof:hasArtifact` value or the subject. The retrieved RDF datasource is checked against RDFS-INSPEC before being loaded into the triplestore. All classes and properties should be available in the triplestore. The ontology resource should also be available for easy access in the triplestore and also pointed to via `dcterms:subject` from the corresponding `prof:ResourceDescriptor`. (The classes and properties will only be pointed to via the `inspec:reuses` or `inspec:introduces` properties from the INSPEC resource if they are explicitly used as indicated in the application profile, see below, or if the specification is a foundational interoperable specification introducing the data vocabulary.)

### Terminology

Expand All @@ -20,7 +20,7 @@ If the terminology is not reused it is attempted to be retrieved from either the

### Application profile

The application is attempted to be retrieved from either the `prof:hasArtifact` value or the subject. The retrieved RDF datasource is checked against SHACL-INSPEC before proceeding. All public property and node shapes introduced in this application profile should be calculated and indicated via `dcterms:hasPart` from the INSPEC resource. Further metadata about the node and property shapes needs not be added to the triplestore directly. Only the metadata about the INSPEC resource itself from the application profile needs to be added. All classes and properties referenced from node and property shapes should be indicated via the `inspec:reuses` or `inspec:introduces` properties from the INSPEC resource.
The application is attempted to be retrieved from either the `prof:hasArtifact` value or the subject. The retrieved RDF datasource is checked against SHACL-INSPEC before proceeding. All public property and node shapes introduced in this application profile should be calculated and indicated via `dcterms:hasPart` from the INSPEC resource. Further metadata about the node and property shapes needs not be added to the triplestore directly. Only the metadata about the INSPEC resource itself from the application profile needs to be added. All classes and properties referenced from node and property shapes should be indicated via the `inspec:reuses` or `inspec:introduces` properties from the INSPEC resource. If there is a second application profile referenced via an `inspec:refines` relationship, then this should also be added as a `prof:isProfileOf` relation from the INSPEC resource.

### Diagram

Expand Down
Loading