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 09:10:14 UTC