W3C home > Mailing lists > Public > semantic-web@w3.org > July 2009

Re: Naming convention for deeply structured classes and subclasses

From: Azamat <abdoul@cytanet.com.cy>
Date: Sat, 11 Jul 2009 00:31:53 +0300
Message-ID: <004d01ca01a5$d8537460$a104810a@homepc>
To: "'SW-forum'" <semantic-web@w3.org>
Cc: <kj@iteegosearch.com>, "Pieter De Leenheer" <pdeleenh@vub.ac.be>
KJ:
"The problem I'm having now is how to name my classes and subclasses.  My structure is 5 levels deep where level 1 is the root class and level 5 is the individual (or instance). Naming classes and instances after level 1 is perplexing." 


Kevin raised the problem touching the fundamentals of URIs schema. It is a bit alerting that such a hot topic was noticed only by Peter. 

There is a golden rule is good to follow here: "Nothing meaningful in the semantic web, what is not studied in the natural language semantics." 

Your question is all about compound names, which consist of several words combined to form a single lexical expression of subclasses and subtypes. There is a strict semantic rule of dividing names (nouns) into subordinate classes and kinds by modifying nouns. Here is the relevant passage from my article [1] analyzing how the machine-readable classificatory compound names of arbitrary length are constructed:

"The more nouns attached to the head word, the narrower its meaning; typically the number of modifying nouns exhaustively specifying any name amounts to five or six words, including the determiner. Formally, the substantive name compounds can be described as an ordered set of nouns, where the sequence and the stress pattern make all the difference, and the possible cardinal number of elements corresponds to the range mentioned. Some examples are as follows: the ontology knowledge database management system, the first-order predicate calculus system, the semantic web reference ontology, the World Wide Web agent markup language. 

While decoding the meaning of the last compound, the brainy machine should be able to infer, albeit mechanically and to limited extent, that 'a markup language' is a subclass of 'language', 'agent' indicates the purpose of the language, and that 'World Wide Web' tells it the place of origin or location of the language."

Bottom line

 Any "hot" URIs includes a meaningfully ordered sequence of names signifying a resource on the Internet or in the real world.  Any URIs name is a subclass of a NL name, and as any words it's both a sign and symbol, pointing to and standing for something. 

So the long classification is done according the scheme "noun specifying another noun", like below: 

((subsubclass)(subclass(class)): audio multimedia desktop software. 

As part of URI's name or computer directory (folder, catalog) name, it will be written as a root hierarchy: software/desktop/multimedia/audio/...

Azamat Abdoullaev

http://standardontology.org

 

1. How To Represent the World: Ontology-Controlled Natural Languages, IGI Global, 2008.

 

PS: I am surprised with your taxonomy of software. It is often divided as: 

system software (operating systems, servers, utilities); 

programming software (compilers, interpreters, text editors);

application software (scientific, industrial, business, game, telecommunications, educational, medical, etc.)

http://en.wikipedia.org/wiki/Computer_software

  ----- Original Message ----- 
  From: Kevin Jenkins 
  To: semantic-web@w3.org 
  Sent: Friday, July 10, 2009 9:54 AM
  Subject: Naming convention for deeply structured classes and subclasses


   

  Greetings,

   

  I sent an e-mail previously inquiring about naming conventions. In retrospect, I can see my question didn't make much sense.  I have since been working extensively with the protégé 4 Owl Editor and have learned much in the way of answering my own questions.  However, I am still running into an issue with naming conventions, but I do have a better understanding now of what exactly it is that I'm trying to get advice for.  

   

  I am currently trying to create an ontology for software.  As you can imagine, software is a very complex product and there is a lot to it.  After weeks I believe I have arrived at a smart and intuitive class and subclass structure.   The problem I'm having now is how to name my classes and subclasses.  My structure is 5 levels deep where level 1 is the root class and level 5 is the individual (or instance). Naming classes and instances after level 1 is perplexing.  I was hoping somebody here could give me some advice on how this might be done using current ontology best practices.  Below I am including a small example of the current structure below.  I have not tried to officially name the classes yet as I'm not sure how.  So I have used a temporary naming convention that enables me to easily understand and organize my classes.  But I am getting to the point now where I'd like to start officially naming them. 

   

  =========

   

  Product (Root Class)

  --- software

  ------ desktop software

  ------------ desktop internet software

  ------------------- desktop internet access software (individual)

  ------------------- desktop internet browser software (individual)

  ------------------- desktop internet messaging software (individual)

  ------------ desktop multimedia software

  ------------------- desktop multimedia 3d software (individual)

  ------------------- desktop multimedia audio software (individual)

  ------------------- desktop multimedia video software (individual)

  ------ internet software

  ------------ internet saas software

  ------------------- internet saas collaboration software (individual)

  ------------------- internet saas videosharing software (individual)

  ------------ internet cloud software

  ------ enterprise software

  Person (Root Class)

  Press (Root Class)

   

  =========

   

  It is my understanding all names must be unique (at least that seems to be what the protégé editor is saying). I should probably be using some combination of suffix and prefix to ensure so. But which ones?  Also, I understand that shorter names are preferred.  As you can see, by the time I get down to the instance level the name gets very long if I am to keep it unique and human understandable. Of course I could use a lot of acronym type names which would be short and sweet for machines, but entirely unintelligible for humans.

   

  I would really appreciate some advice on how to intelligently name my class structure. Obviously, I'm most concerned with Levels 3-5.  Levels 1-2 are basic.  

   

  I hope this time I have made much more sense with my inquiry.  Thanks for the help!

   

  Regards

  Kevin

   

   

   

   
Received on Friday, 10 July 2009 21:32:43 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 07:42:13 UTC