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" ;
.