summary refs log tree commit diff stats
path: root/generator
diff options
context:
space:
mode:
Diffstat (limited to 'generator')
-rw-r--r--generator/CMakeLists.txt4
-rw-r--r--generator/frame.h1
-rw-r--r--generator/generator.cpp82
-rw-r--r--generator/generator.h3
-rw-r--r--generator/group.cpp27
-rw-r--r--generator/group.h1
-rw-r--r--generator/part.cpp18
-rw-r--r--generator/part.h7
-rw-r--r--generator/role.h8
-rw-r--r--generator/schema.sql8
-rw-r--r--generator/vn.diff340
11 files changed, 396 insertions, 103 deletions
diff --git a/generator/CMakeLists.txt b/generator/CMakeLists.txt index 5bbd82d..95a11b5 100644 --- a/generator/CMakeLists.txt +++ b/generator/CMakeLists.txt
@@ -5,8 +5,8 @@ find_package(PkgConfig)
5pkg_check_modules(sqlite3 sqlite3 REQUIRED) 5pkg_check_modules(sqlite3 sqlite3 REQUIRED)
6find_package(libxml2 REQUIRED) 6find_package(libxml2 REQUIRED)
7 7
8include_directories(${sqlite3_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR} ../vendor/json) 8include_directories(${sqlite3_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR})
9add_executable(generator notion.cpp word.cpp lemma.cpp form.cpp pronunciation.cpp group.cpp frame.cpp part.cpp ../lib/selrestr.cpp database.cpp field.cpp generator.cpp main.cpp) 9add_executable(generator notion.cpp word.cpp lemma.cpp form.cpp pronunciation.cpp group.cpp frame.cpp part.cpp database.cpp field.cpp generator.cpp main.cpp)
10set_property(TARGET generator PROPERTY CXX_STANDARD 11) 10set_property(TARGET generator PROPERTY CXX_STANDARD 11)
11set_property(TARGET generator PROPERTY CXX_STANDARD_REQUIRED ON) 11set_property(TARGET generator PROPERTY CXX_STANDARD_REQUIRED ON)
12target_link_libraries(generator ${sqlite3_LIBRARIES} ${LIBXML2_LIBRARIES}) 12target_link_libraries(generator ${sqlite3_LIBRARIES} ${LIBXML2_LIBRARIES})
diff --git a/generator/frame.h b/generator/frame.h index ba266f0..d26d500 100644 --- a/generator/frame.h +++ b/generator/frame.h
@@ -2,6 +2,7 @@
2#define FRAME_H_26770FF1 2#define FRAME_H_26770FF1
3 3
4#include <list> 4#include <list>
5#include <vector>
5#include "part.h" 6#include "part.h"
6 7
7namespace verbly { 8namespace verbly {
diff --git a/generator/generator.cpp b/generator/generator.cpp index 4cc9f64..e125b4a 100644 --- a/generator/generator.cpp +++ b/generator/generator.cpp
@@ -7,7 +7,6 @@
7#include <fstream> 7#include <fstream>
8#include "../lib/enums.h" 8#include "../lib/enums.h"
9#include "progress.h" 9#include "progress.h"
10#include "../lib/selrestr.h"
11#include "role.h" 10#include "role.h"
12#include "part.h" 11#include "part.h"
13#include "field.h" 12#include "field.h"
@@ -1303,12 +1302,20 @@ namespace verbly {
1303 std::string roleName = reinterpret_cast<const char*>(key); 1302 std::string roleName = reinterpret_cast<const char*>(key);
1304 xmlFree(key); 1303 xmlFree(key);
1305 1304
1306 selrestr roleSelrestrs; 1305 std::set<std::string> roleSelrestrs;
1307 for (xmlNodePtr rolenode = roletopnode->xmlChildrenNode; rolenode != nullptr; rolenode = rolenode->next) 1306 for (xmlNodePtr rolenode = roletopnode->xmlChildrenNode; rolenode != nullptr; rolenode = rolenode->next)
1308 { 1307 {
1309 if (!xmlStrcmp(rolenode->name, reinterpret_cast<const xmlChar*>("SELRESTRS"))) 1308 if (!xmlStrcmp(rolenode->name, reinterpret_cast<const xmlChar*>("SELRESTRS")))
1310 { 1309 {
1311 roleSelrestrs = parseSelrestr(rolenode); 1310 for (xmlNodePtr selrestrnode = rolenode->xmlChildrenNode; selrestrnode != nullptr; selrestrnode = selrestrnode->next)
1311 {
1312 if (!xmlStrcmp(selrestrnode->name, reinterpret_cast<const xmlChar*>("SELRESTR")))
1313 {
1314 key = xmlGetProp(selrestrnode, reinterpret_cast<const xmlChar*>("type"));
1315 roleSelrestrs.insert(std::string(reinterpret_cast<const char*>(key)));
1316 xmlFree(key);
1317 }
1318 }
1312 } 1319 }
1313 } 1320 }
1314 1321
@@ -1335,7 +1342,7 @@ namespace verbly {
1335 std::string partRole = reinterpret_cast<const char*>(key); 1342 std::string partRole = reinterpret_cast<const char*>(key);
1336 xmlFree(key); 1343 xmlFree(key);
1337 1344
1338 selrestr partSelrestrs; 1345 std::set<std::string> partSelrestrs;
1339 std::set<std::string> partSynrestrs; 1346 std::set<std::string> partSynrestrs;
1340 1347
1341 for (xmlNodePtr npnode = syntaxnode->xmlChildrenNode; npnode != nullptr; npnode = npnode->next) 1348 for (xmlNodePtr npnode = syntaxnode->xmlChildrenNode; npnode != nullptr; npnode = npnode->next)
@@ -1351,11 +1358,17 @@ namespace verbly {
1351 xmlFree(key); 1358 xmlFree(key);
1352 } 1359 }
1353 } 1360 }
1354 } 1361 } else if (!xmlStrcmp(npnode->name, reinterpret_cast<const xmlChar*>("SELRESTRS")))
1355
1356 if (!xmlStrcmp(npnode->name, reinterpret_cast<const xmlChar*>("SELRESTRS")))
1357 { 1362 {
1358 partSelrestrs = parseSelrestr(npnode); 1363 for (xmlNodePtr selrestrnode = npnode->xmlChildrenNode; selrestrnode != nullptr; selrestrnode = selrestrnode->next)
1364 {
1365 if (!xmlStrcmp(selrestrnode->name, reinterpret_cast<const xmlChar*>("SELRESTR")))
1366 {
1367 key = xmlGetProp(selrestrnode, reinterpret_cast<const xmlChar*>("type"));
1368 partSelrestrs.insert(std::string(reinterpret_cast<const char*>(key)));
1369 xmlFree(key);
1370 }
1371 }
1359 } 1372 }
1360 } 1373 }
1361 1374
@@ -1434,58 +1447,5 @@ namespace verbly {
1434 } 1447 }
1435 } 1448 }
1436 1449
1437 selrestr generator::parseSelrestr(xmlNodePtr top)
1438 {
1439 xmlChar* key;
1440
1441 if (!xmlStrcmp(top->name, reinterpret_cast<const xmlChar*>("SELRESTRS")))
1442 {
1443 if (xmlChildElementCount(top) == 0)
1444 {
1445 return {};
1446 } else if (xmlChildElementCount(top) == 1)
1447 {
1448 return parseSelrestr(xmlFirstElementChild(top));
1449 } else {
1450 bool orlogic = false;
1451 if (xmlHasProp(top, reinterpret_cast<const xmlChar*>("logic")))
1452 {
1453 key = xmlGetProp(top, reinterpret_cast<const xmlChar*>("logic"));
1454 if (!xmlStrcmp(key, reinterpret_cast<const xmlChar*>("or")))
1455 {
1456 orlogic = true;
1457 }
1458
1459 xmlFree(key);
1460 }
1461
1462 std::list<selrestr> children;
1463 for (xmlNodePtr selrestr = top->xmlChildrenNode; selrestr != nullptr; selrestr = selrestr->next)
1464 {
1465 if (!xmlStrcmp(selrestr->name, reinterpret_cast<const xmlChar*>("SELRESTRS"))
1466 || !xmlStrcmp(selrestr->name, reinterpret_cast<const xmlChar*>("SELRESTR")))
1467 {
1468 children.push_back(parseSelrestr(selrestr));
1469 }
1470 }
1471
1472 return selrestr(children, orlogic);
1473 }
1474 } else if (!xmlStrcmp(top->name, reinterpret_cast<const xmlChar*>("SELRESTR")))
1475 {
1476 key = xmlGetProp(top, reinterpret_cast<const xmlChar*>("Value"));
1477 bool selPos = (std::string(reinterpret_cast<const char*>(key)) == "+");
1478 xmlFree(key);
1479
1480 key = xmlGetProp(top, reinterpret_cast<const xmlChar*>("type"));
1481 std::string selRestriction = reinterpret_cast<const char*>(key);
1482 xmlFree(key);
1483
1484 return selrestr(selRestriction, selPos);
1485 } else {
1486 throw std::logic_error("Badly formatted selrestr");
1487 }
1488 }
1489
1490 }; 1450 };
1491}; 1451};
diff --git a/generator/generator.h b/generator/generator.h index bc9b3c7..43b3272 100644 --- a/generator/generator.h +++ b/generator/generator.h
@@ -18,7 +18,6 @@
18namespace verbly { 18namespace verbly {
19 19
20 enum class part_of_speech; 20 enum class part_of_speech;
21 class selrestr;
22 21
23 namespace generator { 22 namespace generator {
24 23
@@ -107,8 +106,6 @@ namespace verbly {
107 106
108 void createGroup(xmlNodePtr top, const group* parent = nullptr); 107 void createGroup(xmlNodePtr top, const group* parent = nullptr);
109 108
110 selrestr parseSelrestr(xmlNodePtr top);
111
112 // Input 109 // Input
113 110
114 std::string verbNetPath_; 111 std::string verbNetPath_;
diff --git a/generator/group.cpp b/generator/group.cpp index aa28d42..5b23578 100644 --- a/generator/group.cpp +++ b/generator/group.cpp
@@ -1,10 +1,10 @@
1#include "group.h" 1#include "group.h"
2#include <stdexcept> 2#include <stdexcept>
3#include <list> 3#include <list>
4#include <json.hpp>
5#include "database.h" 4#include "database.h"
6#include "field.h" 5#include "field.h"
7#include "frame.h" 6#include "frame.h"
7#include "../lib/util.h"
8 8
9namespace verbly { 9namespace verbly {
10 namespace generator { 10 namespace generator {
@@ -83,16 +83,22 @@ namespace verbly {
83 { 83 {
84 fields.emplace_back("role", p.getNounRole()); 84 fields.emplace_back("role", p.getNounRole());
85 85
86 selrestr partSelrestr; 86 // Short interlude to serialize the selrestrs
87 if (p.getNounSelrestrs().getType() != selrestr::type::empty) 87 std::set<std::string> partSelrestrs = p.getNounSelrestrs();
88 if (partSelrestrs.empty() && arg.hasRole(p.getNounRole()))
88 { 89 {
89 partSelrestr = p.getNounSelrestrs(); 90 partSelrestrs = arg.getRole(p.getNounRole()).getSelrestrs();
90 } else if (arg.hasRole(p.getNounRole()))
91 {
92 partSelrestr = arg.getRole(p.getNounRole()).getSelrestrs();
93 } 91 }
94 92
95 fields.emplace_back("selrestrs", partSelrestr.toJson().dump()); 93 for (const std::string& s : partSelrestrs)
94 {
95 std::list<field> selrestrFields;
96
97 selrestrFields.emplace_back("part_id", p.getId());
98 selrestrFields.emplace_back("selrestr", s);
99
100 db.insertIntoTable("selrestrs", std::move(selrestrFields));
101 }
96 102
97 // Short interlude to serialize the synrestrs 103 // Short interlude to serialize the synrestrs
98 for (const std::string& s : p.getNounSynrestrs()) 104 for (const std::string& s : p.getNounSynrestrs())
@@ -110,7 +116,10 @@ namespace verbly {
110 116
111 case part::type::preposition: 117 case part::type::preposition:
112 { 118 {
113 fields.emplace_back("prepositions", nlohmann::json(p.getPrepositionChoices()).dump()); 119 std::set<std::string> setChoices = p.getPrepositionChoices();
120 std::string serializedChoices = implode(std::begin(setChoices), std::end(setChoices), ",");
121
122 fields.emplace_back("prepositions", std::move(serializedChoices));
114 fields.emplace_back("preposition_literality", p.isPrepositionLiteral() ? 1 : 0); 123 fields.emplace_back("preposition_literality", p.isPrepositionLiteral() ? 1 : 0);
115 124
116 break; 125 break;
diff --git a/generator/group.h b/generator/group.h index 5486fbe..a7f3a17 100644 --- a/generator/group.h +++ b/generator/group.h
@@ -5,6 +5,7 @@
5#include <set> 5#include <set>
6#include <string> 6#include <string>
7#include <cassert> 7#include <cassert>
8#include <list>
8#include "role.h" 9#include "role.h"
9 10
10namespace verbly { 11namespace verbly {
diff --git a/generator/part.cpp b/generator/part.cpp index 07618a8..d3e6656 100644 --- a/generator/part.cpp +++ b/generator/part.cpp
@@ -6,12 +6,12 @@ namespace verbly {
6 6
7 int part::nextId_ = 0; 7 int part::nextId_ = 0;
8 8
9 part part::createNounPhrase(std::string role, selrestr selrestrs, std::set<std::string> synrestrs) 9 part part::createNounPhrase(std::string role, std::set<std::string> selrestrs, std::set<std::string> synrestrs)
10 { 10 {
11 part p(type::noun_phrase); 11 part p(type::noun_phrase);
12 12
13 new(&p.noun_phrase_.role) std::string(std::move(role)); 13 new(&p.noun_phrase_.role) std::string(std::move(role));
14 new(&p.noun_phrase_.selrestrs) selrestr(std::move(selrestrs)); 14 new(&p.noun_phrase_.selrestrs) std::set<std::string>(std::move(selrestrs));
15 new(&p.noun_phrase_.synrestrs) std::set<std::string>(std::move(synrestrs)); 15 new(&p.noun_phrase_.synrestrs) std::set<std::string>(std::move(synrestrs));
16 16
17 return p; 17 return p;
@@ -60,7 +60,7 @@ namespace verbly {
60 case type::noun_phrase: 60 case type::noun_phrase:
61 { 61 {
62 new(&result.noun_phrase_.role) std::string(other.noun_phrase_.role); 62 new(&result.noun_phrase_.role) std::string(other.noun_phrase_.role);
63 new(&result.noun_phrase_.selrestrs) selrestr(other.noun_phrase_.selrestrs); 63 new(&result.noun_phrase_.selrestrs) std::set<std::string>(other.noun_phrase_.selrestrs);
64 new(&result.noun_phrase_.synrestrs) std::set<std::string>(other.noun_phrase_.synrestrs); 64 new(&result.noun_phrase_.synrestrs) std::set<std::string>(other.noun_phrase_.synrestrs);
65 65
66 break; 66 break;
@@ -103,7 +103,7 @@ namespace verbly {
103 case type::noun_phrase: 103 case type::noun_phrase:
104 { 104 {
105 new(&noun_phrase_.role) std::string(other.noun_phrase_.role); 105 new(&noun_phrase_.role) std::string(other.noun_phrase_.role);
106 new(&noun_phrase_.selrestrs) selrestr(other.noun_phrase_.selrestrs); 106 new(&noun_phrase_.selrestrs) std::set<std::string>(other.noun_phrase_.selrestrs);
107 new(&noun_phrase_.synrestrs) std::set<std::string>(other.noun_phrase_.synrestrs); 107 new(&noun_phrase_.synrestrs) std::set<std::string>(other.noun_phrase_.synrestrs);
108 108
109 break; 109 break;
@@ -153,7 +153,7 @@ namespace verbly {
153 type tempType = first.type_; 153 type tempType = first.type_;
154 int tempId = first.id_; 154 int tempId = first.id_;
155 std::string tempRole; 155 std::string tempRole;
156 selrestr tempSelrestrs; 156 std::set<std::string> tempSelrestrs;
157 std::set<std::string> tempSynrestrs; 157 std::set<std::string> tempSynrestrs;
158 std::set<std::string> tempChoices; 158 std::set<std::string> tempChoices;
159 bool tempPrepLiteral; 159 bool tempPrepLiteral;
@@ -204,7 +204,7 @@ namespace verbly {
204 case type::noun_phrase: 204 case type::noun_phrase:
205 { 205 {
206 new(&first.noun_phrase_.role) std::string(std::move(second.noun_phrase_.role)); 206 new(&first.noun_phrase_.role) std::string(std::move(second.noun_phrase_.role));
207 new(&first.noun_phrase_.selrestrs) selrestr(std::move(second.noun_phrase_.selrestrs)); 207 new(&first.noun_phrase_.selrestrs) std::set<std::string>(std::move(second.noun_phrase_.selrestrs));
208 new(&first.noun_phrase_.synrestrs) std::set<std::string>(std::move(second.noun_phrase_.synrestrs)); 208 new(&first.noun_phrase_.synrestrs) std::set<std::string>(std::move(second.noun_phrase_.synrestrs));
209 209
210 break; 210 break;
@@ -244,7 +244,7 @@ namespace verbly {
244 case type::noun_phrase: 244 case type::noun_phrase:
245 { 245 {
246 new(&second.noun_phrase_.role) std::string(std::move(tempRole)); 246 new(&second.noun_phrase_.role) std::string(std::move(tempRole));
247 new(&second.noun_phrase_.selrestrs) selrestr(std::move(tempSelrestrs)); 247 new(&second.noun_phrase_.selrestrs) std::set<std::string>(std::move(tempSelrestrs));
248 new(&second.noun_phrase_.synrestrs) std::set<std::string>(std::move(tempSynrestrs)); 248 new(&second.noun_phrase_.synrestrs) std::set<std::string>(std::move(tempSynrestrs));
249 249
250 break; 250 break;
@@ -285,7 +285,7 @@ namespace verbly {
285 using set_type = std::set<std::string>; 285 using set_type = std::set<std::string>;
286 286
287 noun_phrase_.role.~string_type(); 287 noun_phrase_.role.~string_type();
288 noun_phrase_.selrestrs.~selrestr(); 288 noun_phrase_.selrestrs.~set_type();
289 noun_phrase_.synrestrs.~set_type(); 289 noun_phrase_.synrestrs.~set_type();
290 290
291 break; 291 break;
@@ -329,7 +329,7 @@ namespace verbly {
329 } 329 }
330 } 330 }
331 331
332 selrestr part::getNounSelrestrs() const 332 std::set<std::string> part::getNounSelrestrs() const
333 { 333 {
334 if (type_ == type::noun_phrase) 334 if (type_ == type::noun_phrase)
335 { 335 {
diff --git a/generator/part.h b/generator/part.h index 39ba1e7..01791f5 100644 --- a/generator/part.h +++ b/generator/part.h
@@ -3,7 +3,6 @@
3 3
4#include <string> 4#include <string>
5#include <set> 5#include <set>
6#include "../lib/selrestr.h"
7#include "../lib/enums.h" 6#include "../lib/enums.h"
8 7
9namespace verbly { 8namespace verbly {
@@ -17,7 +16,7 @@ namespace verbly {
17 16
18 // Static factories 17 // Static factories
19 18
20 static part createNounPhrase(std::string role, selrestr selrestrs, std::set<std::string> synrestrs); 19 static part createNounPhrase(std::string role, std::set<std::string> selrestrs, std::set<std::string> synrestrs);
21 20
22 static part createVerb(); 21 static part createVerb();
23 22
@@ -67,7 +66,7 @@ namespace verbly {
67 66
68 std::string getNounRole() const; 67 std::string getNounRole() const;
69 68
70 selrestr getNounSelrestrs() const; 69 std::set<std::string> getNounSelrestrs() const;
71 70
72 std::set<std::string> getNounSynrestrs() const; 71 std::set<std::string> getNounSynrestrs() const;
73 72
@@ -104,7 +103,7 @@ namespace verbly {
104 union { 103 union {
105 struct { 104 struct {
106 std::string role; 105 std::string role;
107 selrestr selrestrs; 106 std::set<std::string> selrestrs;
108 std::set<std::string> synrestrs; 107 std::set<std::string> synrestrs;
109 } noun_phrase_; 108 } noun_phrase_;
110 struct { 109 struct {
diff --git a/generator/role.h b/generator/role.h index 4884ef3..fccfa98 100644 --- a/generator/role.h +++ b/generator/role.h
@@ -3,7 +3,7 @@
3 3
4#include <stdexcept> 4#include <stdexcept>
5#include <string> 5#include <string>
6#include "../lib/selrestr.h" 6#include <set>
7 7
8namespace verbly { 8namespace verbly {
9 9
@@ -18,7 +18,7 @@ namespace verbly {
18 18
19 role( 19 role(
20 std::string name, 20 std::string name,
21 selrestr selrestrs = {}) : 21 std::set<std::string> selrestrs = {}) :
22 valid_(true), 22 valid_(true),
23 name_(name), 23 name_(name),
24 selrestrs_(selrestrs) 24 selrestrs_(selrestrs)
@@ -37,7 +37,7 @@ namespace verbly {
37 return name_; 37 return name_;
38 } 38 }
39 39
40 const selrestr& getSelrestrs() const 40 const std::set<std::string>& getSelrestrs() const
41 { 41 {
42 if (!valid_) 42 if (!valid_)
43 { 43 {
@@ -51,7 +51,7 @@ namespace verbly {
51 51
52 bool valid_ = false; 52 bool valid_ = false;
53 std::string name_; 53 std::string name_;
54 selrestr selrestrs_; 54 std::set<std::string> selrestrs_;
55 55
56 }; 56 };
57 57
diff --git a/generator/schema.sql b/generator/schema.sql index 33ebc28..2ac658c 100644 --- a/generator/schema.sql +++ b/generator/schema.sql
@@ -200,7 +200,6 @@ CREATE TABLE `parts` (
200 `part_index` INTEGER NOT NULL, 200 `part_index` INTEGER NOT NULL,
201 `type` INTEGER NOT NULL, 201 `type` INTEGER NOT NULL,
202 `role` VARCHAR(16), 202 `role` VARCHAR(16),
203 `selrestrs` BLOB,
204 `prepositions` BLOB, 203 `prepositions` BLOB,
205 `preposition_literality` SMALLINT, 204 `preposition_literality` SMALLINT,
206 `literal_value` VARCHAR(64) 205 `literal_value` VARCHAR(64)
@@ -215,3 +214,10 @@ CREATE TABLE `synrestrs` (
215); 214);
216 215
217CREATE INDEX `synrestrs_for` ON `synrestrs`(`part_id`); 216CREATE INDEX `synrestrs_for` ON `synrestrs`(`part_id`);
217
218CREATE TABLE `selrestrs` (
219 `part_id` INTEGER NOT NULL,
220 `selrestr` VARCHAR(32) NOT NULL
221);
222
223CREATE INDEX `selrestrs_for` ON `selrestrs`(`part_id`);
diff --git a/generator/vn.diff b/generator/vn.diff index 5d5e2f3..bbfd6cf 100644 --- a/generator/vn.diff +++ b/generator/vn.diff
@@ -1,8 +1,11 @@
1diff /Users/hatkirby/Downloads/new_vn 2/admit-65.xml datadir/vn/admit-65.xml 1diff /Users/hatkirby/Downloads/new_vn 2/admit-65.xml datadir/vn/admit-65.xml
2104c104 2104,106c104,105
3< <SELRESTRS logic="or"> 3< <SELRESTRS logic="or">
4< <SELRESTR Value="+" type="location"/>
5< <SELRESTR Value="-" type="region"/>
4--- 6---
5> <SELRESTRS> 7> <SELRESTRS>
8> <SELRESTR Value="+" type="non_region_location"/>
6diff /Users/hatkirby/Downloads/new_vn 2/amuse-31.1.xml datadir/vn/amuse-31.1.xml 9diff /Users/hatkirby/Downloads/new_vn 2/amuse-31.1.xml datadir/vn/amuse-31.1.xml
7270a271,273 10270a271,273
8> <THEMROLE type="Cause"> 11> <THEMROLE type="Cause">
@@ -30,6 +33,18 @@ diff /Users/hatkirby/Downloads/new_vn 2/animal_sounds-38.xml datadir/vn/animal_s
30diff /Users/hatkirby/Downloads/new_vn 2/assessment-34.1.xml datadir/vn/assessment-34.1.xml 33diff /Users/hatkirby/Downloads/new_vn 2/assessment-34.1.xml datadir/vn/assessment-34.1.xml
31103d102 34103d102
32< <LEX value="'s"/> 35< <LEX value="'s"/>
36diff /Users/hatkirby/Downloads/new_vn 2/assuming_position-50.xml datadir/vn/assuming_position-50.xml
3741,42c41
38< <SELRESTR Value="+" type="location"/>
39< <SELRESTR Value="-" type="region"/>
40---
41> <SELRESTR Value="+" type="non_region_location"/>
42diff /Users/hatkirby/Downloads/new_vn 2/banish-10.2.xml datadir/vn/banish-10.2.xml
4335,36c35
44< <SELRESTR Value="+" type="location"/>
45< <SELRESTR Value="-" type="region"/>
46---
47> <SELRESTR Value="+" type="non_region_location"/>
33diff /Users/hatkirby/Downloads/new_vn 2/battle-36.4.xml datadir/vn/battle-36.4.xml 48diff /Users/hatkirby/Downloads/new_vn 2/battle-36.4.xml datadir/vn/battle-36.4.xml
3496c96 4996c96
35< <SYNRESTR Value="+" type="what_extract"/> 50< <SYNRESTR Value="+" type="what_extract"/>
@@ -85,6 +100,20 @@ diff /Users/hatkirby/Downloads/new_vn 2/break-45.1.xml datadir/vn/break-45.1.xml
85> <SYNRESTRS> 100> <SYNRESTRS>
86> <SYNRESTR Value="+" type="adjp"/> 101> <SYNRESTR Value="+" type="adjp"/>
87> </SYNRESTRS> 102> </SYNRESTRS>
103diff /Users/hatkirby/Downloads/new_vn 2/bring-11.3.xml datadir/vn/bring-11.3.xml
10427,30c27
105< <SELRESTRS>
106< <SELRESTR Value="+" type="location"/>
107< <SELRESTR Value="-" type="region"/>
108< </SELRESTRS>
109---
110> <SELRESTR Value="+" type="non_region_location"/>
111diff /Users/hatkirby/Downloads/new_vn 2/butter-9.9.xml datadir/vn/butter-9.9.xml
112155,156c155
113< <SELRESTR Value="+" type="location"/>
114< <SELRESTR Value="-" type="region"/>
115---
116> <SELRESTR Value="+" type="non_region_location"/>
88diff /Users/hatkirby/Downloads/new_vn 2/characterize-29.2.xml datadir/vn/characterize-29.2.xml 117diff /Users/hatkirby/Downloads/new_vn 2/characterize-29.2.xml datadir/vn/characterize-29.2.xml
89107c107 118107c107
90< <LEX value="as"/> 119< <LEX value="as"/>
@@ -104,6 +133,31 @@ diff /Users/hatkirby/Downloads/new_vn 2/characterize-29.2.xml datadir/vn/charact
104> <SYNRESTR Value="+" type="adjp"/> 133> <SYNRESTR Value="+" type="adjp"/>
105> </SYNRESTRS> 134> </SYNRESTRS>
106> </NP> 135> </NP>
136diff /Users/hatkirby/Downloads/new_vn 2/cheat-10.6.xml datadir/vn/cheat-10.6.xml
13756,59c56
138< <SELRESTRS>
139< <SELRESTR Value="+" type="location"/>
140< <SELRESTR Value="-" type="region"/>
141< </SELRESTRS>
142---
143> <SELRESTR Value="+" type="non_region_location"/>
144diff /Users/hatkirby/Downloads/new_vn 2/chew-39.2.xml datadir/vn/chew-39.2.xml
14537,38c37
146< <SELRESTR Value="+" type="comestible"/>
147< <SELRESTR Value="+" type="solid"/>
148---
149> <SELRESTR Value="+" type="solid_food"/>
150155,156c154
151< <SELRESTR Value="+" type="comestible"/>
152< <SELRESTR Value="-" type="solid"/>
153---
154> <SELRESTR Value="+" type="non_solid_food"/>
155diff /Users/hatkirby/Downloads/new_vn 2/coil-9.6.xml datadir/vn/coil-9.6.xml
15622,23c22
157< <SELRESTR Value="+" type="nonrigid"/>
158< <SELRESTR Value="+" type="elongated"/>
159---
160> <SELRESTR Value="+" type="slinky"/>
107diff /Users/hatkirby/Downloads/new_vn 2/coloring-24.xml datadir/vn/coloring-24.xml 161diff /Users/hatkirby/Downloads/new_vn 2/coloring-24.xml datadir/vn/coloring-24.xml
10889c89,91 16289c89,91
109< <SYNRESTRS/> 163< <SYNRESTRS/>
@@ -118,6 +172,11 @@ diff /Users/hatkirby/Downloads/new_vn 2/confess-37.10.xml datadir/vn/confess-37.
118> <SYNRESTR Value="+" type="adjp"/> 172> <SYNRESTR Value="+" type="adjp"/>
119> </SYNRESTRS> 173> </SYNRESTRS>
120> </NP> 174> </NP>
175diff /Users/hatkirby/Downloads/new_vn 2/confine-92.xml datadir/vn/confine-92.xml
17618c18
177< <SELRESTRS>
178---
179> <SELRESTRS logic="or">
121diff /Users/hatkirby/Downloads/new_vn 2/consider-29.9.xml datadir/vn/consider-29.9.xml 180diff /Users/hatkirby/Downloads/new_vn 2/consider-29.9.xml datadir/vn/consider-29.9.xml
122191,193c191,193 181191,193c191,193
123< <SYNRESTRS> 182< <SYNRESTRS>
@@ -195,6 +254,47 @@ diff /Users/hatkirby/Downloads/new_vn 2/declare-29.4.xml datadir/vn/declare-29.4
195> <SYNRESTRS> 254> <SYNRESTRS>
196> <SYNRESTR Value="+" type="adjp"/> 255> <SYNRESTR Value="+" type="adjp"/>
197> </SYNRESTRS> 256> </SYNRESTRS>
257diff /Users/hatkirby/Downloads/new_vn 2/devour-39.4.xml datadir/vn/devour-39.4.xml
25826,27c26
259< <SELRESTR Value="+" type="comestible"/>
260< <SELRESTR Value="+" type="solid"/>
261---
262> <SELRESTR Value="+" type="solid_food"/>
26367,68c66
264< <SELRESTR Value="+" type="comestible"/>
265< <SELRESTR Value="-" type="solid"/>
266---
267> <SELRESTR Value="+" type="non_solid_food"/>
268diff /Users/hatkirby/Downloads/new_vn 2/drive-11.5.xml datadir/vn/drive-11.5.xml
26937,40c37
270< <SELRESTRS>
271< <SELRESTR Value="+" type="location"/>
272< <SELRESTR Value="-" type="region"/>
273< </SELRESTRS>
274---
275> <SELRESTR Value="+" type="non_region_location"/>
276diff /Users/hatkirby/Downloads/new_vn 2/eat-39.1.xml datadir/vn/eat-39.1.xml
27724,25c24
278< <SELRESTR Value="+" type="comestible"/>
279< <SELRESTR Value="+" type="solid"/>
280---
281> <SELRESTR Value="+" type="solid_food"/>
282148,149c147
283< <SELRESTR Value="+" type="comestible"/>
284< <SELRESTR Value="-" type="solid"/>
285---
286> <SELRESTR Value="+" type="non_solid_food"/>
287diff /Users/hatkirby/Downloads/new_vn 2/enforce-63.xml datadir/vn/enforce-63.xml
28811c11
289< <SELRESTRS>
290---
291> <SELRESTRS logic="or">
292diff /Users/hatkirby/Downloads/new_vn 2/entity_specific_modes_being-47.2.xml datadir/vn/entity_specific_modes_being-47.2.xml
29335,36c35
294< <SELRESTR Value="+" type="location"/>
295< <SELRESTR Value="-" type="region"/>
296---
297> <SELRESTR Value="+" type="non_region_location"/>
198diff /Users/hatkirby/Downloads/new_vn 2/estimate-34.2.xml datadir/vn/estimate-34.2.xml 298diff /Users/hatkirby/Downloads/new_vn 2/estimate-34.2.xml datadir/vn/estimate-34.2.xml
199123a124 299123a124
200> <LEX value="to be"/> 300> <LEX value="to be"/>
@@ -206,12 +306,53 @@ diff /Users/hatkirby/Downloads/new_vn 2/estimate-34.2.xml datadir/vn/estimate-34
206> <SYNRESTRS> 306> <SYNRESTRS>
207> <SYNRESTR Value="+" type="adjp"/> 307> <SYNRESTR Value="+" type="adjp"/>
208> </SYNRESTRS> 308> </SYNRESTRS>
309diff /Users/hatkirby/Downloads/new_vn 2/exchange-13.6.xml datadir/vn/exchange-13.6.xml
310329,330c329
311< <SELRESTR Value="+" type="location"/>
312< <SELRESTR Value="-" type="region"/>
313---
314> <SELRESTR Value="+" type="non_region_location"/>
315diff /Users/hatkirby/Downloads/new_vn 2/exist-47.1.xml datadir/vn/exist-47.1.xml
31613,14c13
317< <SELRESTR Value="+" type="location"/>
318< <SELRESTR Value="-" type="region"/>
319---
320> <SELRESTR Value="+" type="non_region_location"/>
321diff /Users/hatkirby/Downloads/new_vn 2/fill-9.8.xml datadir/vn/fill-9.8.xml
322132,133c132
323< <SELRESTR Value="+" type="location"/>
324< <SELRESTR Value="-" type="region"/>
325---
326> <SELRESTR Value="+" type="non_region_location"/>
327diff /Users/hatkirby/Downloads/new_vn 2/funnel-9.3.xml datadir/vn/funnel-9.3.xml
32830,31c30
329< <SELRESTR Value="+" type="location"/>
330< <SELRESTR Value="-" type="region"/>
331---
332> <SELRESTR Value="+" type="non_region_location"/>
209diff /Users/hatkirby/Downloads/new_vn 2/get-13.5.1.xml datadir/vn/get-13.5.1.xml 333diff /Users/hatkirby/Downloads/new_vn 2/get-13.5.1.xml datadir/vn/get-13.5.1.xml
21055,56c55 33455,56c55
211< <SELRESTR Value="-" type="location"/> 335< <SELRESTR Value="-" type="location"/>
212< <SELRESTR Value="-" type="region"/> 336< <SELRESTR Value="-" type="region"/>
213--- 337---
214> <SELRESTR Value="+" type="currency"/> 338> <SELRESTR Value="+" type="currency"/>
339diff /Users/hatkirby/Downloads/new_vn 2/gobble-39.3.xml datadir/vn/gobble-39.3.xml
34023,24c23
341< <SELRESTR Value="+" type="comestible"/>
342< <SELRESTR Value="+" type="solid"/>
343---
344> <SELRESTR Value="+" type="solid_food"/>
345118,119c117
346< <SELRESTR Value="+" type="comestible"/>
347< <SELRESTR Value="-" type="solid"/>
348---
349> <SELRESTR Value="+" type="non_solid_food"/>
350diff /Users/hatkirby/Downloads/new_vn 2/herd-47.5.2.xml datadir/vn/herd-47.5.2.xml
35129,30c29
352< <SELRESTR Value="+" type="concrete"/>
353< <SELRESTR Value="+" type="plural"/>
354---
355> <SELRESTR Value="+" type="group"/>
215diff /Users/hatkirby/Downloads/new_vn 2/hit-18.1.xml datadir/vn/hit-18.1.xml 356diff /Users/hatkirby/Downloads/new_vn 2/hit-18.1.xml datadir/vn/hit-18.1.xml
216234c234,236 357234c234,236
217< <SYNRESTRS/> 358< <SYNRESTRS/>
@@ -257,6 +398,23 @@ diff /Users/hatkirby/Downloads/new_vn 2/judgment-33.xml datadir/vn/judgment-33.x
257< </SYNRESTRS> 398< </SYNRESTRS>
258--- 399---
259> <SYNRESTRS/> 400> <SYNRESTRS/>
401diff /Users/hatkirby/Downloads/new_vn 2/keep-15.2.xml datadir/vn/keep-15.2.xml
40224,25c24
403< <SELRESTR Value="+" type="location"/>
404< <SELRESTR Value="-" type="region"/>
405---
406> <SELRESTR Value="+" type="non_region_location"/>
407diff /Users/hatkirby/Downloads/new_vn 2/leave-51.2.xml datadir/vn/leave-51.2.xml
40816,17c16
409< <SELRESTR Value="+" type="location"/>
410< <SELRESTR Value="-" type="region"/>
411---
412> <SELRESTR Value="+" type="non_region_location"/>
413diff /Users/hatkirby/Downloads/new_vn 2/light_emission-43.1.xml datadir/vn/light_emission-43.1.xml
41431c31
415< <SELRESTR Value="-" type="animate"/>
416---
417> <SELRESTR Value="+" type="inanimate"/>
260diff /Users/hatkirby/Downloads/new_vn 2/manner_speaking-37.3.xml datadir/vn/manner_speaking-37.3.xml 418diff /Users/hatkirby/Downloads/new_vn 2/manner_speaking-37.3.xml datadir/vn/manner_speaking-37.3.xml
261264c264,266 419264c264,266
262< <SYNRESTRS/> 420< <SYNRESTRS/>
@@ -270,6 +428,17 @@ diff /Users/hatkirby/Downloads/new_vn 2/manner_speaking-37.3.xml datadir/vn/mann
270> <SYNRESTRS> 428> <SYNRESTRS>
271> <SYNRESTR Value="+" type="quotation"/> 429> <SYNRESTR Value="+" type="quotation"/>
272> </SYNRESTRS> 430> </SYNRESTRS>
431diff /Users/hatkirby/Downloads/new_vn 2/matter-91.xml datadir/vn/matter-91.xml
43210c10
433< <SELRESTRS>
434---
435> <SELRESTRS logic="or">
436diff /Users/hatkirby/Downloads/new_vn 2/modes_of_being_with_motion-47.3.xml datadir/vn/modes_of_being_with_motion-47.3.xml
43764,65c64
438< <SELRESTR Value="+" type="location"/>
439< <SELRESTR Value="-" type="region"/>
440---
441> <SELRESTR Value="+" type="non_region_location"/>
273diff /Users/hatkirby/Downloads/new_vn 2/other_cos-45.4.xml datadir/vn/other_cos-45.4.xml 442diff /Users/hatkirby/Downloads/new_vn 2/other_cos-45.4.xml datadir/vn/other_cos-45.4.xml
274534c534,536 443534c534,536
275< <SYNRESTRS/> 444< <SYNRESTRS/>
@@ -277,6 +446,11 @@ diff /Users/hatkirby/Downloads/new_vn 2/other_cos-45.4.xml datadir/vn/other_cos-
277> <SYNRESTRS> 446> <SYNRESTRS>
278> <SYNRESTR Value="+" type="adjp"/> 447> <SYNRESTR Value="+" type="adjp"/>
279> </SYNRESTRS> 448> </SYNRESTRS>
449diff /Users/hatkirby/Downloads/new_vn 2/pay-68.xml datadir/vn/pay-68.xml
45013c13
451< <SELRESTRS>
452---
453> <SELRESTRS logic="or">
280diff /Users/hatkirby/Downloads/new_vn 2/pocket-9.10.xml datadir/vn/pocket-9.10.xml 454diff /Users/hatkirby/Downloads/new_vn 2/pocket-9.10.xml datadir/vn/pocket-9.10.xml
281256c256,258 455256c256,258
282< <SYNRESTRS/> 456< <SYNRESTRS/>
@@ -292,7 +466,24 @@ diff /Users/hatkirby/Downloads/new_vn 2/poison-42.2.xml datadir/vn/poison-42.2.x
292> <SYNRESTR Value="+" type="adjp"/> 466> <SYNRESTR Value="+" type="adjp"/>
293> </SYNRESTRS> 467> </SYNRESTRS>
294diff /Users/hatkirby/Downloads/new_vn 2/pour-9.5.xml datadir/vn/pour-9.5.xml 468diff /Users/hatkirby/Downloads/new_vn 2/pour-9.5.xml datadir/vn/pour-9.5.xml
29559,61c59,62 46924,27c24
470< <SELRESTRS>
471< <SELRESTR Value="+" type="concrete"/>
472< <SELRESTR Value="+" type="plural"/>
473< </SELRESTRS>
474---
475> <SELRESTR Value="+" type="group"/>
47632,33c29
477< <SELRESTR Value="+" type="location"/>
478< <SELRESTR Value="-" type="region"/>
479---
480> <SELRESTR Value="+" type="non_region_location"/>
48139,40c35
482< <SELRESTR Value="+" type="location"/>
483< <SELRESTR Value="-" type="region"/>
484---
485> <SELRESTR Value="+" type="non_region_location"/>
48659,61c54,57
296< <SELRESTRS> 487< <SELRESTRS>
297< <SELRESTR Value="+" type="path"/> 488< <SELRESTR Value="+" type="path"/>
298< <SELRESTR Value="-" type="dest_dir"/> 489< <SELRESTR Value="-" type="dest_dir"/>
@@ -301,7 +492,7 @@ diff /Users/hatkirby/Downloads/new_vn 2/pour-9.5.xml datadir/vn/pour-9.5.xml
301> <SELRESTR Value="+" type="dir"/> 492> <SELRESTR Value="+" type="dir"/>
302> <SELRESTR Value="+" type="src"/> 493> <SELRESTR Value="+" type="src"/>
303> <SELRESTR Value="+" type="dest_conf"/> 494> <SELRESTR Value="+" type="dest_conf"/>
304157,160c158,162 495157,160c153,157
305< <SELRESTRS> 496< <SELRESTRS>
306< <SELRESTR Value="+" type="path"/> 497< <SELRESTR Value="+" type="path"/>
307< <SELRESTR Value="-" type="dest_dir"/> 498< <SELRESTR Value="-" type="dest_dir"/>
@@ -319,6 +510,31 @@ diff /Users/hatkirby/Downloads/new_vn 2/push-12.xml datadir/vn/push-12.xml
319> <SYNRESTRS> 510> <SYNRESTRS>
320> <SYNRESTR Value="+" type="adjp"/> 511> <SYNRESTR Value="+" type="adjp"/>
321> </SYNRESTRS> 512> </SYNRESTRS>
513diff /Users/hatkirby/Downloads/new_vn 2/put-9.1.xml datadir/vn/put-9.1.xml
51435,36c35
515< <SELRESTR Value="+" type="location"/>
516< <SELRESTR Value="-" type="region"/>
517---
518> <SELRESTR Value="+" type="non_region_location"/>
519diff /Users/hatkirby/Downloads/new_vn 2/put_direction-9.4.xml datadir/vn/put_direction-9.4.xml
52030,31c30
521< <SELRESTR Value="+" type="location"/>
522< <SELRESTR Value="-" type="region"/>
523---
524> <SELRESTR Value="+" type="non_region_location"/>
525diff /Users/hatkirby/Downloads/new_vn 2/put_spatial-9.2.xml datadir/vn/put_spatial-9.2.xml
52625,26c25
527< <SELRESTR Value="+" type="location"/>
528< <SELRESTR Value="-" type="region"/>
529---
530> <SELRESTR Value="+" type="non_region_location"/>
531diff /Users/hatkirby/Downloads/new_vn 2/reach-51.8.xml datadir/vn/reach-51.8.xml
53212,13c12,13
533< <SELRESTRS>
534< <SELRESTR Value="+" type="concrete"/>
535---
536> <SELRESTRS logic="or">
537> <SELRESTR Value="+" type="animate"/>
322diff /Users/hatkirby/Downloads/new_vn 2/roll-51.3.1.xml datadir/vn/roll-51.3.1.xml 538diff /Users/hatkirby/Downloads/new_vn 2/roll-51.3.1.xml datadir/vn/roll-51.3.1.xml
323190c190,192 539190c190,192
324< <SYNRESTRS/> 540< <SYNRESTRS/>
@@ -357,8 +573,23 @@ diff /Users/hatkirby/Downloads/new_vn 2/seem-109.xml datadir/vn/seem-109.xml
357> <SYNRESTRS> 573> <SYNRESTRS>
358> <SYNRESTR Value="+" type="adjp"/> 574> <SYNRESTR Value="+" type="adjp"/>
359> </SYNRESTRS> 575> </SYNRESTRS>
576diff /Users/hatkirby/Downloads/new_vn 2/send-11.1.xml datadir/vn/send-11.1.xml
57741,44c41
578< <SELRESTRS>
579< <SELRESTR Value="+" type="location"/>
580< <SELRESTR Value="-" type="region"/>
581< </SELRESTRS>
582---
583> <SELRESTR Value="+" type="non_region_location"/>
360diff /Users/hatkirby/Downloads/new_vn 2/slide-11.2.xml datadir/vn/slide-11.2.xml 584diff /Users/hatkirby/Downloads/new_vn 2/slide-11.2.xml datadir/vn/slide-11.2.xml
36169,72c69,73 58527,30c27
586< <SELRESTRS>
587< <SELRESTR Value="+" type="location"/>
588< <SELRESTR Value="-" type="region"/>
589< </SELRESTRS>
590---
591> <SELRESTR Value="+" type="non_region_location"/>
59269,72c66,70
362< <SELRESTRS> 593< <SELRESTRS>
363< <SELRESTR Value="+" type="path"/> 594< <SELRESTR Value="+" type="path"/>
364< <SELRESTR Value="-" type="dest_dir"/> 595< <SELRESTR Value="-" type="dest_dir"/>
@@ -369,7 +600,7 @@ diff /Users/hatkirby/Downloads/new_vn 2/slide-11.2.xml datadir/vn/slide-11.2.xml
369> <SELRESTR Value="+" type="src"/> 600> <SELRESTR Value="+" type="src"/>
370> <SELRESTR Value="+" type="dest_conf"/> 601> <SELRESTR Value="+" type="dest_conf"/>
371> </SELRESTRS> 602> </SELRESTRS>
372218,221c219,223 603218,221c216,220
373< <SELRESTRS> 604< <SELRESTRS>
374< <SELRESTR Value="+" type="path"/> 605< <SELRESTR Value="+" type="path"/>
375< <SELRESTR Value="-" type="dest_dir"/> 606< <SELRESTR Value="-" type="dest_dir"/>
@@ -380,6 +611,22 @@ diff /Users/hatkirby/Downloads/new_vn 2/slide-11.2.xml datadir/vn/slide-11.2.xml
380> <SELRESTR Value="+" type="src"/> 611> <SELRESTR Value="+" type="src"/>
381> <SELRESTR Value="+" type="dest_conf"/> 612> <SELRESTR Value="+" type="dest_conf"/>
382> </SELRESTRS> 613> </SELRESTRS>
614diff /Users/hatkirby/Downloads/new_vn 2/smell_emission-43.3.xml datadir/vn/smell_emission-43.3.xml
61512c12
616< <SELRESTR Value="-" type="animate"/>
617---
618> <SELRESTR Value="+" type="inanimate"/>
619diff /Users/hatkirby/Downloads/new_vn 2/sound_emission-43.2.xml datadir/vn/sound_emission-43.2.xml
620138c138
621< <SELRESTR Value="-" type="animate"/>
622---
623> <SELRESTR Value="+" type="inanimate"/>
624diff /Users/hatkirby/Downloads/new_vn 2/sound_existence-47.4.xml datadir/vn/sound_existence-47.4.xml
62521,22c21
626< <SELRESTR Value="+" type="location"/>
627< <SELRESTR Value="-" type="region"/>
628---
629> <SELRESTR Value="+" type="non_region_location"/>
383diff /Users/hatkirby/Downloads/new_vn 2/spank-18.3.xml datadir/vn/spank-18.3.xml 630diff /Users/hatkirby/Downloads/new_vn 2/spank-18.3.xml datadir/vn/spank-18.3.xml
38469a70,72 63169a70,72
385> <THEMROLE type="Recipient"> 632> <THEMROLE type="Recipient">
@@ -405,6 +652,12 @@ diff /Users/hatkirby/Downloads/new_vn 2/spank-18.3.xml datadir/vn/spank-18.3.xml
405> <SYNRESTRS> 652> <SYNRESTRS>
406> <SYNRESTR Value="+" type="body_part"/> 653> <SYNRESTR Value="+" type="body_part"/>
407> </SYNRESTRS> 654> </SYNRESTRS>
655diff /Users/hatkirby/Downloads/new_vn 2/spatial_configuration-47.6.xml datadir/vn/spatial_configuration-47.6.xml
65666,67c66
657< <SELRESTR Value="+" type="location"/>
658< <SELRESTR Value="-" type="region"/>
659---
660> <SELRESTR Value="+" type="non_region_location"/>
408diff /Users/hatkirby/Downloads/new_vn 2/split-23.2.xml datadir/vn/split-23.2.xml 661diff /Users/hatkirby/Downloads/new_vn 2/split-23.2.xml datadir/vn/split-23.2.xml
40959c59 66259c59
410< <PREP value="off off of from"> 663< <PREP value="off off of from">
@@ -418,6 +671,41 @@ diff /Users/hatkirby/Downloads/new_vn 2/split-23.2.xml datadir/vn/split-23.2.xml
418< <PREP value="off off of from"> 671< <PREP value="off off of from">
419--- 672---
420> <PREP value="off off_of from"> 673> <PREP value="off off_of from">
674diff /Users/hatkirby/Downloads/new_vn 2/spray-9.7.xml datadir/vn/spray-9.7.xml
67519,20c19
676< <SELRESTR Value="+" type="location"/>
677< <SELRESTR Value="-" type="region"/>
678---
679> <SELRESTR Value="+" type="non_region_location"/>
680254,255c253
681< <SELRESTR Value="+" type="concrete"/>
682< <SELRESTR Value="+" type="plural"/>
683---
684> <SELRESTR Value="+" type="group"/>
685diff /Users/hatkirby/Downloads/new_vn 2/steal-10.5.xml datadir/vn/steal-10.5.xml
68655,58c55
687< <SELRESTRS>
688< <SELRESTR Value="+" type="location"/>
689< <SELRESTR Value="-" type="region"/>
690< </SELRESTRS>
691---
692> <SELRESTR Value="+" type="non_region_location"/>
693diff /Users/hatkirby/Downloads/new_vn 2/substance_emission-43.4.xml datadir/vn/substance_emission-43.4.xml
69440c40
695< <SELRESTR Value="-" type="animate"/>
696---
697> <SELRESTR Value="+" type="inanimate"/>
698diff /Users/hatkirby/Downloads/new_vn 2/swarm-47.5.1.xml datadir/vn/swarm-47.5.1.xml
6998,9c8
700< <SELRESTR Value="+" type="concrete"/>
701< <SELRESTR Value="+" type="plural"/>
702---
703> <SELRESTR Value="+" type="group"/>
70414,15c13
705< <SELRESTR Value="+" type="location"/>
706< <SELRESTR Value="-" type="region"/>
707---
708> <SELRESTR Value="+" type="non_region_location"/>
421diff /Users/hatkirby/Downloads/new_vn 2/swat-18.2.xml datadir/vn/swat-18.2.xml 709diff /Users/hatkirby/Downloads/new_vn 2/swat-18.2.xml datadir/vn/swat-18.2.xml
422264c264,266 710264c264,266
423< <SYNRESTRS/> 711< <SYNRESTRS/>
@@ -432,12 +720,25 @@ diff /Users/hatkirby/Downloads/new_vn 2/swat-18.2.xml datadir/vn/swat-18.2.xml
432> <SYNRESTR Value="+" type="adjp"/> 720> <SYNRESTR Value="+" type="adjp"/>
433> </SYNRESTRS> 721> </SYNRESTRS>
434diff /Users/hatkirby/Downloads/new_vn 2/tape-22.4.xml datadir/vn/tape-22.4.xml 722diff /Users/hatkirby/Downloads/new_vn 2/tape-22.4.xml datadir/vn/tape-22.4.xml
435364c364,366 72393,94c93
724< <SELRESTR Value="+" type="concrete"/>
725< <SELRESTR Value="-" type="animate"/>
726---
727> <SELRESTR Value="+" type="concrete_inanimate"/>
728364c363,365
436< <SYNRESTRS/> 729< <SYNRESTRS/>
437--- 730---
438> <SYNRESTRS> 731> <SYNRESTRS>
439> <SYNRESTR Value="+" type="adjp"/> 732> <SYNRESTR Value="+" type="adjp"/>
440> </SYNRESTRS> 733> </SYNRESTRS>
734diff /Users/hatkirby/Downloads/new_vn 2/throw-17.1.xml datadir/vn/throw-17.1.xml
73527,30c27
736< <SELRESTRS>
737< <SELRESTR Value="+" type="location"/>
738< <SELRESTR Value="-" type="region"/>
739< </SELRESTRS>
740---
741> <SELRESTR Value="+" type="non_region_location"/>
441diff /Users/hatkirby/Downloads/new_vn 2/vehicle-51.4.1.xml datadir/vn/vehicle-51.4.1.xml 742diff /Users/hatkirby/Downloads/new_vn 2/vehicle-51.4.1.xml datadir/vn/vehicle-51.4.1.xml
442227c227,229 743227c227,229
443< <SYNRESTRS/> 744< <SYNRESTRS/>
@@ -468,18 +769,32 @@ diff /Users/hatkirby/Downloads/new_vn 2/want-32.1.xml datadir/vn/want-32.1.xml
468> <SYNRESTR Value="+" type="adjp"/> 769> <SYNRESTR Value="+" type="adjp"/>
469> </SYNRESTRS> 770> </SYNRESTRS>
470diff /Users/hatkirby/Downloads/new_vn 2/wipe_instr-10.4.2.xml datadir/vn/wipe_instr-10.4.2.xml 771diff /Users/hatkirby/Downloads/new_vn 2/wipe_instr-10.4.2.xml datadir/vn/wipe_instr-10.4.2.xml
471178c178,180 77226,27c26
773< <SELRESTR Value="+" type="concrete"/>
774< <SELRESTR Value="-" type="animate"/>
775---
776> <SELRESTR Value="+" type="concrete_inanimate"/>
77737,38c36
778< <SELRESTR Value="+" type="concrete"/>
779< <SELRESTR Value="-" type="animate"/>
780---
781> <SELRESTR Value="+" type="concrete_inanimate"/>
782178c176,178
472< <SYNRESTRS/> 783< <SYNRESTRS/>
473--- 784---
474> <SYNRESTRS> 785> <SYNRESTRS>
475> <SYNRESTR Value="+" type="adjp"/> 786> <SYNRESTR Value="+" type="adjp"/>
476> </SYNRESTRS> 787> </SYNRESTRS>
477diff /Users/hatkirby/Downloads/new_vn 2/wipe_manner-10.4.1.xml datadir/vn/wipe_manner-10.4.1.xml 788diff /Users/hatkirby/Downloads/new_vn 2/wipe_manner-10.4.1.xml datadir/vn/wipe_manner-10.4.1.xml
478198c198,199 78937,38c37
790< <SELRESTR Value="+" type="concrete"/>
791< <SELRESTR Value="-" type="animate"/>
792---
793> <SELRESTR Value="+" type="concrete_inanimate"/>
794198c197
479< <SELRESTR Value="-" type="region"/> 795< <SELRESTR Value="-" type="region"/>
480--- 796---
481> <SELRESTR Value="+" type="location"/> 797> <SELRESTR Value="+" type="non_region_location"/>
482> <SELRESTR Value="-" type="region"/>
483diff /Users/hatkirby/Downloads/new_vn 2/wish-62.xml datadir/vn/wish-62.xml 798diff /Users/hatkirby/Downloads/new_vn 2/wish-62.xml datadir/vn/wish-62.xml
48491a92 79991a92
485> <LEX value="to be"/> 800> <LEX value="to be"/>
@@ -493,3 +808,8 @@ diff /Users/hatkirby/Downloads/new_vn 2/wish-62.xml datadir/vn/wish-62.xml
493> </SYNRESTRS> 808> </SYNRESTRS>
494122a124 809122a124
495> <ADJ/> 810> <ADJ/>
811diff /Users/hatkirby/Downloads/new_vn 2/withdraw-82.xml datadir/vn/withdraw-82.xml
8127c7
813< <SELRESTRS>
814---
815> <SELRESTRS logic="or">