summaryrefslogtreecommitdiff
path: root/transfer/examples/reflexive/reflexive.tra
diff options
context:
space:
mode:
authorbringert <bringert@cs.chalmers.se>2006-03-13 10:53:44 +0000
committerbringert <bringert@cs.chalmers.se>2006-03-13 10:53:44 +0000
commit941a9f35baa4a67c1ee5df89f1ae0f40677a214d (patch)
tree272eda2074806b4aefa52f815838c8653ac70604 /transfer/examples/reflexive/reflexive.tra
parentc5eea4b375a67de8e2d74229d178cdb52cbde4df (diff)
Added transfer example: constructing reflexives.
Diffstat (limited to 'transfer/examples/reflexive/reflexive.tra')
-rw-r--r--transfer/examples/reflexive/reflexive.tra31
1 files changed, 31 insertions, 0 deletions
diff --git a/transfer/examples/reflexive/reflexive.tra b/transfer/examples/reflexive/reflexive.tra
new file mode 100644
index 000000000..9f8533f7a
--- /dev/null
+++ b/transfer/examples/reflexive/reflexive.tra
@@ -0,0 +1,31 @@
+{-
+
+$ ../../transferc -i../../lib reflexive.tra
+
+$ gf English.gf reflexive.trc
+
+> p -tr "John sees John" | at -tr reflexivize_S | l
+PredV2 See John John
+ReflV2 See John
+John sees himself
+
+> p -tr "John and Bill see John and Bill" | at -tr reflexivize_S | l
+PredV2 See (ConjNP And John Bill) (ConjNP And John Bill)
+ReflV2 See (ConjNP And John Bill)
+John and Bill see themselves
+
+> p -tr "John sees Mary" | at -tr reflexivize_S | l
+PredV2 See John Mary
+PredV2 See John Mary
+John sees Mary
+
+-}
+
+import tree
+
+reflexivize : (C : Cat) -> Tree C -> Tree C
+reflexivize _ (PredV2 v s o) | eq ? (eq_Tree ?) s o = ReflV2 v s
+reflexivize _ t = composOp ? ? compos_Tree ? reflexivize t
+
+reflexivize_S : Tree S -> Tree S
+reflexivize_S = reflexivize S