In this paper some representative peer-to-peer file sharing applications are compared against two sets of features. The first set describes the semantics of the relevant primitive operations over the shared data space. The second set describes the algorithmic and architectural solutions to implement these primitives. The obtained classification points out the mutual relationships between the expressive power degree of abstraction over low-level issues offered by each application.