Connector
The Connector is a type of EvaluatableLink used to group together a set of specifications that describe something that can be connected to something else. It derives from Evaluatable, since, in general, connectors may or may not be connectable to other connectors. The result of an attempted mating is a TruthValue, indicating whether the attachment may go forwards, or not.
See Connectors and Sections for details.
Examples
A few examples illustrate the idea. These are discused in greater detail in two PDF's: opencog/sheaf/docs/connectors-and-variables.pdf and opencog/sheaf/docs/tensors.pdf.
TypedVariableLink
An example of a Connector is the TypedVariableLink: it couples together a variable name (in the VariableNode) with a type specification. For example, a variable that can only be a ConceptNode is written as
TypedVariable Variable X TypeNode 'ConceptNode
indicates that X can only eve be a ConceptNode. When used in a LambdaLink, for example
Lambda TypedVariable Variable X TypeNode 'ConceptNode <body>
it indicates that the Lambda can only "connect to" some ConceptNode.
SignatureLink
The SignatureLink is a Connector that is used do write down the specification of a complex type. For example, most EvaluationLinks have the form
Signature EvaluationLink Type 'PredicateNode ListLink Type 'ConceptNode Type 'ConceptNode
Anything having this signature can only "connect" to EvaluationLinks of this particular form; all other connections are rejected.
Grammatical connector
A lexical entry in a grammar may have the form
Section LexicalNode "the" Connector Bond "determiner" Sex "+"
which indicates that the English word "the" is a determiner, and that it can connect to nouns from the right. The SexNode indicates the "orientation". In this case, it is a bipolar connector direction, connecting to either the left or the right.
Formal definition
The connector has the general form
Connector <optional identifier> <constraints>
where <optional identifier> is an optional name for the connector (such as the VariableNode in the examples above), and the <constraints> determine the kind of connector that it is.