The learning of selector expressions from examples is important for DemeterP (Demeter/Prospector). The programmer incrementally refines a query until the desired query is found that chooses the right Java program. This is a theme of adaptive programming: Instead of writing a program, we write a query that selects the right program from a family of programs. As pointed out by Craig Sayers at HP Labs, the DemeterP idea does not eliminate all study of API documentation. But it helps to reduce the amount of documentation that needs to be studied. Finding for a concept A the name of A, say nameA, is easily achieved with a search engine. If we have a nameA and want a nameB, we formulate the strategy [nameA,nameB]. This strategy might return too many answers and the user selects one of them. Now the tool offers queries that choose the answer and the user selects from those queries to best describe the intent. Here is an example using the BusRoute cd. Intitially, we choose [BusRoute,Person] which chooses two paths. The user selects one path and the tool offers the queries: [BusRoute,BusStopList].[BusStopList,Person] [BusRoute,BusStop].[BusStop,Person] [BusRoute,Person] bypassing Bus as possible queries. The user chooses: [BusRoute,BusStop].[BusStop,Person] as the desired query. Now, should the underlying API, the class graph evolve by adding villages, the tool will still select the right path. Can we reuse the find and gather functions of DJ for DemeterP purposes? It is interesting to compare different uses of selectors: Persephone/Prospector: compose function calls as a sequence DemeterJ/DAJ: compose function calls as a tree AspectJ: define places to enhance Can we use selector learning for all three?