Re: Certificate Triplify Challenge

On 4 Jan 2012, at 14:34, Henry Story wrote:

> 
> I think those mappings are interesting. Worth putting up a wiki page with these ideas too.
> 
> <http://example.com/me> a cert:Certificate ;
> 	foaf:primaryTopic _:agent ;
> 	cert:issuer <http://example.com/ca#cert> ;
> 	cert:serialNumber 1 ;
> 	cert:notBefore "2012-01-01T14:00:00Z"^^xsd:dateTime ;
> 	cert:notAfter "2012-12-31T13:59:59Z"^^xsd:dateTime ;
> 	cert:extension [
> 		a cert:basicConstraints ;
> 		cert:extensionValue [
> 			cert:ca "false"^^xsd:boolean ;
> 			cert:pathLengthConstraint 0 ;
> 		] ;
> 	] ;
> 	cert:signatureAlgorithm cert:sha1WithRSAEncryption ;
> 	cert:signature "00010203040506070809...."^^xsd:hexBinary .
> 
> _:agent cert:distinguishedName [
> 		a cert:DistinguishedName ;
> 		x520:countryName "GB" ;
> 		x520:localityName "London" ;
> 		x520:organizationName "British Broadcasting Corporation" ;
> 		x520:organizationalUnitName "Research and Development" ;
> 		x520:commonName "Test Certificate" ;	
>         ] ;
>         cert:key [ a cert:RSAPublicKey ;
> 		…
> 	 ] ;
>         owl:sameAs <http://example.com/me#person> .

As soon as you put things this way you realise that it is wrong in fact. Because the above fails to make the point that it is the Certificate that is making the agent claims. What is really needed there is to use N3 to express what is going on:

<http://example.com/cert> a cert:Certificate ;
	cert:issuer <http://example.com/ca#cert> ;
	cert:serialNumber 1 ;
	cert:notBefore "2012-01-01T14:00:00Z"^^xsd:dateTime ;
	cert:notAfter "2012-12-31T13:59:59Z"^^xsd:dateTime ;
	cert:extension [
		a cert:basicConstraints ;
		cert:extensionValue [
			cert:ca "false"^^xsd:boolean ;
			cert:pathLengthConstraint 0 ;
		] ;
	] ;
	cert:signatureAlgorithm cert:sha1WithRSAEncryption ;
	cert:signature "00010203040506070809...."^^xsd:hexBinary .
        log:semantics {
           <> foaf:primaryTopic _:agent ;

           _:agent cert:distinguishedName [
		a cert:DistinguishedName ;
		x520:countryName "GB" ;
		x520:localityName "London" ;
		x520:organizationName "British Broadcasting Corporation" ;
		x520:organizationalUnitName "Research and Development" ;
		x520:commonName "Test Certificate" ;	
           ] ;
          cert:key [ a cert:RSAPublicKey ;
 		…
   	   ] ;
          owl:sameAs <http://example.com/me#person> .
    }

The debate would then be about where to put which statements: inside the log:semantics graph or outside.

then one realises that the MUST understand stamens are statements about grammar changes: they are saying that you cannot believe anything else about what you see in the document unless you understand one statement: i.e., that statement could possibly change the meaning of the other statements seen up to then. 

Henry

Social Web Architect
http://bblfish.net/

Received on Wednesday, 4 January 2012 16:33:59 UTC