I was having think about fluent language interfaces and got me thinking about a DSL for search. Take this example
Web.Search
.Contains("David").And.Contains("Hanson")
.Or.contains("Michael Smith")
.Exclude("Sex")
.Exclude("man, Word, Slipper")
.WithinDomain("www.ontheBlog.Net")
.OutPutFormat(Format.XML)
.Provider(Provider.Google | Provider.LiveSearch)
.FilterLevel(Filter.None)
.MaxResult(100)
.Language(Language.English)
.Execute();
I may have to take this further. 