Bixby Developer Center

Build Conversational Experiences
Guides
References

pessimistic-join

optional

A join that only returns false or true, treating values that would be uncertain as false.

If all nested constraints return true, that is the result. Otherwise, the result will be false.

Pessimistic joins can be made conditional by wrapping their constraints in if blocks.

Examples

structure (Business) {
property (address) {
type (viv.geo.Address)
}
// ... more properties ...
// Businesses get merged only if their name and addresses match with
// a "true" tolerance, not an "uncertain" one
equivalence: pessimistic-join {
convertible-concepts
equivalent-values (name)
equivalent-values (address)
}
}

This block demonstrates a conditional constraint:

equivalence: optimistic-join {
equal-values (label)
equivalent-values (performer)
equivalent-values (venue)
if (label == 'SingleEvent') {
equivalent-values (events)
}
}

Child Keys

distance-equality
optional
As a special case, we can define equivalence rules for geo.GeoPoint properties using the distance-equality constraint, which returns true if two points are within a specified geographic distance of each other
equal-concepts
optional
Constraint that returns true if two concept instances can be converted to each other: both instances have the same concept type (for example, they are both Business concepts), or if one is a sub-type of the other
equal-values
optional
Constraint that declares that a property must be equal for the equivalence definition to return true
equivalent-values
optional
Constraint that specifies properties to use for testing structure equivalence
fuzzy-numeric-equality
optional
Constraint that relaxes the equivalence threshold for float values (primitive type decimal)
fuzzy-string-equality
optional
Constraint that relaxes the equivalence threshold for strings (primitive type name)
inherit-predicates
optional
Inherit the equivalent policy from a parent concept
never-equivalent
optional
Never set types equal to each other