/** * Federated Query Executor * * 执行跨 Pod 的联邦查询 */ import type { RelationDefinition } from '../schema'; import { ProviderCache } from '../discovery/provider-cache'; import type { FederatedResult, FederatedQueryOptions } from './types'; /** * 联邦查询执行器 */ export declare class FederatedQueryExecutor { private providerCache; private fetchFn; private defaultTimeout; constructor(options?: { providerCache?: ProviderCache; fetch?: typeof fetch; timeout?: number; }); /** * 执行联邦查询 * * @param parentRows 父表的查询结果 * @param relationDef 关系定义 * @param options 查询选项 */ execute>(parentRows: T[], relationDef: RelationDefinition, options?: FederatedQueryOptions): Promise>; /** * 并行执行发现和查询 */ private executeParallel; /** * 顺序执行发现和查询 */ private executeSequential; /** * 发现并查询数据 */ private discoverAndQuery; /** * 从 WebID 提取 Pod URL */ private extractPodUrl; /** * 发现数据容器位置 */ private discoverContainer; /** * 从 SAI Registry 发现数据位置 * * 简化版本:直接解析 RegistrySet -> DataRegistry -> DataRegistration */ private discoverFromSAI; /** * 解析相对 URL */ private resolveUrl; /** * 从 TypeIndex 发现数据位置 */ private discoverFromTypeIndex; /** * 查询容器中的数据 * * 使用 LDP 获取容器内容并解析 */ private queryContainer; /** * 解析 Turtle 内容,提取匹配类型的资源 */ private parseTurtleResources; /** * 从 Turtle 中提取特定主语的所有属性 */ private extractResourceProperties; /** * 从 URI 提取 ID * * 注意:这里是 fallback 逻辑,没有 table 上下文时使用 * 返回包含 # 的 fragment 部分,与新的 id 规则一致 */ private extractIdFromUri; /** * 从 URI 提取本地名称(作为属性名) */ private extractLocalName; /** * 转义正则表达式特殊字符 */ private escapeRegex; /** * 创建错误对象 */ private createError; } export declare const federatedQueryExecutor: FederatedQueryExecutor; //# sourceMappingURL=executor.d.ts.map