
Embed
Generate, inspect, and use node/text embeddings in Semantica, compute Node2Vec...
Install
npx skills add semantica-agi/semantica --skill embed -g -a claude-code -y- Repository
- semantica-agi/semantica14.4k
- Category
- Engineering
- Updated
- 3d ago
- License
- MIT
- Context cost
- Lightabout 1,438 tokens
- Runs scripts
- No, instructions only
What it does
Generate, inspect, and use node/text embeddings in Semantica, compute Node2Vec embeddings, find similar nodes, score link predictions, batch similarity, and pairwise similarity. Uses NodeEmbedder, SimilarityCalculator, LinkPredictor, and AgentContext. Sub-commands: compute, similar, similarity, predict-link, top-links, batch, pairwise.
/semantica:embed
Generate and inspect graph embeddings. Usage: /semantica:embed <sub-command> [args]
$ARGUMENTS = sub-command + arguments.
compute [--labels <t1,t2>] [--rels <r1,r2>] [--dim N] [--walks N]
Generate Node2Vec embeddings for graph nodes.
from semantica.kg.node_embeddings import NodeEmbedder
from semantica.context import ContextGraph
graph = ContextGraph()
embedder = NodeEmbedder()
node_labels = labels_arg.split(",") if labels_arg else graph.get_all_node_types()
rel_types = rels_arg.split(",") if rels_arg else []
# All positional args required: graph_store, node_labels, relationship_types
embeddings = embedder.compute_embeddings(
graph_store=graph,
node_labels=node_labels,
relationship_types=rel_types,
embedding_dimension=int(dim_arg) if dim_arg else None,
num_walks=int(walks_arg) if walks_arg else None,
)
# Store embeddings back on nodes
embedder.store_embeddings(
graph_store=graph,
embeddings=embeddings,
property_name="node2vec_embedding",
)
Output:
Embeddings computed and stored.
Nodes embedded: N
Embedding dim: 128
Node types covered: [type1, type2, ...]
Sample (first 5 nodes):
| Node | Type | Embedding dim | Stored |
similar <node_id> [--top N]
Find the most similar nodes to a given node in embedding space.
from semantica.kg.node_embeddings import NodeEmbedder
from semantica.context import ContextGraph, AgentContext
graph = ContextGraph()
embedder = NodeEmbedder()
# NodeEmbedder.find_similar_nodes uses the stored node2vec_embedding property
neighbors = embedder.find_similar_nodes(
graph_store=graph,
node_id=node_id,
top_k=int(top_n) if top_n else 10,
embedding_property="node2vec_embedding",
)
