I would like to move this discussion to a new thread for those interested in knowledge representation for natural language generation.

 

Something which interested me about UNL when it was recently brought to my attention was that it expands upon predicate calculus by providing the expressiveness for placing attributes upon objects and relations. I presumed that one could also place them upon expressions (@a4, @a8, @a13) and upon sets of expressions as well (@a14).

 

UNL’

 

{

  r1.@a1(o1(icl>domain1).@a2, o2(icl>domain2).@a3).@a4

  r2.@a5(o3(icl>domain3).@a6, o4(icl>domain4).@a7).@a8

  r3.@a9(o5(icl>domain5).@a10, o6(icl>domain6).@a11, o7(icl>domain7).@a12).@a13

}.@a14

 

I then considered that, beyond attributes, one could place attribute-value pairs upon objects, relations, expressions and sets of expressions.

 

Something New

 

{

  r1.[@a1=v1](o1.[@a2=v2], o2.[@a3=v3]).[@a4=v4]

  r2.[@a5=v5](o3.[@a6=v6], o4.[@a7=v7]).[@a8=v8]

  r3.[@a9=v9](o5.[@a10=v10], o6.[@a11=v11], o7.[@a12=v12]).[@a13=v13]

}.[@a14=v14]

 

Resembling W3C technologies, URI could be used for objects, relations and attributes instead of plain text strings.

 

Beyond attribute-value pairs, it is also possible that objects, relations, expressions, and sets of expressions could each be as objects in the sense of object graphs (or potentially semantic graphs).

 

In the Wikipedia article about UNL, there is the example: “The sky is blue?!”. The Wikipedia article indicates the tabular representation in UNL for that utterance to be:

 

aoj( blue(icl>color).@entry.@past.@interrogative.@exclamation , sky(icl>natural world).@def)

 

In UNL’, a tabular representation for that utterance might be:

 

aoj.@past( blue(icl>color).@entry , sky(icl>natural world).@def).@interrogative.@exclamation

 

In the new knowledge representation format, we could, resembling the mapping of valueless attributes from HTML to XHTML, map the valueless attributes to Boolean-valued attributes and assign them the value of true:

 

aoj.[@past=true]( blue(icl>color).[@entry=true] , sky(icl>natural world).[@def=true]).[@interrogative=true].[@exclamation=true]

 

We could also map semantics to other attribute-value pairs, for example:

 

aoj.[@tense=past](…)

 

I am finding these topics to be interesting. I am also presently considering an object model for the new knowledge representation format, resembling how the DOM conveniences developers working with XML.

 

Any thoughts on these ideas or about knowledge representation for natural language generation in general?

 

 

Best regards,

Adam Sobieski