We prove that for every distributive 〈∨,0〉-semilattice S, there are a meet-semilattice P with zero and a map μ: P × P → S such that μ(x,z) ≤ μ(x,y) ∨ μ(y,z) and x ≤ y implies that μ(x,y) = 0, for all x, y, z ∈ P, together with the following conditions:.
(P1) μ(v,u) = 0 implies that u = v, for all u ≤ v in P.
(P2) For all u ≤ v in P and all a, b ∈ S, if μ(v,u) ≤ a ∨ b, then there are a positive integer n and a decomposition u = x0 ≤ x1 ≤ ⋯ ≤ xn = v such that either μ(xi + 1, xi) ≤ a or μ(xi+1, xi) ≤ b, for each i < n.
(P3) The subset {μ(x,0) | x ∈ P} generates the semilattice S.
Furthermore, every finite, bounded subset of P has a join, and P is bounded in case S is bounded. Furthermore, the construction is functorial on lattice-indexed diagrams of finite distributive 〈∨,0,1〉-semilattices.