Batch is a very overloaded term. Batch is both a tracking-identifier concept (Batch class - hasIdentifier) and a grouping/collection concept such as when an item isCreatedIn. A Batch is distinct from a Category or Type concept. MaterialBatch and ItemBatch are misnamed. MaterialBatch relates to production input materials which belongsToCategory. Rename to ProductionInputMaterial. Rename ItemBatch to ItemGroup because it uniquely identifies each item in a group all of which have similar properties. Change "An item can consists of multiple Batches and other Items (i.e. subassemblies)." to "The same Item can be a part of different Batches along with other Items (i.e. subassemblies)."
Part of the confusion is caused by s4inma using at least 4 different concepts for identifier (see issue saref-portal#2 (closed)). Perhaps that should be nailed down first. BTW: remove duplicate owl:onProperty s4inma:hasIdentifier from ItemCategory. Comment: s4inma tries to handle recursive Batch relations through consistsOfBatch. This should be a core SAREF concept.