1 2 3 4

272

Annexe 4

IMAGE imgs/Annexe503.gif

V-2.1 Syntaxe des objets

<objet> ::= (defobject<nom d'objet>
[(superObject<nom d'objet>+)]
[(subObject<nom d'objet>+)]
[(subparts <nom d'objet>+)]
[(part-of<nom d'objet>+)]
[(relations<nom d'attribut>+)
[(slots<nom d'attribut>]
[(question<string>)]
[(string<string>)])

ex: (defobject tache-sur-feuilles (sup tache)
(slots nombre confluence variabilite couleur)
(string "tache sur feuilles"))

V-2.2 Syntaxe des attributs

<attribut> ::=
(defslot<nom d'attribut> <nom d'objet>
{nominal| ordinal| integer| real |relation}
(range<range>)
(cardinal<cardinal>)
[(question<string>)]
[(string<string>)]
[<additional statement>])

<range> ::= {<nominal range> | <numerical range> | <relation range>}

<nominal range> ::= <value>+

<numerical range> ::= <value> <value>

;; ;; ;; ;;

Ce sont les valeurs possibles de l'attribut. Pour les numériques, la première valeur est la borne inférieure et la seconde la borne supérieure. * veut dire ici l'infini (cas particulier par rapport à la marque syntaxique de la grammaire).