From the viewpoint of the knowledge representation task and languages, the primitives of the Natural Semantic Metalanguage (NSM) may be categorized as follow.
In the following, the single quoted words refer to general categorizations from NSM, and the words in uppercases (apart from "FE" and "FCG") refer to NSM primitives.
The 'quantifiers' ONE and SOME represent the existential quantifier
(some
, a
or an
in FCG and FE), and
ALL the universal quantifier (any
, every
, or
all
in FCG and FE). The terms of 'existence and possession' THERE IS
and HAVE may also be seen as existential quantifiers for an individual or a
relation (as in the FE statement "THERE IS is a car that HAS for part 6 wheels"
which is equivalent to the FCG statement [some car, part: 6 wheel]). However, in
Section 3 another interpretation of HAVE is represented by
nsm#have
and stated to be the inverse relation of
pm#owner
.
The 'quantifiers' ONE and TWO are identical to the extended quantifiers
1
and 2
of FCG and FE.
The 'quantifiers' MANY and MUCH seem identical to the extended quantifiers
many
(or several
) and most
of
FCG and
FE (in the graph matching procedures of
WebKB-2, many
is assumed to be a shortcut for at least 3
and most
a shortcut for at least 60%
).
The 'evaluators' GOOD and BAD and the 'descriptors' SMALL and BIG seem identical
to the qualifiers good
, bad
, small
and
big
(or important
and great
) of FCG and FE.
The 'descriptor' LONG can be represented in FCG or FE via the expression
an important #length
.
The 'intensifier' VERY will be added to FCG and FE as a modifier that must
accompany another modifier.
The 'logical concepts' NOT, BECAUSE and IF seem identical to the logic
operators not
(or ~
) and <=
of KIF, FCG
and FE, and the if
of KIF. In Section 3, a more general
interpretation of BECAUSE is represented by nsm#because
and
equated to pm#cause
.
The 'logical concepts' MAYBE and CAN seem identical to the
operators may
and can
(or able to
)
of FCG and FE.
The 'determiners' THE SAME and OTHER seem identical to =
(or
pm#equal
) and !=
(or pm#different
)
in FCG and FE.
The 'speech' term TRUE seem identical to kif#true
.
One interpretation of the 'speech' term WORD can be represented in FE and FCG
by using quotes around a string of characters without space in it.
Another interpretation is given in Section 3.
To permit the representations of natural language sentences, FE and FCG have
other language operators which do not seem to have been explicited in NSM:
fuzzy numerical quantifiers (e.g. dozens
and billions
),
percentages (e.g. at least 68%
), intervals (e.g. between 2
and 5
), element order (e.g. 3rd
), set operators (e.g.
sequence of
, alternatives
, and {(...)}
for closed collections), lambda-abstractions and definitions (by necessary and/or
sufficient conditions).
Because these language operators are not in NSM, and given
the theory behind NSM, I assume that 1) they "can be defined using simpler terms
in NSM", and 2) they are not "primitives that have been found to exist (or
presumed to exist, subject to verification) in all natural languages".
Indexicals (e.g. HERE and NOW, the 'substantives' I and YOU, and the 'determiner' THIS) can be seen as variables. They can only be used in knowledge representation if they have been previously initialised. FE and FCG permit variables with or without prefixing them by '$' to extract their values (without the prefix '$', the parsing is slower).
The terms WHEN and WHERE are shortcuts for querying or refering to a particular temporal individual and spatial individual. FCG and FE do not support such shortcuts but offer more general ways to query or refer to individual situations, entities or statements.
Following are representations (in the FT notation) of the remaining NSM primitives. The string "nsm#" is used for prefixing categories from the NSM. The representations are displayed in the courier font. They are enclosed within the XHTML marks <KR> and </KR> to permit WebKB-2 to distinguish them from regular text. They have already been parsed/loaded by WebKB-2: click here to list all the NSM types and begin browsing from them.
The following headers are classifications from NSM.
nsm#thing__something = pm#thing (pm); //"(pm)" means that I created this link; the //link creator must be explicited when it is different //from the creator of the origin category (here, nsm). nsm#body = #body (pm); //direct supertype: #natural_object nsm#someone = #person (pm); //direct supertype: #human nsm#people = #people (pm); //direct supertype: #group
nsm#think = #thinking (pm); //direct supertype: #higher_cognitive_process nsm#know = #knowing (pm); //direct supertype: #higher_cognitive_process nsm#want = #desire (pm); //direct supertype: #feeling nsm#feel = #feeling (pm); //direct supertype: pm#state nsm#see = #visual_perception__beholding__seeing (pm); //direct supertype: #perception nsm#hear < #sensing (pm), > #listening (pm);
nsm#say = #verbal_account (pm); //direct supertype: #making_known nsm#word = #word (pm); //direct supertype: #language_unit
nsm#do = pm#process (pm); //direct supertype: pm#situation nsm#happen = #event (pm); //direct supertype: pm#situation nsm#move = #movement (pm); //direct supertype: #happening (a subtype of #event)
nsm#live = #life (pm); //direct supertype: #beingness (a subtype of #state) nsm#die = #death (pm); //direct supertype: #beingness
nsm#time = pm#time_measure (pm); //or, if it is a relation: nsm#time = pm#time; //if, as above, it is not a relation, A LONG TIME, A SHORT TIME and FOR SOME TIME //can be expressed via nsm#time, an existential quantifier and a modifier; //FOR SOME TIME also requires the use of a relation with type pm#duration nsm#moment = #time_period (pm); //direct supertype: pm#time_measure nsm#before (?,?) < pm#binary_relation (pm), > pm#before (pm) pm#before_time (pm) pm#later_situation (pm); nsm#after (?,?) < pm#binary_relation (pm), > pm#after (pm) pm#until_time (pm) pm#before_situation (pm);
nsm#place = pm#spatial_object (pm); //or, if it is a relation: nsm#place = pm#location; nsm#side = #side (pm); nsm#above = pm#above (pm); nsm#below = pm#below (pm); nsm#near = pm#near (pm); nsm#far = pm#far_from (pm); nsm#inside = pm#interior (pm); nsm#touching = pm#touching (pm);
nsm#kind_of = pm#generalizing_type (pm); //direct subtype: pm#supertype pm#kind nsm#part_of = pm#part_of (pm); nsm#more = pm#superior_to (pm); nsm#like = pm#similar (pm); nsm#have = pm#owner_of (pm); //inverse of pm#owner