/** * SolidN3Client - 轻量级 Solid Pod 客户端 * * 使用 N3.js + 原生 SPARQL UPDATE 替代 Comunica * * 架构: * - 查询: HTTP GET → JSON-LD → N3 Store → 本地 SPARQL 查询 * - 修改: SPARQL UPDATE → HTTP PATCH → Solid Pod */ import { Store, Quad } from 'n3'; export interface QueryResult { bindings: Record[]; } export interface SparqlBinding { [variable: string]: { type: 'uri' | 'literal' | 'bnode'; value: string; datatype?: string; 'xml:lang'?: string; }; } export declare class SolidN3Client { private defaultFetch; private cache; private cacheTimeout; constructor(defaultFetch?: typeof globalThis.fetch); /** * 执行 SPARQL SELECT 查询 * 通过 HTTP GET 获取数据,然后在本地 N3 Store 中查询 */ query(endpoint: string, sparqlQuery: string): Promise; /** * 执行 SPARQL UPDATE 操作 * 直接发送到 Solid Pod */ update(endpoint: string, sparqlUpdate: string): Promise; /** * 获取资源的 N3 Store(带缓存) */ private getResourceStore; /** * 解析 JSON-LD 到 N3 Store */ private parseJsonLd; /** * 处理单个 JSON-LD 项目 */ private processJsonLdItem; /** * 在本地 Store 中执行 SPARQL 查询 */ private executeLocalQuery; /** * 从 SPARQL 查询中提取需要访问的资源 */ private extractResourcesFromQuery; /** * 简化的 SPARQL SELECT 解析器 */ private parseSparqlSelect; /** * 获取解析器格式 */ private getParserFormat; /** * 解析相对 URI */ private resolveUri; /** * 清除缓存 */ private invalidateCache; /** * 清除所有缓存 */ clearCache(): void; /** * 便捷方法:获取资源的所有三元组 */ getResource(resourceUrl: string): Promise; /** * 便捷方法:将 Store 序列化为 Turtle */ serializeToTurtle(store: Store): Promise; } //# sourceMappingURL=solid-n3-client.d.ts.map