An Overview of F-OML: An F-Logic Based Object Modeling Language - Balaban, Mira; Kifer, Michael (Electronic Communications of the EASST, 2011)
F-OML is an F-Logic based Object Modeling Language. It can be used for extending UML diagrams, reasoning about them, testing UML models, and defining their syntax (meta-modeling) and semantics. This wide range of applications of F-OML stems from several language features, including polymorphism, multi-level object modeling, and model instantiation. F-OML supports modeling of classes and properties. F-OML is layered on top of an elegant formal language of guarded path expressions, called PathLP, which is used to define objects and their types. PathLP is a logic programming language, inspired by F-logic. It supports path expressions, rules, constraints, and queries, and it is easy to implement by translation into a tabling Prolog engine, such as XSB. In this short overview we informally describe the main constructs of PathLP and F-OML, and provide examples that demonstrate the four modes of F-OML usage. Formal definitions and additional details are found in the full paper. Finally, we analyze how language features contribute to its expressiveness, and provide a brief comparison with OCL.