To what should generic names be given in DL?

Hi all

I'm building an ontology, but am facing difficulties
in making it in DL (in appropriate way).

Here is one of the questions:

"In DL, to what should the generic names be given?"

Are there any good practices ?

Many thanks in advance.

--------In short from here -------
Should such values be given to the Classes
as the values of annotation properties?

or

Should such values be given to individuals
as the values of object type properties?

or

Can such values be given to (shared)
concepts, which are individuals, 
corresponding to the Class?
(as the values of object type properties)

--------In shoer till here -------


-------- Details from here ------

Please think about, for example, my dog, Spot.

It has its own (proper) name, "Spot".

But how can we express the fact that it is of the type of the animals
called "dog" in English and the type is also called (informally) "doggy"
(so "dog" is preferred as the name of the type) in the framework of owl DL?

If we don't stick to DL, one can easily say

--------
my:Spot a ex:Dog;
	ex:name "Spot";
	.

ex:Dog a owl:Class;
	rdfs:subClassOf ex:Animal;
	ex:prefLabel "dog";
	ex:altLabel "doggy";
	.
--------

Here, I introduced the properties ex:prefLabel and ex:altLabel
after skos:prefLabel and skos:altLabel.
(prefix @skos: <http://www.w3.org/2004/02/skos/core#>.)

I avoid using the original skos:prefLabel and skos:altLabel,
being unsure if the Class (ex:Dog) can be a skos:Concept.

But the description above drives us out of DL, 
for the subject of the ex:prefLabel and ex:altLabel there,
ex:Dog, is a owl:Class.

By asserting the two properties being owl:AnnotationProperty's,
then it would remain in DL.

But is a name an "annotation" property of a thing/class?
I feel uneasy in thinking so.

One idea is to put the labels to Spot, the individual dog, not to the
Class, ex:Dog and assert them as owl:DatatypeProperty's.

--------
my:Spot a ex:Dog;
	ex:name "Spot";
	ex:prefTypeLabel "dog";
	ex:altTypeLabel "doggy";
	.

ex:Dog a owl:Class;
	rdfs:subClassOf ex:Animal,
	[a owl:Restriction;
	 owl:onProperty ex:prefTypeLabel;
	 owl:hasValue "dog"],
	[a owl:Restriction;
	 owl:onProperty ex:altTypeLabel;
	 owl:hasValue "doggy"];
	.

--------

Here I used ex:prefTypeLabel and ex:altTypeLabel
instead of ex:prefLabel and ex:altLabel respectively,
to make clear neither "dog" nor "doggy" is not Spot's name,
Spot's name is "Spot" (and possibly "Spotty").

But I still feel uneasy in thinking it is my Spot
that carries such properties.
Such properties should, I think, be given to something
more abstract than the individuals.

Another idea, which I prefer, is 
to introduce a Dog concept, and give it the names,
and let each dog to carry that concept as a ,say,
concept.

-------
my:Spot a ex:Dog;
	ex:name "Spot";
	ex:hasConcept ex:DogConcept;
	.

ex:DogConcept a owl:Thing;
	a skos:Concept;
	skos:prefLabel "dog";
	skos:altLabel "doggy";
	.

ex:Dog a owl:Class;
	rdfs:subClassOf 
	 [a	owl:Restriction;
	  owl:onProperty ex:hasConcept;
	  owl:hasValue ex:DogConcept];
	.
------

But do you think it OK (or appropriate)
letting the concept carry the (Class) names?

-------- Details till here ------

Best,
Yoshio Fukushige
fukushige.yoshio@jp.panasonic.com



-- 
Yoshio Fukushige <fukushige.yoshio@jp.panasonic.com>
Network Development Center,
Matsushita Electric Industrial Co., Ltd.

Received on Wednesday, 18 July 2007 07:28:26 UTC