Comments to [[SCL] new version improved slightly]

pat hayes phayes at ihmc.us
Tue Dec 23 01:42:02 CST 2003


>pat hayes wrote:
>
>>Re: Comments to [[SCL] new version improved slightly]
>>
>>>
>>>3) Comments and headers and topsentences etc.
>>>
>>>There is no talk about how comments and metainfo should be given.
>>>Comments have to be put back into the core, preferrably into
>>>the kernel.
>>>
>>
>>I have a suggestion, which is that they are not in the kernel 
>>(since they have no semantics) but that any dialect may include 
>>material which does not parse to the kernel, and that is 
>>'invisible' to SCL. THis allows any dialect to include comments and 
>>meta-info freely, using any non-SCL syntax. Do you think the 
>>core/kernel should provide an explicit comment syntax also?
>>
>Yes. The comments and metainformation (for SCL they are the same!

No, I don't think they are.

The motivation for the header is as a place to put stuff that someone 
wants to be true, but does not want as part of their universe. This 
may sound odd but it has been a constant issue in the SW designs: it 
surfaced there for a while as 'dark triples' in OWL-RDF, and also in 
the design of datatyped literals. Thre was a long-running  dispute 
about whether things like arity assertions should be allowed in an 
ontology or not; one can see arguments both ways.  In general, there 
seems to be a widespread utility for being able to segregate some 
parts of an ontology from the other parts.  The header syntax is a 
small, simple device which I think can be used to solve a lot of 
these problems at least well enough to let people coexist.

It also provides a way to licence a more efficient holds/app 
translation. You argued forcefully for having a uniform translation 
here, rather than trying to be clever and only using holds/app when 
'necessary', so that a FO SCL ontology would translate directly as 
is.  I agreed with you, because one never knows when another sentence 
might come along which uses some FO syntax in a non-FO way, requiring 
a revision.  But consider the case where a FO ontology is provided 
with an explicit header which forces it to be FO, and suppose we 
require that merging of ontologies is allowed only when they have 
consistent headers. Then it would be safe to translate this 
'cleverly' by rendering it directly, without the holds/app mapping 
being invoked. This enables SCL to represent GOFOL directly, and have 
it processed as GOFOL, while still supporting the general embedding 
for all the rest of SCL.  And since the header can consist simply of 
an importation of a 'standard' header describing the signature, the 
extra overhead for this can be made very small. Notice that the 
header defining GOFOL is not itself written in GOFOL (necessarily, 
since it has to quantify over relations in order to express the 
requirement that they are not individuals.)

In terms of files, think of an ontology with a header as a linked 
pair of files. Merging two of these is done by checking the header 
parts for compatibility, then concatenating the headers and 
concatenating the bodies. More simply, if coarsely: check the headers 
for identity , then if so, concatenate the bodies and pass the header 
along unchanged.

>) are extremely important. Better
>not push them to some obscure corner.

OK, I have put them back into the core in the form ('commentstring' 
<term.|<sentence>) and plain ('commentstring') at the top level as an 
option for 'global' comments.

>
>For example: the reason why you introduced ontology and header 
>special names was IMHO that
>you forgot the comments:

No, that wasn't the reason.

>if you had had them in the core or kernel, the'yd have sticked out as
>a suitable machinery to use instead of inventing new names for 
>special-purpose metainformation.
>
>I know you claim otherwise, but I am not so sure yet that these 
>mysterious headers are a necessity.

They are not necessary for many purposes, and can always be 
eliminated (if necessary by simply eliminating the header 
boundaries), but I want to retain them for SW applications.

>
>>>Although I understand the principal need for headers, the current
>>>talk about headers (unavoidably) stops too early. There is no 
>>>indication about
>>>what and how should be put there, and as such, one cannot use the
>>>headers.
>>>
>>
>>I am writing that stuff now.
>>
>Waiting with interest.
>
>>>
>>>I'd rather see the headers and comments merged into one. Comments
>>>should have no semantics for SCL (they should have semantics at the
>>>level outside the scope of SCL). Since any headers can be written 
>>>as comments,
>>>
>>
>>No: headers *do* play a semantic role. That is the reason for the 
>>distinction.
>>
>Perhaps, we'll see.
>
>>>I think we should not separate them. Comments are IMHO enough.
>>>
>>>If/where they are not enough, then I am afraid that headers will
>>>work neither.
>>>
>>>As an example, consider http. The type of a body part of a http response
>>>(gif, jpg, html, txt, doc etc) is NOT given as part of the body. It is
>>>given as content-type in the http headers, which is on a _different_ level
>>>than the http body itself. Similarly, any "headers" should IMHO be either
>>>given as comments or they should not be at the SCL syntax level at all.
>>>
>>>As another example, you just cannot declare
>>>in XML text itself that now we are going to have something in arbitrary
>>>NON-XML: this non-xml might contain less-than etc symbols, breaking the XML
>>>syntax of the whole text.
>>>
>>>I am also not sure we should use topsentence and allow imports at 
>>>top level only.
>>>IMHO we could allow import in any place, not just top level. This would
>>>make the kernel more flexible while syntax is actually simplified.
>>>
>>
>>I cannot make semantic sense of
>>
>>(not (import <ontology:foo>) )
>>
>>If you can, I would be grateful for an explanation. (Also inside 
>>disjunctions, for example.)
>>
>Sure there is the ordinary, trivial procedural meaning: replace the 
>(import ....) substring with the contents
>of a file with this URL. This is a simple macro operation.

I don't want it to mean that.

However, I now see that such an assertion makes perfect sense, 
although I cannot think of any point in being able to do that (in 
effect, it is a denial of the ontology foo: it asserts it to be 
false. )

>
>Observe that:
>
>- there is no semantics of (import ...) in SCL: it is a different 
>language level, as macros always are

No, there is a semantics (which is why its in the core).

>
>- it is completely up to the person who wrote the (import ...) to 
>guarantee that the content and syntax
>   in the included file will suit the context.
>
>- in case you restrict (import ....) to top level only, nothing will 
>get cleaner or get more semantics:
>    it is still a macro operation without SCL semantics.

No, it has a semantics. It is kind of trivial, but it is there. It is 
not a procedural macro.

>
>Hence, in case we prefer to put (import ....) into SCL, then I'd be 
>all for removing any restrictions:
>let it occur wherever the writer wants to write it.
>
>Of course, I prefer NOT putting (import ...) into core SCL at all. 
>This kind of thing should be
>implemented on a different level. For example, should we put XML 
>namespaces into SCL?
>No? If not, then let us avoid putting XLINK into SCL, for similar reasons!

YOu have lost me here completely. I wasn't suggesting having anything 
to do with XLINK.

>
>>>
>>>5) Equality
>>>
>>>The current presentation avoids equality issues.
>>>
>>
>>It defines equality: what issues did you have in mind (apart from 
>>those that arise in your previous point)? Semantically and 
>>syntactically, equality gives rise to no problems.  Computationally 
>>it is very tricky, I know.
>>
>I had in mind the problems we get from equality in connection to 
>TFOL<->SCL translations.
>
>>I'll try to get a sketch of this done in the next few days. It will 
>>be based on these observations:
>>
>>0. A GOFOL SCL ontology is one with a 'standard FO header' which 
>>asserts not(scl:Ind(x) & scl:Rel(x)) and assigns the appropriate 
>>category to every name in the lexicon.
>>
>>1. It is always possible to merge a header into the body and have a 
>>blank header, but the universe is enlarged; so to retain the old 
>>body quantifiers, one needs to restrict all quantifiers to a class 
>>called 'ind' (not scl:ind) which represents what scl:Ind meant in 
>>the previous ontology.
>>
>>2. scl:Ind used in a body can be rendered as scl:Ind(x) iff (x=x), 
>>ie using equality.
>>
>>3. For a headerless ontology, the hold/app translation for the 
>>logic without equality is kind of obvious
>>
>>4. Putting these observations together, with a bit of care, the 
>>quantifier restrictions for the holds/app translation (which is a 
>>very particular kind of translation, obeying a very regular 
>>pattern) can be captured exactly by (a) mapping equality to 
>>equality' (*not* using holds/app) where (b) equality' is equality 
>>but restricted to apply only to things not in the first position 
>>(since the others would fail the quantifier restriction - which can 
>>now be rendered as (x =' x) - and for these it would be the trivial 
>>restriction x=x.)
>>
>>This can all be stated by adapting the 'position' terminology to 
>>the holds/app translation: the things in the first position after 
>>the holds or app are those that map from relation/function position 
>>in the original ontology, so the original fitting requirements 
>>(which were pretty trivial for GOFOL, but still were there as 
>>lexical restrictions) translate into conditions on those new 
>>positions.
>>
>>Im sure you grok this, since I learnt it from you, though the 
>>terminology may be different. If you feel like writing it up, that 
>>would be great.
>>
>No, I do not grok this yet.
>
>What you wrote here seems to be strongly related to these headers 
>you are planning to describe
>in the near future.
>
>Since you have not described them yet, I have no idea why they are 
>there or what exactly they do,
>and hence I cannot really understand what you mean  by the paragraph above.

Well, they actually are totally defined by the model theory, which 
you do have.  What is now partly written is an exposition of some 
uses for them.  Unfotunately, Xmas is now starting to interfere with 
my writing speed.

>
>Naturally, I am rather sceptical about the whole idea of suddenly 
>bringing in the header concept
>nobody has discussed or heard of before. Sounds like either 
>complicating things up or acting
>as a special kludge.

Its an option, remember. All the above isnt really to do with 
headers, its to do with moving from a FO SCL into the holds/app case, 
and the need to restrict the quantifiers to the 'individuals', and 
the fact that in the h/a translation, one can capture this 
restriction by invoking a special equality which is restricted to the 
non-first arguments of holds and app. The headers language is just a 
convenient way to express all this.

Pat


>But, as said: any sensible discussion of the header concept will just have to
>wait until you write a description.
>
>Tanel


-- 
---------------------------------------------------------------------
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