W3C home > Mailing lists > Public > semantic-web@w3.org > September 2019

Re: Using boolean value vs class

From: Antoine Zimmermann <antoine.zimmermann@emse.fr>
Date: Tue, 24 Sep 2019 14:48:56 +0200
To: semantic-web@w3.org
Message-ID: <3328bf4e-9c41-ca22-7708-bb57ca9a3b38@emse.fr>

These two options definitely affects reasoning.

If you have a property :isDeprecated, then any entity can fall into 4 
disjoint categories:

1. The entities that have no value for :isDeprecated.
2. The entities that have value "true" only.
3. The entities that have value "false" only.
4. The entities that have both values "true" and "false".

Moreover, if the range of the property is unrestricted, it can have all 
sorts of literal values, in any combination.

If you want to make sure that all entities have exactly one of "true" or 
"false" as value for :isDeprecated, you need to introduce a cardinality 
axiom, which increases the complexity of reasoning (and you need to find 
a reasoner that supports cardinality restrictions on datatype properties).

The second model with a class :Deprecated ensures that an entity is 
either of type :Deprecated, or not. This comes for free with any 
reasoner that supports a logic as simple as RDFS, without extra axioms. 
Many more reasoners support axioms made on classes than axioms made on 
literals and datatype properties. It's easier to define subclasses of 
deprecated documents, for instance.

In general, when I review an ontology document, I mark all use of 
boolean properties as a mistake. Usually, boolean properties comes from 
adopting a programming approach to ontology engineering rather than a 
knowledge representation approach (that is, it uses the ontology as a 
data structure for computation rather than as an information model about 
the world, for knowledge interchange).

However, when you have to go back and forth between an existing data 
model such as tabular data etc. and RDF, it can be convenient to 
translate booleans to booleans, so there can be exceptions to my rule of 
thumb of excluding all boolean properties.


Le 24/09/2019 à 13:57, Mikael Pesonen a écrit :
> Hi,
> lets say we have documents and we want to say wheather they are valid or 
> deprecated. There are two ways to do this:
> :doc1 a foaf:Document ;
>      :isDeprecated "true"^^xsd:boolean .
> or
> :doc1 a foaf:Document ;
>      a :Deprecated .
> Are there some different implications on the use? Does is affect OWL 
> reasoning, for example?
> Mikael

Antoine Zimmermann
Institut Henri Fayol
École des Mines de Saint-Étienne
158 cours Fauriel
CS 62362
42023 Saint-Étienne Cedex 2
Tél:+33(0)4 77 42 66 03
Fax:+33(0)4 77 42 66 66
Member of team Connected Intelligence, Laboratoire Hubert Curien
Received on Tuesday, 24 September 2019 12:49:21 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:51:38 UTC