Search code examples
owlsemantic-webprotegeturtle-rdf

OWL restriction and open world assumption clarification: max 1, exactly 1


Say we have the definitions:

Product hasPrice exactly 1 xsd:decimal
Product hasPrice max 1 xsd:decimal

With the open world assumption, we can define a product without specifying the price, like:

A a Product;
rdfs:label "Apple"@en .

My understanding is:

With exactly 1 definition, we are saying this product's price is unknown.

With max 1 definition, we are saying a product can have no price.

Am I right?


I got myself confused when defining

Service has some gr:UnitPriceSpecification
Service has exactly 1 Provider
ComputeService has max 1 TransactionsUnitPriceSpecification

Need to get my head around all the possible situations.


Solution

  • Open world semantics trips up many people. You are certainly not alone :D

    Here is a quick overview of the meaning:

    Product hasPrice min 1 xsd:decimal
    

    states that Product has at least 1 price. However, this allows for Product having multiple prices.

    Product hasPrice max 1 xsd:decimal
    

    states that Product has at most 1 price. However, this allows for Product having no prices at all.

    Product hasPrice exactly 1 xsd:decimal
    

    states that Product has at least 1 price and at most 1 price.

    I have written about this in more detail on my blog.