RE: [SE] Suggestion of new note

Hi all

> Hi Holger,
> 
> You asked about the significance of a root class. Maybe I can answer while also
> providing some grist about differences between OO and RDF class hierachies.
> 
> Classes defined in OO systems are technically "metadata" -- programming objects
> whose method pointers are located in virtual function tables maintained by the
> OO runtime. Ontologies define classes that correspond to natural world concepts,
> to 'sets' of actual instances. Significant OO applications could but very rarely
> do, define a class for each worldly concept due to overhead and performance
> considerations. For instance, many ontologies eg WN and DOLCE, define classes
> corresponding to a "PhysicalThing" and a "ConceptualThing" -- these classes
> would rarely be defined by an application programmer. Rather, at a maximum, a
> programmer defines these concepts as a multi-valued FLAG.  At the same time, no
This is inline with the comment I made here:
http://lists.w3.org/Archives/Public/public-swbp-wg/2005Oct/0073.html

Of course, a developer would never define such classes, because (s)he is
using UML to arrive at an OO program eventually. In contrast, the purpose
of ontologies is to clarify the intended meanings of its terms. For that,
a concise upper-level taxonomy might be required.

Best,
  Daniel



> ontologist I know would advise the use of FLAGS to indicate type alternatives.
> Existence or not of an rdf:type specifying the value is certainly an adequate
> BINARY FLAG that a resource is of a certain type, while achieving (a) greater
> flexibility because multiple types can be specified for the instance and (b)
> greater robustness because there no hardwiring of what types (as specified by
> mult-valued flags) are <owl:disjointWith> one another, ie presumed mutually
> exclusive. That said, heavy application use of processing flags is a valid and
> often-recommended programming style to achieve good performance,
> maintainability, and so on -- but it's a terrible design for an ontology.
> 
> How about classes that would be defined in both worlds -- what are their
> differences? On the data/property side, not much if any difference exists. On
> the code side, of course OO has its fabulous method-invoking mechanisms,
> providing all necessary facilities giving programmer control over the language's
> runtime method resolution process. RDF has none of that builtin.
> 
> That's the leaf classes. Now the root class. Within the OO community are
> OO-compiler fans and OO-interpreter fans. C++ has no root class but Java and
> ECMA do. With ontologies however, the Resource and Thing classes are given
> which, in effect, avoids the debate altogether.
> 
> Thanks,
> John McClure

Received on Monday, 10 October 2005 11:00:13 UTC