BFO-ontology / BFO-2020

A repository for BFO 2020 artifacts specified in ISO 21838-2:2020
75 stars 27 forks source link

BUG: Incorrect usage of CLIF titlings #95

Open mereolog opened 2 months ago

mereolog commented 2 months ago

Describe the bug IMHO, all CLIF files are syntactically incorrect as far as the use of CLIF titlings is concerned.

To Reproduce According to the spec, i.e., section A.2.3.10 Titling, a CLIF titling should contain exactly one instance of a CLIF text - see the snippet below. On the other hand, a CLIF text, provided that it is not a domainrestriction or an importation or a commenttext must contain the 'cl:text' reserved element.

Consider now https://github.com/BFO-ontology/BFO-2020/blob/master/src/common-logic/continuant-mereology.cl, in particular the text that starts with:

https://github.com/BFO-ontology/BFO-2020/blob/25c834ed1c33997b756d5f62fc763e09f9826c0c/src/common-logic/continuant-mereology.cl#L9-L15

Since this CLIF outdiscourse element is not a CLIF text and since it is followed by a commentsent, this does not follow the ISO spec.

Expected behavior As far as I can tell, the fragment above should read as follows:

(cl:ttl https://basic-formal-ontology.org/2020/formulas/clif/continuant-mereology.cl

(cl:text

   (cl:outdiscourse occupies-spatial-region temporal-part-of exists-at has-proper-continuant-part proper-continuant-part-of instance-of has-continuant-part continuant-part-of)

  (cl:comment "continuant-part-of and has-continuant-part are inverse relations [eld-1]"
    (forall (t a b)
     (iff (continuant-part-of a b t) (has-continuant-part b a t))))

...

)

Additional context Snippets from the ISO spec

A.2.3.10 Titling

CLIF titling gives a text a name.

titling = open, 'cl:ttl', interpretablename , text , close ;

A.2.3.15 Text

CLIF text is a text construction, importation, or domain restriction.

text = textconstruction | domainrestriction | importation | commenttext ;

alanruttenberg commented 1 month ago

Thank you again. Fixed in the source, will be in next release.