FOML is an expressive logic rule language that supports object modeling, analysis, and inference. It naturally supports model-level activities, such as constraints (extending UML diagrams), dynamic compositional modeling, analysis and reasoning about models, model testing, design pattern modeling, specification of Domain Specific Modeling Languages, and meta-modeling. FOML can reason about: 1. The model meta-data (meta-model level reasoning, or syntax reasoning) 2. Data level: reason about a model and its data (instance model, i.e., diagram) FOML is built as a semantic layer on top of PathLP - a compact logic rule language of guarded path expressions, an adaptation of a subset of F-logic.