[SCL] Headers and bodies
pat hayes
phayes at ihmc.us
Tue Nov 25 16:20:43 CST 2003
>Hi, everyone..
>
>Man, it's tough just trying to read all the text Pat can generate
>much less understand it and reply to it, but here goes. I have some
>comments on what (I think) I understand so far..
>
>>First, define basic SCL as the language which has a single category
>>of names, and the MT is defined so that terms which occur in a
>>relation position must denote relations, and in object position
>>must denote something in the universe of discourse (and function
>>symbols denote functions, of course), and no other constraints.
>>Call this 'basic SCL' and 'an SCL interpretation'or just 'an
>>interpretation' of a set of SCL sentences. There are no fixed
>>arities or any such other complexities in basic SCL; those are
>>handled by the use of headers.
>
>Not sure about the headers yet, but I like the idea of the single
>category of names. To anticipate some of Pat's later comments, it
>often comes up in practice that ontologist A writes an ontology
>where what would conventionally be taken to denote kinds are meant
>by them to denote individual things. For example:
>
> Chemical:
> Hexokinase
> SodiumChloride
> ...
>
> Model:
> F-150
> Taurus
> Explorer
>
>These "individuals", for another ontologist B, would be kinds.
>
>>A. Every SCL document/ontology (we need a better word; I'll use
>>'document' for now) consists of a header plus a body, written
>><H,B>, both of which are themselves documents. The body is (a set
>>of) SCL (sentences), and the header must supply enough syntactic
>>information to enable a generic SCL parser to parse the SCL in the
>>body. 'Parse' here includes allocating relation symbols and
>>individual symbols to the appropriate category if that is required
>>by the particular language. An interpretation of an SCL document is
>>an interpretation of the body which satisfies the constraints
>>described by the header.
>
>This might not be so simple. If I have:
>
> (forall (?r ?x ?y)
> (=> (reflexive ?r)
> (=> (?r ?x ?y) (?r ?y ?x)))
>
> and
>
> (reflexive nextTo)
>
>In the same ontology, it's not apparent from the parse that nextTo
>is supposed to be a relation symbol without knowing something
>(semantic) about the ontology in question, namely (=> (reflexive ?r)
>(relation ?r))
Well, in general, unless you explicitly say so, or it can be inferred
from the syntax, you don't know whether or not something is a
relation. That is a feature, let me emphasize: that is how Chris
enabled SCL to handle the Horrocks sentences properly.
In this case, however, the general SCL syntax requires that the ?r in
the first axiom must denote a relation (it occurs in a relation
position) and the implication would enable you to infer as follows:
(reflexive t)
|-
(implies (t ?x ?y) (t ?y ?x))
from which again the SCL interpretation rules say is satisfiable only
if t denotes a relation; so, in this case you can in fact infer that
reflexive things must be relations.
>>B. Headers may cite one or more 'standard' headers of some kind
>>(via a URL), or they may be local to the document. If a document is
>>split into parts, each must have an appropriate header attached to
>>it.
>
>Good.
>
>>Obviously this would allow arbitrarily complex conditions to be
>>labelled as 'syntactic', so we will only impose conformance on a
>>narrowly defined subset of all possible SCL headers; but the idea
>>is general-purpose.
>
>Forgive me for perhaps not studying what Pat wrote thoroughly
>enough, but I'm not sure that what he's talking about doesn't entail
>arbitrary semantic conditions, or at least the presence of some
>small super-ontology that distinguishes between relation and
>individual.
It *allows* arbitrarily complex headers, but the only ones that we
are obliged to research in detail are the particular ones that we
actually use, notably the FOL headers.
>
>[lots of good stuff skipped]
>
>>-----
>>
>>We could get more ambitious, by invoking other things in the header, such as
>>
>>concat (a function on strings)
>>dequote (a function)
>>with conditions:
>>concat is concatenation of strings
>><I(s),s> in ext(I('dequote')) whenever I(s) is defined, otherwise
>><s,s> in ext(I('dequote'))
>> and then we can do things like:
>>
>>Relation names all begin with an uppercase letter:
>>Upcase(?x) iff (?x='A' or ?x='B' or ... or ?x='Z')
>>Rel(?x) implies (exists (?y ?z) (Upcase(?y) and ?x=dequote(concat(?y,?z)) ))
>
>How about the case:
>
> Rel(Foobar)
> Rel(foobar)
> =(Foobar,foobar)
>
>You'd need an additional axiom constraining relations to only have one name.
Ah yes, indeed. OK, what that says is that every relation has at
least one uppercase name. OK, I havn't thought that string-dequote
stuff through thoroughly. Pretend I never mentioned it: lets ignore
trying to be that clever for now.
>
>In general, I'm not sure that all of this is making things any
>simpler. Perhaps so and I'm not understanding fully, but it seems
>to be blurring the line between language and content, or between
>meta-language and language.
Yes, I agree. Lets ignore that more ambitious stuff, please.
Pat
>I will study the rest more thoroughly and make comments (and/or
>correct my comments).
>
> .bill
--
---------------------------------------------------------------------
IHMC (850)434 8903 or (650)494 3973 home
40 South Alcaniz St. (850)202 4416 office
Pensacola (850)202 4440 fax
FL 32501 (850)291 0667 cell
phayes at ihmc.us http://www.ihmc.us/users/phayes
More information about the SCL
mailing list