It's common to describe the category of (directed, multi-) graphs as a functor category Graph := [2, Set], where 2 here is the category with 2 objects and 2 parallel arrows (s & t). For a pair of sets (V,E), one can construct the indiscrete graph I(V,E) as a graph with vertices V and edges E x V x V, where the source and target maps are just the 2nd and 3rd projection respectively. This gives a right adjoint to the forgetful functor from Graph to pairs of sets. This enables one to construct a category of graphs with a fixed set of vetex/edge labels as a slice over Graph: Graph / I(Lv, Le) since a graph hm G --> I(Lv,Le) is the same as a map U(G) --> (Lv,Le), which is just a pair of functions assigning labels to the vertices and edges of G. This seems to me like a pretty standard trick, which extends to any functor category from a C which is in some sense "suitably acyclic". For instance, consider a category of "partitioned graphs" [3, Set], where 3 has objects (P,V,E) and arrows: E --s--> V, E --t--> V, and V --p--> P where, p assigns each of the vertices a partition. For a triple (P,V,E) we can form the indiscrete partitioned graph with: - partitions P - vertices V x P - edges E x (V x P) x (V x P) - p = pi2, s = pi2, t = pi3 which gives a right-adjoint to the forgetful functor from partitioned graphs to triples of sets. This is clearly an instance of a general recipe, whereby you start with the objects with no arrows out, and work your way backwards, always adding copies of the codomain of every out-arrow. Again one can attach labels to partitioned graphs by slicing: [3,Set] / I(Lp,Lv,Le) So, my question: Is the general case a known/studied construction? If so, could someone provide a reference? Best, Aleks [For admin and other information see: http://www.mta.ca/~cat-dist/ ]