Intermediate language is a sublanguage that can represent each grammatical relation found after do the sentences analysis.
It only has the objective of facilitate the translation from a constituent tree to internal language (the format that the "memory of this system" can manage).
Noun Relations : NP/subject(nouns)/modifier/{ modifier /...}{*NP...}
Modifier = (tendency)(type)(term)/
Tendency = + (positive ), - (negative)
Type = J (adjective), V (verb) [if the type is noun, then is added to the main concept: specializations (_ is the whitespace separator)]
(NP (DT a) (ADJP (JJ nice) (NN dog))
→ NP/dog/+Jnice
(NP (DT the) (ADJP (JJ red) (CC and) (RB not) (JJ blue) (VB jumping) (NN man) (NN cat))
→ NP/man_cat/+Jred/-Jblue/+Vjumping
"man_cat" is an specialization
(NP (DT the) (NN cat))
→ NOTHING (the object "cat" will be managed from the syntax structure)
* is for separate the possible multiple subjects in the noun phrase;
only if personal prepositions appear. E.g. "We, the metallic machine" → NP/We/*NP/machine/+Jmetalic/*
Verb Relations : V[P(ositive)|N(egative)]/verb(be,have,action)/[subject(noun)|-]{/object(noun){/object/...}}
Jhon had legs
→ VP/have/Jhon/legs
Tigers run fast
→ VP/run/Tigers
dogs and cats have not been running in the garden nor the beach
→ VN/running/dogs/garden/beach
→ VN/running/cats/garden/beach
a pen or an stapler can be thrown through the window
→ VN/thrown/-/pen/stapler
if the subject is the symbol '-', means that no subject has relation with the indicated verb
Attribute associations : WT/subject(noun)/mainPP(noun)/{modifier/{modifier/...}}{*WT...}
man with hands
→ WT/man/hands
"cat" (subject) "with big claws and large legs"
(NP (NP (NNS cats)) (PP (IN with) (NP (NP (JJ big) (NNS claws)) (CC and) (NP (JJ large) (NNS legs)))
→ WT/cat/claws/+Jbig/*WT/cat/legs/+Jlarge/*
Numeral associations : CN/noun/number
"I have 3.5 legs and four hands"
...
num(legs,3.5) → CN/legs/3 (integer part)
num(hands,four) → CN/hands/4 (normalizedNER)
...
"There is two(400.0) hundred(400.0) people"
number(four, hundred) [it's no processed]
num(people, hundred) → CN/people/400
"moved by one(>=1) or more things"
normalizedNER → >=1 !! (it removes everything that is not a number)
CN/things/>=1 → CN/things/1
* num and number are indicators that appears the <dependencies> of the xml output results file obtained from Stanford NLP core.
Specializations: SP/noun_noun{_noun....}
The symbol _ is the whitespace separator
"Ring Storm is a heavy metal band"
→ SP/Ring_Storm
→ SP/heavy_metal_band
There will be translated by the following internal language WORD codes:
→ WORD N Ring ring 1
→ WORD N Storm storm 1
→ WORD N heavy heavy 1
→ WORD N metal metal 1
→ WORD N band band 1
→ WORD N Ring_Storm ring_storm 1
→ WORD N heavy_metal_band heavy_metal_band 1
Proper Nouns: PN/type/noun_noun{_noun....}
Type = 1 (organization), 2 (location) or 3 (person)
The symbol _ is the whitespace separator
"John Miller was born in New York City and works for ABC"
→ PN/2/Jhon_Miller
→ PN/3/New_York_City
→ PN/1/ABC
There will be translated by the following internal language WORD codes:
→ WORD N John person 1
→ WORD N Miller person 1
→ WORD N New location 1 (lemmatization problem)
→ WORD N York location 1
→ WORD N City location 1
→ WORD N Jhon_Miller person 1 (note the lemma is not person_person)
→ WORD N New_York_City location 1
→ WORD N ABC organization 1