DSL
import metametric.dsl as mm
Auto¶
mm.auto[X]
derives an automatic metric for type X
. This is the default behavior of the @metametric
decorator.
Discrete similarity¶
mm.discrete[X]
constructs a discrete similarity metric for type X
. That is, given that type X
has method __eq__
,
the metric returns 1.0 if two objects of type X
are equal, and 0.0 otherwise.
Custom similarity¶
mm.from_func(f)
constructs a metric from a function f: Callable[[X, X], float]
that takes two arguments of the same
type and returns a float
.
With preprocessing¶
mm.preprocess(g, M)
is a metric that first applies a preprocessing function g: Callable[[X], Y]
to both arguments,
then applies a metric f: Metric[Y]
to the results.
This is the contramap operation of the metric type.
Product (dataclass) similarity¶
mm.dataclass[X](M)
constructs a metric for a dataclass X
by taking the product of the metrics for each of its fields
defined in M: Dict[str, Metric[Any]]
.
Sum (union) similarity¶
mm.union[X](M)
constructs a metric for a union type X
by a dictionary of each case of the union defined
in M: Dict[type, Metric[Any]]
.
Set matching similarity¶
mm.set_matching[X, ◇, N](f)
constructs a set matching metric between two objects of type Set[X]
,
with \(\diamond \in \{\leftrightarrow, \to, \leftarrow, \sim\}\) as the matching constraint, and N
as the normalizer.
See here for a description of matching constraints.
Latent set matching similarity¶
mm.latet_set_matching[X, ◇, N](f)
constructs a latent set matching metric between two objects of type Set[X]
where X
has Variable
s.
where \(M^\diamond\) is a matching between \(X\) and \(Y\) according to the specified matching constraint, and \(M^\leftrightarrow_V\) is a one-to-one matching between the variables in \(X\) and \(Y\).
mm.latet_set_matching[X, ◇, N](f)
constructs a latent set matching metric between two objects of type Set[X]
where X
has Variable
s.
where \(M^\diamond\) is a matching between \(X\) and \(Y\) according to the specified matching constraint, and \(M^\leftrightarrow_V\) is a one-to-one matching between the variables in \(X\) and \(Y\).
Sequence matching similarity¶
Coming soon!
Graph matching similarity¶
Coming soon!