Integration between the Semantic Integration Engine and ChatGPT
This article explains, at the protocol level, what happens when the Semantic Integration Engine (SIE) and ChatGPT are integrated via MCP (Model Context Protocol), focusing on how ChatGPT uses SIE’s knowledge, performs reasoning, and generates the final response. It provides a detailed explanation from a protocol-level perspective.
The important point is that ChatGPT is not requesting “the answer itself” from SIE, but rather retrieving the materials and evidence it needs to reason on its own.
In this article, we recreate a simulated MCP session, and examine why SIE’s response structure—concept / passage / graph / score— has a high degree of affinity with the reasoning model of generative AI.
SIE Startup
For the Semantic Integration Engine, use the one described in 📄 Semantic Integration Engine: A BoK Integration Demo for the AI Era. You can start it using Docker by following the same procedure.
ChatGPT Session Realization Method
Unfortunately, MCP registration has not yet been enabled for the author’s ChatGPT account. For this reason, this article is based on a simulated session conducted within the ChatGPT chat interface, with assistance from ChatGPT itself.
The simulated session is composed as follows.
As a result, we believe that this setup reproduces a session state that is as close as possible to an actual MCP-based connection.
Initial Setup
In the initial setup of ChatGPT, you register the MCP server URL with ChatGPT.
Although this could not be tested in the author’s environment, the procedure presented by ChatGPT is summarized here.
In the SIE demo environment, McpWebSocketServer provides the following URL as the endpoint for the MCP WebSocket protocol.
-
ws://localhost:9050/mcp
Registering this URL with ChatGPT is sufficient.
Enter the following information in the ChatGPT settings.
Name: Semantic Integration Engine
URL: ws://localhost:9050/mcp
From this point onward, we will simulate how ChatGPT and the MCP server actually exchange messages during communication, using websocat.
Simulated Session
Communication between ChatGPT and MCP is performed over WebSocket using a ChatGPT-specific protocol that is similar to JSON-RPC.
In this article, we construct this simulated session using the websocat command.
The websocat command is launched as follows.
$ websocat ws://localhost:9050/mcp | jq .
By connecting the jq command in a pipeline after the websocat command, the output JSON is formatted for readability.
When the websocat command is started, it waits for input from standard input. When you enter JSON here, it is sent to SIE, and the execution result is returned as JSON.
Initialization
MCP initialization in ChatGPT is performed using the following two requests.ChatGPTでのMCPの初期化は以下の2つのリクエストで行われます。
-
initialize
-
get_manifest
initialize
Once MCP registration is completed in ChatGPT, it retrieves MCP initialization information using the following initialize request.
{"type":"initialize","protocolVersion":"1.0","client":{"name":"chatgpt","version":"1.0"}}
As a result of the input, the following response is returned.
{
"type": "initialized",
"protocolVersion": "1.0",
"server": {
"name": "semantic-integration-engine",
"version": "0.0.4"
},
"capabilities": {
"tools": {
"enabled": true
}
},
"version": null,
"name": "semantic-integration-engine",
"metadata": {
"author": "SimpleModeling Team",
"homepage": "https://www.simplemodeling.org"
}
}
protocolVersion: 1.0
This is the version of the MCP interaction protocol. It is not an API version, but the version of the conversational grammar (DSL).
server
The server field identifies the communication peer and its version.
"server": {
"name": "semantic-integration-engine",
"version": "0.0.4"
},
get_manifest
After the initialize request, the following get_manifest request is used to retrieve the capabilities of MCP.
{"type":"get_manifest"}
As a result, the following JSON is returned from SIE.
{
"type": "manifest",
"manifest": {
"schema_version": "v1",
"name": "semantic-integration-engine",
"version": "0.0.4",
"description": "Semantic Integration Engine for SimpleModeling.org. Provides unified semantic search across SmartDox, RDF, SKOS, ontology graphs, and the SimpleModeling Knowledge Graph.",
"interfaces": {
"websocket": {
"url": "ws://localhost:9050/mcp",
"protocol": "mcp"
}
},
"capabilities": {
"tools": {
"enabled": true
}
},
"tools": [
{
"name": "tools.sie.query",
"description": "Semantic search across SmartDox, RDF, ontology, and vector embeddings. Returns unified SemanticRAG results: concept matches, passages, summaries, and knowledge graph snippets.",
"input_schema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Natural language query, glossary term, page title, or concept name. Example: 'What is SimpleModelObject?'"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 5,
"description": "Maximum number of passages to retrieve."
},
"include_graph": {
"type": "boolean",
"default": true,
"description": "If true, include graph-neighborhood results for related concepts."
}
},
"required": [
"query"
]
}
},
{
"name": "tools.sie.explainConcept",
"description": "Explain a single concept identified by its URI. Returns label, definitions, SKOS relations, and its local RDF neighborhood.",
"input_schema": {
"type": "object",
"properties": {
"uri": {
"type": "string",
"description": "Fully qualified concept URI. Example: 'https://www.simplemodeling.org/simplemodelingorg/ontology/0.1-SNAPSHOT#SimpleModelObject'"
},
"locale": {
"type": "string",
"description": "Optional locale for explanation (IETF BCP47). Example: 'en', 'ja'. Default is 'en'."
}
},
"required": [
"uri"
]
}
},
{
"name": "tools.sie.getNeighbors",
"description": "Retrieve the local RDF/SKOS neighborhood of a concept: broader, narrower, related, domain-specific relationships, state-machine transitions, component relations, and more.",
"input_schema": {
"type": "object",
"properties": {
"uri": {
"type": "string",
"description": "Concept URI from the SimpleModeling Knowledge Graph."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 20,
"description": "Maximum number of neighbor nodes to return."
}
},
"required": [
"uri"
]
}
}
],
"metadata": {
"author": "SimpleModeling Team",
"homepage": "https://www.simplemodeling.org",
"license": "Apache-2.0",
"description_long": "This MCP manifest describes the SimpleModeling Semantic Integration Engine (SIE), capable of hybrid semantic retrieval combining RDF, SKOS, SPARQL, ontology reasoning, SmartDox semantic index, and vector search. It provides a unified interface for ChatGPT-based knowledge exploration, conceptual explanation, and semantic graph traversal.",
"description_long_ja": "本MCPマニフェストは、SimpleModeling Semantic Integration Engine (SIE) が提供する機能を ChatGPT に正しく伝えるための自己記述ファイルです。SIE は RDF・SKOS・SPARQL・オントロジー推論・SmartDox セマンティックインデックス・ベクトル検索を統合したハイブリッド検索を提供しており、本マニフェストにより ChatGPT はこれらの機能を理解し、適切なツール呼び出しを自律的に行えるようになります。SemanticRAG の構造や概念説明、近傍探索といった高度な知識処理を利用者に代わって実行するため、manifest の情報量は推論精度と操作性を大きく向上させます。",
"keywords": [
"SimpleModeling",
"Semantic Search",
"Knowledge Graph",
"RDF",
"SKOS",
"SmartDox",
"Ontology",
"Semantic RAG",
"MCP"
]
},
"protocolVersion": "1.0"
}
}
This JSON is not merely a list of tools. It serves as a contract (a DSL definition) that allows ChatGPT to learn how it should use this server in order to reason.
ChatGPT determines its actions by reading the manifest.
interface
The interface field indicates the communication protocol.
"interfaces": {
"websocket": {
"url": "ws://localhost:9050/mcp",
"protocol": "mcp"
}
}
By examining this URL, ChatGPT understands that the endpoint is not a “pre-known API” like a typical REST interface.
tools
The tools section defines the following tools provided by SIE.
-
tools.sie.query: Query execution
-
tools.sie.explainConcept: Concept explanation
-
tools.sie.getNeighbors: Retrieval of neighboring information
Each tool defines the following properties.
- name
-
The name of the tool
- description
-
A description of the tool
- input_schema
-
The schema of input parameters
From this information, ChatGPT understands each tool’s functionality and usage, and reasons about which tools can be used and how during its inference process.
While the tool name and input parameters are obviously important, the description field is also critically important because it directly informs ChatGPT’s decision-making.
The fact that the content of the description influences ChatGPT’s behavior is a fundamental difference from traditional program-oriented interfaces.
ChatGPT Processing
Here, we examine how ChatGPT processes the input “What is SimpleObject?” when it is entered via the ChatGPT console.
The following explanation is based on information provided by ChatGPT itself, and the actual session behavior is expected to be very similar.
ChatGPT Internal Analysis
ChatGPT makes the following judgments and decides to use SIE.
-
“SimpleObject” is a technical term specific to SimpleModeling.
-
SIE provides a complete set of Glossary, BoK, and SmartDox resources.
-
Therefore, external knowledge should be consulted.
-
→ MCP tools (sie.query or sie.explainConcept) should be invoked.
This decision is made autonomously within the ChatGPT model.
ChatGPT → MCP: Tool Invocation Decision and call_tool Message Generation
ChatGPT uses the tools.sie.query function provided by SIE (MCP).
{"type":"call","tool":{"name":"tools.sie.query","arguments":{"query":"SimpleModeling"}}}
As a result of the request, the following information related to the queried term is returned.
-
concepts: A list of related concepts.
-
passages: A list of related articles with descriptive text.
-
graph: The knowledge graph.
The graph (knowledge graph) contains a list of nodes that make up the knowledge graph in nodes, and a list of knowledge triples in edges.
{
"type": "toolResult",
"tool": "tools.sie.query",
"result": {
"concepts": [
{
"uri": "https://www.simplemodeling.org/glossary/knowledge-development/socialization",
"label": "共同化",
"lang": "en"
},
{
"uri": "https://www.simplemodeling.org/glossary/development-process/alpha-state",
"label": "アルファ状態",
"lang": "en"
},
{
"uri": "https://www.simplemodeling.org/glossary/development-process/activity",
"label": "活動",
"lang": "en"
}
],
"passages": [
{
"id": "https://www.simplemodeling.org/ja/glossary/development-process/kernel.html#chunk-0",
"text": "カーネル 浅海 智晴 用語 カーネル 用語(英) Kernel 別名 - 定義 任意のソフトウェア開発活動を定義・理解するために必要最小限の概念を含むEssenceの中核要素群。アルファ、アクティビティスペース、能力などで構成される。 SimpleModeling SimpleModelingのメタ開発フレームワークを表現するための参照基盤を形成する。",
"score": 0.8439708948135376
},
{
"id": "https://www.simplemodeling.org/ja/glossary/development-process/simplemodeling-reference-profile.html#chunk-0",
"text": "SimpleModelingリファレンス・プロファイル 浅海 智晴 用語 SimpleModelingリファレンス・プロファイル 用語(英) SimpleModeling Reference Profile 別名 - 略語 SMRP 定義 SimpleModelingのリファレンス・プロファイルです。 SimpleModelingによる文芸モデル駆動開発の説明を具体的にするために、リファレンス・プロファイルを定義しています。",
"score": 0.8891597986221313
},
{
"id": "https://www.simplemodeling.org/ja/glossary/knowledge-development/knowledge-promotion.html#chunk-0",
"text": "知識昇格 浅海 智晴 用語 知識昇格 用語(英) Knowledge Promotion 別名 - 定義 BoKの構造化知識を再学習・ファインチューニングによりAIモデルのパラメトリック知識(PPK)へ恒久的に統合するプロセス。 SimpleModeling SimpleModelingにおける知識昇格は、文芸モデリング・知識体系化・モデル再学習を結ぶ知識生態系の持続的進化段階を意味する。",
"score": 0.8909172415733337
},
{
"id": "https://www.simplemodeling.org/en/domain-modeling/concept-analysis-design.html#chunk-1",
"text": "ed with domain experts Establish it as a mechanism that can be implemented in software There are various options for modeling the problem domain, such as granularity and perspective, but it must fit within a structure that operates in software. Therefore, it is practical to proceed with modeling according to a predefined model framework template that works in software. Model Layers in SimpleModeling In SimpleModeling, domain models are implemented in the following three layers. Conceptual Model Analysis Model Design Model The diagram below shows the types of model elements used in the conceptual, analysis, and design models within SimpleModeling. Details will be explained in another article, but the types of model elements used increase dramatically as the level of concreteness rises from ",
"score": 0.9439836144447327
},
{
"id": "https://www.simplemodeling.org/en/domain-modeling/simple-object.html#chunk-0",
"text": "SimpleObject ASAMI, Tomoharu Created: 2025-09-15 In the SimpleModeling Reference Profile, the abstract class SimpleEntity is defined as the base class for all entity objects. Except for special cases, all entity objects are expected to derive from SimpleEntity. SimpleEntity provides a comprehensive set of attributes commonly needed by entity objects, allowing designers to define entity objects by simply adding domain-specific attributes. SimpleObject is defined as the base class of SimpleEntity. SimpleObject is an abstract object in SimpleModeling that defines the common attributes of domain objects. Value objects can optionally use SimpleObject as their base class. SimpleObject is composed by delegating various generic attribute groups, each of which can also be reused individually as com",
"score": 0.9511008262634277
}
],
"graph": {
"nodes": [
{
"id": "https://www.simplemodeling.org/glossary/knowledge-development/socialization",
"label": "共同化",
"kind": "concept"
},
{
"id": "https://www.simplemodeling.org/glossary/development-process/alpha-state",
"label": "アルファ状態",
"kind": "concept"
},
{
"id": "https://www.simplemodeling.org/glossary/development-process/activity",
"label": "活動",
"kind": "concept"
},
{
"id": "https://www.simplemodeling.org/ja/glossary/development-process/kernel.html#chunk-0",
"label": "カーネル 浅海 智晴 用語 カーネル 用語(英) Kernel 別名 - 定義 任意のソフトウェア開発活動を定義・理解するために必要最小限の概念を含むEssen",
"kind": "passage"
},
{
"id": "https://www.simplemodeling.org/ja/glossary/development-process/simplemodeling-reference-profile.html#chunk-0",
"label": "SimpleModelingリファレンス・プロファイル 浅海 智晴 用語 SimpleModelingリファレンス・プロファイル 用語(英) SimpleMod",
"kind": "passage"
},
{
"id": "https://www.simplemodeling.org/ja/glossary/knowledge-development/knowledge-promotion.html#chunk-0",
"label": "知識昇格 浅海 智晴 用語 知識昇格 用語(英) Knowledge Promotion 別名 - 定義 BoKの構造化知識を再学習・ファインチューニングにより",
"kind": "passage"
},
{
"id": "https://www.simplemodeling.org/en/domain-modeling/concept-analysis-design.html#chunk-1",
"label": "ed with domain experts Establish it as a mechanism that can be implemented in so",
"kind": "passage"
},
{
"id": "https://www.simplemodeling.org/en/domain-modeling/simple-object.html#chunk-0",
"label": "SimpleObject ASAMI, Tomoharu Created: 2025-09-15 In the SimpleModeling Reference",
"kind": "passage"
}
],
"edges": [
{
"source": "https://www.simplemodeling.org/glossary/knowledge-development/socialization",
"target": "https://www.simplemodeling.org/ja/glossary/development-process/kernel.html#chunk-0",
"relation": "related"
},
{
"source": "https://www.simplemodeling.org/glossary/knowledge-development/socialization",
"target": "https://www.simplemodeling.org/ja/glossary/development-process/simplemodeling-reference-profile.html#chunk-0",
"relation": "related"
},
{
"source": "https://www.simplemodeling.org/glossary/knowledge-development/socialization",
"target": "https://www.simplemodeling.org/ja/glossary/knowledge-development/knowledge-promotion.html#chunk-0",
"relation": "related"
},
{
"source": "https://www.simplemodeling.org/glossary/knowledge-development/socialization",
"target": "https://www.simplemodeling.org/en/domain-modeling/concept-analysis-design.html#chunk-1",
"relation": "related"
},
{
"source": "https://www.simplemodeling.org/glossary/knowledge-development/socialization",
"target": "https://www.simplemodeling.org/en/domain-modeling/simple-object.html#chunk-0",
"relation": "related"
},
{
"source": "https://www.simplemodeling.org/glossary/development-process/alpha-state",
"target": "https://www.simplemodeling.org/ja/glossary/development-process/kernel.html#chunk-0",
"relation": "related"
},
{
"source": "https://www.simplemodeling.org/glossary/development-process/alpha-state",
"target": "https://www.simplemodeling.org/ja/glossary/development-process/simplemodeling-reference-profile.html#chunk-0",
"relation": "related"
},
{
"source": "https://www.simplemodeling.org/glossary/development-process/alpha-state",
"target": "https://www.simplemodeling.org/ja/glossary/knowledge-development/knowledge-promotion.html#chunk-0",
"relation": "related"
},
{
"source": "https://www.simplemodeling.org/glossary/development-process/alpha-state",
"target": "https://www.simplemodeling.org/en/domain-modeling/concept-analysis-design.html#chunk-1",
"relation": "related"
},
{
"source": "https://www.simplemodeling.org/glossary/development-process/alpha-state",
"target": "https://www.simplemodeling.org/en/domain-modeling/simple-object.html#chunk-0",
"relation": "related"
},
{
"source": "https://www.simplemodeling.org/glossary/development-process/activity",
"target": "https://www.simplemodeling.org/ja/glossary/development-process/kernel.html#chunk-0",
"relation": "related"
},
{
"source": "https://www.simplemodeling.org/glossary/development-process/activity",
"target": "https://www.simplemodeling.org/ja/glossary/development-process/simplemodeling-reference-profile.html#chunk-0",
"relation": "related"
},
{
"source": "https://www.simplemodeling.org/glossary/development-process/activity",
"target": "https://www.simplemodeling.org/ja/glossary/knowledge-development/knowledge-promotion.html#chunk-0",
"relation": "related"
},
{
"source": "https://www.simplemodeling.org/glossary/development-process/activity",
"target": "https://www.simplemodeling.org/en/domain-modeling/concept-analysis-design.html#chunk-1",
"relation": "related"
},
{
"source": "https://www.simplemodeling.org/glossary/development-process/activity",
"target": "https://www.simplemodeling.org/en/domain-modeling/simple-object.html#chunk-0",
"relation": "related"
}
]
}
}
}
Concepts Define the Central Axes of Reasoning
The concepts field contains data such as the following.
"concepts": [
{ "uri": ".../socialization", "label": "共同化" },
{ "uri": "...#hasService", "label": "hasService" },
{ "uri": ".../development-system-reference-profile", "label": "開発システム・リファレンス・プロファイル" }
]
By inspecting this field, ChatGPT understands which set of concepts the question has been mapped to. It then uses these concepts as anchors for term explanations, associations, and context selection in subsequent reasoning.
In other words, the ambiguous term “SimpleObject” is interpreted as being decomposed into three semantic centers.
Passages as “Speakable Knowledge Material”
The passages field contains text related to the concepts along with relevance scores.
"passages": [
{ "text": "...", "score": 0.95 },
...
]
Because passages provide textual information, they are directly tied to the generation process.
ChatGPT evaluates passages in score order, summarizes and restructures their content, and re-edits them so that they connect naturally as prose.
Importantly, these scores are not absolute values but relative rankings. ChatGPT prioritizes higher scores while also using lower-scored passages in a supporting role.
Through this process, concepts derived from the GraphDB and explanatory texts derived from the VectorDB (documents) are naturally integrated.
Graph Ensures “Semantic Consistency Checks”
The graph field contains the knowledge graph related to the query.
"graph": {
"nodes": [...],
"edges": [...]
}
ChatGPT uses this part not for visualization, but for validating internal consistency.
Specifically, ChatGPT checks the following points.
-
Whether multiple passages originate from the same concept.
-
Whether the passages are not unrelated to each other.
-
Whether the explanatory flow does not make unjustified leaps.
The structure of the GraphDB functions as a “guardrail” that prevents logical jumps in the generated text.
ChatGPT Integrated Processing: Answer Generation
ChatGPT internally integrates the returned data and performs the following steps.
-
Extract definitions (Glossary / BoK).
-
Interpret the relevant sections of explanatory documents.
-
Reinforce context using semantic structures from RDF.
-
Adjust tone and context based on conversation history (sessionMemory).
-
Finalize the output into natural language that is easy for the user to understand.
As a result, an answer such as the following is generated.
SimpleObject is a fundamental abstraction of entities in SimpleModeling.
It has an identifier (id) and, in addition to NameAttributes such as name, title, and description,
it holds lifecycle information such as creation and update timestamps,
as well as delegated state machines like PostStatus and Aliveness.
SimpleModelObject (or SimpleEntity) functions as a standardized base type shared across the entire application,
serving as the foundation for all business entities.
ChatGPT is not answering based on its own internal knowledge, but by using the content provided by SIE.
Why This Structure Fits ChatGPT
Regarding the query functionality provided by SIE, we received the following comments from ChatGPT.
Your response structure is extremely easy for ChatGPT to work with.
The reasons are as follows:
- Semantic units (concepts) are explicitly defined.
- Explanatory units (passages) are clearly separated.
- Relational structures (graph) are explicitly represented.
- Each item is associated with a rank (score).
👉 As a result, ChatGPT can decide by itself what to use, in what order, and with what level of emphasis.
What ChatGPT’s comment indicates is that ChatGPT is not asking MCP for “the answer itself,” but rather for the “materials” and “evidence” needed to perform its own reasoning.
The reasons why SIE’s response structure is evaluated as easy for ChatGPT to handle are clear.
-
Semantic units (concepts) are explicitly defined.
-
Explanatory units (passages) are separated.
-
Relational structures (graph) are explicitly represented.
-
Importance is indicated by rank (score).
With this structure, ChatGPT can decide within its own reasoning process what to reference, in what order, and with what level of emphasis.
In other words, for ChatGPT, an MCP server functions not as a “machine that generates answers,” but as a “system that supplies the grounds for reasoning.”
From this perspective, the knowledge provision approach adopted by SIE—combining knowledge graphs (semantic relationships between concepts) with vectorized textual information (semantic proximity)—can be said to align directly with the reasoning model and objectives of ChatGPT.
Summary
When advancing software development in collaboration with generative AI such as ChatGPT, a crucial question is how to enable the AI to understand domain knowledge.
Even for relatively small systems, domain knowledge tends to grow larger than expected. Providing all of this knowledge as a prompt at the beginning of a chat session is not a practical approach.
To address this issue, as demonstrated in this article, it is effective to organize domain knowledge as a structured knowledge base and query it as needed.
SIE is positioned not as a simple search engine, but as a foundation that provides a knowledge environment enabling generative AI to perform autonomous reasoning.
References
Glossary
- Semantic Integration Engine (SIE)
-
An integration engine that unifies structured knowledge (RDF) and document knowledge (SmartDox) derived from the BoK, making them directly accessible to AI.
- DSL (Domain Specific Language)
-
A DSL (Domain-Specific Language) is a language designed for a particular domain, enabling direct and concise expression of the domain’s concepts and structures. Compared to general-purpose programming languages (GPLs), DSLs offer a higher level of abstraction tailored for domain-specific problem solving and automation.
- SimpleObject
-
SimpleObject is an abstract object defined in the SimpleModeling Reference Profile that specifies common attributes for domain objects. It delegates generic attribute groups—such as NameAttributes and LifecycleAttributes—as value objects, making it reusable as a base class for both entity objects and value objects. SimpleEntity inherits from SimpleObject and adds attributes such as the identifier (id) required for persistence, forming the foundation of entity objects.
- BoK (Body of Knowledge)
-
At SimpleModeling, the core knowledge system for contextual sharing is called the BoK (Body of Knowledge). The goal of building a BoK is to enable knowledge sharing, education, AI support, automation, and decision-making assistance.
- knowledge graph
-
A semantic graph-based knowledge base where nodes represent entities or concepts and edges represent their relationships.
- RDF
-
A W3C-standardized data model that represents information as subject–predicate–object triples.
- Prompt
-
A structured instruction or contextual representation that bridges retrieved knowledge (RAG) and the AI model’s reasoning process. It transforms the structured knowledge from the BoK into a narrative or directive form that the model can interpret, act upon, and internalize.