lemon's approach to syntax builds on the notion of a “frame”, which represents a stereotypical occurrence of a lexical entry, with a set of arguments. The frame is indicated with the property synBehavior, and each of the argument with the property synArg. For example, modeling a simple transitive frame in English (X eats Y) is as follows:
:eat lemon:synBehavior [ lemon:synArg :arg1 ; lemon:synArg :arg2 ] .
It is of course possible to relate these instances of by a subcategorization ontology such as LexInfo9. For example, it is possible to create subproperties of synArg to represent the syntactic functions of these arguments. Hence, the above example could be represented as follows.
:eat lemon:synBehavior [ a lexinfo:TransitiveFrame ; lexinfo:subject :eat_subject ; lexinfo:object :eat_object] . lexinfo:TransitiveFrame rdfs:subClassOf lemon:Frame . lexinfo:subject rdfs:subPropertyOf lemon:synArg . lexinfo:object rdfs:subPropertyOf lemon:synArg .
In many cases frames require a marker for the syntactic argument, this is generally an adposition, particle or case inflection. These can be modeled as follows.
English: “X is the capital of Y”
:capital_of lemon:synBehavior [ lemon:synArg :subject ; lemon:synArg :pobject ] . :noun_pp_pobject lemon:marker :of .
German: “X bedarf Y [genitive case]”10
:beduerfen lemon:synBehavior [ lemon:synArg :subject ; lemon:synArg :object ] . :genitiv_verb_object lemon:marker isocat:genitiveCase .
Japanese: “XはYが好きだ” (double subject construction) (“X ha Y ga suki da” = “X likes Y" lit. “X (primary subject) Y (secondary subject) is pleasing”)
:suki lemon:synBehavior [ lemon:synArg :ha_subject ; lemon:synArg :ga_subject ] . :ha_subject lemon:marker :ha . :ga_subject lemon:marker :ga .
lemon also allows for modeling using optional arguments in the frame, this is often the case with, for example, prepositionally marked arguments in English. For example the verb “move” can have prepositional arguments such “from”,“to”,“by”,“for”,“past”,“away”,“along” etc. These are modeled as extra arguments to the frame but are not necessary for the frame to give a valid syntactic realization. This is performed as follows.
:move_frame lemon:synArg :move_frame_subject , :move_frame_to_obj , :move_frame_from_obj , :move_frame_by_obj . :move_frame_to_obj lemon:marker :to ; lemon:optional "true"^^xsd:boolean . :move_frame_from_obj lemon:marker :from ; lemon:optional "true"^^xsd:boolean . :move_frame_by_obj lemon:marker :by ; lemon:optional "true"^^xsd:boolean .
John McCrae 2012-07-31