; ; Copyright (C) 2002 Michal Sevcenko ; ; This program is free software; you can redistribute it and/or ; modify it under the terms of the GNU Lesser General Public ; License as published by the Free Software Foundation; either ; version 2.1 of the License, or (at your option) any later version. ; ; This program is distributed in the hope that it will be useful, ; but WITHOUT ANY WARRANTY; without even the implied warranty of ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ; Lesser General Public License for more details. ; ; You should have received a copy of the GNU Lesser General Public ; License along with this program; if not, write to the Free Software ; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ; ; This file contains definitions of auxiliary predicates that help to ; define language representations of predicates defined within SUMO. ; The 'engFormat' binary predicate associates a concept (either relation or ; a function with a string. When there is a need to visualise certain ; concept in natural language, the associated string is used. The string ; generally contains a natural language description of the concept, but ; it may contain special tags which are interpreted with the browser. ; The description of these tags follows: ; &%token - specifies a token that will be made into a hypertext link ; to concept being visualized ; %1, %2, ... - this tag will be substituted with a natural language ; representation of the concept's respective argument ; %n{text} will be replaced either with empty string, if a predicate ; is being rendered as positive, or 'text' otherwise; the %n tag ; can be used as a shortcut for %n{not} ; %p{text} replaced with 'text' for positive rendering and with an ; empty string for negative rendering ; %*{range}[delim] will be replaced with a list of natural-language ; representation of a subset of arguments; range specifies which ; arguments will be included - it is a comma separated list of ; numbers or ranges; for example, range '1-4,6' denotes first, ; second, third, fourth and sixth argument; the delim parameter ; specifies the delimiter which will be used to separate representations ; of arguments; both {range} and [delim] may be ommited - range ; defaults to all arguments, and delim defaults to a single space ; %% will be replaced with a single percent character ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; BASE ONTOLOGY ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;; ; Relations (format en agent "%1 is %n an &%agent of %2") (format en attribute "%2 is %n an &%attribute of %1") (format en believes "%1 %n{doesn't} &%believe%p{s} %2") (format en between "%2 is %n &%between %1 and %3") (format en capability "%3 is %n &%capable to do %1 in role %2") (format en causes "%1 %n{doesn't} &%cause%p{s} %2") (format en closedOn "%1 is %n &%closed on %2") (format en component "%1 is %n a &%component of %2") (format en conditionalProbability "&%probability of %1 provided that %2 holds is %n %3") (format en considers "%1 %n{doesn't} &%consider%p{s} %2") (format en containsInformation "%1 %n{doesn't} &%contain%p{s} information %2") (format en copy "%1 is %n an exact &%copy of %2") (format en decreasesLikelihood "%1 %n{doesn't} &%decrease%p{s} likelihood of %2") (format en desires "%1 %n{doesn't} &%desire%p{s} %2") (format en destination "%1 %n{doesn't} %n &%end%p{s} at %2") (format en distributes "%1 is %n &%distributive over %2") (format en documentation "%2") (format en equivalenceRelationOn "%1 is %n &%equivalence relation on %2") (format en exactlyLocated "%1 is %n &%exactly located in %2") (format en experiencer "%2 %n{doesn't} &%experience%p{s} %1") (format en exploits "%1 %n{doesn't} &%exploit%p{s} %2") (format en faces "%1 faces %2") (format en greaterThan "%1 is %n &%greater than %2") (format en greaterThanOrEqualTo "%1 is %n &%greater than or equal to %2") (format en hasPurpose "%1 has %n &%purpose %2") (format en hasPurposeForAgent "%1 has &n &%purpose %2 for %3") (format en hasSkill "%2 has &n &%skill to do %1") (format en holdsDuring "%2 %n{doesn't} hold%p{s} &%during %1") (format en holdsRight "%2 %p{has} %n{doesn't have} the &%right to perform %1") (format en increasesLikelihood "%1 %n{doesn't} &%increase%p{s} likelihood of %2") (format en independentProbability "probability of %1 and %2 is %n &%independent") (format en initialList "%1 %n{doesn't} &%start%p{s} %2") (format en inList "%1 is %n a &%member of %2") (format en inScopeOfInterest "%1 is %n &%interested in %2") (format en instrument "%2 is %n an &%instrument for %1") (format en irreflexiveOn "%1 is %n &%irreflexive on %2") (format en knows "%1 %n{doesn't} &%know%p{s} %2") (format en lessThan "%1 is %n &%less than %2") (format en lessThanOrEqualTo "%1 is %n &%less than or equal to %2") (format en located "%1 is %n &%located at %2") (format en manner "%1 is performed in the manner %2") (format en material "%1 is %n &%made of %2") (format en member "%1 is %n a &%member of %2") (format en needs "%1 %n{doesn't} &%need%p{s} %2") (format en notices "%1 %n{doesn't} &%notice%p{s} %2") (format en origin "%1 %n{doesn't} &%origin%p{s} at %2") (format en part "%1 is %n a &%part of %2") (format en partialOrderingOn "%1 is %n &%partial ordering on %2") (format en partlyLocated "%1 is %n &%partly located in %2") (format en patient "%2 is %n a &%patient of %1") (format en piece "%1 is %n a &%piece of %2") (format en possesses "%1 %n{doesn't} &%posess%p{es} %2") (format en prefers "%1 %n{doesn't} &%prefer%p{s} %2 over %3") (format en probability "&%probability of %1 is %n %2") (format en properPart "%1 is %n a &%proper &%part of %2") (format en property "%1 has %n an &%attribute %2") (format en reflexiveOn "%1 is %n &%reflexive on %2") (format en resource "%2 is %n a &%resource for %1") (format en result "%2 is %n a &%result of %1") (format en subCollection "%1 is %n a proper &%sub-collection of %2") (format en subProposition "%1 is a &%sub-proposition of %2") (format en subList "%1 is %n a &%sublist of %2") (format en time "%1 %n{doesn't} exist%p{s} &%during %2") (format en totalOrderingOn "%1 is %n &%total &%ordering on %2") (format en trichotomizingOn "%1 is %n &%trichotomizing on %2") (format en true "%1 &%is %n %2") (format en wants "%1 %n{doesn't} &%want%p{s} %2") (format en confersObligation "%2 &%obligates %3 to perform task of the type %1") (format en confersRight "%2 &%allows %3 to perform task of the type %1") (format en crosses "%1 &%crosses %2") (format en equivalentContentClass "%1 is &%equivalent to %2") (format en equivalentContentInstance "%1 is &%equivalent to %2") (format en expressedInLanguage "%1 is &%expressed in language %2") (format en holdsObligation "%2 is &%obliged to perform tasks of type %1") (format en inhibits "%1 &%inhibits %2") (format en penetrates "%1 &%penetrates %2") (format en precondition "%1 is a &%precondition of %2") (format en prevents "%1 &%prevents the occurrence of %2") (format en realization "%1 &%expresses the content of %2") (format en refers "%1 includes a &%reference to %2") (format en represents "%1 &%expresses %2") (format en representsForAgent "%3 &%uses %1 to stand for %2") (format en representsInLanguage "%1 &%represents %2 in the language %3") (format en subPlan "%1 is a &%sub-plan of %2") (format en subsumesContentClass "%1 &%subsumes the content of %2") (format en subsumesContentInstance "%1 &%subsumes the content of %2") (format en traverses "%1 &%traverses %2") (format en uses "%2 &%uses %1") ;;;;;;;;;;;;;;;;;; ; Functions (format en AbstractionFn "the &%description of %1") (format en BackFn "the &%back of %1") (format en ExtensionFn "the &%class corresponding to %1") (format en FrontFn "the &%front of %1") (format en ListFn "(%*[,])") (format en ListOrderFn "%2th &%element of %1") (format en ListLengthFn "&%length of %1") (format en ListConcatenateFn "the &%list composed of %1 and %2") (format en PropertyFn "&%belongings of %1") (format en ProbabilityFn "the &%probability of %1") (format en WhereFn "the place &%where %1 was at %2") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; STRUCTURAL ONTOLOGY ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;; ; Relations (format en contraryAttribute "%1 is %n &%opposed to %2") (format en disjoint "%1 is %n &%disjoint from %2") (format en disjointDecomposition "%1 is %n &%disjointly &%decomposed into %*{2-}[,]") (format en disjointRelation "%1 and %2 are %n &%disjoint") (format en domain "the number %2 argument of %1 is %n an &%instance of %3") (format en domainSubclass "the number %2 argument of %1 is %n a &%subclass of %3") (format en entails "%1 %n{doesn't} &%entail%p{s} %2") (format en equal "%1 is %n &%equal to %2") (format en exhaustiveDecomposition "%1 is %n &%covered by %*{2-}[,]") (format en holds "%1(%*{2-}[,]) %n{doesn't} &%hold%p{s}") (format en immediateInstance "%1 is an &%immediate instance of %2") (format en immediateSubclass "%1 is an &%immediate subclass of %2") (format en instance "%1 is %n an &%instance of %2") (format en inverse "%1 is %n an &%inverse of %2") (format en name "%2 has %n &%name %1") (format en partition "%1 is %n &%exhaustively &%partitioned into %*{2-}[,]") (format en range "&%range of %1 is %n an instance of %2") (format en relatedInternalConcept "%1 is %n &%internally related to %2") (format en subAttribute "%1 is %n a &%subattribute of %2") (format en subclass "%1 is %n a &%subclass of %2") (format en subrelation "%1 is %n a &%subrelation of %2") (format en successorAttribute "%1 is %n an immediate &%successor &%attribute of %2") (format en successorAttributeClosure "%1 is %n a &%successor &%attribute of %2") (format en valence "%1 %p{%&has} %n{doesn't %&have} %2 &%argument(s)") (format en rangeSubclass "the values returned by %1 are &%subclasses of %2") (format en relatedExternalConcept "the concept of %1 in language %3 is &%related to the concept of %2") (format en subsumedExternalConcept "the concept of %1 in language %3 is &%subsumed by the concept of %2") (format en subsumingExternalConcept "the concept of %1 in language %3 &%subsumes the concept of %2") (format en synonymousExternalConcept "the concept of %1 in language %3 is &%synonymous with the concept of %2") (format en uniqueIdentifier "the &%unique identifier of %1 is %2") ;;;;;;;;;;;;;;;;;; ; Functions (format en DomainFn "&%domain of %1") (format en RangeFn "&%range of %1") (format en AssignmentFn "%1(%*{2-}[,])") (format en PowerSetFn "all &%subclasses of %1") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; MEREOTOPOLOGY ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;; ; Relations (format en bottom "the &%bottom of %2 is %1") (format en connected "%1 is %n &%connected to %2") (format en connects "%1 &%connects %2 and %3") (format en meetsSpatially "%1 %n{doesn't} &%meet%p{s} %2") (format en overlapsSpatially "%1 %n{doesn't} &%overlap%p{s} with %2") (format en overlapsPartially "%1 %n{doesn't} &%partially &%overlap%p{s} with %2") (format en superficialPart "%1 is %n a &%superficial part of %2") (format en surface "%1 is %n a &%surface of %2") (format en interiorPart "%1 is %n a &%interior part of %2") (format en hole "%1 is %n a &%hole in %2") (format en fills "%1 %n{doesn't} &%fill%p{s} %2") (format en completelyFills "%1 %n{doesn't} &%completely &%fill%p{s} %2") (format en partiallyFills "%1 %n{doesn't} &%partially &%fill%p{s} %2") (format en properlyFills "%1 %n{doesn't} &%properly &%fill%p{s} %2") (format en side "a &%side of %2 is %1") (format en top "the &%top of %2 is %1") ;;;;;;;;;;;;;;;;;; ; Functions (format en MereologicalSumFn "the &%union of the parts of %1 and %2") (format en MereologicalProductFn "the &%intersection of the parts of %1 and %2") (format en MereologicalDifferenceFn "the &%difference between the parts of %1 and %2") (format en PrincipalHostFn "the &%host of the hole %1") (format en SkinFn "the &%surface of the hole %1") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; TEMPORAL CONCEPTS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;; ; Relations (format en duration "&%duration of %1 is %n %2") (format en frequency "%1 &%occurs every %2") (format en temporalPart "%1 is %n a &%part of %2") (format en starts "%1 %n{doesn't} &%start%p{s} %2") (format en finishes "%1 %n{doesn't} &%finish%p{es} %2") (format en before "%1 %n{doesn't} happen%{s} &%before %2") (format en beforeOrEqual "%1 %n{doesn't} &%happen%{s} before or at %2") (format en temporallyBetween "%2 is %n &%between %1 and %3") (format en temporallyBetweenOrEqual "%2 is %n &%between or at %1 and %3") (format en overlapsTemporally "%2 %n{doesn't} &%overlap%p{s} %1") (format en during "%1 %n{doesn't} take%p{s} place &%during %2") (format en meetsTemporally "%1 %n{doesn't} &%meet%p{s} %2") (format en earlier "%1 %n{doesn't} happen%p{s} &%earlier than %2") (format en cooccur "%1 %n{doesn't} &%occur%p{s} at the same time as %2") (format en date "&%date of %1 is %n %2") ;;;;;;;;;;;;;;;;;; ; Functions (format en TemporalCompositionFn "&%decomposition of %1 into %3 %2s") (format en BeginFn "the &%beginning of %1") (format en EndFn "the &%end of %1") (format en TimeIntervalFn "&%interval between %1 and %2") (format en WhenFn "the &%time of existence of %1") (format en PastFn "&%before %1") (format en ImmediatePastFn "immediately &%before %1") (format en FutureFn "&%after %1") (format en ImmediateFutureFn "immediately &%after %1") (format en YearFn "the &%year %1") (format en MonthFn "the &%month %1") (format en DayFn "the &%day %1") (format en HourFn "the &%hour %1") (format en MinuteFn "the &%minute %1") (format en SecondFn "the &%second %1") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; SET/CLASS THEORY ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;; ; Relations (format en subset "%1 is %n a &%subset of %2") (format en element "%1 is %n an &%element of %2") ;;;;;;;;;;;;;;;;;; ; Functions (format en UnionFn "the &%union of %1 and %2") (format en IntersectionFn "the &%union of %1 and %2") (format en RelativeComplementFn "the &%difference between %1 and %2") (format en ComplementFn "the &%complement of %1") (format en GeneralizedUnionFn "the &%union of all the elements of %1") (format en GeneralizedIntersectionFn "the &%intersection of all the elements of %1") (format en CardinalityFn "the number of &%instances in %1") (format en KappaFn "the &%class described by %1") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; OBJECTS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;; ; Relations (format en developmentalForm "the &%developmental &%form of %1 is %2") (format en inhabits "%1 %n{doesn't} &%live%p{s} in %2") (format en parent "%2 is %n a &%parent of %1") (format en mother "%2 is %n a &%mother of %1") (format en father "%2 is %n a &%father of %1") (format en sibling "%1 is %n a &%sibling of %2") (format en authors "%1 is the &%author of %2") (format en editor "%1 is the &%editor of %2") (format en publishes "%1 &%publishes %2") (format en version "%1 is %n a &%version of %2") (format en engineeringSubcomponent "%1 is a &%component of %2") (format en connectedEngineeringComponents "%1 is &%connected to %2") (format en connectsEngineeringComponents "%1 &%connects %2 and %3") (format en familyRelation "%1 and %2 are &%related") (format en employs "%1 %n{doesn't} &%employ%p{s} %2") (format en subOrganizations "%1 is a &%part of the organization %2") (format en occupiesPosition "%1 holds the &%position of %2 in %3") (format en citizen "%1 is a &%citizen of %2") ;;;;;;;;;;;;;;;;;; ; Functions (format en EditionFn "&%edition %2 of %1") (format en SeriesVolumeFn "volume %2 in the &%series %1") (format en PeriodicalIssueFn "the &%periodical number %2 of %1") (format en OrganizationFn "the legal &%organizational entity of %1") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; PROCESSES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;; ; Relations (format en subProcess "%1 is %n a &%subprocess of %2") (format en path "%2 is %n &%path along with %1 occurs") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; QUALITIES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;; ; Relations (format en orientation "%1 is %n %3 to %2") (format en direction "entities in the process %1 are &%moving %2") (format en birthTime "%1 is %n &%born at %2") (format en deathTime "%1 %n{doesn't} &%die%p{s} at %2") (format en modalAttribute "the statement %1 has the &%modal &%force of %2") ;;;;;;;;;;;;;;;;;; ; Functions (format en RelativeTimeFn "the time %1 in zone %2") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; UNITS OF MEASURE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;; ; Relations (format en measure "the &%measure of %1 is %n %2") (format en altitude "the &%altitude of %1 is %2") (format en age "the &%age of %1 is %n %2") (format en length "the &%length of %1 is %n %2") (format en width "the &%width of %1 is %n %2") (format en diameter "the &%diameter of %1 is %n %2") (format en height "the &%height of %1 is %n %2") (format en distance "the &%distance between %1 and %2 is %3") (format en larger "%1 is %n &%larger than %2") (format en smaller "%1 is %n &%smaller than %2") (format en monetaryValue "&%value of %1 is %n %2") ;;;;;;;;;;;;;;;;;; ; Functions (format en MeasureFn "%1 %2(s)") (format en KiloFn "1 &%thousand %1s") (format en MegaFn "1 &%million %1s") (format en GigaFn "1 &%billion %1s ") (format en TeraFn "1 &%trillion %1s") (format en MilliFn "one &%thousandth of a %1") (format en MicroFn "one &%millionth of a %1") (format en NanoFn "one &%billionth of a %1") (format en PicoFn "one &%trillionth of a %1") (format en IntervalFn "the &%interval from %1 to %2") (format en RecurrentTimeIntervalFn "the &%recurring &%period from %1 to %2") (format en MagnitudeFn "the &%magnitude of %1") (format en DensityFn "%1 &%per %2") (format en SpeedFn "%1 &%per %2") (format en VelocityFn "%1 &%per %2 in %3 in the direction %4") (format en WealthFn "&%value of belongings of %1") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; NUMERIC FUNCTIONS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;; ; Relations (format en identityElement "%2 is %n an &%identity element of %1") ;;;;;;;;;;;;;;;;;; ; Functions (format en MultiplicationFn "%*[*]") (format en AdditionFn "(%*[+])") (format en SubtractionFn "(%*[-])") (format en DivisionFn "%*[/]") (format en AbsoluteValueFn "the &%absolute &%value of %1") (format en ArcCosineFn "the &%arccosine of %1") (format en ArcSineFn "the &%arcsine of %1") (format en ArcTangentFn "the &%arctangent of %1") (format en CeilingFn "the &%ceiling of %1") (format en CosineFn "the &%cosine of %1") (format en DenominatorFn "the &%denominator of %1") (format en ExponentiationFn "%1 raised to the &%power %2") (format en FloorFn "the &%largest integer less than or equal to %1") (format en GreatestCommonDivisorFn "the &%greatest common divisor of %*[and]") (format en ImaginaryPartFn "the &%imaginary part of %1") (format en IntegerSquareRootFn "the &%integer square root of %1") (format en LeastCommonMultipleFn "the &%least common multiple of %*[and]") (format en LogFn "the &%log of %1") (format en MaxFn "the &%larger of %1 and %2") (format en MinFn "the &%smaller of %1 and %2") (format en NumeratorFn "the &%numerator of %1") (format en RationalNumberFn "the &%rational representation of %1") (format en RealNumberFn "the &%real part of %1") (format en ReciprocalFn "the &%reciprocal of %1") (format en RemainderFn "%1 &%mod %2") (format en RoundFn "%1 &%rounded") (format en SignumFn "the &%sign of %1") (format en SineFn "the &%sine of %1") (format en SquareRootFn "the &%square root of %1") (format en TangentFn "the &%tangent of %1") (format en IdentityFn "%1") (format en SuccessorFn "(%1+1)") (format en PredecessorFn "(%1+2)") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; GRAPH THEORY ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;; ; Relations (format en links "%3 %n{doesn't} &%link%p{s} %1 and %2") (format en graphPart "%1 is %n a &%part of %2") (format en subGraph "%1 is %n a &%subgraph of %2") (format en pathLength "the &%length of %1 is %n %2") (format en arcWeight "the &%value of %1 is %2") ;;;;;;;;;;;;;;;;;; ; Functions (format en InitialNodeFn "the &%starting node of %1") (format en TerminalNodeFn "the &%terminal node of %1") (format en BeginNodeFn "the &%beginning of %1") (format en EndNodeFn "the &%end of %1") (format en PathWeightFn "the &%value of %1") (format en MinimalWeightedPathFn "the &%lowest &%cost &%path between %1 and %2") (format en MaximalWeightedPathFn "the &%highest &%cost &%path between %1 and %2") (format en GraphPathFn "the &%set of paths between %1 and %2") (format en CutSetFn "the &%set of paths that partition %1 into two separate graphs") (format en MinimalCutSetFn "the &%set of minimal paths that partition %1 into two separate graphs")