One row per thing_relationship triple with both endpoints' identity, concept glyph, and a synthesized LineString geometry (ST_MakeLine of the two things' points) connecting subject to object -- the real data source for drawing relationship lines on the map, replacing the hardcoded K18/K1 prototype in lmb-maptwo/map.js. Plain view, not materialized, per Toby's request -- refresh cost is just thing_relationship's own sync (see sync_thing_relationships in lmb-sdk) plus two indexed joins, no separate REFRESH step needed. Skips either-geom-null rows outright (a relationship whose subject or object has no thing.geom set can't draw a line), and skips any relationship involving K1 (Bainbridge Island itself, kid=1) -- too coarse an endpoint to draw a useful line to/from (e.g. R38 location to the island itself would stretch across the whole map); the underlying thing_relationship triple is untouched, this is purely a rendering exclusion. subject_glyph/object_glyph are LEFT JOINed from concept_qgis (via lmb_has_type_cid) since a thing may have no concept assigned at all -- NULL, not a missing row, in that case. forward_phrase/inverse_phrase (not heading/inverse_heading) are the real verb-phrase sentence form -- "{subject_label} {forward_phrase} {object_label}" reads as an actual sentence, e.g. "Helix House is part of Naval Radio Transmitting Station Battle Point".
forward_phrase inverse_phrase object_glyph object_kid object_kno object_label rid rno subject_glyph subject_kid subject_kno subject_label