1.0 Ontology for Certificates and crypto stuff. 2008-11-13 The Cert Ontology Certificate A certificate is a Document that is signed. As explained here http://www.pgpi.org/doc/pgpintro/#p16 'A digital certificate consists of three things: (1) A public key. (2) Certificate information. 'Identity' information about the user, such as name, user ID, and so on. (3) One or more digital signatures.' unstable Key the class of keys unstable PGP Certificate the class of PGP Certificates unstable Private Key Private Key unstable Public Key Public Key unstable Signature the class of signtatures unstable Certificate the class of X509 Certificates unstable decimal An encoding of an integer in base 10 notation. Use cert:int instead. archaic hex An encoding of a positive integer (from 0 to infinity) as a hexadecimal string that makes it easy to read and/or fun to present on the web. The purpose of this way of representing hexadecimals is to enable users to copy and paste hexadecimal notations as shown by most browsers, keychains or tools such as opensso, into their rdf representation of choice.There are a wide variety of ways in which such strings can be presented. One finds the following e1 dc d5 e1 00 8f 21 5e d5 cc 7c 7e c4 9c ad 86 64 aa dc 29 f2 8d d9 56 7f 31 b6 bd 1b fd b8 ee 51 0d 3c 84 59 a2 45 d2 13 59 2a 14 82 1a 0f 6e d3 d1 4a 2d a9 4c 7e db 90 07 fc f1 8d a3 8e 38 25 21 0a 32 c1 95 31 3c ba 56 cc 17 45 87 e1 eb fd 9f 0f 82 16 67 9f 67 fa 91 e4 0d 55 4e 52 c0 66 64 2f fe 98 8f ae f8 96 21 5e ea 38 9e 5c 4f 27 e2 48 ca ca f2 90 23 ad 99 4b cc 38 32 6d bf Or the same as the above, with ':' instead of spaces. We can't guarantee that these are the only ways such tools will present hexadecimals, so we are very lax. The letters can be uppercase or lowercase, or mixed. Some strings may start with initial 00's, and can be stripped in this notation as they often are. Doing this could, in complement of 2 notation turn a positive number into a negative one, if the first hexadecimal character happens to be one ofthe set {'8', '9', 'a', 'A', 'b', 'B', 'c', 'C', 'd', 'D', 'e', 'E', 'f', 'F'} .As we interpret this string as a hexadecimal number leading 00s are not important(Complement of 2 notation and hexadecimal overlap for positive numbers) In order to make this fun, we allow any unicode characters in the string. A parser should 1. remove all non hexadecimal characters 2. treat the resulting as a hexadecimal representation of a number This will allow people to make an ascii - better yet a UTF-8 - picture of their public key when publishing it on the web. unstable identity the identity of the public key. This is the entity that knows the private key and so can decrypt messages encrypted with the public key, or encrypt messages that can be decrypted with the public key. It can be an Agent, or an idirect identifier of an agent such as a foaf:OnlineAccount . Should one specify the range as being the union of those two classes, or should one leave this open? unstable int A positive integer in base 10 notation. xsd:nonNegativeInteger could be used, but is a bit long to write, and may be too strictly defined. This is here to provice a pair with cert:hex, to avoid needing to import a new namespace, and to give a bit more flexibility in the future. unstable public key relates the private key to the public key component, in a public/private key pair. unstable