# Schema for CWM's mathematical built-ins, SBP 2001-12 @prefix rdf: . @prefix rdfs: . @prefix daml: . @prefix log: . @prefix math: . @prefix string: . math:StrictProperty a rdfs:Class; rdfs:label "StrictProperty"; daml:intersectionOf (daml:UnambiguousProperty daml:UniqueProperty) . math:Value a rdfs:Class; rdfs:label "Value"; rdfs:subClassOf string:String; rdfs:comment "The class of things that are values." . math:List a rdfs:Class; rdfs:label "List"; rdfs:subClassOf daml:List; rdfs:comment """The class of things that are DAML lists were all of the members are math:Value items.""" . math:TwoMemberedList a rdfs:Class; rdfs:label "TwoMemberedList"; rdfs:subClassOf math:List; rdfs:comment "This is the class of things that are math lists with only two members." . math:sumOf a :StrictProperty; rdfs:label "sumOf"; rdfs:domain math:Value; rdfs:range math:List; rdfs:comment "The sum of the list members" . math:differenceOf a :StrictProperty; rdfs:label "differenceOf"; rdfs:domain math:Value; rdfs:range math:TwoMemberedList; rdfs:comment "The difference of the list members" . math:productOf a :StrictProperty; rdfs:label "productOf"; rdfs:domain math:Value; rdfs:range math:List; rdfs:comment "The product of the list members" . math:quotientOf a :StrictProperty; rdfs:label "quotientOf"; rdfs:domain math:Value; rdfs:range math:TwoMemberedList; rdfs:comment "The quotient of the list members" . math:remainderOf a :StrictProperty; rdfs:label "remainderOf"; rdfs:domain math:Value; rdfs:range math:TwoMemberedList; rdfs:comment "The remainder of the list members" . math:negationOf a :StrictProperty; rdfs:label "negationOf"; rdfs:domain math:Value; rdfs:range math:Value; rdfs:comment "The subject is the negotation of the object" . math:exponentiationOf a :StrictProperty; rdfs:label "exponentiationOf"; rdfs:domain math:Value; rdfs:range math:TwoMemberedList; rdfs:comment "For exponOf(x, (y, z)), x = y^z" . math:memberCount a :StrictProperty; rdfs:label "memberCount"; rdfs:domain math:List; rdfs:range math:Value; rdfs:comment "The number of items in a list" . math:greaterThan a :StrictProperty; rdfs:label "greaterThan"; rdfs:subPropertyOf string:greaterThan; rdfs:comment "Is greater than"; rdfs:domain math:Value; rdfs:range math:Value . math:notGreaterThan a :StrictProperty; rdfs:label "notGreaterThan"; rdfs:subPropertyOf string:notGreaterThan; rdfs:comment "Is not greater than"; rdfs:domain math:Value; rdfs:range math:Value . math:lessThan a :StrictProperty; rdfs:label "lessThan"; rdfs:subPropertyOf string:lessThan; rdfs:comment "Is less than"; rdfs:domain math:Value; rdfs:range math:Value . math:notlessThan a :StrictProperty; rdfs:label "notlessThan"; rdfs:subPropertyOf string:notlessThan; rdfs:comment "Is not less than"; rdfs:domain math:Value; rdfs:range math:Value . math:equalTo a :StrictProperty; rdfs:label "equalTo"; rdfs:comment "Equal to"; rdfs:domain math:Value; rdfs:range math:Value . math:notEqualTo a :StrictProperty; rdfs:label "notEqualTo"; rdfs:comment "Not equal to"; rdfs:domain math:Value; rdfs:range math:Value .