[nondet]unicode_property(?Code,
?Property)This predicate is a thin wrapper over utf8proc's property struct, so its vocabulary matches the utf8proc documentation. In the modes (+,?) and (-,?) the predicate enumerates properties for the given code (or the code for the given property); in (+,+) it is a deterministic test.
Supported properties:
cc, cf, cn,
co, cs, ll, lm, lo, lt, lu, mc, me, mn,
nd, nl, no, pc, pd, pe, pf, pi, po, ps,
sc, sk, sm, so, zl, zp, zs.
When querying, the single capital letter of a subcategory stands for all
its subcategories; e.g.
?- unicode_property(0'A, category('L')).
true.
l, lre, lro, r, al,
rle, rlo, pdf, en, es, et, an, cs, nsm,
bn, b, s, ws, on.true if the character is mirrored for bidi (parentheses,
brackets, math operators, ...).font, nobreak,
initial, medial, final, isolated, circle, super,
sub, vertical, wide, narrow, small, square,
fraction, compat. Fails when there is no
decomposition.true if the character is a "default ignorable" code point.start,
other, cr, lf, control, extend, l, v, t,
lv, lvt, regional_indicator, spacingmark, prepend,
zwj, extended_pictographic, e_zwg.true if the character has East-Asian Ambiguous width ---
normally one column, but two in a legacy CJK context.unicode_property(0'A, uppercase(_))
fails because 'A' is already upper-case). For characters
whose case mapping produces more than one code point (e.g. U+00DF LATIN
SMALL LETTER SHARP S maps to "SS"), use unicode_map/3
with the [casefold] option or
unicode_casefold/2 for a
full string-level transformation.none, linker, consonant, extend.
Used by the grapheme-cluster-break algorithm for Devanagari, Bengali,
etc.