- From: Graham Klyne <GK@ninebynine.org>
- Date: Thu, 06 Feb 2003 16:55:22 +0000
- To: Seth Russell <seth@robustai.net>
- Cc: pat hayes <phayes@ai.uwf.edu>, RDF interest group <www-rdf-interest@w3.org>
[Switched thread to RDF-interest] At 06:57 AM 2/6/03 -0800, Seth Russell wrote: > And this is a real constraint, not just a form of words: > for example, RDF really is monotonic, and that imposes > some nontrivial conditions on *any* notion of RDF > meaning, social or otherwise. " . > >I can't seem to wrap my pee brain around the idea that this restraint is >useful in a nonmonotonic social world where truths are always popping in >and out of existance. From a layman's perspective could you elaborate on >what this restraint really entails ? How should we think about this as we >are reading and writing RDF assertions ? I have some recent experience of how this impacts RDF design for a "real" application. You need to be aware of the monotonicity constraints when defining new vocabulary terms. My example comes from defining network access policies, in which I need to define a collection of Internet services that a person may be allowed to use. An Internet service is typically defined in terms of an IP protocol number (usually indicating UDP or TCP) and a port number. So a web access service using HTTP is (usually) accessed using the TCP (IP protocol number 6) on port number 80. Using my vocabulary and Notation3, this would be expressed as: [[ homenet:HTTP a user:ServiceProtocol ; rdfs:label "HTTP service" ; user:ipProtocol "TCP" ; user:includePort "80" ; rdfs:comment """ Web access using HTTP. """ . ]] -- EXAMPLE 1 adapted from http://www.ninebynine.org/SWAD-E/Scenario-HomeNetwork/Users.n3 It is also useful to be able to express multiple protocols in a single service description: [[ homenet:P2PTCP a user:ServiceProtocol ; rdfs:label "P2P TCP services" ; user:ipProtocol "TCP" ; user:includePort "1214" ; user:includePort "6346" ; user:includePort "6347" ; rdfs:comment """ All peer-to-peer TCP services: FastTrack (1214), GnuTella (6346, 6347) """ . ]] -- EXAMPLE 2 excerpted from http://www.ninebynine.org/SWAD-E/Scenario-HomeNetwork/Users.n3 It is further sometimes useful to be able to specify that all port numbers *except* some specified values will be allowed. An "obvious", but incorrect, way to code this might be: [[ homenet:NonP2PTCP a user:ServiceProtocol ; rdfs:label "Non-P2P TCP services" ; user:ipProtocol "TCP" ; user:excludePort "1214" ; user:excludePort "6346" ; user:excludePort "6347" ; rdfs:comment """ All TCP services excluding peer-to-peer protocols: FastTrack (1214), GnuTella (6346, 6347) """ . ]] -- EXAMPLE 3 adapted from http://www.ninebynine.org/SWAD-E/Scenario-HomeNetwork/Users.n3 So why is this wrong? The RDF subgraph lemma requires that if some RDF graph is interpreted as expressing a truth, then any subgraph must also be a truth. In the case of EXAMPLE 2 above, if it is true that the three ports enumerated can be accessed, then it is also true that any two of them can be accessed. E.g., the following is also true: [[ homenet:NonP2PTCP a user:ServiceProtocol ; user:ipProtocol "TCP" ; user:includePort "6346" ; user:includePort "6347" ; ]] -- EXAMPLE 2A But, looking to EXAMPLE 3, if it is true that any but the three ports mentioned can be accessed, we cannot safely assert that this is true: [[ homenet:NonP2PTCP a user:ServiceProtocol ; user:ipProtocol "TCP" ; user:excludePort "6346" ; user:excludePort "6347" ; ]] -- EXAMPLE 3A So we need to find another way of describing all but some specified ports. (My solution is in the file cited.) ... Above, I've tried to answer your question "could you elaborate on what this restraint really entails" (or maybe what it does not entail?). One has to choose the meaning of one's terms with a little care. You also ask how this is "useful"; my explanation above suggests the reverse -- monotonicity is in some respects an impediment. But in an open-world environment, in which one can *never* be sure of having all of the facts to hand, no conclusions can be drawn without an assumption of monotonicity. So if we are to make inferences in such circumstances, we must have a monotonic framework. Having an monotonic, open-world framework does not, in my view, mean that one cannot also have a locally applied closed-world assumption for some applications, but this strays outside the globally specified behaviour for RDF. And the conclusions drawn by such an application cannot be returned to the global semantic web (unless somehow qualified by some expression of the closed world assumption used -- which might be presented as a "context"). #g ------------------- Graham Klyne <GK@NineByNine.org>
Received on Thursday, 6 February 2003 11:51:27 UTC