Appearance
SILVIA Core – ApiBrain Reference
Version: 3.1
Namespace: CognitiveCode.Silvia.Api
All 102 public methods in SilviaApiBrain have comprehensive XML documentation for IDE Support. This includes:
- Complete class-level overview and architectural documentation
- All inference methods (GetResponse, NextResponse, etc.)
- All security methods with explicit security validation notes
- All jump/bypass methods with security architecture clarifications
- All Markov chain and dynamic generation methods
- All pattern matching and wildcard methods
- All context management methods
- All script compilation and export methods
- All category and PAGER tag methods
- All brain loading, saving, and stream operations
Critical Security Documentation: All behavior jump methods (SetJump, SetJumpToGroup, SetJumpToSubgroup, SetBypassResponse) are explicitly documented to clarify that they request jumps subject to security validation - they do not bypass security architecture. Behaviors exceeding user security clearance will not execute regardless of jump attempts.
Table of Contents
- Overview
- Architecture
- Core Inference Methods
- Response Stack & Diagnostics
- Behavior Control & Navigation
- Dynamic Output Generation
- Knowledge Management
- Compiler & Script Management
- Context & Conversational State
- Security & Access Control
- Optimization & Performance
- PAGER Tag Management
- Advanced Features
- Platform-Specific Integrations
- Best Practices
Overview
ApiBrain is the inference engine at the heart of SILVIA's Behavior Stack. It provides deterministic AI reasoning through a hybrid pattern-matching system that combines:
- Conceptual Pattern Matching: Multi-layered semantic understanding
- Dynamic Output Generation: Markov-based language construction
- Behavioral Intelligence: Hierarchical knowledge organization
- Security-Aware Inference: Multi-level access control
- Real-time Compilation: Hot-reloadable C# scripting
What Makes SILVIA Different
Unlike black-box neural networks, SILVIA's inference is:
- Auditable: Every response traces to specific behaviors
- Deterministic: Same input + state = same output
- Explainable: Response weights show matching confidence
- Real-time Modifiable: Update knowledge without retraining
- Security-First: Built-in role-based access control
Modern Use Cases
Enterprise Knowledge Systems
csharp
// Multi-tenant customer service with role-based responses
var customerCore = SilviaCoreManager.CreateCore("customer_001", "support_brain.sil", true);
customerCore.ApiBrain().SetUserSecurityLevel(1); // Standard customer
var adminCore = SilviaCoreManager.CreateCore("admin_001", "support_brain.sil", true);
adminCore.ApiBrain().SetUserSecurityLevel(5); // Admin access to privileged responsesIndustrial IoT Command & Control
csharp
// Voice-controlled manufacturing with safety constraints
core.ApiBrain().SetAbsorberThreshold(0.6f); // Require high confidence for commands
core.ApiBrain().SetUserSecurityLevel(2); // Operator level
string response = core.ApiBrain().GetResponse("activate line three", null);
// Only matches if absorber is 60%+ confident AND user has security level >= behavior's levelHybrid AI Systems
csharp
// Combine neural NLU with deterministic reasoning
string userIntent = neuralModel.PredictIntent(rawInput);
string entities = neuralModel.ExtractEntities(rawInput);
// SILVIA handles deterministic business logic
core.SetVariable("$detected_intent", userIntent);
core.SetVariable("$entities", entities);
string response = core.ApiBrain().GetResponse(userIntent, "logs/hybrid.txt");Architecture
Inference Pipeline
User Input
↓
[Concept Tokenization] ──→ Linguistic atoms + punctuation
↓
[Stopword Filtering] ──→ Extract salient concepts
↓
[Absorber Matching] ──→ Pattern matching against knowledge base
↓
[Security Check] ──→ Verify user authorization
↓
[Exuder Selection] ──→ Choose response from matched behavior
↓
[Dynamic Generation] ──→ Markov-based construction (if flagged)
↓
[Script Execution] ──→ Pre/Post behavior scripts
↓
Response OutputKnowledge Hierarchy
Brain File (.sil)
├── Behaviors (Groups/Names)
│ ├── Absorbers (Input patterns)
│ ├── Exuders (Output templates)
│ ├── Pre-Behavior Scripts
│ └── Post-Exuder Scripts
├── Concept Dictionary (Atoms)
├── Markov Chains (Dynamic generation)
├── Context Stack (Conversation history)
├── Variables (State management)
└── PAGER Tag Presets (Animation/UI)Core Inference Methods
GetResponse
Primary inference method – processes user input and returns AI response.
csharp
public string GetResponse(string input, string io_log, bool nested = false)Parameters:
input– User utterance to processio_log– Optional file path for conversation logging (append mode)nested– If true, uses nested response stack (for recursive inference)
Returns: string – AI-generated response text
Example:
csharp
// Basic usage
string response = core.ApiBrain().GetResponse("What's the weather like?", null);
core.ApiApp().SetTextOutput(response);
// With logging
string response = core.ApiBrain().GetResponse(
"Schedule meeting for tomorrow",
"logs/assistant_2025_10.txt"
);
// Nested inference (for sub-dialogues)
string mainResponse = core.ApiBrain().GetResponse("Tell me about AI", null, false);
string clarification = core.ApiBrain().GetResponse("Which aspect?", null, true);Behavior:
- Tokenizes input into concepts
- Searches behaviors for matching absorbers
- Ranks matches by weight (0.0 to 1.0+)
- Applies security filtering
- Executes pre-behavior scripts
- Selects exuder (random from weighted pool)
- Performs dynamic generation if flagged
- Executes post-exuder scripts (via
ExecutePostEvents) - Returns response text
Notes:
- Post-events are not auto-executed; call
ExecutePostEvents()explicitly - Nested responses maintain separate stack from primary responses
- Input is normalized (lowercase, trimmed) before processing
ExecutePostEvents
Executes post-exuder scripts from the last GetResponse call.
csharp
public bool ExecutePostEvents()Returns: bool – Success/failure of script execution
Example:
csharp
string response = core.ApiBrain().GetResponse("book a flight to Denver", null);
core.ApiApp().SetTextOutput(response);
// Execute any post-exuder scripts (e.g., database updates, API calls)
if (!core.ApiBrain().ExecutePostEvents()) {
Console.WriteLine("Warning: Post-event script failed");
}When to Use:
- Database operations after response generation
- External API calls triggered by user input
- State updates that shouldn't block response delivery
- Multi-step workflows (chaining behaviors)
IsBusy
Checks if the brain is currently processing a request.
csharp
public bool IsBusy()Returns: bool – True if inference is in progress
Example:
csharp
// Thread-safe request handling
if (!core.ApiBrain().IsBusy()) {
var task = Task.Run(() => {
string response = core.ApiBrain().GetResponse(userInput, null);
// Handle response
});
}Response Stack & Diagnostics
After GetResponse, SILVIA maintains a ranked stack of matching behaviors.
GetResponseBehaviorID
Gets the behavior ID from the response stack.
csharp
public int GetResponseBehaviorID(int index)Parameters:
index– Stack position (0 = best match)
Returns: int – Behavior ID, or -1 if invalid index
Example:
csharp
string response = core.ApiBrain().GetResponse("Hello there", null);
int bestBehaviorId = core.ApiBrain().GetResponseBehaviorID(0);
int secondBestId = core.ApiBrain().GetResponseBehaviorID(1);
Console.WriteLine($"Matched Behavior: {bestBehaviorId}");GetResponseAbsorberID
Gets the absorber ID from the response stack.
csharp
public int GetResponseAbsorberID(int index)Returns: int – Absorber ID within the behavior, or -1 if invalid
GetResponseWeight
Gets the match weight (confidence score) from the response stack.
csharp
public double GetResponseWeight(int index)Returns: double – Match weight (0.0 to 1.0+, higher = better match)
Example:
csharp
string response = core.ApiBrain().GetResponse("turn on the lights", null);
for (int i = 0; i < 5; i++) {
int behaviorId = core.ApiBrain().GetResponseBehaviorID(i);
if (behaviorId == -1) break;
double weight = core.ApiBrain().GetResponseWeight(i);
Console.WriteLine($"Match {i}: Behavior {behaviorId}, Weight {weight:F3}");
}
// Output:
// Match 0: Behavior 42, Weight 0.875
// Match 1: Behavior 38, Weight 0.623
// Match 2: Behavior 55, Weight 0.411Use Cases:
- Confidence filtering: Only act if weight > threshold
- Ambiguity detection: Multiple high-weight matches = ask for clarification
- Analytics: Track which behaviors are frequently matched
GetVerbal
Gets the verbal/TTS version of the response.
csharp
public string GetVerbal(bool nested = false)Parameters:
nested– If true, returns verbal from nested response stack
Returns: string – Verbal response (may differ from text output)
Example:
csharp
string response = core.ApiBrain().GetResponse("What time is it?", null);
string textOutput = response; // "It's 3:45 PM"
string verbalOutput = core.ApiBrain().GetVerbal(); // "It's three forty-five"
core.ApiApp().SetTextOutput(textOutput);
core.ApiApp().SetVoiceOutput(verbalOutput);GetOutputBehaviorData / GetOutputAbsorberData / GetOutputExuderData
Retrieves arbitrary metadata attached to matched behavior/absorber/exuder.
csharp
public string GetOutputBehaviorData(bool nested = false)
public string GetOutputAbsorberData(bool nested = false)
public string GetOutputExuderData(bool nested = false)Returns: string – Metadata string, or null if not present
Example:
csharp
// In SILVIA Studio, attach JSON metadata to exuders:
// Exuder data field: {"action":"lights_on","zone":"living_room","intensity":80}
string response = core.ApiBrain().GetResponse("turn on living room lights", null);
string exuderData = core.ApiBrain().GetOutputExuderData();
if (!string.IsNullOrEmpty(exuderData)) {
var command = JsonConvert.DeserializeObject<LightCommand>(exuderData);
smart_home.ExecuteCommand(command);
}Use Cases:
- Embed structured commands in responses
- Track analytics metadata
- Store routing information for multi-modal output
SetInteractionDiagnosticsState / GetInteractionDiagnosticsState
Enables training/debug mode with verbose inference logging.
csharp
public void SetInteractionDiagnosticsState(bool tf)
public bool GetInteractionDiagnosticsState()Example:
csharp
// Enable diagnostics for debugging
core.ApiBrain().SetInteractionDiagnosticsState(true);
string response = core.ApiBrain().GetResponse("test input", null);
// Console shows detailed match weights, concept extraction, etc.
core.ApiBrain().SetInteractionDiagnosticsState(false); // Disable for productionBehavior Control & Navigation
SILVIA can force specific behaviors to execute, bypassing normal inference.
SetJump
Immediately executes a named behavior.
csharp
public bool SetJump(string group, string name, float probability)Parameters:
group– Behavior group namename– Behavior nameprobability– Execution probability (0.0 to 1.0)
Returns: bool – True if at least one behavior executed
Example:
csharp
// Force a greeting behavior
core.ApiBrain().SetJump("greetings", "welcome_new_user", 1.0f);
// 50% chance to execute upsell behavior
core.ApiBrain().SetJump("sales", "premium_upsell", 0.5f);Overloads:
csharp
// Delayed jump (async)
public async void SetJump(string group, string name, float probability, float delay)
// Jump after approximate speech duration
public void SetJumpAfterSpeechTime(string group, string name, float probability, float timeScale = 1.0f)Example – Delayed Jumps:
csharp
// Jump after 3 seconds
core.ApiBrain().SetJump("reminders", "follow_up", 1.0f, 3.0f);
// Jump after AI finishes speaking
core.ApiBrain().SetJumpAfterSpeechTime("smalltalk", "elaboration", 0.8f);SetJumpToGroup / SetJumpToSubgroup
Jumps to random behavior within a group or subgroup.
csharp
public bool SetJumpToGroup(string group, float probability)
public bool SetJumpToSubgroup(string group, string subgroup, float probability)Example:
csharp
// Random joke from "humor" group
core.ApiBrain().SetJumpToGroup("humor", 1.0f);
// Random tip from "tutorials/beginner" subgroup
core.ApiBrain().SetJumpToSubgroup("tutorials", "beginner", 1.0f);
// If subgroup is null/empty, selects only behaviors without subgroups
core.ApiBrain().SetJumpToSubgroup("tutorials", "", 1.0f);SetBypassResponse
Forces next GetResponse to ignore input and jump to a behavior.
csharp
public bool SetBypassResponse(string group, string name)Example:
csharp
// Ask a yes/no question
string response = core.ApiBrain().GetResponse("Do you want to continue?", null);
core.ApiApp().SetTextOutput(response);
// Force next input to be interpreted as "yes" response
core.ApiBrain().SetBypassResponse("confirmation", "assume_yes");
string userInput = GetUserInput(); // Could be "yeah", "ok", "sure"...
string result = core.ApiBrain().GetResponse(userInput, null);
// Bypasses normal inference, executes "confirmation.assume_yes" behaviorUse Cases:
- State machines (force transitions)
- Confirmation flows
- Wizard-style dialogues
NextResponse
Advances to the next exuder in the current behavior (if multiple exist).
csharp
public bool NextResponse(string io_log, out string response)Example:
csharp
// First response
string response = core.ApiBrain().GetResponse("tell me a story", null);
core.ApiApp().SetTextOutput(response);
// Continue story (next exuder in same behavior)
if (core.ApiBrain().NextResponse(null, out string nextPart)) {
core.ApiApp().SetTextOutput(nextPart);
}Dynamic Output Generation
SILVIA's Markov chain engine generates novel sentences from learned patterns.
GenerateDynamic
Generates output expressing specific concepts.
csharp
public string GenerateDynamic(string included, string excluded)Parameters:
included– Space-separated concepts to expressexcluded– Space-separated concepts to avoid
Returns: string – Dynamically generated sentence
Example:
csharp
// Generate output about "machine learning" but exclude "neural networks"
core.ApiBrain().SetDynamicDepth(4);
core.ApiBrain().SetDynamicAttraction(8);
string output = core.ApiBrain().GenerateDynamic(
"machine learning algorithms",
"neural networks deep learning"
);
// Possible output: "Machine learning algorithms analyze patterns in datasets"GenerateDynamicLimited
Generates output limited to specific behaviors.
csharp
public string GenerateDynamicLimited(string included, string excluded, string group, string name)Parameters:
group– Limit generation to this behavior group (null = all)name– Further limit to this specific behavior (null = all in group)
Example:
csharp
// Generate financial advice using only "investment" group knowledge
string advice = core.ApiBrain().GenerateDynamicLimited(
"portfolio diversification risk",
"cryptocurrency speculation",
"investment",
null
);GenerateDynamicFromMemory
Generates output from conversational feedback stack.
csharp
public string GenerateDynamicFromMemory(string user, string included, string excluded, bool invert)Parameters:
user– Username whose conversation history to useinvert– If true, inverts pronouns (first ↔ second person)
Example:
csharp
// Generate summary of what user said about "vacation plans"
string summary = core.ApiBrain().GenerateDynamicFromMemory(
"user_john",
"vacation travel destination",
"work business",
false
);Dynamic Generation Parameters
Control how SILVIA constructs sentences:
SetDynamicAttraction / GetDynamicAttraction
Attraction to specified concepts (higher = more literal inclusion).
csharp
public bool SetDynamicAttraction(int attraction)
public int GetDynamicAttraction()Example:
csharp
core.ApiBrain().SetDynamicAttraction(10); // High attraction
// Output will aggressively include specified concepts
core.ApiBrain().SetDynamicAttraction(3); // Low attraction
// Output loosely relates to conceptsSetDynamicDepth / GetDynamicDepth
Markov chain depth (higher = more grammatically rigid).
csharp
public bool SetDynamicDepth(int depth)
public int GetDynamicDepth()Typical Values:
2-3– Creative, free-association style4-5– Balanced fluency and creativity6+– Highly grammatical, rigid structure
SetDynamicFalloffDepth / GetDynamicFalloffDepth
Depth at which statistical falloff begins.
csharp
public bool SetDynamicFalloffDepth(int falloffDepth)
public int GetDynamicFalloffDepth()SetDynamicFalloff / GetDynamicFalloff
Falloff multiplier (how fast rigidity decays).
csharp
public bool SetDynamicFalloff(float falloff)
public float GetDynamicFalloff()Example:
csharp
core.ApiBrain().SetDynamicDepth(6);
core.ApiBrain().SetDynamicFalloffDepth(3);
core.ApiBrain().SetDynamicFalloff(0.8f);
// Depth 0-3: Rigid Markov traversal
// Depth 4: 80% probability of rigid match
// Depth 5: 64% probability (0.8^2)
// Depth 6: 51% probability (0.8^3)SetDynamicAdaptation / GetDynamicAdaptation
Auto-adapt rigidity to express all required concepts.
csharp
public void SetDynamicAdaptation(bool adapt)
public bool GetDynamicAdaptation()Example:
csharp
core.ApiBrain().SetDynamicAdaptation(true);
// If knowledge base is insufficient, SILVIA will relax grammatical rules
// to still express all required concepts (may be less fluent)
core.ApiBrain().SetDynamicAdaptation(false);
// SILVIA will express as many concepts as possible within grammatical constraints
// (may omit concepts if knowledge is lacking)DynamicHasAllConceptsInOne
Checks if a single exuder contains all required concepts.
csharp
public bool DynamicHasAllConceptsInOne()Example:
csharp
string result = core.ApiBrain().GenerateDynamic("artificial intelligence ethics", "");
if (core.ApiBrain().DynamicHasAllConceptsInOne()) {
// A single exuder had all concepts – high confidence
core.ApiApp().SetTextOutput(result);
} else {
// Concepts were scattered across multiple exuders – may be less coherent
Console.WriteLine("Warning: Low confidence dynamic output");
}GetDynamicContributors
(C# Only) Returns behavior/exuder pairs that contributed to dynamic output.
csharp
public int[] GetDynamicContributors()Returns: int[] – Alternating [behaviorID, exuderID, behaviorID, exuderID, ...]
Example:
csharp
string output = core.ApiBrain().GenerateDynamic("quantum computing qubits", "");
int[] contributors = core.ApiBrain().GetDynamicContributors();
for (int i = 0; i < contributors.Length; i += 2) {
int behaviorId = contributors[i];
int exuderId = contributors[i + 1];
Console.WriteLine($" Used: Behavior {behaviorId}, Exuder {exuderId}");
}Knowledge Management
Load / LoadStream
Loads brain file(s) into the core.
csharp
public bool Load(string filename, bool merge, bool boot)
public bool LoadStream(BinaryReader brainStream, string[] stopwords, bool merge, bool boot)Parameters:
filename– Path to.silbrain file (can use|separator for multiple files)merge– If true, merges with existing knowledge; if false, replacesboot– If true, executes "boot" behaviors after loadingbrainStream– Binary stream for embedded/encrypted brainsstopwords– Array of stopword strings (forLoadStream)
Example:
csharp
// Load base knowledge
core.ApiBrain().Load("base_knowledge.sil", false, true);
// Merge domain-specific knowledge
core.ApiBrain().Load("medical_terms.sil", true, false);
// Load from encrypted stream
using (var fs = File.OpenRead("secure_brain.sil")) {
var cryptoReader = core.ApiBrain().GetCryptoReader(fs, "aes256");
var stopwords = File.ReadAllLines("stopwords.txt");
core.ApiBrain().LoadStream(cryptoReader, stopwords, false, true);
}Notes:
- Brain Reload: If
merge=falseandboot=true, sensors are automatically reinitialized - Loading clears response stack and resets context
Save
Saves current brain state to file.
csharp
public bool Save(string filename, string[] groups, bool save_state, bool SILVIA2 = false)Parameters:
filename– Output path for.silfilegroups– Array of group names to save (null = all groups)save_state– If true, saves variables and contextSILVIA2– Legacy format flag (use false)
Example:
csharp
// Save entire brain with state
core.ApiBrain().Save("snapshot.sil", null, true);
// Save only "customer_service" and "faq" groups without state
core.ApiBrain().Save("export.sil", new string[] {"customer_service", "faq"}, false);MergeBrains
Merges multiple brain files at runtime.
csharp
public bool MergeBrains(string files, bool boot)Parameters:
files– Pipe-separated list of brain files:"base.sil|addon.sil|custom.sil"
Example:
csharp
// Merge three knowledge bases
core.ApiBrain().MergeBrains("general.sil|industry.sil|company.sil", true);Export
Exports brain to human-readable text format.
csharp
public bool Export(string filename)Example:
csharp
// Export for review/editing
core.ApiBrain().Export("brain_export.txt");
// Creates: brain_export.txt (behaviors) and brain_export.ex.txt (exuders)Compiler & Script Management
SILVIA embeds a C# compiler for hot-reloadable behavior scripts.
CompileScripts
Pre-compiles all behavior scripts.
csharp
public bool CompileScripts()Example:
csharp
core.ApiBrain().Load("my_brain.sil", false, false);
if (!core.ApiBrain().CompileScripts()) {
Console.WriteLine("Compilation errors detected!");
// Check console for error details
} else {
core.ApiBrain().PostLoadBoot(); // Safe to boot now
}PostLoadBoot
Executes "boot" behaviors after manual script compilation.
csharp
public bool PostLoadBoot()SetAdditionalReferenceAssemblies / GetAdditionalReferenceAssemblies
Manages compiler reference assemblies.
csharp
public bool SetAdditionalReferenceAssemblies(string[] referenceAssemblies)
public string[] GetAdditionalReferenceAssemblies()
public bool[] AddReferenceAssemblies(string[] _additionalAssemblies)Example:
csharp
// Add references for database and HTTP APIs
core.ApiBrain().SetAdditionalReferenceAssemblies(new string[] {
"System.Data.SqlClient.dll",
"Newtonsoft.Json.dll",
"../CustomLibrary.dll"
});
// Now behavior scripts can use:
// using System.Data.SqlClient;
// using Newtonsoft.Json;SetTargetCSProjects / AddTargetCSProject / GetTargetCSProjects
Compiles external C# projects into SILVIA runtime.
csharp
public bool[] SetTargetCSProjects(string[] targetCSProjects)
public bool AddTargetCSProject(string targetCSProject)
public string[] GetTargetCSProjects()
public bool RemoveTargetCSProject(string _targetCSProject)Example:
csharp
// Compile helper library project
core.ApiBrain().AddTargetCSProject("C:/Projects/SilviaHelpers/SilviaHelpers.csproj");
// Behavior scripts can now call:
// SilviaHelpers.Utils.ProcessData(...)SetTargetCSProjsFromSolution / GetCsProjsFromSolution
Compiles entire .sln solution.
csharp
public bool SetTargetCSProjsFromSolution(string slnPath)
public string[] GetCsProjsFromSolution(string slnPath)Example:
csharp
// Load all projects from solution
core.ApiBrain().SetTargetCSProjsFromSolution("C:/Projects/EnterpriseSuite/EnterpriseSuite.sln");SetAdditionalScriptsPath / GetAdditionalScriptsPath
Sets path for shared script includes.
csharp
public bool SetAdditionalScriptsPath(string path)
public string GetAdditionalScriptsPath()Example:
csharp
core.ApiBrain().SetAdditionalScriptsPath("C:/SilviaScripts/Shared");
// Behavior scripts can reference common utilities in this folderExportScriptsForUnity / ExportScriptsAsAssemblyFromUnity
AOT compilation for mobile/Unity.
csharp
public bool ExportScriptsForUnity(string scriptFile)
public bool ExportScriptsAsAssemblyFromUnity(string assemblyFileName, string outputDirectory)Example:
csharp
#if UNITY_EDITOR
// Export scripts as .cs for iOS/Android AOT compilation
core.ApiBrain().ExportScriptsForUnity("Assets/Scripts/BrainScripts.cs");
// Or export as DLL
core.ApiBrain().ExportScriptsAsAssemblyFromUnity("BrainScripts", "Assets/Plugins");
#endifSetScriptClassType / ClearScriptClassTypes
Registers custom script base classes.
csharp
public bool SetScriptClassType(Type t, string internalScriptClassName)
public bool ClearScriptClassTypes()Example:
csharp
// Allow scripts to inherit from custom base
core.ApiBrain().SetScriptClassType(typeof(MyCustomScriptBase), "MyScriptBase");
// In behavior script:
// public class MyBehavior : MyScriptBase { ... }Context & Conversational State
SILVIA maintains a context stack for multi-turn conversations.
SetContextDepth / GetContextDepth
Sets maximum context history depth.
csharp
public bool SetContextDepth(int depth)
public int GetContextDepth()Example:
csharp
// Keep 5 turns of conversation history
core.ApiBrain().SetContextDepth(5);
// Turn 1: "What's the weather?"
// Turn 2: "And tomorrow?" (SILVIA remembers context: "weather")
// Turn 3: "How about the weekend?" (still has context)ClearContext
Clears conversation context.
csharp
public bool ClearContext()Example:
csharp
// Start fresh conversation
core.ApiBrain().ClearContext();AddContext
Manually adds context entry.
csharp
public bool AddContext(string input, string response)Example:
csharp
// Seed context from previous conversation
core.ApiBrain().AddContext(
"My name is Alice",
"Nice to meet you Alice"
);
// Now: "What's my name?" will match better due to contextSecurity & Access Control
SetUserSecurityLevel / GetUserSecurityLevel
Sets role-based access level (0 = public, higher = privileged).
csharp
public bool SetUserSecurityLevel(int securityLevel)
public int GetUserSecurityLevel()Example:
csharp
// Public customer
core.ApiBrain().SetUserSecurityLevel(0);
// Can only access behaviors/exuders with security level 0
// Customer service rep
core.ApiBrain().SetUserSecurityLevel(2);
// Can access levels 0-2 (sees internal notes, policies)
// Administrator
core.ApiBrain().SetUserSecurityLevel(5);
// Full access including privileged admin commandsUse Cases:
- Multi-tenant SaaS with tiered features
- Medical systems (patient vs doctor vs admin)
- Industrial control (operator vs supervisor vs engineer)
Optimization & Performance
SetAbsorberThreshold / SetReusableThreshold
Controls inference confidence thresholds.
csharp
public bool SetAbsorberThreshold(float threshold)
public bool SetReusableThreshold(float threshold)Parameters:
absorberThreshold– Minimum match quality (0.0 to 1.0, default 0.33)reusableThreshold– Fallback match quality (default 100.0 = disabled)
Example:
csharp
// High-stakes application – require strong matches
core.ApiBrain().SetAbsorberThreshold(0.65f);
// Input must match ≥65% of absorber concepts
// Enable reusable exuder fallback for casual responses
core.ApiBrain().SetReusableThreshold(1.2f);
// If no absorber matches, try exuders with aggregate weight ≥1.2Tuning Guide:
- High Threshold (0.6+): Safety-critical, command & control, medical
- Medium Threshold (0.3-0.5): General chatbots, customer service
- Low Threshold (< 0.3): Creative, exploratory conversations
SetRandomizeResponses
Enables/disables random exuder selection.
csharp
public void SetRandomizeResponses(bool flag)Example:
csharp
core.ApiBrain().SetRandomizeResponses(false);
// Always picks highest-weight exuder (deterministic)
core.ApiBrain().SetRandomizeResponses(true);
// Randomly picks from weighted pool (more varied)SetOptimization
Enables performance optimizations (for low-power devices).
csharp
public void SetOptimization(bool flag)Example:
csharp
#if EMBEDDED_DEVICE
core.ApiBrain().SetOptimization(true);
// Reduces memory allocations, faster inference (may reduce quality slightly)
#endifSetUseWordNet / GetUseWordNet
Enables WordNet synonym expansion.
csharp
public void SetUseWordNet(bool useWordNet)
public bool GetUseWordNet()Example:
csharp
#if !MOBILE
core.ApiBrain().SetUseWordNet(true);
// Input: "automobile" also matches "car", "vehicle"
#endifSetDefaultResponsesEnabled / GetDefaultResponsesEnabled
Controls whether "default" behavior is used for unmatched input.
csharp
public void SetDefaultResponsesEnabled(bool enabled)
public bool GetDefaultResponsesEnabled()Example:
csharp
core.ApiBrain().SetDefaultResponsesEnabled(false);
// If no match, returns null instead of "I don't understand"SetInteractive
Enables interactive mode (for REPL/console interfaces).
csharp
public void SetInteractive(bool interactive)PAGER Tag Management
PAGER tags control animation, expressions, and UI events.
AddPAGERTagPreset
Stores a named PAGER tag preset.
csharp
public bool AddPAGERTagPreset(string _tagPresetName, string _tagPresetType, string _tagsData)Parameters:
_tagPresetName– Unique preset name_tagPresetType– Category:"Face","Body","LeftHand","RightHand", or custom_tagsData– XML-like tag string:<Tag param=value />
Example:
csharp
// Store a smile expression
core.ApiBrain().AddPAGERTagPreset(
"SmileDefault",
"Face",
"<FaceExpression type=smile intensity=0.8 />"
);
// Store a hand gesture
core.ApiBrain().AddPAGERTagPreset(
"ThumbsUp",
"RightHand",
"<Gesture type=thumbs_up duration=1.5 />"
);GetPAGERTagPresetData / RemovePagerTagPreset
Retrieves or removes presets.
csharp
public string GetPAGERTagPresetData(string _presetName)
public bool RemovePagerTagPreset(string _presetName)Example:
csharp
string smileTag = core.ApiBrain().GetPAGERTagPresetData("SmileDefault");
avatar.ApplyExpression(smileTag);
// Clean up unused presets
core.ApiBrain().RemovePagerTagPreset("OldGesture");GetAllPAGERTagPresets / GetPAGERTagPresetNames / GetPAGERTagPresetTypes / GetPAGERTagPresetStrings
Bulk preset retrieval.
csharp
public SilviaTagPresets GetAllPAGERTagPresets()
public List<string> GetPAGERTagPresetNames()
public List<string> GetPAGERTagPresetTypes()
public List<string> GetPAGERTagPresetStrings()Example:
csharp
// Get all face presets
var allPresets = core.ApiBrain().GetAllPAGERTagPresets();
for (int i = 0; i < allPresets.tagPresetNames.Count; i++) {
if (allPresets.tagPresetTypes[i] == "Face") {
string name = allPresets.tagPresetNames[i];
string tags = allPresets.tagPresetStrs[i];
facePresetMenu.AddItem(name, tags);
}
}Advanced Features
Stopword Management
Stopwords are low-value words ("the", "a", "is") filtered during concept extraction.
SetStopword / SetStopwords
Adds or updates stopwords.
csharp
public bool SetStopword(string stopword, bool state = true)
public bool SetStopwords(string[] stopwords, bool clear = false)Example:
csharp
// Mark "um" and "uh" as stopwords
core.ApiBrain().SetStopword("um");
core.ApiBrain().SetStopword("uh");
// Bulk load from array
var commonStopwords = new string[] {"the", "a", "an", "is", "are", "was", "were"};
core.ApiBrain().SetStopwords(commonStopwords, true); // clear=true replaces existingGetStopwords / LoadStopwords
Retrieves stopwords or loads from file.
csharp
public string[] GetStopwords()
public string[] LoadStopwords(StreamReader stream)Example:
csharp
using (var sr = new StreamReader("linguistics/stopwords_en.txt")) {
var stopwords = core.ApiBrain().LoadStopwords(sr);
core.ApiBrain().SetStopwords(stopwords, true);
}RemoveStopwords
Strips stopwords from a concept string.
csharp
public string RemoveStopwords(string concepts, string exclude)Parameters:
concepts– Input concept stringexclude– Space-separated concepts to keep (even if stopwords)
Example:
csharp
string input = "where is the state of california";
string filtered = core.ApiBrain().RemoveStopwords(input, "where");
// Returns: "where state california"Wildcard Matching
Wildcards (* symbols in absorbers) provide flexible pattern matching.
SetWildcardFloor / GetWildcardFloor / SetWildcardCeiling / GetWildcardCeiling / SetWildcardMultiplier / GetWildcardMultiplier
Controls wildcard match weights.
csharp
public bool SetWildcardFloor(float value)
public float GetWildcardFloor()
public bool SetWildcardCeiling(float value)
public float GetWildcardCeiling()
public bool SetWildcardMultiplier(float value)
public float GetWildcardMultiplier()Example:
csharp
// Wildcards contribute 0.1 to 0.8 to match weight
core.ApiBrain().SetWildcardFloor(0.1f);
core.ApiBrain().SetWildcardCeiling(0.8f);
core.ApiBrain().SetWildcardMultiplier(1.2f);
// Absorber: "my name is *"
// Input: "my name is Alice Smith Johnson"
// Wildcard matches "Alice Smith Johnson", contributes ~0.5 to total weightConcepts & Tokenization
AddConcepts
Pre-loads concepts into dictionary.
csharp
public bool AddConcepts(string input, bool punctuate, bool conceptualize)Example:
csharp
// Ensure technical terms are recognized
core.ApiBrain().AddConcepts("kubernetes docker containerization", false, false);GetConceptsAsStrings
Tokenizes input into concept array.
csharp
public string[] GetConceptsAsStrings(string input, bool punctuate, bool conceptualize)Example:
csharp
string[] concepts = core.ApiBrain().GetConceptsAsStrings(
"Hello, how are you?",
true, // Include punctuation
false // Don't combine into compound concepts
);
// Returns: ["hello", ",", "how", "are", "you", "?"]GetInputConcepts
Returns concepts from last GetResponse call.
csharp
public string[] GetInputConcepts()Example:
csharp
string response = core.ApiBrain().GetResponse("Tell me about quantum computing", null);
string[] concepts = core.ApiBrain().GetInputConcepts();
// Returns: ["tell", "quantum", "computing"] (stopwords removed)Narrative Mode Transformation
TransformNarrativeMode / GetFirstPerson
Inverts pronouns (1st ↔ 2nd person).
csharp
public string TransformNarrativeMode(string input)
public string GetFirstPerson(string input)Example:
csharp
string userSaid = "I love your design";
string aiPerspective = core.ApiBrain().TransformNarrativeMode(userSaid);
// Returns: "you love my design"
// Store in feedback/memory from AI's perspective
core.ApiFeedback().AddFeedback(aiPerspective);Addressing Modes
SetAddressByName / GetAddressByName
Requires AI name in input to respond.
csharp
public void SetAddressByName(bool enabled)
public bool GetAddressByName()Example:
csharp
core.ApiBrain().SetAddressByName(true);
core.SetVariable("$ai_name", "assistant");
string response1 = core.ApiBrain().GetResponse("What time is it?", null);
// Returns: null (not addressed)
string response2 = core.ApiBrain().GetResponse("Assistant, what time is it?", null);
// Returns: "It's 3:45 PM" (addressed correctly)SetAllEars / GetAllEars
Temporarily overrides addressing requirement.
csharp
public void SetAllEars(bool enabled)
public bool GetAllEars()Example:
csharp
core.ApiBrain().SetAddressByName(true);
// User says AI name
core.ApiBrain().SetAllEars(true); // Next input doesn't need name
string response = core.ApiBrain().GetResponse("Continue the story", null);
// Works without saying "assistant" again
// SetAllEars resets to false after one useLanguage & Culture
SetCulture / GetCulture
Sets language culture (handled by SilviaCore, but referenced here).
Example:
csharp
core.SetCulture("en-US");
core.ApiBrain().SetMonthName(1, "January");
core.ApiBrain().SetGreetTime(0, "morning");SetMonthName / SetGreetTime
Language-independent localization.
csharp
public bool SetMonthName(int id, string name)
public bool SetGreetTime(int id, string name)Example:
csharp
// Spanish localization
for (int i = 1; i <= 12; i++) {
core.ApiBrain().SetMonthName(i, spanishMonths[i-1]);
}
core.ApiBrain().SetGreetTime(0, "mañana");
core.ApiBrain().SetGreetTime(1, "tarde");
core.ApiBrain().SetGreetTime(2, "noche");Predictive Text
RefreshInputPatterns
Updates patterns for autocomplete.
csharp
public bool RefreshInputPatterns()NextNMostLikelyConcepts
Predicts next words (for autocomplete UI).
csharp
public string[] NextNMostLikelyConcepts(string input, int n, int hmmDepth, bool alphaSort)Parameters:
input– Partial user inputn– Number of suggestionshmmDepth– Markov chain depth for predictionalphaSort– Sort alphabetically (false = sort by probability)
Example:
csharp
// User types: "how do I"
string[] suggestions = core.ApiBrain().NextNMostLikelyConcepts("how do I", 5, 3, false);
// Returns: ["configure", "start", "install", "connect", "access"]
// Display in autocomplete dropdown
foreach (string word in suggestions) {
autocompleteMenu.AddItem(word);
}Categories
Hierarchical concept organization.
CategoryInit / CategorySetSeparators / CategoryAdd
Manages category hierarchies.
csharp
public bool CategoryInit()
public bool CategorySetSeparators(string seps)
public bool CategoryAdd(string path)Example:
csharp
core.ApiBrain().CategoryInit();
core.ApiBrain().CategorySetSeparators("/");
core.ApiBrain().CategoryAdd("animals/mammals/canines/dog");
core.ApiBrain().CategoryAdd("animals/mammals/canines/wolf");
core.ApiBrain().CategoryAdd("animals/mammals/felines/cat");
// Now SILVIA understands hierarchical relationshipsAddPredictivePattern
Adds pattern for predictive input.
csharp
public bool AddPredictivePattern(string pattern, bool style)Binding Queries
QueryBinding
Queries linguistic relationships.
csharp
public SilviaCore.eDirection QueryBinding(string root, string bound, string type)Example:
csharp
var direction = core.ApiBrain().QueryBinding("dog", "bark", "action");
// Returns relationship type between conceptsPlugin Loading
LoadCommandAssembly
(Windows/.NET Only) Loads external command assemblies.
csharp
public bool LoadCommandAssembly(string assemblyName, string nameSpace, string className)Example:
csharp
#if WINTEL || SERVER2023
// Load custom command DLL
core.ApiBrain().LoadCommandAssembly(
"CustomCommands",
"MyCompany.Silvia.Commands",
"CommandHandler"
);
// Now behaviors can call methods from CustomCommands.dll
#endifPlatform-Specific Integrations
Unity
csharp
#if UNITY_2019_OR_NEWER
// Export scripts for iOS/Android AOT
core.ApiBrain().ExportScriptsForUnity("Assets/Scripts/BrainScripts.cs");
// Load brain from Resources
var brainAsset = Resources.Load<TextAsset>("Brains/main_brain");
using (var ms = new MemoryStream(brainAsset.bytes)) {
using (var br = new BinaryReader(ms)) {
core.ApiBrain().LoadStream(br, stopwords, false, true);
}
}
#endifASP.NET Core
csharp
// Startup.cs
public void ConfigureServices(IServiceCollection services) {
services.AddSingleton<ISilviaService, SilviaService>();
}
// SilviaService.cs
public class SilviaService : ISilviaService {
private ConcurrentDictionary<string, SilviaCore> _userCores = new();
public async Task<string> GetResponseAsync(string userId, string input) {
var core = _userCores.GetOrAdd(userId, id =>
SilviaCoreManager.CreateCore(id, "brain.sil", true));
return await Task.Run(() =>
core.ApiBrain().GetResponse(input, $"logs/{userId}.txt"));
}
}Azure Functions
csharp
[FunctionName("SilviaChat")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "post")] HttpRequest req,
ILogger log)
{
string userId = req.Query["userId"];
string input = await req.ReadAsStringAsync();
var core = GetOrCreateCore(userId);
string response = core.ApiBrain().GetResponse(input, null);
return new OkObjectResult(new { response });
}Docker
dockerfile
FROM mcr.microsoft.com/dotnet/runtime:6.0
WORKDIR /app
COPY . .
# Pre-compile brain scripts for faster startup
RUN dotnet run --compile-brain
ENTRYPOINT ["dotnet", "SilviaServer.dll"]bash
docker build -t silvia-api .
docker run -p 8080:8080 \
-v /data/brains:/app/brains \
-e SILVIA_BRAIN_PATH=/app/brains/main.sil \
silvia-apiBest Practices
1. Error Handling
csharp
try {
string response = core.ApiBrain().GetResponse(userInput, logPath);
if (string.IsNullOrEmpty(response)) {
// No match found
response = "I didn't quite understand that. Could you rephrase?";
}
double weight = core.ApiBrain().GetResponseWeight(0);
if (weight < 0.4) {
// Low confidence match
response += " (I'm not very confident about this answer)";
}
} catch (Exception ex) {
logger.LogError($"Inference error: {ex.Message}");
return "I'm having trouble processing that right now.";
}2. Multi-Tenant Isolation
csharp
// Create isolated cores per user
var core = SilviaCoreManager.CreateCore(
$"user_{userId}",
"base_brain.sil",
true
);
// Set user-specific security and context
core.ApiBrain().SetUserSecurityLevel(user.GetSecurityLevel());
core.ApiBrain().ClearContext(); // Start fresh
// Merge user-specific knowledge
core.ApiBrain().MergeBrains($"users/{userId}/custom.sil", false);3. Graceful Degradation
csharp
// Primary inference
core.ApiBrain().SetAbsorberThreshold(0.5f);
string response = core.ApiBrain().GetResponse(input, null);
if (string.IsNullOrEmpty(response)) {
// Fallback: Try with relaxed threshold
core.ApiBrain().SetAbsorberThreshold(0.3f);
response = core.ApiBrain().GetResponse(input, null);
}
if (string.IsNullOrEmpty(response)) {
// Fallback: Try dynamic generation
var concepts = core.ApiBrain().GetConceptsAsStrings(input, false, false);
response = core.ApiBrain().GenerateDynamic(
string.Join(" ", concepts),
""
);
}
if (string.IsNullOrEmpty(response)) {
// Fallback: Default behavior
core.ApiBrain().SetJump("system", "default_response", 1.0f);
}4. Performance Optimization
csharp
// Startup configuration
core.ApiBrain().SetOptimization(true); // Enable fast path
core.ApiBrain().SetRandomizeResponses(false); // Deterministic = faster
core.ApiBrain().SetUseWordNet(false); // Skip synonym expansion
// Pre-compile scripts
core.ApiBrain().CompileScripts();
// Set reasonable context depth
core.ApiBrain().SetContextDepth(3); // Balance memory vs context
// Tune thresholds for faster rejection
core.ApiBrain().SetAbsorberThreshold(0.4f);5. Debugging & Diagnostics
csharp
// Enable verbose logging
core.ApiBrain().SetInteractionDiagnosticsState(true);
string response = core.ApiBrain().GetResponse("test input", "logs/debug.txt");
// Inspect response stack
for (int i = 0; i < 10; i++) {
int bId = core.ApiBrain().GetResponseBehaviorID(i);
if (bId == -1) break;
int aId = core.ApiBrain().GetResponseAbsorberID(i);
double weight = core.ApiBrain().GetResponseWeight(i);
Console.WriteLine($"Match {i}: B={bId}, A={aId}, W={weight:F3}");
}
// Check dynamic generation contributors
if (response.Contains("[") || response.Contains("#")) {
int[] contributors = core.ApiBrain().GetDynamicContributors();
Console.WriteLine($"Dynamic contributors: {contributors.Length / 2}");
}6. Security Best Practices
csharp
// Enforce security levels
core.ApiBrain().SetUserSecurityLevel(user.Role switch {
"Admin" => 5,
"Manager" => 3,
"Employee" => 2,
_ => 0
});
// Audit privileged access
string response = core.ApiBrain().GetResponse(input, null);
int behaviorId = core.ApiBrain().GetResponseBehaviorID(0);
if (IsBehaviorPrivileged(behaviorId)) {
auditLog.Write($"User {userId} accessed privileged behavior {behaviorId}");
}
// Disable default responses for sensitive systems
core.ApiBrain().SetDefaultResponsesEnabled(false);7. Hot-Reloading Knowledge
csharp
// Background thread: Watch for brain updates
var watcher = new FileSystemWatcher("brains/");
watcher.Changed += (s, e) => {
if (e.Name.EndsWith(".sil")) {
// Reload brain without stopping service
core.ApiBrain().Load(e.FullPath, false, false);
core.ApiBrain().CompileScripts();
core.ApiBrain().PostLoadBoot();
logger.Info($"Hot-reloaded brain: {e.Name}");
}
};
watcher.EnableRaisingEvents = true;8. Distributed Systems
csharp
// Coordinator-level inference (shared across instances)
SilviaCoreManager.CreateCoordinatorSensor("global_state", "json", "");
// Each instance updates shared state
SilviaCoreManager.SetCoordinatorSensorValue("global_state", stateJson);
// Broadcast updates to all cores
SilviaCoreManager.BroadcastText("$system_update");
// Individual core inference with global context
var core = SilviaCoreManager.GetCore(userId);
string response = core.ApiBrain().GetResponse(input, null);API Summary
Inference
GetResponse(input, io_log, nested)– Primary inference methodExecutePostEvents()– Run post-exuder scriptsIsBusy()– Check if inference is running
Response Stack
GetResponseBehaviorID(index)– Get matched behavior IDGetResponseAbsorberID(index)– Get matched absorber IDGetResponseWeight(index)– Get match confidenceGetVerbal(nested)– Get TTS version of responseGetOutputBehaviorData(nested)– Get behavior metadataGetOutputAbsorberData(nested)– Get absorber metadataGetOutputExuderData(nested)– Get exuder metadataGetDynamicContributors()– Get dynamic generation sources
Behavior Control
SetJump(group, name, probability)– Execute behavior immediatelySetJump(group, name, probability, delay)– Delayed executionSetJumpAfterSpeechTime(group, name, probability, timeScale)– Jump after speechSetJumpToGroup(group, probability)– Random behavior in groupSetJumpToSubgroup(group, subgroup, probability)– Random in subgroupSetBypassResponse(group, name)– Force next GetResponseNextResponse(io_log, out response)– Next exuder in behavior
Dynamic Generation
GenerateDynamic(included, excluded)– Generate novel outputGenerateDynamicLimited(included, excluded, group, name)– Limited scopeGenerateDynamicFromMemory(user, included, excluded, invert)– From feedbackDynamicHasAllConceptsInOne()– Check concept coherenceSetDynamicAttraction(attraction)/GetDynamicAttraction()SetDynamicDepth(depth)/GetDynamicDepth()SetDynamicFalloffDepth(falloffDepth)/GetDynamicFalloffDepth()SetDynamicFalloff(falloff)/GetDynamicFalloff()SetDynamicAdaptation(adapt)/GetDynamicAdaptation()
Knowledge Management
Load(filename, merge, boot)– Load brain fileLoadStream(brainStream, stopwords, merge, boot)– Load from streamGetCryptoReader(stream, cryptoType)– Decrypt brain streamSave(filename, groups, save_state, SILVIA2)– Save brainExport(filename)– Export to textMergeBrains(files, boot)– Merge multiple brains
Compiler & Scripts
CompileScripts()– Pre-compile behavior scriptsPostLoadBoot()– Execute boot behaviorsSetAdditionalReferenceAssemblies(assemblies)– Add referencesGetAdditionalReferenceAssemblies()– Get referencesAddReferenceAssemblies(assemblies)– Append referencesSetTargetCSProjects(projects)– Compile projectsAddTargetCSProject(project)– Add projectGetTargetCSProjects()– Get projectsRemoveTargetCSProject(project)– Remove projectSetTargetCSProjsFromSolution(slnPath)– Load solutionGetCsProjsFromSolution(slnPath)– Parse solutionSetAdditionalScriptsPath(path)– Set shared scriptsGetAdditionalScriptsPath()– Get scripts pathExportScriptsForUnity(scriptFile)– AOT exportExportScriptsAsAssemblyFromUnity(assemblyFileName, outputDirectory)– DLL exportSetScriptClassType(t, internalScriptClassName)– Register base classClearScriptClassTypes()– Clear base classes
Context & State
SetContextDepth(depth)/GetContextDepth()– Conversation history depthClearContext()– Reset contextAddContext(input, response)– Manually add context
Security
SetUserSecurityLevel(securityLevel)/GetUserSecurityLevel()– Role-based access
Optimization
SetAbsorberThreshold(threshold)– Match quality thresholdSetReusableThreshold(threshold)– Fallback thresholdSetRandomizeResponses(flag)– Randomize exuder selectionSetOptimization(flag)– Performance modeSetUseWordNet(useWordNet)/GetUseWordNet()– Synonym expansionSetDefaultResponsesEnabled(enabled)/GetDefaultResponsesEnabled()– Default behaviorSetInteractive(interactive)– Interactive mode
Stopwords
SetStopword(stopword, state)– Add/remove stopwordSetStopwords(stopwords, clear)– Bulk updateGetStopwords()– Get stopwordsLoadStopwords(stream)– Load from fileRemoveStopwords(concepts, exclude)– Filter stopwords
Wildcards
SetWildcardFloor(value)/GetWildcardFloor()SetWildcardCeiling(value)/GetWildcardCeiling()SetWildcardMultiplier(value)/GetWildcardMultiplier()
Concepts
AddConcepts(input, punctuate, conceptualize)– Pre-load conceptsGetConceptsAsStrings(input, punctuate, conceptualize)– TokenizeGetInputConcepts()– Get last input concepts
Narrative
TransformNarrativeMode(input)– Invert pronounsGetFirstPerson(input)– Convert to first-person
Addressing
SetAddressByName(enabled)/GetAddressByName()– Require AI nameSetAllEars(enabled)/GetAllEars()– Override addressing
Localization
SetMonthName(id, name)– Localize month namesSetGreetTime(id, name)– Localize time-of-day
Predictive
RefreshInputPatterns()– Update patternsNextNMostLikelyConcepts(input, n, hmmDepth, alphaSort)– Autocomplete
Categories
CategoryInit()– Initialize categoriesCategorySetSeparators(seps)– Set hierarchy separatorsCategoryAdd(path)– Add categoryAddPredictivePattern(pattern, style)– Add pattern
Binding
QueryBinding(root, bound, type)– Query relationships
PAGER Tags
AddPAGERTagPreset(presetName, presetType, tagsData)– Store presetGetPAGERTagPresetData(presetName)– Get presetRemovePagerTagPreset(presetName)– Remove presetGetAllPAGERTagPresets()– Get all presetsGetPAGERTagPresetNames()– Get namesGetPAGERTagPresetTypes()– Get typesGetPAGERTagPresetStrings()– Get tag strings
Plugins
LoadCommandAssembly(assemblyName, nameSpace, className)– Load plugin (Windows/.NET)
Diagnostics
SetInteractionDiagnosticsState(tf)/GetInteractionDiagnosticsState()– Debug mode
Remarks
ApiBrain is SILVIA's inference powerhouse—providing deterministic, auditable, and security-aware AI reasoning for enterprise, industrial, and embedded systems. Its hybrid approach combines pattern matching with dynamic generation, offering the explainability of rule-based systems with the flexibility of statistical models.
© Copyright Cognitive Code Corp. 2007-2026
SILVIA is a registered Trademark of Cognitive Code Corp.

