Definitions About KRLs in General, And FL in particular _________________________________________________________________________________________

Dr Philippe A. MARTIN


Table of Contents

1. Informal Definitions 2. Conventions, Notation And Abbreviations



1. Informal Definitions

Name / identifier. A name can have many senses (hence can refer to many things) while an identifier has only one meaning. Anything can have many names and many identifiers, even for a same person.

Information object: interpretable/un-interpretable representation of something.
Un-interpretable information object: one that does not follow enough syntactic and/or lexical rules to be interpreted (for formal expressions the grammar of the used language can be used to determine this).
Interpretable information object: expression or command. In a KR, this is either a type or an individual. Indeed, in a KR, an expression is either a term or a sentence, and a command is a statement (asserted sentence).
Fully declarative expression: information object that is not a command and that does not include a command. In a KR, this is either a term or a sentence, or in other words, either a phrase (sentence or expression referring to a sentence) or a term that does not refer to a phrase.
Not fully declarative expression: something that is not a command but still includes a command. Various ways to define "declarative" could also be used based on various behavioral properties but this will not be done in this document.
Sentence: information object that is assertable, i.e. that can be assigned a truth value. A sentence may be asserted or not, and may be refered to by an identifier. A sentence may contain 0, 1 or several relations.
Term: either a value or a reference.
Atomic expression (and "atomic term"): atomic reference (name or identifier for something, e.g. for a sentence) or atomic value (e.g. 3.14).
Non-atomic expression: expression (e.g. the destination of a relation, a function/procedure call, a query) that permits to compute/retrieve or specify a term. In a KR, it is declarative, hence a non-atomic term.
Phrase: sentence or expression referring to a sentence.
Command: asserted phrase or assertion (i.e. addition), modification or removal of a phrase.
Statement: asserted phrase or assertion of a phrase. In a KR (i.e. with logic-based approaches) a statement is a asserted phrase.
Relation: sentence that relates information objects.
Type (term): term that can have an instance, i.e. that can be destination of a `type' relation. Examples: the 1st-order type `Person' and the second-order type `Type'.  A type is either a concept type (e.g. Type) or a relation type (e.g. type).
Instance (term): term that has (i.e. that is source of) a `type' relation, i.e. a relation of type `type' (alias `instance_of'), e.g. `Tom' (instance of `Person') and `Person' (instance of `Type'); `instance' is the inverse relation type of `type'.
Subtype (term): source of a manually set or automatically deduced `subtype' relation; informally, a term ?st is subtype of a type ?t iff every instance of ?st is instance of ?t.
Individual (term): term that cannot have an instance, nor then a subtype, e.g. `Tom'. However, an individual may have a sub-term, or more precisely a sub-individual, e.g. `Tom_in_2010'.

Meta-statement: statement about a statement, i.e. statement including another one.
Meta-sentence: sentence about a sentence.
Embedding part of a meta-sentence: part of the meta-sentence without the embedded sentence.
Contextualized sentence: embedded sentence which would be false (according to the creator of the sentence if it is a belief) without at least one of its embedding sentences.
Context of a sentence: the embedding sentences that cannot be removed without the result becoming false (according to the creator of the sentence if it is a belief).
Sentence with its context: sentence plus its context if it has one.
Minimally-complete sentence: "sentence with its context" which would be false (according to the creator of the sentence if it is a belief) without any of its parts: term(s) or embedded sentence(s).

Formal information object: information object which, given its syntax or embedding module (e.g., document or sentence), can automatically be recognised as refering to only one meaning. This meaning may or may not be explicitly defined, hence it might be known only by the author of the information object. Identifiers are formal terms.
Informal term: term which is not formal.
Formal, semi-formal or informal sentence: a sentence which is a well-formed knowledge representation (KR; cf. next paragraph) is formal if it only contains formal terms, and semi-formal otherwise. A sentence which is not formal nor semi-formal is informal.
In this document:

Summary/synthesis of delimiters in FL
- for delimiting the above kinds of objects and other ones;
- ontologically-organized (indentation reflects subtyping; objects at a same level are exclusive);
- ".." is used as a wildcard for an inner expression and also to avoid repeating stuff;
- ", " is used to separate alternative options;
- options using '´' instead of '\' for closing a '`' are not mentionned;
- the option of using (...) or `...' to delimit an expression is not mentionned
  (if what is delimited has the syntax of a sentence but not its delimitors, it is a frame
  and in this case, '*' can replace "a Thing").
Sentence  //'&'(inv:*):Sit->SemDescr(e.g. Prop, Name);  "&.&"(inv:*.*):SemDescr->LexicalDescr.
  Informal_or_mostly-informal_sentence  //value variables (vv) may be prefixed by $ (-> ~ sh, not KIF)
  //Warning: informally I also used these to delimit non-token expressions, not just sentences
    .._unreified_wo_vv_subst         '.. .#.. ..'       e.g. 'there exists a pm#cat'
    .._unreified_with_vv_subst       "...${..}.."       e.g. "   ${exists_a} pm#cat"
    .._reified_wo_vv_subst          &'.. .#.. ..'       e.g. `&.&"a cat" part: 5 char'
    .._reified_with_vv_subst        &"...${..}.."       e.g. `the State &"${exists_a} cat"' 
  Formal_or_semi-formal_sentence //for full quoting (no vv subst nor fct calls), use \ before ` and [
            //for semi-quoting (LISP backquoting and then ','), use "\$" and then "\\" instead of ',' 
       //in a file, if `...' is alone (no relation): this is an assertion
       //           otherwise this is not an assertion unless prefixed by '.'
    .._unreified_in-FE               `...'              e.g. `a Cat'   //not .`a Cat' nor (a Cat)
    .._reified_in-FE                &`...'              e.g. &`a Cat' believer_[*.->.]: pm
    .._unreified_not-in-FE           [..]               e.g. [ [a pm#Cat] [a Dog] ]
    .._reified_not-in-FE            &[..]               e.g. `&[a Cat] *_[believer:pm]', `*(&[a Cat])'
  //??? Sentence evaluation ???     ^[...]              //what is that? not a command/fctCall!
  //  see webk.org/kb/it/p_securing/d_securing_CERT.html
  Embedded-sentence_assertion       . ...               e.g. [.?p =>?p2]<=>[?p . =>?p2]<=>[?p :=>?p2]
    //warning: != indivs(.^'Tom the cat' .^'a Cat is on a Mat')  != descriptive_implication(".=>/.~>")
  Constraint/directive              !_! ...               e.g. !_! no Forward_declaration;
    Descriptive_constraint          !_!dc ...             e.g. !_!dc [Mother range: a Female_animal]
    Prescriptive_constraint         !_!pc ...             e.g. !_!pc [each Human  part: an ID]

Term  //'&'(inv:*|$): Var/fct->Value + Sit->SemDescr;  "&.&": SemDescr->LexicalDescr.
  Token                    //so parenthesis are necessary for composing reifications
    Variable                                            e.
      Value_variable                 (*pFct_(..)):= ..  //no prefix for vars local to a JS like fct
        Macro/shell-like_variable    $..                e.g. $var  //to initialize: \$var or &$var
      Declarative_var
        Free_variable                ^..                e.g. ^var
        Non-free_variable
          .._distributive            ?..                e.g. .{1..* Thing ?a} ?as @.?as
          .._collective              @_?..              e.g. .{?x,?y} ?member @_?collMembers @.?set
          .._cumulative              @.?..                   (see below for details)
          .._sequence                @*?..              e.g. .{Joe,Tom} @*?seqMember 
    Constant
      Identifier
        Informal_identifier (i.e. declared-or-not name for a type/indiv)
          .._for_a_type             ^".."  ^'..'        e.g. ^"Cat that is white"
          .._for_an_individual     .^".." .^'..'        e.g. .^"Tom the cat" .^"a Cat that is on a Mat"
                                                             Proposition .^"a Cat is on a Mat"
        Formal-or-semi-formal_identifier //!=  ^Univ_var  ^`...'/*Anonymous-type_definition*/
          .._in_FE-for-identifiers ^^NameThatIsAlsoAnFEexpr or ^^`FE expr that is also a name'            
            .._for_a_type(asLambda) ^^`..'  ^^`..´      e.g. ^^`Cat_with_color_a_white'
            .._for_an_individual   .^^`..' .^^`..´          .^^`Tom the cat' .^^`a Cat with place a Mat'
                                                            Proposition .^^`a Cat has for place a Mat'
          .._not_in_FE-for-identifiers
            .._with_non-alphanum    ^`..' .^`..´        e.g. ^'White Cat'   .^'a Cat that is on a Mat'
                                                             ^'pm#>=' ^'>=' .^'a Cat is on a Mat'
            .._without_non-alphanum (idem but optional) e.g. Cat, pm#Tom, Tom, A_Cat_that_is_on_a_Mat
                                                             ^`Cat', .^`Tom',  There_is_a_cat_on_a_mat 
      Value_token //Literal
        String                                          //reminder: *(inv: &)
        .._woSubst(^..'..',$(..)$)  &.&'..'  &^`..'     //String for Sentence / type informal name
        .._wSubst (^.."..",$(..)$)  &.&"..${..}..?(..)" e.g. *"a ${c} de ?(g) hi"
        Number
  Term_that_is_not_a_token 
    ..._context_related
      context  // [..]:semantic,  &[..]/&->:lexical(display rel),  *[..]/*->:index/expl. rel 
               //              or: [.. &-> ..], e.g. `a Cat (length _[length &.&:6]) _[.&.&->.]: 3'
               //                                    `a Cat _[ _[relOnThisCtxt:...] believer: ..]' 
               //use "[] descr_instr: .._[..]" if referred statement not-automatically found
               //  [pm#English#not] <=> [user: pm;  English#not] <=> [[__ KRL: FL] &.&(pm#English#not)]
               //  <=> [ &.&[__ notation: FL  Notation_in_which_a_colon_plays_the_role_of_diese_in_FL
               //      ] pm:English:not ]     //in FL, the role of '#" is only by default
        .._postfixed_1out           _[..]               e.g. [a Cat] _[time: 2018, place: USA]
        .._postfixed_2out          __[..]               e.g. ?x ?r: ?y __[time: 2018, place: USA]
        .._prefixed_1out             [_..]              e.g. [_ time: 2018, place: USA] [a Cat]
        .._prefixed_2out             [__..]             e.g. [__ time: 2018, place: USA] ?x ?r: ?y
    ..._definition-related
      Type_signature                 
        // - no * in sign. since specialization may add param; all ? (unary) by default
        // - r .(1stOrderType1,a 2ndOrderType2), e.g.:  transitiveRel.(a ?t, a ?t)
        // - functional[applic.] (any->1):  r (t1, 1 t2)  or  r (t1 -% t2) 
        //    surjection (any->1, 1..*<-any): r (t1  1..* ->  t2) 
        //    injection (any->1, 0..1<-any) //so diff->diff (so =<-=), 1-to-1 fct, !bij:1-to-1 assoc
        //    bijection (any->1, 1<-any): r (t1 <-> t2)
        // - inverse functional: r (t1 <- t2) 
        // - conditional: [rX ^rx   rR: rY ^ry] => [ rR .(rX, rY) ] iff the premise is 
        //      implicitly/explicitly confirmed so a way to represent the corresponding compiling
        //      option is: ... [rX ^rx  rR: rY ^ry] input of: (a compilation time: Now) ...
        Routine-or-RT_signature      .(.., ..)          e.g. fctRel .(Thing ?x, ?y, @*?seq -% ?z)
        CT_signature//w.(o.)rels     .[.., ..]          e.g. Agent .[Process ?p, Object ?o]
        CT_structural_signature      .part[.., ..]      e.g. IF_expr .part[IF_op, %(..), ?res] 
      Anonymous-collection_def.     ^{..}               e.g. ^{Cat color: a white},  ^{[a cat]
      Anonymous-type_definition     ^(.. ..), ^`.. ..'  e.g. ^(Cat color: a white) but not ^Cat
      Rel_definition_via_graph       r .(.. -% ..)         :=|:=> ... //'-%'forArrow/Sig,'-:'forRel/Def
      Fct_definition_via_graph       f .(.., ..) -%|-> ?x  :=|:=> ... ValueGeneratorFct !iterator
        Value(Itero)GeneratorFct_def f*...              e.g. f *.(T1,T2),  T1 f*.(T2)-% T3){...}
      Def_via_rel+inference          .. r :(=|-)(>)(.) ...  //for inferences;  seeAlsoNextTable
        every(:*= :*=>) any(:D=>) each(:=. :.=> :100%=>)  //extensionalSup: _/.
        (":.":onlySup/sub/equivTypes; ":=|:=>":every/any(byDefault)/each for type/implic)
      Def_via_rel+descrCstr          .. r :=~|:=~>  ... //descr cstr: x =~> y //only / signature
      Def_via_rel+prescCstr          .. r :=~.|:.=~>... //presc cstr: x.=~> y //not using inferences
      TypeBranchGenerator @^         .. @^( .. )        e.g. Entity_indiv = ^@(Entity exceptFor: Type)
    ..._other_relation/fct-related    //RelsGenerator = virtual|calculated_rel_assertion
      RelsGenerator(def)prefix @!!   r @!!(..-% ..):= .. e.g. type@!!(T1,T2 ?t2):=[if...then?t2=..]
                        infix  @..   ... r@..(...): ... e.g. T1 type@..(T2 ?t2) :=[if...then?t2=..] 
      ComplexRelNodeBeginDelim       :_ rt1 + rt2 : rd1 rd2   or   :_{rt1,rt2}: rd1 rd2 
                                       (rt1 + rt2): rd1 rd2 
      FctCall_or_relation //prefix by '.' if rel(s), '°' if named args, '^' if descr
                          //CT-def instantiation called as fct (or with '^.' as prefix)
      .._with_prefixed_1out_op       ?r _(.., ..)       e.g. fct_(?x, ?y, @*?seq, ?z) 
                              _descr ?r ^_(.., ..)      //cf. hidden comment here   
      .._with_prefixed_1in_op        (_. ?r .., ..)     e.g. (_. ?r ?x, ?y, @*?seq, ?z)
      .._with_postfixed_1out_op      (_ .., ..) ?r      e.g. (_  ?x, ?y, @*?seq, ?z) ?r
      .._with_postfixed_1in_op       (._ (.., ..) ?r)   e.g. (._ (?x, ?y, @*?seq, ?z) ?r)
      .._with_infixed_op_2args       .. ?r: ..          e.g. ?x ?r: ?y
                                     .., ..: ..         e.g. ?x,_^(..): ?y   
                                     .. :_(..): ..      e.g. ?x :_^(..): ?y //neverMind rels abbrevs 
                                     .. :_{..}: ..      e.g. ?x :_{/^,spec}: ?y //many ttypes/rel
                                     .. :_[..: .., ..   //set of rels, e.g. from a same source
                                          ]_[..]        // or for specializations 
        .._with_infixed_op_Nargs     (: .. :?r ..)      e.g. (: ?x ?y :?r ?z)
      RelType_path_expr              ^-(..)             e.g. [Tom ^-(part+): {a Leg} ?l @.?legs]
                                                              ... ^-(r1+ ^. r2): ... 
      RelTypeAndDest_path_expr       .. ^. ..           e.g.  Tom ^. part+  ?TomPart @.?TomParts 
        FunctionalRel_access/name    .. _._ ..          e.g. &.&`Tom _._ SS_id' _._ length
        //forEach method=1stParamOf  .. _._ ..          e.g. o1_._fct_(o2) <=> fct_(o1,o2) 
    ..._other
      Collection                               //see below: distributive interpretation (no prefix)
        Anonymous-collection_def.   ^{..}               e.g. ^{Cat color: a white},  ^{[a cat]}
        Set (un-ordered; distr.)     {.., ..}           //  collective (prefix: "Coll", "@_", "_"),
          Keyed_set                  {k1:v1, ..}        //  cumulative (prefix: "Cuml", "@.", ".")
                                                        //  e.g.: .AND{each ^(...)}
          Exclusion-character_set    {^ ..}             e.g. {^ a-z}: any character but 'a'..'z'
          .._with_prefixed_1in_op    {_ ...}            ??
        List+Intervals (ordered;default:distr)          //the above prefixes also usable here
          List_with_possible_substs  %[..,..[  %(..,..) e.g. .%]0.1, 1 to 42[, _%[1 ^- 42[, %[1^-42]
          Semi-quoted_list         \$%[..\\$..[         //as in Lisp but "\$"for'`' and "\\$"for','
          Fully_quoted_list         \%[..,..[           //as with Lisp quote


KR. Each KR relates information object by relations in a way that can automatically be translated into a logic formula. Hence, the KR language (KRL) used for writing KRs has a formal syntax (alias, notation or unambiguous concrete grammar) and a formal semantics. In this document, two notations are used for writing KRs: i) FL, and ii) the Peano-Russel notation (PRN) classically used in logics.
Here are simple examples to introduce the way to read FL (later precisions will be given via comments; those are either prefixed by "//" or are within "/*" and "*/", as in C or Java):

KRs support automatic logical inferencing, and thus automatic KR comparison, search, merge, etc.
Reminders. Every formal information object in a KR is either a `type' (e.g. Cat, part) or an `individual' (e.g. Tom; any relation is also an individual). Every relation is a sentence. Every type is either a concept type (e.g. Cat) or a relation type (e.g. part).
In this document, only `binary relation_s' are used (they are called `binary predicate_s' in 1st-order logic and `triples' or `property instance_s' in RDF).

KR-based command:

(Unidirectional) Rule: statement that only supports modus ponens, not modus tollens.
Checking constraint: unidirectional rule only usable for checking purposes, not inferencing.
Descriptive constraint: checking constraint that is not prescriptive.
Prescriptive constraint (alias knowledge entering constraint): checking constraint ensuring that particular statements are not due to inferences, hence checking constraint not exploiting all possible inferences.
Ontology Design Rule (ODR): checking constraint ensuring that a particular "ontology design best practice" is followed.
Ontology Design Best practice: one of the best ODPs to achieve particular good criteria.
Ontology Design Pattern (ODP): how something can be represented to fulfill particular criteria.
All of this is formally categorized in Section 0.3.2.3.




2. Conventions, Notation And Abbreviations

Some conventions:

About the notation (FL). As in some other KR notations:

Some abbreviations (used in the first KRs below and re-used in all other KRs in this document):

Summary/synthesis of some relation abbreviations (those in bold are those mainly used)
                                               abbreviation     converse        complement 
unary_relation-or-logic-operator    
  bivalent_not (\. closed-world_not)           ¬
  three-valued_not
    Kleene-and-Lukasiewicz (open-world_not)    !                ! 
binary_relation-or-logic-operator              
  converse //inverse (reverse)                 -                -
  exclusion    //[x =% !y], ![x y]             =>! =>.! =%.!    !-<=  !.%=      =>
    complement //[x <=> !y],functional excl.   =! <=>! <=>.!    !-<=>           <=>
  superior_or_equal //not "_or_equivalent"     =<               >               > //if same domain
    equal //_or_intensionally-equivalent-type  =                =               !=
      numerically_equal                        ==               ==              !=  !==
      identical-object_or_same-value-and-type  ===              ===             !== !=== 
  definition (":..." after a relation or not; any of the logic-specific_implication can be used)
    definition_by_intension (without '.' after the ':')
      definition_by_sufficient_condition       :<= :%= :<-      :->  :=% :only  
      definition_by_necessary_condition        :=> :=% :only    :<=  :%= :<- //only in the sense of NC     
        full_definition                        :=               :=
    //A definition can also be made via a definitional relation that is not subtype of "definition"
    // e.g. via its definition or because any (not every/each) is used in the source node.
    // By default, relations of type metalogic_deduction, supertype, equivalent_type
    //   or their inverses are "definitional by intension", while other relations are descriptive".
    //==== Conventions (overiddable by quantifiers) for NON-ABBREVIATED RELATION END DELIMITERS:
    // - ":=dc=" (or "must_dc ...:"): the relation is "descriptive for constraints" 
    //   (thus only for checking not assertion - e.g. sign. checking - but able to use all inferences);
    // - ":=pc=" (or "must_pc ...:"): the relation is "prescriptive for constraints"
    //   (only for checking purposes and not due to inferences, hence not able to use all inferences);
    //   Note1: alethic/deontic:  [some/no/each [...]  may/must be part of: this Universe];
    //          a parsing directive is an asserted constraint, and this one is a deontic sentence about
    //          relation in the current KB: [some/no/each &`...' may/must be part of this KB],
    //          e.g. [no/some Forward_declaration may be part of: this Module]
    //               !_! no Forward_declaration; ...; !_! each Forward_declaration is ok;
    //               module: the embedding [] or, if none, the current sentence (hence, till ';').
    //          // no "now" but "this Writing_time" (creation/update time != "this Reading_time")
    //   Note2: DOL specs define implications or other language element types in the current module
    //          wrt other language element types.
    //   Note3: for each hovered meaningful symbol (group), a contextual menu of relations for it can
    //          be generated (with some branches open to show the most important relations, in bold).
    // - ':' (not followed by an '=' or an arrow) at the end of the delimiter: 
    //       "descriptive (wrt./for inferences)" relation (this is the most usual case);
    // - '%-:' (possibly followed by an '=' or an arrow) to indicate ~"owl:InverseFunctionalProperty"
    //     e.g.: Woman child%-: a Thing;   Human id%-: a NoSS, an Id;   Human brain%-: 1 Brain';
    //     Note1: "owl:FunctionalProperty" = "at most 1" = "0..1". 
    //       \. owl#hasKey // https://www.w3.org/TR/owl2-syntax/#Keys  TR/owl2-new-features/#F9:_Keys
    //     Note2: "UML composition", e.g. `every House<-.: some House //no more House => no more Room
    //            (!dependency)      but  `every Bike  part: 2 wheel' //no more Bike, still the Wheels
    // - "100%=>", "100%=" or "100%<=" (not '.': "this type") at the end of the delimiter: 
    //   the relation is a "subtype/equivalence definition by extension"
    //   (add 'D' begore '@' for "Default");
    //   in extensional supertype/subtype relations, the least specialized part is the one defined;
    //   in intensional supertype/subtype relations, the most specialized part is the one defined;
    // - otherwise (ending by ":="/":<="/":=>", or ":—"/":%—"/":—%", or ...):
    //   "definition by intension" (below, the abbreviations BEGINNING by ":" or "|" are
    //    "definitional by intension"; however, even though supertype/subtype relations
    //    and equivalent_type relations are by default "definitional by intension", some of their
    //    abbreviations in the rest of the table do not have such an ending/beginning or beginning)
    //    Note1: _[(Default)every/any/8%|each->...]: ":D*=>" / ":->" / "atLeast8%=>"
    //    Note2: Bull_shark.(?s) :(.|@|100%|+86%<-  //here '.' ok too since no ambiguity
    //                                  [?s type:Shark,part:(a Pectoral_fin shape:a Triangle)].
    //==== Conventions for symbols in RELATION ABBREVIATIONS:
    // - arrow: -  descr./def. prefix: '' for descr, ':' for non-descr (e.g. def.); '-' if unknown
    //                                               ':.' for an extensional defin.  
    //            //old: (description <=> Embedded-sentence_assertion: [?p .=> ?p2] <=> [.?p => ?p2];
    //             for def.: (default/8%)every/any/each via ":D*->" / ":->" / ":D+8%->"|":D@->")
    //          - never "!<-": either "!-<-" (excl) or "! <-": `x !-<-y ' <=> `y ->! x' <=> `y -> !x'
    //            note: "x <- y" (y: proof of x with more info) better than "x <=> y" (y paraphrases x)
    //          - "c" on the side of the corrected sentence
    //          - dir: instead of '<' or '>', '|' used for metalogical stuff, otherwise '%' is usable;
    //                 doubling '<'/'>'/'%' indicates mono-directionality-only
    //          - dash: '—' but '~' for "non-fully logic"; repl/add '=' if eq.included
    //                  doubling '~'/'-'/'=' means "without gen.-or-spec"
    // - gen.:  - dash: doubling '_' means "without implic.-or-concl."
    //          - direc: '^'/'.';  if indiv. involved: '..' used on  the individual side
    //          - andArrows: arrow added before or after;  orEq: '=' added before or after 
    //          - '@': for a subtyping/equivalence by extension.
  positive_gradual-rule_destination            ++/^  ++:        ^\++:  ++:   //+: --/^ --:, ^\-- 
  negative_gradual-rule_destination            +-/^  +-:        ^\-+   -+:   //+: -+/^ -+:, ^\+- 
  output_or_successor_or_implication           --*   */^
    general_implication_from_a_phrase          **=>             <=**  
      metalogic_deduction                      
        syntactic_deduction                    |-  ⊢  ⊢         -| 
          syntactic_equivalence                |<->             |<->
        semantic_deduction                     |=  ⊧
          semantic_equivalence                 |<=>             |<=>
      logic-specific_implication               *=>              <=*  
        //reminder: begin by ':' if defin, then by '.'/10% if by extension (or by '-' if unknown)
        logicalImplicByIntOrExt                =>               <=              =>!  =>.!  
          ..._and_generalisation               =>/^  /^=>       <=\_  \_<=    
          ..._and_generalisation_by_extension  100%=>/^         100%<=\_        
        rule (defin with ':' 1st)              ~>               <~=             ~>!   ~>.!
          //reminder: "<~" rules (e.g. Prolog rules ":-") express "sufficient" conditions! 
          ...wo.gen.-or-spec.                  ~~>              <~~=            ~~>! ~~>.!
          ..._and_generalisation               ~>/^   /^~>      <~=\_           
        logical/rule_descriptive_implication   =>   ~|>         <=  <|~        =>! =>! =>.!
          modus-ponens-only_descr-implic       =>>  ~|>>        <<= <<|~   
          descriptive_material_implication     =>|             |<=
          descriptive_formal_equivalence       <=>             <=>            <=>!  <=>.!
  semantic_gGeneralization_or_equivalent                                        =!
    core-generalization_or_equivalent          =/^                 ^\=  \=
      equivalent //see below for strict gen.   =*               =*              =!            
        intensionally_equivalent_type          =                =               =!  
        extensionally_equivalent_type          .=               .=              =!  
        //eq_between_phrases: see above 3 equivalence cases
    semantic_strict_gGeneralization           */^               =^\*            =! 
      type                                     |^               =|.
      semantic_core-strict-generalization      /°               =°\  °\=
        super_individual                     ../^  ../          =\.. ^\..=
        supertype                              /^   <           =\.  ^\=  >= 
          natural-type_supertype              _/^               =\_
          non-natural-type_supertype          ~/^               =\~   \~=  
          extensional_supertype               ./^              .=\.  .\=
        phrase_strict-generalization         ._/^  ._/          =\_.  \_.=      =! 
          phrase_gen._wo._implic.-or-concl   __/^  __/          =\__ ^\__=   
          phrase_implication_and_generalization: see above "..._and_generalisation" cases
  corrective_relation                        c-binaryRelAbbrev  binaryRelAbbrev-c



Input/output Directives/Commands

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Input
"check level "{NUMERAL}";"        PtKkIn->doAllChecks

========== Parsing

---------- module:
!_! no/do Module_reloading;     // !_! each Module_reloading is mandatory;
  // !_! each ^(Loading_instruction parameter: a Module ?m) trigger of: (a Loading  input: ?m)

---------- declaration:
!_! no/allow Forward_declaration; //disallow Forward_declaration !_!each Forward_declaration is allowed
  !_! no/allow Link_forward-declaration;
  !_! no/allow Declaration_via_descriptive relation;


---------- lexical:
unprefixed variables; prefixed variables;  PtKoIn->areVarValuesLikeIdentifiers=true
"unprefixed terms are key names;" {if(Run)PtKkIn->isUnprefixedIdentsAllowed=true;}
"unprefixed identifiers allowed;" {if(Run)PtKkIn->isUnprefixedIdentsAllowed=true;}
"no unprefixed identifiers;"      {if(Run)PtKkIn->isUnprefixedIdentsAllowed=false;}
"use names;" "no names;"          {PtKkIn->areNamesAllowed=true;}
"ambiguityAcceptation "{NUMERAL}";" &PtKkIn->bAmbiguityAcceptation);=
!_! `this User'_._set("pm","pwd"); //or gets password, or = pm/null;  ? this User
!_! default Source/Creator/Interpreter := ...

---------- structural:
"no exclusion check;"
"\"incorrect kind\" errors;"      {PtKkIn->noIncorrectKindErrors=false;}
"no exitAtError;"                 PtKb->oErr.nbErrorsToReachForExiting=0;
allow types of relations on relations;" PtKkIn->areTypesOfRelationOnRelationAllowed=true;


========== Command
"gets;" 



@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Output

========== During parsing
"run mode;" "load mode;" "display mode;"   "include/load/display/run/output/format "{IDENT}";" 


========== During execution
"no reasoning trace;"          PtKb->oTrace.nReasoningTraceLevel= 0;PtKb->oTrace.nTraceLevel

========== Command
echo|print   "map"



@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Execution (updates, calls, ...)

========== Directive
"no storage;"

========== Command
exit del mod  "e-mail"   "date;"  "duration;"  "sleep "{NUMERAL}";"





OMS
  \. (dol#model = System_repr,
       != (logic#model = (dol#realization != uml#realization, 
                           = "semantic interpretation of all non-logical symbols of a signature") ) ),
  p: (dol{logical_theory
       \. ontology = "explicit and shared formal representation of the entities and ...",
       p: sentences  (signature p: 1..* (dol#Non-logical=symbol = cl#names (cl#sequence=marker = list),
                                          \. individual class property ) )
     )                                   //denoting an object from the domain of discourse

p35: http://www.thezfiles.co.za/ROMULUS/home.html
p142: sublanguageOf, ...
p150: A formal representation of language and logic translations still needs to be developed
      see QVT or [7] (LATIN short paper; see my own references)
p181: HETS, Ontohub, Modelhub, Spechub, ...    API4KP.