dpv icon indicating copy to clipboard operation
dpv copied to clipboard

Add Profile vocabulary metadata

Open coolharsh55 opened this issue 1 year ago • 3 comments

Terms from https://www.w3.org/TR/dx-prof/

Declare in metadata: DPV as a specification, declare extensions, declare serialisations - HTML, RDF (various), declare guides.

coolharsh55 avatar May 09 '24 08:05 coolharsh55

Proposal:

PREFIX profile: <http://www.w3.org/ns/dx/prof/>
PREFIX role: <http://www.w3.org/ns/dx/prof/role/>

<https://w3id.org/dpv> a profile:Profile ;
	profile:isProfileOf <http://www.w3.org/2000/01/rdf-schema>, <http://www.w3.org/2004/02/skos/core> ;
	profile:hasResource dpv:html, dpv:primer, dpv:use-cases, dpv:examples, 
		dpv:ttl, dpv:jsonld, dpv:n3, dpv:rdf .

dpv:html a profile:ResourceDescriptor ;
    profile:hasRole role:specification ;
    profile:hasArtifact <https://w3c.github.io/dpv/dpv/index.html> ;
    dcterms:title "Data Privacy Vocabulary HTML specification"@en ;
    dcterms:format <https://www.iana.org/assignments/media-types/text/html> ;
    dcterms:conformsTo <https://www.w3.org/TR/html/> .

dpv:primer a profile:ResourceDescriptor ;
    profile:hasRole role:guidance ;
    profile:hasArtifact <https://w3c.github.io/dpv/primer/index.html> ;
    dcterms:title "Data Privacy Vocabulary Primer HTML specification"@en ;
    dcterms:format <https://www.iana.org/assignments/media-types/text/html> ;
    dcterms:conformsTo <https://www.w3.org/TR/html/> .

dpv:use-cases a profile:ResourceDescriptor ;
    profile:hasRole role:guidance ;
    profile:hasArtifact <https://w3c.github.io/dpv/use-cases/index.html> ;
    dcterms:title "Data Privacy Vocabulary Use-Cases and Requirements HTML specification"@en ;
    dcterms:format <https://www.iana.org/assignments/media-types/text/html> ;
    dcterms:conformsTo <https://www.w3.org/TR/html/> .

dpv:examples a profile:ResourceDescriptor ;
    profile:hasRole role:guidance ;
    profile:hasArtifact <https://w3c.github.io/dpv/examples/index.html> ;
    dcterms:title "Data Privacy Vocabulary Examples HTML specification"@en ;
    dcterms:format <https://www.iana.org/assignments/media-types/text/html> ;
    dcterms:conformsTo <https://www.w3.org/TR/html/> .

dpv:ttl a profile:ResourceDescriptor ;
    profile:hasRole role:vocabulary ;
    profile:hasArtifact <https://w3c.github.io/dpv/dpv/dpv.ttl> ;
    dcterms:title "Data Privacy Vocabulary Turtle vocabulary"@en ;
    dcterms:format <https://www.iana.org/assignments/media-types/text/turtle> ;
    dcterms:conformsTo <https://www.w3.org/TR/turtle/> .

dpv:jsonld a profile:ResourceDescriptor ;
    profile:hasRole role:vocabulary ;
    profile:hasArtifact <https://w3c.github.io/dpv/dpv/dpv.jsonld> ;
    dcterms:title "Data Privacy Vocabulary JSON-LD vocabulary"@en ;
    dcterms:format <https://www.iana.org/assignments/media-types/application/ld+json> ;
    dcterms:conformsTo <https://www.w3.org/TR/json-ld11/> .

dpv:n3 a profile:ResourceDescriptor ;
    profile:hasRole role:vocabulary ;
    profile:hasArtifact <https://w3c.github.io/dpv/dpv/dpv.n3> ;
    dcterms:title "Data Privacy Vocabulary N3 vocabulary"@en ;
    dcterms:format <https://www.iana.org/assignments/media-types/text/n3> ;
    dcterms:conformsTo <https://www.w3.org/TeamSubmission/n3/> .

dpv:rdf a profile:ResourceDescriptor ;
    profile:hasRole role:vocabulary ;
    profile:hasArtifact <https://w3c.github.io/dpv/dpv/dpv.rdf> ;
    dcterms:title "Data Privacy Vocabulary RDF vocabulary"@en ;
    dcterms:format <https://www.iana.org/assignments/media-types/application/rdf+xml> ;
    dcterms:conformsTo <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

and then for each extension define it as profile of DPV:

<https://w3id.org/dpv/legal/eu/dga/eu-dga> a profile:Profile ;
	profile:isProfileOf <https://w3id.org/dpv> ;
	profile:hasResource eu-dga:html, eu-dga:ttl, eu-dga:jsonld, eu-dga:n3, eu-dga:rdf .

eu-dga:html a profile:ResourceDescriptor ;
    profile:hasRole role:specification ;
    profile:hasArtifact <https://w3c.github.io/dpv/legal/eu/dga/index.html> ;
    dcterms:title "EU-DGA Extension for the Data Privacy Vocabulary HTML specification"@en ;
    dcterms:format <https://www.iana.org/assignments/media-types/text/html> ;
    dcterms:conformsTo <https://www.w3.org/TR/html/> .

eu-dga:ttl a profile:ResourceDescriptor ;
    profile:hasRole role:vocabulary ;
    profile:hasArtifact <https://w3c.github.io/dpv/legal/eu/dga/eu-dga.ttl> ;
    dcterms:title "EU-DGA Extension for the Data Privacy Vocabulary Turtle vocabulary"@en ;
    dcterms:format <https://www.iana.org/assignments/media-types/text/turtle> ;
    dcterms:conformsTo <https://www.w3.org/TR/turtle/> .

...

guides can also be added to the extensions e.g. for the GDPR extension we have guides for consent records, data breach, ...

besteves4 avatar May 17 '24 14:05 besteves4

Thanks - I'll add all these in to be generated programmatically.

coolharsh55 avatar May 17 '24 14:05 coolharsh55

Hi @besteves4 can you please review this, I think I have it correct - though the artifact links may be broken

DPV -

<https://w3id.org/dpv> a owl:Ontology,
        profile:Profile ;
    profile:hasResource dpv:serialisation-rdf,
        dpv:serialisation-ttl,
        <https://w3id.org/dpv/examples>,
        <https://w3id.org/dpv/guides>,
        <https://w3id.org/dpv/primer> ;
    profile:isProfileOf rdfs:,
        skos: ;
    dct:conformsTo "http://www.w3.org/2000/01/rdf-schema",
        "http://www.w3.org/2004/02/skos/core" ;

dpv:serialisation-ttl a profile:ResourceDescriptor ;
    dct:conformsTo <https://www.w3.org/TR/turtle/> ;
    dct:format <https://www.iana.org/assignments/media-types/text/turtle> ;
    dct:title "Data Privacy Vocabulary (DPV) - Turtle serialiation" ;
    profile:hasArtifact <https://w3id.org/dpv/dpv.ttl> ;
    profile:hasRole role:vocabulary .

EU GDPR -

<https://w3id.org/dpv/legal/eu/gdpr> a owl:Ontology,
        profile:Profile ;
    dct:conformsTo "http://www.w3.org/2000/01/rdf-schema",
        "http://www.w3.org/2004/02/skos/core" ;
profile:hasResource <https://w3id.org/dpv/examples>, # retained because these are examples also for GDPR
        <https://w3id.org/dpv/guides>,
        eu-gdpr:serialisation-rdf,
        eu-gdpr:serialisation-ttl,
        <https://w3id.org/dpv/primer> ;
    profile:isProfileOf rdfs:,
        skos:,
        <https://w3id.org/dpv> ;

coolharsh55 avatar May 17 '24 23:05 coolharsh55

Indeed, the artifact link is broken. Also, in the DPV metadata beyond the serialisations, we are missing a profile:hasResource with the HTML documentation, which should have role:specification. In the GDPR extension, I don't think we need profile:isProfileOf rdfs:, skos:, <https://w3id.org/dpv> ;, profile:isProfileOf <https://w3id.org/dpv> ; should be enough as RDFS and SKOS are inherited from DPV.

besteves4 avatar May 21 '24 07:05 besteves4

Hi. Thanks for checking.

Indeed, the artifact link is broken.

The DPV spec is the exception with path w3id.org/dpv/dpv/dpv.ttl corresponding to the RDF, I'll fix that.

Also, in the DPV metadata beyond the serialisations, we are missing a profile:hasResource with the HTML documentation, which should have role:specification.

I'll add that.

In the GDPR extension, I don't think we need profile:isProfileOf rdfs:, skos:, <https://w3id.org/dpv> ;, profile:isProfileOf <https://w3id.org/dpv> ; should be enough as RDFS and SKOS are inherited from DPV.

I wanted them in so we can distinguish between the RDFS/SKOS and OWL variants - unless that's something that doesn't conform to Profile requirements?

coolharsh55 avatar May 21 '24 07:05 coolharsh55

I wanted them in so we can distinguish between the RDFS/SKOS and OWL variants - unless that's something that doesn't conform to Profile requirements?

Makes sense, then yes indeed, I don't see anything against in the profile requirements.

besteves4 avatar May 21 '24 08:05 besteves4