We explore the meanings of the terms 'structure', 'behaviour', and, especia
lly, 'function' in engineering practice. Computers provide great assistance
in calculation tasks in engineering practice, but they also have great pot
ential for helping with reasoning tasks. However, realising this vision req
uires precision in representing engineering knowledge, in which the terms m
entioned above play a central role. We start with a simple ontology for rep
resenting objects and causal interactions between objects. Using this ontol
ogy, up investigate a range of meanings for the terms of interest. Specific
ally, we distinguish between function as effect on the environment, and a d
evice-centred view of device function. In the former view, function is seen
as an intended or desired role that an artifact plays in its environment.
We identify an important concept called mode of deployment that is often le
ft implicit, but whose explicit representation is necessary for correct and
complete reasoning. We discuss the task of design and design verification
in this framework. We end with a discussion that relates needs in the world
to functions of artifacts created to satisfy the needs.