Section

From OpenCog
Jump to: navigation, search

A Section is a Link type that serves as a base class for things that can be "connected together". It is a base class for ScopeLink, and thus for LambdaLink; functions can be "connected together" by composing them.

See Connectors and Sections for details and examples.

Formal definition

A Section is of the form

Section
   <entry (possibly lexical)>
   ConnectorSeq
      Connector
          <optional link name>
          <link type (possibly lexical)>
          <link properties (polarity, other constraints)>
      Connector
           ...

The use of the ConnectorSeq is sometime optional; it is usually a convenience. If it is not used, the Connectors may appear interspersed with other Atom types. There are several counter-examples:

  • The PrenexLink is a kind of Section, it provides extensive machinery to bring all Connectors to the top, so that the Section is in prenex normal form. Many of the commonly-used link types want to be in prenex form.
  • The ArrowLink is a kind of ConnectorSeq. It cannot be dissolved away, as it explicitly indicates function input and output types.

See Connectors and Sections for details and examples.