tables are n-ary relations

Given this fact, it should not surprise you to find that the MKE/OWL
knowledge base includes the table of domain & range information.
Here's how it is represented in MKR (see http://mKRmKE.org/xml/owl.ku)

# Properties defined by OWL: Property domain range
OWL Properties iss relation with
        automatic = none,
        format = [Property:1, domain:2, range:3],
        meaning = {
                $1 isu Property;
                $1 has domain = $2;
                $1 has range = $3;
                $2 has $1;
        };
begin relation OWL Properties;
        allValuesFrom,Restriction,Class;
        backwardCompatibleWith,Ontology,Ontology;
        cardinality,Restriction,xsd:nonNegativeInteger;
        complementOf,Class,Class;
        differentFrom,Thing,Thing;
        disjointWith,Class,Class;
        distinctMembers,AllDifferent,List;
        equivalentClass,Class,Class;
        equivalentProperty,Property,Property;
        imports,Ontology,Ontology;  # corrected==============#
        incompatibleWith,Ontology,Ontology;
        intersectionOf,Class,List;
        iinverseOf,ObjectProperty,ObjectProperty;
        maxCardinality,Restriction,xsd:nonNegativeInteger;
        minCardinality,Restriction,xsd:nonNegativeInteger;
        oneOf,Class,List;
        onProperty,Restriction,Property;
        priorVersion,Ontology,Ontology;
        sameAs,Thing,Thing;
        sameIndividualAs,Thing,Thing;
        someValuesFrom,Restriction,Class;
        unionOf,Class,List;,
end relation OWL Properties;

With this knowledge, you can quickly answer questions like

1. What properties are defined on Class?
    $  ke -owl
    ke$  ? has domain = Class;
    complementOf has domain = Class;
    disjointUnionOf has domain = Class;
    disjointWith has domain = Class;
    equivalentClass has domain = Class;
    intersectionOf has domain = Class;
    oneOf has domain = Class;
    unionOf has domain = Class;

2. Or, just ask the question this way
    ke$  Class has ?;
    Class has
        classname = Class,
        comment = 'The class of all "object" classes',
        complementOf = &null,
        disjointWith = &null,
        equivalentClass = &null,
        intersectionOf = &null,
        label = "Class",
        oneOf = &null,
        qualname = Class,
        rootname = Class,
        shortname = Class,
        unionOf = &null,
        xmlname = Class,
        xmlns = []
         ;
Note that the MKE/OWL knowledge base includes all
the "comment" and similar information from the OWL specs.
The extra name attributes (with their correct values)
    classname = Class\Entity\Thing    # Class isa* ?;
    qualname = owl:Class
    rootname = Thing/Entity/Class
    shortname = Class
    xmlname = owl:Class
    xmlns = "http://www.w3.org/2002/07/owl#"
are my invention.  Their pupose is to facilitate the study of
the many different forms of names which could be used.
My goal is to use short, unqualified names whenever possible.

Dick McCullough
knowledge := man do identify od existent done;
knowledge haspart proposition list;
http://mKRmKE.org/

Received on Saturday, 3 February 2007 10:17:15 UTC