- From: Graham Klyne <GK@NineByNine.org>
- Date: Sun, 15 Dec 2002 13:33:13 +0000
- To: www-rdf-calendar <www-rdf-calendar@w3.org>
I'm writing this note because I've managed to confuse myself about semantics of RDF expressions. I hope what I am saying is simple and obvious, but I'm finding it difficult to be sure. The underlying point of all this is that care must be taken when defining RDF vocabulary to ensure that RDF's formal semantics are properly honoured. My scenario is this: I wish to write an RDF statement that describes some kind of access permission, for example that a network host can use HTTP, FTP and SSH protocols. So I might write something like: ex:Host ex:access (1) [ a ex:AccessPermission ; ex:allowProtocol ex:HTTP ; ex:allowProtocol ex:FTP ; ex:allowProtocol ex:SSH ] . which may be intended to mean that the host ex:Host is permitted to use protocol HTTP _or_ FTP _or_ SSH. So far, so good, and this seems to be fully in conformance with the RDF formal semantics which says that if the above expression is true, then so is: ex:Host ex:access (2) [ a ex:AccessPermission ; ex:allowProtocol ex:HTTP ; ex:allowProtocol ex:FTP ] . (See the "Subgraph Lemma" in http://www.w3.org/TR/rdf-mt/#entail ) So now I turn to my definition of the HTTP protocol, which might be: ex:HTTP a ex:AccessProtocol ; (3) ex:ipProtocol ex:TCP ; ex:portNumber "80" . So now we may have this graph asserted to be true: ex:Host ex:access (4) [ a ex:AccessPermission ; ex:allowProtocol ex:HTTP ] . ex:HTTP a ex:AccessProtocol ; ex:ipProtocol ex:TCP ; ex:portNumber "80" . Then, by the subgraph lemma, this is true: ex:Host ex:access (5) [ a ex:AccessPermission ; ex:allowProtocol ex:HTTP ] . ex:HTTP a ex:AccessProtocol ; ex:ipProtocol ex:TCP . But what does this mean? It would be tempting to say that by omitting the port number that no port-number constraint is given. But clearly, it is not true that by permitting use of HTTP that we mean to permit use of all TCP protocols on all port numbers. So this new subgraph must be interpreted as granting permission to nothing more than HTTP, and probably less. Absent specification of a port number (which all TCP protocols must use) I think it should mean that no permissions are granted. (So, in this scheme, by expressing an access permission in RDF, under open world assumptions, says nothing about what access is not permitted; by saying that HTTP is permitted, we don't say whether or not FTP is permitted. At some stage, to be useful, an access permission description may need to be closed off, so that all access not explicitly permitted is denied. This may involve mechanisms that go beyond basic RDF core semantics.) What has confused me in all this is that it appears to muddle conjunctive and disjunctive semantics semantics for RDF statements; e.g. example (1) above meaning that permissions to use HTTP, FTP *or* SSH, but example (3) describing a protocol for which the IP protocol is TCP *and* the port number is 80. Considered from the point of view of semantic interpretations, it's all conjunctive semantics, but that hasn't prevented me from getting confused about the details at times. ... I think there may be pitfalls here for some RDF usage for time intervals based on iCalendar. This example is excerpted (somewhat randomly) from http://www.ilrt.bris.ac.uk/discovery/2001/06/content/track1.rdf: [[ <ical:VEVENT rdf:about="http://test.example.com/events/116"> <ical:DTSTART> <ical:DATE-TIME> <util:hour>09</util:hour> <util:minute>45</util:minute> </ical:DATE-TIME> </ical:DTSTART> <ical:DTEND> <ical:DATE-TIME> <util:hour>10</util:hour> <util:minute>30</util:minute> </ical:DATE-TIME> </ical:DTEND> </ical:VEVENT> ]] (I've removed statements to focus on a simple core example.) Suppose this is being used in an access permission scenario like that described above, to indicate a time period during which access is to be permitted. Asserting a graph containing this to describe some access permission would also mean that a graph otherwise the same but containing the following would also be true: [[ <ical:VEVENT rdf:about="http://test.example.com/events/116"> <ical:DTSTART> <ical:DATE-TIME> <util:hour>09</util:hour> </ical:DATE-TIME> </ical:DTSTART> <ical:DTEND> <ical:DATE-TIME> <util:hour>10</util:hour> </ical:DATE-TIME> </ical:DTEND> </ical:VEVENT> ]] What is this to mean? Does this include the time instant 9:30? Is access granted at 09:30? Looking at the previous access control example, the subgraph lemma would suggest not. Now consider we wish to make timings accurate to a second, and add a <util:second> property thus: [[ <ical:VEVENT rdf:about="http://test.example.com/events/116"> <ical:DTSTART> <ical:DATE-TIME> <util:hour>09</util:hour> <util:minute>45</util:minute> <util:second>0</util:second> </ical:DATE-TIME> </ical:DTSTART> <ical:DTEND> <ical:DATE-TIME> <util:hour>10</util:hour> <util:minute>30</util:minute> <util:second>59</util:second> </ical:DATE-TIME> </ical:DTEND> </ical:VEVENT> ]] It seems that, using RDF, it is difficult to construct usage scenarios in which adding additional properties can be used to refine the precision of what is specified. To do that requires a form of default reasoning, which is non-monotonic. I'm left thinking that some practical guidelines are required to avoid such potential problems in general RDF use. #g ------------------- Graham Klyne <GK@NineByNine.org>
Received on Sunday, 15 December 2002 08:28:19 UTC