metagraph
Version:
A framework for building higher-order graph data structures
127 lines • 6.17 kB
TypeScript
/**
* Creates a subgraph pattern specification for filtering parent graphs.
* Enables creation of subgraphs by selecting subsets of nodes and edges from parent graphs.
*
* @param opts - Optional graph options for customizing node/edge accessors
* @returns A pattern specification for creating subgraph functionality
*
* @example
* ```typescript
* // Used in composed patterns to enable subgraph operations
* const subPat = subgraph_pattern();
* // Results in parent.subgraph(['nodeA', 'nodeB'], ['edge1'], data)
* ```
*/
export declare const subgraph_pattern: (opts?: any) => {
dataflow: {
incidences: {
parent_nodes: {
node: {
calc: (fnode: import("./types.js").Node) => (defn: import("./types.js").PatternDefinition) => (flow: import("./types.js").DataflowInstance) => () => unknown;
};
};
parent_edges: {
node: {
calc: (fnode: import("./types.js").Node) => (defn: import("./types.js").PatternDefinition) => (flow: import("./types.js").DataflowInstance) => () => unknown;
};
};
node_keys: {
node: {
calc: (fnode: import("./types.js").Node) => (defn: import("./types.js").PatternDefinition) => (flow: import("./types.js").DataflowInstance) => () => unknown;
};
};
edge_keys: {
node: {
calc: (fnode: import("./types.js").Node) => (defn: import("./types.js").PatternDefinition) => (flow: import("./types.js").DataflowInstance) => () => unknown;
};
};
subset_nodes: {
node: {
calc: (fnode: import("./types.js").Node) => (defn: import("./types.js").PatternDefinition) => (flow: import("./types.js").DataflowInstance) => (items: unknown[], keys: string[]) => unknown[];
};
refs: string;
ins: string[];
};
subset_edges: {
node: {
calc: (fnode: import("./types.js").Node) => (defn: import("./types.js").PatternDefinition) => (flow: import("./types.js").DataflowInstance) => (items: unknown[], keys: string[]) => unknown[];
};
refs: string;
ins: string[];
};
nodes: {
node: {
calc: (fnode: import("./types.js").Node) => (defn: import("./types.js").PatternDefinition) => (flow: import("./types.js").DataflowInstance) => (x: unknown) => unknown;
};
ins: string;
};
edges: {
node: {
calc: (fnode: import("./types.js").Node) => (defn: import("./types.js").PatternDefinition) => (flow: import("./types.js").DataflowInstance) => (x: unknown) => unknown;
};
ins: string;
};
};
};
interface: {
nodes: {
ParentGraph: string;
ChildGraph: string;
};
edges: {
subgraph: {
name: string;
source: string;
target: string;
member: {
funfun: (flowspec: import("./types.js").Graph, iedge: import("./types.js").Edge, flowspecs?: Record<string, import("./types.js").Graph>) => (defn: import("./types.js").PatternDefinition, flow: import("./types.js").DataflowInstance, val: unknown) => () => (nodeKeys: string[], edgeKeys: string[], gdata: unknown) => unknown;
};
};
subnode: {
name: string;
source: string;
target: string;
deps: string;
member: {
funfun: (flowspec: import("./types.js").Graph, iedge: import("./types.js").Edge) => (defn: import("./types.js").PatternDefinition, flow: import("./types.js").DataflowInstance, val: unknown) => (map: Record<string, unknown>) => (key: unknown) => unknown;
};
};
subedge: {
name: string;
source: string;
target: string;
deps: string;
flow: {
funfun: (flowspec: import("./types.js").Graph, iedge: import("./types.js").Edge) => (defn: import("./types.js").PatternDefinition, flow: import("./types.js").DataflowInstance, val: unknown) => (map: Record<string, unknown>) => (key: unknown) => unknown;
};
};
subgraphS: {
name: string;
source: string;
target: string;
member: {
funfun: (flowspec: import("./types.js").Graph, iedge: import("./types.js").Edge, flowspecs?: Record<string, import("./types.js").Graph>) => (defn: import("./types.js").PatternDefinition, flow: import("./types.js").DataflowInstance, val: unknown) => () => (nodeKeys: string[], edgeKeys: string[], gdata: unknown) => unknown;
};
};
subnodeS: {
name: string;
source: string;
target: string;
deps: string;
member: {
funfun: (flowspec: import("./types.js").Graph, iedge: import("./types.js").Edge) => (defn: import("./types.js").PatternDefinition, flow: import("./types.js").DataflowInstance, val: unknown) => (map: Record<string, unknown>) => (key: unknown) => unknown;
};
};
subedgeS: {
name: string;
source: string;
target: string;
deps: string;
flow: {
funfun: (flowspec: import("./types.js").Graph, iedge: import("./types.js").Edge) => (defn: import("./types.js").PatternDefinition, flow: import("./types.js").DataflowInstance, val: unknown) => (map: Record<string, unknown>) => (key: unknown) => unknown;
};
};
};
};
};
//# sourceMappingURL=subgraph_pattern.d.ts.map