Ontology Modelling: Object Property or Data Property?
Asked Answered
I

2

5

I am modeling an ontology that should be used to represent knowledge about restaurants, their served dishes, prices and cuisines types.

One of the functionalities of this system will be to allow users browsing for places to eat some specific kind of Dishes or to search restaurants that are specialized in some cuisines.

Given that in mind, I have modeled the first version of my ontology, but I question appeared.

To represent the specialty of a Restaurant: (a) should I do it as an Object Property, having a class Cuisine, or (b) just as a data property, i.e. being a simple attribute of the Restaurant Class?

Cuisine

Which are the implications of choosing a or b?

Ileana answered 31/7, 2018 at 15:54 Comment(1)
If you share your ontology on the Web, people may be confused about the price property. What does it represent. A world wide notion of price may be fully encoded, with some restrictions, as a data structure, but certainly not as a plain float. If your ontology is only made to work with your system, but you still want to share the ontology somehow, you should make explicit what your prices are, e.g., priceInForint or priceInYen or ...Luthuli
L
8

In principle, the purpose of an ontology is to describe knowledge about a certain topic. An ontology should partially answer the question "What is a [NameOfTheConceptYouWantToDefine]?". In OWL, the question is answered by providing categories (OWL classes) and binary relations between objects of the categories (OWL individuals) or between an object and a data value (literals). For instance, ask yourself the question "what is an ingredient?". If your answer is "an ingredient is a finite sequence of unicode characters", then you'll need a datatype property to relate something to an ingredient. If you believe that an ingredient is a date or a number, same.

However, if you think an ingredient is an entity that cannot be digitally encoded in a data structure, then you may need a specific class for it, and object properties to relate things to it.

However, ontologies may also be used as a guide to data structures about the things you describe. Sometimes, it is convenient to use a character string as a description of the thing rather than talk about the thing itself. For instance, one may use a string to describe the ingredients of a recipe. This string should not be confused with the ingredient itself. To make this distinction explicit, you can use datatype properties with a clear name like ex:ingredientDescription.

Now, ask yourself "what is a cuisine?". Is it a string, a number, a date? Do you need to describe further the cuisines or do you just need a string-based cuisine description?

Luthuli answered 20/8, 2018 at 10:54 Comment(1)
can we add the same property as data property and object property?Fates
T
6

The motto of Semantic Web is “Things, not strings”. This is what makes RDF/RDFS/OWL different from other modelling frameworks.

In OWL 2, object properties might possess different characteristics, while data properties mightn't:

In Protege

Also, data properties can not be parts of property chains. All these restrictions are due to decidability reasons.


There exist quite a few cuisines, they can have their own attributes (at least, detailed descriptions) and relations, so I'd suggest to use object properties.

Tinea answered 31/7, 2018 at 19:50 Comment(1)
Thank you very much Stanislav, I think your answer solved my question. :)Ileana

© 2022 - 2024 — McMap. All rights reserved.