Intermediate Language

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