@perspect3vism/ad4m / Exports / Language
Interface: Language
Interface of AD4M Languages
Any JavaScript module that implements a create() function that returns an object that implements this interface is a valid AD4M language. So the AD4M-internal representation of a language is an object that implements this interface.
Since there are a few different kinds of languages, this interface is split into optional sub-interfaces. The only required property is the name of the language.
The most usual kind of language is the "Expression Language", which is a language that can be used to create and share Expressions. For that, implement the expressionsAdapter and expressionUI interface.
The second most common kind of language is the "Link Language", which is a language that builds the core of AD4M Neighbourhoods. For that, implement the linksAdapter interface.
Table of contents
Properties
- directMessageAdapter
- expressionAdapter
- expressionUI
- getAllAdapter
- getByAuthorAdapter
- languageAdapter
- linksAdapter
- name
- settingsUI
- teardown
- telepresenceAdapter
Methods
Properties
directMessageAdapter
• Optional
Readonly
directMessageAdapter: DirectMessageAdapter
Optional adapter for direct messaging between agents
Defined in
language/Language.ts:65 (opens in a new tab)
expressionAdapter
• Optional
Readonly
expressionAdapter: ExpressionAdapter
ExpressionAdapter implements means of getting an Expression by address and putting an expression
Defined in
language/Language.ts:39 (opens in a new tab)
expressionUI
• Optional
Readonly
expressionUI: ExpressionUI
Interface for getting UI/web components for rendering Expressions of this Language
Defined in
language/Language.ts:42 (opens in a new tab)
getAllAdapter
• Optional
Readonly
getAllAdapter: GetAllAdapter
Optional adapter for getting all Expressions
Defined in
language/Language.ts:62 (opens in a new tab)
getByAuthorAdapter
• Optional
Readonly
getByAuthorAdapter: GetByAuthorAdapter
Optional adapter for getting Expressions by author
Defined in
language/Language.ts:60 (opens in a new tab)
languageAdapter
• Optional
Readonly
languageAdapter: LanguageAdapter
Implementation of a Language that defines and stores Languages
Defined in
language/Language.ts:57 (opens in a new tab)
linksAdapter
• Optional
Readonly
linksAdapter: LinkSyncAdapter
Interface of LinkLanguages for the core implementation of Neighbourhoods
Defined in
language/Language.ts:45 (opens in a new tab)
name
• Readonly
name: string
Defined in
language/Language.ts:27 (opens in a new tab)
settingsUI
• Optional
Readonly
settingsUI: SettingsUI
Interface for providing UI components for the settings of this Language
Defined in
language/Language.ts:68 (opens in a new tab)
teardown
• Optional
Readonly
teardown: () => void
Type declaration
▸ (): void
Optional function to make any cleanup/teardown if your language gets deleting in the ad4m-executor
Returns
void
Defined in
language/Language.ts:71 (opens in a new tab)
telepresenceAdapter
• Optional
Readonly
telepresenceAdapter: TelepresenceAdapter
Additional Interface of LinkLanguages that support telepresence features, that is:
- seeing who is online and getting a status
- sending/receiveing p2p signals to other online agents without affecting the shared Perspective of the Neighbourhood (see TelepresenceAdapter for more details)
Defined in
language/Language.ts:54 (opens in a new tab)
Methods
interactions
▸ interactions(expression
): Interaction
[]
All available interactions this agent could execute on given expression
Parameters
Name | Type |
---|---|
expression | string |
Returns
Defined in
language/Language.ts:74 (opens in a new tab)
isImmutableExpression
▸ Optional
isImmutableExpression(expression
): boolean
Flagging expressions as immutable to enable expression caching in the ad4m-executor
Parameters
Name | Type |
---|---|
expression | string |
Returns
boolean