Extended Digital Platform Ontology (DPO+) modules

The DPO+ file for Visual Paradigm can be found here.

User Type

While a professional user is a member of an organisation recognized by the platform company, an individual user is not aligned with an organisation.

Constraint: IndividualUser.memberOf() is Empty

Listing Kind

the Listing Kind modules capture that a Good Transfer includes a Good, involved in the listing and sold as described by the transaction. A Service on the other hand includes a booking, a certain type of transaction in which a time element is involved.

Listing Type

A Physical Good required is a type of good that requires the specification of a delivery location for the delivery of the good. For a Digital Good on the other hand, the digital marketplace requires functionality for a Listing Creator to upload a Digital Good before it can be transferred to another user(s). For a Physical Service, a location at which the service will take place needs to be specified in the Listing, while for an Offline Service a meeting link needs to be captured in the Listing


A one-time listing is specified with one time element. While a recurring listing captures numerous available time slots that can be booked.


In case the quantity is One, the listing is unique and can only be the basis for one transaction. On the other hand, when the quantity is specified as Many, a listing can be the basis of multiple transactions. An available quantity is captured in the listing and a Quantity is captured in the transaction.

Price Discovery

A price is set by provider and captured in the listing, suggested by the customer or set by the market.

Price Calculation

The price calculation module By Quantity entails a price per item, used in the calculation of the transaction price. A Feature-Based Price is connected to its Feature Type and set during the creation of the listing by the provider. The price of the transaction will then depend on the Feature selected. An auction includes Bids from Target Customers, and the highest bid price is used in the transaction price. In case of a Quote, the Target Customer makes a Quote Request. After, a Provider can submit a quote based on the request, and the customer accepts one of the quotes that will be included in the transaction.

Conversation System

The Conversation System modules illustrates two types of user interactions through message exchanges: Listing Conversation and Transaction Conversation. The Listing Conversation occurs between a potential buyer (the target customer) and the individual who created the listing. This interaction is specifically centered around a particular listing. However, on many platforms, such conversations are either limited, monitored, or prohibited. This restriction is often in place to prevent users from conducting transactions outside the platform, bypassing any platform fees or oversight. On the other hand, a Transaction Conversation is only initiated once a Transaction has been accepted. This type of conversation facilitates further discussion between users regarding the details and specifications of the agreed transaction.

Review By

Depending on the business model choice a Customer and/or a Provider is allowed to create a review concerning a Transaction

Review Of

A review can concern the listing, with the number of reviews and the average review score captured in the listing. Or a Review can concern the provider itself, with the number of reviews and the average score captured on provider level.

Revenue Stream

There are four different revenue streams. A Commission Fee is calculated by the Commission Percentage and added to the Transaction Price. A Fixed Fee is also added to the Transaction Price but doesn’t require a calculation. A Subscription Payment Plan is set up during subscription and includes numerous subscription fees t be paid. And a Listing Fee is included during the Listing Creation.

Revenue Source

In case the Customer is the source, the Revenue Steam is paid by the customer. In case the Provider is the source, the Revenue Stream is paid by the Provider