On Jul 8, 2010, at 2:28 PM, Toby Inkster wrote:

On Thu, 8 Jul 2010 12:16:06 -0500
Pat Hayes <pha...@ihmc.us> wrote:

I would veto this option. To do this would be a lot more work than
not doing it; and it would greatly complicate the semantic
specification, which would have to keep track of this
'meaninglessness'.

Why would tools need to keep track of the meaninglessness? True
"meaning" is only assigned to triples by their human consumers.

One could have a situation, for example, in which A entails B entails
C, A and C are perfectly fine, but B has been declared 'meaningless'.
Should this inference be blocked? Should it be an error?

No, and no. While B is meaningless in itself, C might not be.
Rules/entailments operate over symbols, not over meaning.

Not exactly. See below.

It's
perfectly feasible that something meaningful might be discovered by
applying a set of rules to symbols that are meaningless.

An entailment that generates a meaningless statement is probably a
dodgy entailment, but that doesn't mean it should be considered an
error by the rules engine.

Well, but now I have to put on my semantics-maven hat. That word "entailment" has a particular meaning: A entails B when for every legal interpretation I, if A has the value 'true' in I, then so does B. That is, entailment is any inference that is guaranteed to preserve truth. Now, if something is meaningless, then its not true. So the inference of a meaningless B from a is *always* invalid (unless A is never true, ie a contradiction - a possibility that we can leave aside in this context.) So by declaring some syntactic forms to be required to be meaningless, we have broken any inference chains which use those forms: such chains can never be classed as entailments, even though the entailment of C for A may be perfectly OK.

In fact, disallowing literals as subjects produces exactly this kind of 'missing link' problem, where (what would be a) valid inference is blocked because it would have to go through an intermediate form which is disallowed. I know you do not propose to make these forms syntactically illegal, but the problem arises just as sharply if you override the natural model-theoretic rules by imposing an 'alien' interpretative value on them. The machinery of logic is simple, but it does have its own internal, um, logic, and it all kind of hangs together, and it gets broken by putting unnatural restrictions on it.

What could { <#Alice> "56.2"^^xsd:decimal <#Bob> . } possibly mean?
If we assume the class of numbers and the class of relationships is
disjoint [1]

But RDF does NOT make this assumption. Nor, IMO, should it. Anything can be (more properly, can be interpreted to be) a relationship, in the RDF model theory. This simplest-possible assumption has proven to be extremely robust and extremely useful, and is used in the RDF and OWL-Full and ISO Common Logic semantics. It is, I suggest, a mistake to mess with it without a VERY good reason. Preserving old logical constraints is one quite good reason, given the utility of preserving legacy systems. Imposing it because one can't think of a reason not to, is not a good reason.

, then "56.2"^^xsd:decimal cannot be a relationship. If the
triple doesn't contain a relationship between a subject and an object,
but Concepts says that all RDF triples do. So a triple with an
xsd:decimal predicate makes no sense according to Concepts.

Sure it does, if you read the semantics properly. See above.


So my point in saying that literals should be allowed as predicates but
considered meaningless is to reconcile an arguably desirable feature
(the simplicity of allowing any node type to occupy any position in a
triple/quad) with an inescapable fact (that a triple with a literal
for a predicate doesn't make any sense).

But they can make sense, and indeed they have use cases. Pretty far out use cases, but uses nonetheless.

The pragmatic solution is to
just say, they're allowed -- tools can operate on them as normal -- but
should have no meaning to humans.

In much the same way as { <#Alice> <#xyzzy> <#Bob> . } has no meaning
until we have additional information about <#xyzzy>.

I'll add that it has been mentioned that one could mint a datatype URI
for relationships (e.g. ^^rdf:relationship). As a datatype is
essentially a mapping from strings to things, this would allow for the
creation of literals that represent relationships. In this case, I'd
concede that a triple with one of these datatyped literals as a
predicate would be meaningful. However, this does seem to be a bit of
a pathological edge case.

The RDF semantics has had this mapping since day one, its the composition of the mapping called IEXT with an intepretation mapping.

Pat


--
Toby A Inkster
<mailto:m...@tobyinkster.co.uk>
<http://tobyinkster.co.uk>



------------------------------------------------------------
IHMC                                     (850)434 8903 or (650)494 3973
40 South Alcaniz St.           (850)202 4416   office
Pensacola                            (850)202 4440   fax
FL 32502                              (850)291 0667   mobile
phayesAT-SIGNihmc.us       http://www.ihmc.us/users/phayes






Reply via email to