summary refs log tree commit diff stats
path: root/generator
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2017-02-05 08:56:39 -0500
committerKelly Rauchenberger <fefferburbia@gmail.com>2017-02-05 08:56:39 -0500
commite4fa0cb86d97c23c24cd7bdd62c23f03eed312da (patch)
tree70a20fdf684b1724659196a7de8d21a4a6ca194f /generator
parentbea3673ae1b3d19585dec56e96dbcd8a56b96e6d (diff)
downloadverbly-e4fa0cb86d97c23c24cd7bdd62c23f03eed312da.tar.gz
verbly-e4fa0cb86d97c23c24cd7bdd62c23f03eed312da.tar.bz2
verbly-e4fa0cb86d97c23c24cd7bdd62c23f03eed312da.zip
Flattened selrestrs
Now, selrestrs are, instead of logically being a tree of
positive/negative restrictions that are ANDed/ORed together, they are a
flat set of positive restrictions that are ORed together. They are
stored as strings in a table called selrestrs, just like synrestrs,
which makes them a lot more queryable now as well. This change required
some changes to the VerbNet data, because we needed to consolidate any
ANDed clauses into single selrestrs, as well as convert any negative
selrestrs into positive ones. The changes made are detailed on the wiki.

Preposition choices are now encoded as comma-separated lists instead of
using JSON. This change, along with the selrestrs one, allows us to
remove verbly's dependency on nlohmann::json.
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">