Why we designed our own product modeling language?

When it comes to managing enterprise applications, people generally love point and click administration tools. They’re easy to learn and execute. But when it comes to the complexity of CPQ, if you have to create a product model with thousands (or even hundreds) of products and rules, it quickly becomes very inefficient. You will hate the time it takes to click a mouse thousands of times to create a product model. It’s also very difficult for a team to collaborate on the set-up and develop a product model together. 

Maintenance will be very difficult too since all products and rules are scattered in different database tables and nobody has a complete understanding of the product model and how everything is pieced together. This is why we created an object oriented product modeling language called PML. PML is a declarative language. It has type as a prototype of a product. Type encapsulates attributes and constraints. It supports int, boolean, decimal, double, string, date as type of attribute. It also supports any logical expression as constraints. Type has its own hierarchy and it supports inheritance and overriding just as class in any object oriented programming language. PML is highly extensible and there are a lot of builtin mechanisms to enable modelers to extend the language. This is why it is so powerful. It can virtually solve any configuration problem. 

PML is very readable and it can serve as a source of truth for product models. You can take a look at the PML file and understand the whole model easily and you can add comments in the PML to explain the rules. PML is very easy to maintain over time since it embeds the knowledge of the product model language itself. PML can be an exchange format for the product model and can enable interoperability between different CPQ systems.

PML is also modular. We can split the product model allowing multiple people to work without interfering with each other.

We also provide a point and click admin tool where users can create the model, and we generate PML underneath. At the same time, we can parse the PML and present it in the admin UI. In this way, some users can create a simple model in the GUI admin and a model guru will use PML to create a product model to improve productivity. PML is very easy to learn. Most people with basic math knowledge can pick it up easily. Based on our experience, most people actually prefer working in PML. For example, if you need to create a new/similar rule, in PML,, you can copy and paste the rule and very quickly create your new rule. And in PML it's very easy and quick to go back to modify rules.

Our vision is to establish PML as the industry standard for product modeling. People can build different product models in PML and share them to solve different modeling problems.

Latest Blog Posts