This paper describes an operational system which can acquire the core meanings of words without any prior knowledge of either the category or meaning of any words it encounters. The system is given as input, a description of sequences of scenes along with sentences which describe the [EVENTS] taking place as those scenes unfold, and produces as output, a lexicon consisting of the category and meaning of each word in the input, that allows the sentences to describe the [EVENTS]. It is argued, that each of the three main components of the system, the parser, the linker and the inference component, make only linguistically and cognitively plausible assumptions about the innate knowledge needed to support tractable learning. The paper discusses the theory underlying the system, the representations and algorithms used in the implementation, the semantic constraints which support the heuristics necessary to achieve tractable learning, the limitations of the current theory and the implications of this work for language acquisition research. GO(z, [y, z]) GO(z, [y, 4) GO(z, [FROM(y), z]) GO(z, [FROM(y), z]) GO(z, [FROM(AT(y)), z]) GO(z, [FROM(AT(y)), z]) GO(z, [y, TO(z)]) GO(x, [y, TO(z)]) GO(z, [FROM(y), TO(z)]) GO(z, [FROM(y), TO(z)]) GO(z, [FROM(AT(y)), TO(z)]) GO(z, [FROM(AT(y)), TO(z)]) GO(z, [y, TO(AT(z))]) GO(z, [y, TO(AT(z))]) GO(z, [FROM(y), TO(AT(z))]) GO(z, [FROM(y), TO(AT(z))]) GO(z, [FROM(AT(y)), TO(AT(z))]) GO(z, [FROM(AT(y)), TO(AT(z))])