Skip to content

Draft DID Core Vocabulary

Ivan Herman edited this page Sep 25, 2020 · 3 revisions
@prefix : <https://www.w3.org/ns/did/core-vocabulary#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@base <https://www.w3.org/ns/did/core-vocabulary> .

<https://www.w3.org/ns/did/core-vocabulary#> a owl:Ontology .


#################################################################
#    Classes
#################################################################

:DIDSubject a rdfs:Class ;
    rdfs:comment "Top level class for resources identified via a DID subject" ;
    rdfs:isDefinedBy "https://www.w3.org/TR/did-core/#core-properties" ;
    rdfs:label "DID Document" ;
.


:VerificationMethod a rdfs:Class ;
    rdfs:comment "Superclass for all specific verification Methods. It is an 'abstract' class, never used by itself." ;
    rdfs:isDefinedBy "https://www.w3.org/TR/did-core/#verification-methods" ;
    rdfs:label "Verification Method" ;
.


:Ed25519VerificationKey2018 a rdfs:Class ;
    rdfs:subClassOf :VerificationMethod ;
    rdfs:comment "Ed25519 public key values MUST either be encoded as a JWK [RFC7517] or be encoded as the raw 32-byte public key value in Base58 Bitcoin format [BASE58] using the publicKeyBase58 property." ;
    rdfs:isDefinedBy "https://www.w3.org/TR/did-core/#key-types-and-formats" ;
    rdfs:label "Ed25519 public key" ;
.


:RsaVerificationKey2018 a rdfs:Class ;
    rdfs:subClassOf :VerificationMethod ;
    rdfs:comment "RSA public key values MUST either be encoded as a JWK [RFC7517] or be encoded in Privacy Enhanced Mail (PEM) format using the publicKeyPem property." ;
    rdfs:isDefinedBy "https://www.w3.org/TR/did-core/#key-types-and-formats" ;
    rdfs:label "RSA public key" ;
.


:SchnorrSecp256k1VerificationKey2019 a rdfs:Class ;
    rdfs:subClassOf :VerificationMethod ;
    rdfs:comment "Secp256r1 public key values MUST either be encoded as a JWK [RFC7517] or be encoded as the raw 32-byte public key value encoded in Base58 Bitcoin format [BASE58] using the publicKeyBase58 property." ;
    rdfs:isDefinedBy "https://www.w3.org/TR/did-core/#key-types-and-formats" ;
    rdfs:label "Secp256r1 public key" ;
.


:Secp256k1Koblitz a rdfs:Class ;
    rdfs:subClassOf :VerificationMethod ;
    rdfs:comment "Secp256k1 Koblitz public key values MUST either be encoded as a JWK [RFC7517] or be encoded as the raw 33-byte public key value in Base58 Bitcoin format [BASE58] using the publicKeyBase58 property. Class name is still pending." ;
    rdfs:isDefinedBy "https://www.w3.org/TR/did-core/#key-types-and-formats" ;
    rdfs:label "Secp256k1 Koblitz public key" ;
.


:X25519KeyAgreementKey2019 a rdfs:Class ;
    rdfs:subClassOf :VerificationMethod ;
    rdfs:comment "Curve25519 (also known as X25519) public key values MUST either be encoded as a JWK [RFC7517] or be encoded as the raw 32-byte public key value in Base58 Bitcoin format [BASE58] using the publicKeyBase58 property." ;
    rdfs:isDefinedBy "https://www.w3.org/TR/did-core/#key-types-and-formats" ;
    rdfs:label "Curve25519 (aka X25519) public key" ;
.


:Service a rdfs:Class ;
    rdfs:comment "Service endpoints are used in DID documents to express ways of communicating with the DID subject or associated entities" ;
    rdfs:isDefinedBy "https://www.w3.org/TR/did-core/#service-endpoints" ;
    rdfs:label "Service Endpoint" ;
.


#################################################################
#    Properties
#################################################################

:alsoKnownAs a rdf:Property ;
    rdfs:domain :DIDSubject ;
    rdfs:isDefinedBy "https://www.w3.org/TR/did-core/#did-subject" ;
.


:controller a rdf:Property ;
    rdfs:isDefinedBy "https://www.w3.org/TR/did-core/#control" ;
.


:verificationMethod a rdf:Property ;
    rdfs:range :VerificationMethod ;
    rdfs:isDefinedBy "https://www.w3.org/TR/did-core/#verification-methods" ;
.


:assertionMethod a rdf:Property ;
    rdfs:domain :DIDSubject ;
    rdfs:range :VerificationMethod ;
    rdfs:comment "The assertionMethod property is used to express a verification relationship which indicates that a verification method can be used to verify a proof that a statement was asserted on behalf of the DID subject." ;
    rdfs:isDefinedBy "https://www.w3.org/TR/did-core/#assertionmethod" ;
.


:authentication a rdf:Property ;
    rdfs:domain :DIDSubject ;
    rdfs:range :VerificationMethod ;
    rdfs:comment "Authentication is a verification relationship which an entity can use to prove it is the DID subject or acting on behalf of the DID Subject as a DID Controller." ;
    rdfs:isDefinedBy "https://www.w3.org/TR/did-core/#authentication" ;
.


:capabilityDelegation a rdf:Property ;
    rdfs:domain :DIDSubject ;
    rdfs:range :VerificationMethod ;
    rdfs:comment "The capabilityDelegation property is used to express a verification relationship which an entity can use to grant capabilities as the DID subject or on behalf of the DID subject to other capability invokers. " ;
    rdfs:isDefinedBy "https://www.w3.org/TR/did-core/#capabilitydelegation" ;
.


:capabilityInvocation a rdf:Property ;
    rdfs:domain :DIDSubject ;
    rdfs:range :VerificationMethod ;
    rdfs:comment "The capabilityInvocation property is used to express a verification relationship which an entity can use to invoke capabilities as the DID subject or on behalf of the DID subject." ;
    rdfs:isDefinedBy "https://www.w3.org/TR/did-core/#capabilityinvocation" ;
.


:keyAgreement a rdf:Property ;
    rdfs:domain :DIDSubject ;
    rdfs:range :VerificationMethod ;
    rdfs:comment "The keyAgreement property is used to express a verification relationship which an entity can use to engage in key agreement protocols on behalf of the DID subject." ;
    rdfs:isDefinedBy "https://www.w3.org/TR/did-core/#keyagreement" ;
.


:publicKeyJwk a rdf:Property ;
    rdfs:domain :VerificationMethod ;
    rdfs:label "Public Key in JWK" ;
.


:publicKeyBase58 a rdf:Property ;
    rdfs:domain :RsaVerificationKey2018 ;
    rdfs:label "Privacy Enhanced Mail (PEM)" ;
.


:publicKeyPem a rdf:Property ;
    rdfs:domain :VerificationMethod ;
    rdfs:label "Base58 Bitcoin format" ;
.


:service a rdf:Property ;
    rdfs:domain :DIDSubject ;
    rdfs:range :Service ;
    rdfs:isDefinedBy "https://www.w3.org/TR/did-core/#service-endpoints" ;
.

:serviceEndpoint a rdf:Property ;
    rdfs:domain :Service ;
    rdfs:isDefinedBy "https://www.w3.org/TR/did-core/#service-endpoints" ;
.
Clone this wiki locally