diff options
author | Kelly Rauchenberger <fefferburbia@gmail.com> | 2017-02-05 08:56:39 -0500 |
---|---|---|
committer | Kelly Rauchenberger <fefferburbia@gmail.com> | 2017-02-05 08:56:39 -0500 |
commit | e4fa0cb86d97c23c24cd7bdd62c23f03eed312da (patch) | |
tree | 70a20fdf684b1724659196a7de8d21a4a6ca194f /generator | |
parent | bea3673ae1b3d19585dec56e96dbcd8a56b96e6d (diff) | |
download | verbly-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.txt | 4 | ||||
-rw-r--r-- | generator/frame.h | 1 | ||||
-rw-r--r-- | generator/generator.cpp | 82 | ||||
-rw-r--r-- | generator/generator.h | 3 | ||||
-rw-r--r-- | generator/group.cpp | 27 | ||||
-rw-r--r-- | generator/group.h | 1 | ||||
-rw-r--r-- | generator/part.cpp | 18 | ||||
-rw-r--r-- | generator/part.h | 7 | ||||
-rw-r--r-- | generator/role.h | 8 | ||||
-rw-r--r-- | generator/schema.sql | 8 | ||||
-rw-r--r-- | generator/vn.diff | 340 |
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) | |||
5 | pkg_check_modules(sqlite3 sqlite3 REQUIRED) | 5 | pkg_check_modules(sqlite3 sqlite3 REQUIRED) |
6 | find_package(libxml2 REQUIRED) | 6 | find_package(libxml2 REQUIRED) |
7 | 7 | ||
8 | include_directories(${sqlite3_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR} ../vendor/json) | 8 | include_directories(${sqlite3_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR}) |
9 | add_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) | 9 | add_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) |
10 | set_property(TARGET generator PROPERTY CXX_STANDARD 11) | 10 | set_property(TARGET generator PROPERTY CXX_STANDARD 11) |
11 | set_property(TARGET generator PROPERTY CXX_STANDARD_REQUIRED ON) | 11 | set_property(TARGET generator PROPERTY CXX_STANDARD_REQUIRED ON) |
12 | target_link_libraries(generator ${sqlite3_LIBRARIES} ${LIBXML2_LIBRARIES}) | 12 | target_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 | ||
7 | namespace verbly { | 8 | namespace 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 @@ | |||
18 | namespace verbly { | 18 | namespace 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 | ||
9 | namespace verbly { | 9 | namespace 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 | ||
10 | namespace verbly { | 11 | namespace 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 | ||
9 | namespace verbly { | 8 | namespace 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 | ||
8 | namespace verbly { | 8 | namespace 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 | ||
217 | CREATE INDEX `synrestrs_for` ON `synrestrs`(`part_id`); | 216 | CREATE INDEX `synrestrs_for` ON `synrestrs`(`part_id`); |
217 | |||
218 | CREATE TABLE `selrestrs` ( | ||
219 | `part_id` INTEGER NOT NULL, | ||
220 | `selrestr` VARCHAR(32) NOT NULL | ||
221 | ); | ||
222 | |||
223 | CREATE 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 @@ | |||
1 | diff /Users/hatkirby/Downloads/new_vn 2/admit-65.xml datadir/vn/admit-65.xml | 1 | diff /Users/hatkirby/Downloads/new_vn 2/admit-65.xml datadir/vn/admit-65.xml |
2 | 104c104 | 2 | 104,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"/> | ||
6 | diff /Users/hatkirby/Downloads/new_vn 2/amuse-31.1.xml datadir/vn/amuse-31.1.xml | 9 | diff /Users/hatkirby/Downloads/new_vn 2/amuse-31.1.xml datadir/vn/amuse-31.1.xml |
7 | 270a271,273 | 10 | 270a271,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 | |||
30 | diff /Users/hatkirby/Downloads/new_vn 2/assessment-34.1.xml datadir/vn/assessment-34.1.xml | 33 | diff /Users/hatkirby/Downloads/new_vn 2/assessment-34.1.xml datadir/vn/assessment-34.1.xml |
31 | 103d102 | 34 | 103d102 |
32 | < <LEX value="'s"/> | 35 | < <LEX value="'s"/> |
36 | diff /Users/hatkirby/Downloads/new_vn 2/assuming_position-50.xml datadir/vn/assuming_position-50.xml | ||
37 | 41,42c41 | ||
38 | < <SELRESTR Value="+" type="location"/> | ||
39 | < <SELRESTR Value="-" type="region"/> | ||
40 | --- | ||
41 | > <SELRESTR Value="+" type="non_region_location"/> | ||
42 | diff /Users/hatkirby/Downloads/new_vn 2/banish-10.2.xml datadir/vn/banish-10.2.xml | ||
43 | 35,36c35 | ||
44 | < <SELRESTR Value="+" type="location"/> | ||
45 | < <SELRESTR Value="-" type="region"/> | ||
46 | --- | ||
47 | > <SELRESTR Value="+" type="non_region_location"/> | ||
33 | diff /Users/hatkirby/Downloads/new_vn 2/battle-36.4.xml datadir/vn/battle-36.4.xml | 48 | diff /Users/hatkirby/Downloads/new_vn 2/battle-36.4.xml datadir/vn/battle-36.4.xml |
34 | 96c96 | 49 | 96c96 |
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> |
103 | diff /Users/hatkirby/Downloads/new_vn 2/bring-11.3.xml datadir/vn/bring-11.3.xml | ||
104 | 27,30c27 | ||
105 | < <SELRESTRS> | ||
106 | < <SELRESTR Value="+" type="location"/> | ||
107 | < <SELRESTR Value="-" type="region"/> | ||
108 | < </SELRESTRS> | ||
109 | --- | ||
110 | > <SELRESTR Value="+" type="non_region_location"/> | ||
111 | diff /Users/hatkirby/Downloads/new_vn 2/butter-9.9.xml datadir/vn/butter-9.9.xml | ||
112 | 155,156c155 | ||
113 | < <SELRESTR Value="+" type="location"/> | ||
114 | < <SELRESTR Value="-" type="region"/> | ||
115 | --- | ||
116 | > <SELRESTR Value="+" type="non_region_location"/> | ||
88 | diff /Users/hatkirby/Downloads/new_vn 2/characterize-29.2.xml datadir/vn/characterize-29.2.xml | 117 | diff /Users/hatkirby/Downloads/new_vn 2/characterize-29.2.xml datadir/vn/characterize-29.2.xml |
89 | 107c107 | 118 | 107c107 |
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> |
136 | diff /Users/hatkirby/Downloads/new_vn 2/cheat-10.6.xml datadir/vn/cheat-10.6.xml | ||
137 | 56,59c56 | ||
138 | < <SELRESTRS> | ||
139 | < <SELRESTR Value="+" type="location"/> | ||
140 | < <SELRESTR Value="-" type="region"/> | ||
141 | < </SELRESTRS> | ||
142 | --- | ||
143 | > <SELRESTR Value="+" type="non_region_location"/> | ||
144 | diff /Users/hatkirby/Downloads/new_vn 2/chew-39.2.xml datadir/vn/chew-39.2.xml | ||
145 | 37,38c37 | ||
146 | < <SELRESTR Value="+" type="comestible"/> | ||
147 | < <SELRESTR Value="+" type="solid"/> | ||
148 | --- | ||
149 | > <SELRESTR Value="+" type="solid_food"/> | ||
150 | 155,156c154 | ||
151 | < <SELRESTR Value="+" type="comestible"/> | ||
152 | < <SELRESTR Value="-" type="solid"/> | ||
153 | --- | ||
154 | > <SELRESTR Value="+" type="non_solid_food"/> | ||
155 | diff /Users/hatkirby/Downloads/new_vn 2/coil-9.6.xml datadir/vn/coil-9.6.xml | ||
156 | 22,23c22 | ||
157 | < <SELRESTR Value="+" type="nonrigid"/> | ||
158 | < <SELRESTR Value="+" type="elongated"/> | ||
159 | --- | ||
160 | > <SELRESTR Value="+" type="slinky"/> | ||
107 | diff /Users/hatkirby/Downloads/new_vn 2/coloring-24.xml datadir/vn/coloring-24.xml | 161 | diff /Users/hatkirby/Downloads/new_vn 2/coloring-24.xml datadir/vn/coloring-24.xml |
108 | 89c89,91 | 162 | 89c89,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> |
175 | diff /Users/hatkirby/Downloads/new_vn 2/confine-92.xml datadir/vn/confine-92.xml | ||
176 | 18c18 | ||
177 | < <SELRESTRS> | ||
178 | --- | ||
179 | > <SELRESTRS logic="or"> | ||
121 | diff /Users/hatkirby/Downloads/new_vn 2/consider-29.9.xml datadir/vn/consider-29.9.xml | 180 | diff /Users/hatkirby/Downloads/new_vn 2/consider-29.9.xml datadir/vn/consider-29.9.xml |
122 | 191,193c191,193 | 181 | 191,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> |
257 | diff /Users/hatkirby/Downloads/new_vn 2/devour-39.4.xml datadir/vn/devour-39.4.xml | ||
258 | 26,27c26 | ||
259 | < <SELRESTR Value="+" type="comestible"/> | ||
260 | < <SELRESTR Value="+" type="solid"/> | ||
261 | --- | ||
262 | > <SELRESTR Value="+" type="solid_food"/> | ||
263 | 67,68c66 | ||
264 | < <SELRESTR Value="+" type="comestible"/> | ||
265 | < <SELRESTR Value="-" type="solid"/> | ||
266 | --- | ||
267 | > <SELRESTR Value="+" type="non_solid_food"/> | ||
268 | diff /Users/hatkirby/Downloads/new_vn 2/drive-11.5.xml datadir/vn/drive-11.5.xml | ||
269 | 37,40c37 | ||
270 | < <SELRESTRS> | ||
271 | < <SELRESTR Value="+" type="location"/> | ||
272 | < <SELRESTR Value="-" type="region"/> | ||
273 | < </SELRESTRS> | ||
274 | --- | ||
275 | > <SELRESTR Value="+" type="non_region_location"/> | ||
276 | diff /Users/hatkirby/Downloads/new_vn 2/eat-39.1.xml datadir/vn/eat-39.1.xml | ||
277 | 24,25c24 | ||
278 | < <SELRESTR Value="+" type="comestible"/> | ||
279 | < <SELRESTR Value="+" type="solid"/> | ||
280 | --- | ||
281 | > <SELRESTR Value="+" type="solid_food"/> | ||
282 | 148,149c147 | ||
283 | < <SELRESTR Value="+" type="comestible"/> | ||
284 | < <SELRESTR Value="-" type="solid"/> | ||
285 | --- | ||
286 | > <SELRESTR Value="+" type="non_solid_food"/> | ||
287 | diff /Users/hatkirby/Downloads/new_vn 2/enforce-63.xml datadir/vn/enforce-63.xml | ||
288 | 11c11 | ||
289 | < <SELRESTRS> | ||
290 | --- | ||
291 | > <SELRESTRS logic="or"> | ||
292 | diff /Users/hatkirby/Downloads/new_vn 2/entity_specific_modes_being-47.2.xml datadir/vn/entity_specific_modes_being-47.2.xml | ||
293 | 35,36c35 | ||
294 | < <SELRESTR Value="+" type="location"/> | ||
295 | < <SELRESTR Value="-" type="region"/> | ||
296 | --- | ||
297 | > <SELRESTR Value="+" type="non_region_location"/> | ||
198 | diff /Users/hatkirby/Downloads/new_vn 2/estimate-34.2.xml datadir/vn/estimate-34.2.xml | 298 | diff /Users/hatkirby/Downloads/new_vn 2/estimate-34.2.xml datadir/vn/estimate-34.2.xml |
199 | 123a124 | 299 | 123a124 |
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> |
309 | diff /Users/hatkirby/Downloads/new_vn 2/exchange-13.6.xml datadir/vn/exchange-13.6.xml | ||
310 | 329,330c329 | ||
311 | < <SELRESTR Value="+" type="location"/> | ||
312 | < <SELRESTR Value="-" type="region"/> | ||
313 | --- | ||
314 | > <SELRESTR Value="+" type="non_region_location"/> | ||
315 | diff /Users/hatkirby/Downloads/new_vn 2/exist-47.1.xml datadir/vn/exist-47.1.xml | ||
316 | 13,14c13 | ||
317 | < <SELRESTR Value="+" type="location"/> | ||
318 | < <SELRESTR Value="-" type="region"/> | ||
319 | --- | ||
320 | > <SELRESTR Value="+" type="non_region_location"/> | ||
321 | diff /Users/hatkirby/Downloads/new_vn 2/fill-9.8.xml datadir/vn/fill-9.8.xml | ||
322 | 132,133c132 | ||
323 | < <SELRESTR Value="+" type="location"/> | ||
324 | < <SELRESTR Value="-" type="region"/> | ||
325 | --- | ||
326 | > <SELRESTR Value="+" type="non_region_location"/> | ||
327 | diff /Users/hatkirby/Downloads/new_vn 2/funnel-9.3.xml datadir/vn/funnel-9.3.xml | ||
328 | 30,31c30 | ||
329 | < <SELRESTR Value="+" type="location"/> | ||
330 | < <SELRESTR Value="-" type="region"/> | ||
331 | --- | ||
332 | > <SELRESTR Value="+" type="non_region_location"/> | ||
209 | diff /Users/hatkirby/Downloads/new_vn 2/get-13.5.1.xml datadir/vn/get-13.5.1.xml | 333 | diff /Users/hatkirby/Downloads/new_vn 2/get-13.5.1.xml datadir/vn/get-13.5.1.xml |
210 | 55,56c55 | 334 | 55,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"/> |
339 | diff /Users/hatkirby/Downloads/new_vn 2/gobble-39.3.xml datadir/vn/gobble-39.3.xml | ||
340 | 23,24c23 | ||
341 | < <SELRESTR Value="+" type="comestible"/> | ||
342 | < <SELRESTR Value="+" type="solid"/> | ||
343 | --- | ||
344 | > <SELRESTR Value="+" type="solid_food"/> | ||
345 | 118,119c117 | ||
346 | < <SELRESTR Value="+" type="comestible"/> | ||
347 | < <SELRESTR Value="-" type="solid"/> | ||
348 | --- | ||
349 | > <SELRESTR Value="+" type="non_solid_food"/> | ||
350 | diff /Users/hatkirby/Downloads/new_vn 2/herd-47.5.2.xml datadir/vn/herd-47.5.2.xml | ||
351 | 29,30c29 | ||
352 | < <SELRESTR Value="+" type="concrete"/> | ||
353 | < <SELRESTR Value="+" type="plural"/> | ||
354 | --- | ||
355 | > <SELRESTR Value="+" type="group"/> | ||
215 | diff /Users/hatkirby/Downloads/new_vn 2/hit-18.1.xml datadir/vn/hit-18.1.xml | 356 | diff /Users/hatkirby/Downloads/new_vn 2/hit-18.1.xml datadir/vn/hit-18.1.xml |
216 | 234c234,236 | 357 | 234c234,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/> |
401 | diff /Users/hatkirby/Downloads/new_vn 2/keep-15.2.xml datadir/vn/keep-15.2.xml | ||
402 | 24,25c24 | ||
403 | < <SELRESTR Value="+" type="location"/> | ||
404 | < <SELRESTR Value="-" type="region"/> | ||
405 | --- | ||
406 | > <SELRESTR Value="+" type="non_region_location"/> | ||
407 | diff /Users/hatkirby/Downloads/new_vn 2/leave-51.2.xml datadir/vn/leave-51.2.xml | ||
408 | 16,17c16 | ||
409 | < <SELRESTR Value="+" type="location"/> | ||
410 | < <SELRESTR Value="-" type="region"/> | ||
411 | --- | ||
412 | > <SELRESTR Value="+" type="non_region_location"/> | ||
413 | diff /Users/hatkirby/Downloads/new_vn 2/light_emission-43.1.xml datadir/vn/light_emission-43.1.xml | ||
414 | 31c31 | ||
415 | < <SELRESTR Value="-" type="animate"/> | ||
416 | --- | ||
417 | > <SELRESTR Value="+" type="inanimate"/> | ||
260 | diff /Users/hatkirby/Downloads/new_vn 2/manner_speaking-37.3.xml datadir/vn/manner_speaking-37.3.xml | 418 | diff /Users/hatkirby/Downloads/new_vn 2/manner_speaking-37.3.xml datadir/vn/manner_speaking-37.3.xml |
261 | 264c264,266 | 419 | 264c264,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> |
431 | diff /Users/hatkirby/Downloads/new_vn 2/matter-91.xml datadir/vn/matter-91.xml | ||
432 | 10c10 | ||
433 | < <SELRESTRS> | ||
434 | --- | ||
435 | > <SELRESTRS logic="or"> | ||
436 | diff /Users/hatkirby/Downloads/new_vn 2/modes_of_being_with_motion-47.3.xml datadir/vn/modes_of_being_with_motion-47.3.xml | ||
437 | 64,65c64 | ||
438 | < <SELRESTR Value="+" type="location"/> | ||
439 | < <SELRESTR Value="-" type="region"/> | ||
440 | --- | ||
441 | > <SELRESTR Value="+" type="non_region_location"/> | ||
273 | diff /Users/hatkirby/Downloads/new_vn 2/other_cos-45.4.xml datadir/vn/other_cos-45.4.xml | 442 | diff /Users/hatkirby/Downloads/new_vn 2/other_cos-45.4.xml datadir/vn/other_cos-45.4.xml |
274 | 534c534,536 | 443 | 534c534,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> |
449 | diff /Users/hatkirby/Downloads/new_vn 2/pay-68.xml datadir/vn/pay-68.xml | ||
450 | 13c13 | ||
451 | < <SELRESTRS> | ||
452 | --- | ||
453 | > <SELRESTRS logic="or"> | ||
280 | diff /Users/hatkirby/Downloads/new_vn 2/pocket-9.10.xml datadir/vn/pocket-9.10.xml | 454 | diff /Users/hatkirby/Downloads/new_vn 2/pocket-9.10.xml datadir/vn/pocket-9.10.xml |
281 | 256c256,258 | 455 | 256c256,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> |
294 | diff /Users/hatkirby/Downloads/new_vn 2/pour-9.5.xml datadir/vn/pour-9.5.xml | 468 | diff /Users/hatkirby/Downloads/new_vn 2/pour-9.5.xml datadir/vn/pour-9.5.xml |
295 | 59,61c59,62 | 469 | 24,27c24 |
470 | < <SELRESTRS> | ||
471 | < <SELRESTR Value="+" type="concrete"/> | ||
472 | < <SELRESTR Value="+" type="plural"/> | ||
473 | < </SELRESTRS> | ||
474 | --- | ||
475 | > <SELRESTR Value="+" type="group"/> | ||
476 | 32,33c29 | ||
477 | < <SELRESTR Value="+" type="location"/> | ||
478 | < <SELRESTR Value="-" type="region"/> | ||
479 | --- | ||
480 | > <SELRESTR Value="+" type="non_region_location"/> | ||
481 | 39,40c35 | ||
482 | < <SELRESTR Value="+" type="location"/> | ||
483 | < <SELRESTR Value="-" type="region"/> | ||
484 | --- | ||
485 | > <SELRESTR Value="+" type="non_region_location"/> | ||
486 | 59,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"/> |
304 | 157,160c158,162 | 495 | 157,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> |
513 | diff /Users/hatkirby/Downloads/new_vn 2/put-9.1.xml datadir/vn/put-9.1.xml | ||
514 | 35,36c35 | ||
515 | < <SELRESTR Value="+" type="location"/> | ||
516 | < <SELRESTR Value="-" type="region"/> | ||
517 | --- | ||
518 | > <SELRESTR Value="+" type="non_region_location"/> | ||
519 | diff /Users/hatkirby/Downloads/new_vn 2/put_direction-9.4.xml datadir/vn/put_direction-9.4.xml | ||
520 | 30,31c30 | ||
521 | < <SELRESTR Value="+" type="location"/> | ||
522 | < <SELRESTR Value="-" type="region"/> | ||
523 | --- | ||
524 | > <SELRESTR Value="+" type="non_region_location"/> | ||
525 | diff /Users/hatkirby/Downloads/new_vn 2/put_spatial-9.2.xml datadir/vn/put_spatial-9.2.xml | ||
526 | 25,26c25 | ||
527 | < <SELRESTR Value="+" type="location"/> | ||
528 | < <SELRESTR Value="-" type="region"/> | ||
529 | --- | ||
530 | > <SELRESTR Value="+" type="non_region_location"/> | ||
531 | diff /Users/hatkirby/Downloads/new_vn 2/reach-51.8.xml datadir/vn/reach-51.8.xml | ||
532 | 12,13c12,13 | ||
533 | < <SELRESTRS> | ||
534 | < <SELRESTR Value="+" type="concrete"/> | ||
535 | --- | ||
536 | > <SELRESTRS logic="or"> | ||
537 | > <SELRESTR Value="+" type="animate"/> | ||
322 | diff /Users/hatkirby/Downloads/new_vn 2/roll-51.3.1.xml datadir/vn/roll-51.3.1.xml | 538 | diff /Users/hatkirby/Downloads/new_vn 2/roll-51.3.1.xml datadir/vn/roll-51.3.1.xml |
323 | 190c190,192 | 539 | 190c190,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> |
576 | diff /Users/hatkirby/Downloads/new_vn 2/send-11.1.xml datadir/vn/send-11.1.xml | ||
577 | 41,44c41 | ||
578 | < <SELRESTRS> | ||
579 | < <SELRESTR Value="+" type="location"/> | ||
580 | < <SELRESTR Value="-" type="region"/> | ||
581 | < </SELRESTRS> | ||
582 | --- | ||
583 | > <SELRESTR Value="+" type="non_region_location"/> | ||
360 | diff /Users/hatkirby/Downloads/new_vn 2/slide-11.2.xml datadir/vn/slide-11.2.xml | 584 | diff /Users/hatkirby/Downloads/new_vn 2/slide-11.2.xml datadir/vn/slide-11.2.xml |
361 | 69,72c69,73 | 585 | 27,30c27 |
586 | < <SELRESTRS> | ||
587 | < <SELRESTR Value="+" type="location"/> | ||
588 | < <SELRESTR Value="-" type="region"/> | ||
589 | < </SELRESTRS> | ||
590 | --- | ||
591 | > <SELRESTR Value="+" type="non_region_location"/> | ||
592 | 69,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> |
372 | 218,221c219,223 | 603 | 218,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> |
614 | diff /Users/hatkirby/Downloads/new_vn 2/smell_emission-43.3.xml datadir/vn/smell_emission-43.3.xml | ||
615 | 12c12 | ||
616 | < <SELRESTR Value="-" type="animate"/> | ||
617 | --- | ||
618 | > <SELRESTR Value="+" type="inanimate"/> | ||
619 | diff /Users/hatkirby/Downloads/new_vn 2/sound_emission-43.2.xml datadir/vn/sound_emission-43.2.xml | ||
620 | 138c138 | ||
621 | < <SELRESTR Value="-" type="animate"/> | ||
622 | --- | ||
623 | > <SELRESTR Value="+" type="inanimate"/> | ||
624 | diff /Users/hatkirby/Downloads/new_vn 2/sound_existence-47.4.xml datadir/vn/sound_existence-47.4.xml | ||
625 | 21,22c21 | ||
626 | < <SELRESTR Value="+" type="location"/> | ||
627 | < <SELRESTR Value="-" type="region"/> | ||
628 | --- | ||
629 | > <SELRESTR Value="+" type="non_region_location"/> | ||
383 | diff /Users/hatkirby/Downloads/new_vn 2/spank-18.3.xml datadir/vn/spank-18.3.xml | 630 | diff /Users/hatkirby/Downloads/new_vn 2/spank-18.3.xml datadir/vn/spank-18.3.xml |
384 | 69a70,72 | 631 | 69a70,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> |
655 | diff /Users/hatkirby/Downloads/new_vn 2/spatial_configuration-47.6.xml datadir/vn/spatial_configuration-47.6.xml | ||
656 | 66,67c66 | ||
657 | < <SELRESTR Value="+" type="location"/> | ||
658 | < <SELRESTR Value="-" type="region"/> | ||
659 | --- | ||
660 | > <SELRESTR Value="+" type="non_region_location"/> | ||
408 | diff /Users/hatkirby/Downloads/new_vn 2/split-23.2.xml datadir/vn/split-23.2.xml | 661 | diff /Users/hatkirby/Downloads/new_vn 2/split-23.2.xml datadir/vn/split-23.2.xml |
409 | 59c59 | 662 | 59c59 |
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"> |
674 | diff /Users/hatkirby/Downloads/new_vn 2/spray-9.7.xml datadir/vn/spray-9.7.xml | ||
675 | 19,20c19 | ||
676 | < <SELRESTR Value="+" type="location"/> | ||
677 | < <SELRESTR Value="-" type="region"/> | ||
678 | --- | ||
679 | > <SELRESTR Value="+" type="non_region_location"/> | ||
680 | 254,255c253 | ||
681 | < <SELRESTR Value="+" type="concrete"/> | ||
682 | < <SELRESTR Value="+" type="plural"/> | ||
683 | --- | ||
684 | > <SELRESTR Value="+" type="group"/> | ||
685 | diff /Users/hatkirby/Downloads/new_vn 2/steal-10.5.xml datadir/vn/steal-10.5.xml | ||
686 | 55,58c55 | ||
687 | < <SELRESTRS> | ||
688 | < <SELRESTR Value="+" type="location"/> | ||
689 | < <SELRESTR Value="-" type="region"/> | ||
690 | < </SELRESTRS> | ||
691 | --- | ||
692 | > <SELRESTR Value="+" type="non_region_location"/> | ||
693 | diff /Users/hatkirby/Downloads/new_vn 2/substance_emission-43.4.xml datadir/vn/substance_emission-43.4.xml | ||
694 | 40c40 | ||
695 | < <SELRESTR Value="-" type="animate"/> | ||
696 | --- | ||
697 | > <SELRESTR Value="+" type="inanimate"/> | ||
698 | diff /Users/hatkirby/Downloads/new_vn 2/swarm-47.5.1.xml datadir/vn/swarm-47.5.1.xml | ||
699 | 8,9c8 | ||
700 | < <SELRESTR Value="+" type="concrete"/> | ||
701 | < <SELRESTR Value="+" type="plural"/> | ||
702 | --- | ||
703 | > <SELRESTR Value="+" type="group"/> | ||
704 | 14,15c13 | ||
705 | < <SELRESTR Value="+" type="location"/> | ||
706 | < <SELRESTR Value="-" type="region"/> | ||
707 | --- | ||
708 | > <SELRESTR Value="+" type="non_region_location"/> | ||
421 | diff /Users/hatkirby/Downloads/new_vn 2/swat-18.2.xml datadir/vn/swat-18.2.xml | 709 | diff /Users/hatkirby/Downloads/new_vn 2/swat-18.2.xml datadir/vn/swat-18.2.xml |
422 | 264c264,266 | 710 | 264c264,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> |
434 | diff /Users/hatkirby/Downloads/new_vn 2/tape-22.4.xml datadir/vn/tape-22.4.xml | 722 | diff /Users/hatkirby/Downloads/new_vn 2/tape-22.4.xml datadir/vn/tape-22.4.xml |
435 | 364c364,366 | 723 | 93,94c93 |
724 | < <SELRESTR Value="+" type="concrete"/> | ||
725 | < <SELRESTR Value="-" type="animate"/> | ||
726 | --- | ||
727 | > <SELRESTR Value="+" type="concrete_inanimate"/> | ||
728 | 364c363,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> |
734 | diff /Users/hatkirby/Downloads/new_vn 2/throw-17.1.xml datadir/vn/throw-17.1.xml | ||
735 | 27,30c27 | ||
736 | < <SELRESTRS> | ||
737 | < <SELRESTR Value="+" type="location"/> | ||
738 | < <SELRESTR Value="-" type="region"/> | ||
739 | < </SELRESTRS> | ||
740 | --- | ||
741 | > <SELRESTR Value="+" type="non_region_location"/> | ||
441 | diff /Users/hatkirby/Downloads/new_vn 2/vehicle-51.4.1.xml datadir/vn/vehicle-51.4.1.xml | 742 | diff /Users/hatkirby/Downloads/new_vn 2/vehicle-51.4.1.xml datadir/vn/vehicle-51.4.1.xml |
442 | 227c227,229 | 743 | 227c227,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> |
470 | diff /Users/hatkirby/Downloads/new_vn 2/wipe_instr-10.4.2.xml datadir/vn/wipe_instr-10.4.2.xml | 771 | diff /Users/hatkirby/Downloads/new_vn 2/wipe_instr-10.4.2.xml datadir/vn/wipe_instr-10.4.2.xml |
471 | 178c178,180 | 772 | 26,27c26 |
773 | < <SELRESTR Value="+" type="concrete"/> | ||
774 | < <SELRESTR Value="-" type="animate"/> | ||
775 | --- | ||
776 | > <SELRESTR Value="+" type="concrete_inanimate"/> | ||
777 | 37,38c36 | ||
778 | < <SELRESTR Value="+" type="concrete"/> | ||
779 | < <SELRESTR Value="-" type="animate"/> | ||
780 | --- | ||
781 | > <SELRESTR Value="+" type="concrete_inanimate"/> | ||
782 | 178c176,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> |
477 | diff /Users/hatkirby/Downloads/new_vn 2/wipe_manner-10.4.1.xml datadir/vn/wipe_manner-10.4.1.xml | 788 | diff /Users/hatkirby/Downloads/new_vn 2/wipe_manner-10.4.1.xml datadir/vn/wipe_manner-10.4.1.xml |
478 | 198c198,199 | 789 | 37,38c37 |
790 | < <SELRESTR Value="+" type="concrete"/> | ||
791 | < <SELRESTR Value="-" type="animate"/> | ||
792 | --- | ||
793 | > <SELRESTR Value="+" type="concrete_inanimate"/> | ||
794 | 198c197 | ||
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"/> | ||
483 | diff /Users/hatkirby/Downloads/new_vn 2/wish-62.xml datadir/vn/wish-62.xml | 798 | diff /Users/hatkirby/Downloads/new_vn 2/wish-62.xml datadir/vn/wish-62.xml |
484 | 91a92 | 799 | 91a92 |
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> |
494 | 122a124 | 809 | 122a124 |
495 | > <ADJ/> | 810 | > <ADJ/> |
811 | diff /Users/hatkirby/Downloads/new_vn 2/withdraw-82.xml datadir/vn/withdraw-82.xml | ||
812 | 7c7 | ||
813 | < <SELRESTRS> | ||
814 | --- | ||
815 | > <SELRESTRS logic="or"> | ||