Aug 13, 2008

More rants about marked roles

One of the interesting things about marked roles is how it really goes against the standard definition of a function. Functions are really a low level concepts. A function which receives marked inputs can be thought to act more intelligently than a function which takes a fixed number of arguments and handles them without having to think about what they are. Marked-input functions do not need to have a fixed number of arguments, nor do all roles have to be filled in before the function can be evaluated.

Lets take a function which computes the area of a rectangle called "AreaofRec". There are many different ways we could feed a function the information needed to compute the area. The prototypical being:

AreaofRec(length.5, width.4);

Or these other less common ways of input:

AreaofRec(length.5, diagonal.3);
AreaofRec(width.4, perimeter.20);


We can compute area of anyone of these rectangles from the information given. What we have effectively described is a function which evaluates in a certain way when it has received enough information.

Its an interesting idea, so why is it not done? Well its pretty clear that the terms we use to mark the roles of the input with will be difficult to work with. Take these for example:

Sort(sorted.[1,3,6,2,4] , method. <);
Sort(list.[1,3,6,2,4], orderingfunction.<);


Theres nothing to tell us which to write unless we look at the documentation. Sure you have to look at the documentation to see wether the function or the list comes first but thats not nearly as irritating as not knowing what to call your arguments.

We would have to some sort of agreement ontology and knowledge representation. These are still fields in their infancy, and therefore we shouldn't expect anything like this until we've come farther in knowledge representation. If we don't have any intuitive way of figuring out what we are supposed to call each of the roles, then memorized the role names becomes a task worse than memorizing the place each role is supposed to take.

I guess its a good thing Im interested in ontologies.