sdd:anchor
sdd:anchor is deliberately dual-role, one term covering two things (design spec §2): a literal datatype, and the predicate whose object is a sdd:Port's own computed border anchor. The two roles share one definition document because they share one shape — a border keyword plus a percentage offset — not by accident.
As a datatype, sdd:anchor is a boundary anchor — a border keyword (top, bottom, left, right) plus a percentage offset along that border, written "right 50%"^^sdd:anchor. It is the value type of sdd:fromAnchor and sdd:toAnchor on an sdd:Edge (examples decision 9): each end of an edge is an anchor relative to its node's boundary, so the connection holds by construction as the node moves.
As a predicate, sdd:anchor names a port's own computed border anchor — the same literal shape, materialized as a cache on the port and recomputed whenever its section layout changes, never left for a renderer to derive. A port is a named, grounded anchor of the same kind an edge end is; this is what makes the one term, one document choice hold rather than forcing extra vocabulary (portAnchor, say) for no semantic gain (design spec §2, decisions log).