There were no formal systems addressing this sort of issue (as far as I know, except for Dan Connolly's Larch work [@@]), until the Semantic Web introduced languages such as RDF which have well-defined logical properties and are used to describe (among other things) web operations.