EntityService¶
Service for creating and resolving entities.
Class: FactDb::Services::EntityService¶
Methods¶
create¶
Create a new entity.
Parameters:
name(String) - Authoritative namekind(Symbol) - Entity kindaliases(Array) - Alternative namesmetadata(Hash) - Additional attributes
Returns: Models::Entity
Example:
entity = service.create(
"Paula Chen",
kind: :person,
aliases: ["Paula", "P. Chen"],
metadata: { department: "Engineering" }
)
find¶
Find entity by ID.
Returns: Models::Entity
resolve¶
Resolve a name to an entity using multiple strategies.
Parameters:
name(String) - Name to resolvekind(Symbol) - Optional kind filter
Returns: Models::Entity or nil
Example:
add_alias¶
Add an alias to an entity.
Example:
remove_alias¶
Remove an alias from an entity.
merge¶
Merge two entities (merge_id into keep_id).
Example:
update¶
Update entity attributes.
Example:
search¶
Search entities by name.
Parameters:
query(String) - Search querykind(Symbol) - Optional kind filterlimit(Integer) - Max results
Returns: Array<Models::Entity>
by_kind¶
Filter entities by kind.
Returns: ActiveRecord::Relation
in_source¶
Find entities mentioned in a source.
Returns: Array<Models::Entity>
related_to¶
Find entities that appear in facts with the given entity.
Returns: Array<Models::Entity>
semantic_search¶
Semantic similarity search using embeddings.
Returns: Array<Models::Entity>