@polycode-projects/the-mechanical-code-talker 2.3.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +127 -28
- package/ROADMAP.md +3 -2
- package/bin/tmct.mjs +17 -90
- package/corpus/LICENSES.json +19 -4
- package/corpus/README.md +48 -0
- package/corpus/generated/README.md +24 -9
- package/corpus/generated/ace-surface-variants.jsonl +4 -1
- package/corpus/generated/manifest.json +4 -4
- package/corpus/prose/manifest.json +512 -0
- package/corpus/prose/sqlite/LICENSE-NOTICE +53 -0
- package/corpus/prose/sqlite/arch.txt +213 -0
- package/corpus/prose/sqlite/atomiccommit.txt +1117 -0
- package/corpus/prose/sqlite/faq.txt +473 -0
- package/corpus/prose/sqlite/fileformat.txt +1589 -0
- package/corpus/prose/sqlite/lang_createtable.txt +1339 -0
- package/corpus/prose/sqlite/lang_insert.txt +580 -0
- package/corpus/prose/sqlite/lang_select.txt +3293 -0
- package/corpus/prose/sqlite/optoverview.txt +908 -0
- package/corpus/prose/sqlite/queryplanner.txt +447 -0
- package/corpus/prose/sqlite/transactional.txt +41 -0
- package/corpus/prose/sqlite/wal.txt +567 -0
- package/corpus/prose/sqlite/whentouse.txt +300 -0
- package/corpus/prose/wikipedia/Apple.txt +4 -0
- package/corpus/prose/wikipedia/Attempto_Controlled_English.txt +169 -0
- package/corpus/prose/wikipedia/Automated_planning_and_scheduling.txt +67 -0
- package/corpus/prose/wikipedia/Bee.txt +7 -0
- package/corpus/prose/wikipedia/Bird.txt +8 -0
- package/corpus/prose/wikipedia/Bone.txt +4 -0
- package/corpus/prose/wikipedia/Book.txt +7 -0
- package/corpus/prose/wikipedia/Bread.txt +6 -0
- package/corpus/prose/wikipedia/Butterfly.txt +6 -0
- package/corpus/prose/wikipedia/Car.txt +1 -0
- package/corpus/prose/wikipedia/Cat.txt +1 -0
- package/corpus/prose/wikipedia/Child.txt +3 -0
- package/corpus/prose/wikipedia/City.txt +2 -0
- package/corpus/prose/wikipedia/Clock.txt +2 -0
- package/corpus/prose/wikipedia/Cooking.txt +1 -0
- package/corpus/prose/wikipedia/Description_logic.txt +660 -0
- package/corpus/prose/wikipedia/Doctor.txt +6 -0
- package/corpus/prose/wikipedia/Dog.txt +4 -0
- package/corpus/prose/wikipedia/Eagle.txt +4 -0
- package/corpus/prose/wikipedia/Emotion.txt +9 -0
- package/corpus/prose/wikipedia/Eye.txt +5 -0
- package/corpus/prose/wikipedia/Family.txt +3 -0
- package/corpus/prose/wikipedia/Farm.txt +4 -0
- package/corpus/prose/wikipedia/Fear.txt +4 -0
- package/corpus/prose/wikipedia/First-order_logic.txt +1518 -0
- package/corpus/prose/wikipedia/Fish.txt +10 -0
- package/corpus/prose/wikipedia/Flower.txt +3 -0
- package/corpus/prose/wikipedia/Food.txt +10 -0
- package/corpus/prose/wikipedia/Grass.txt +9 -0
- package/corpus/prose/wikipedia/Hand.txt +2 -0
- package/corpus/prose/wikipedia/Happiness.txt +3 -0
- package/corpus/prose/wikipedia/Heart.txt +4 -0
- package/corpus/prose/wikipedia/Horse.txt +4 -0
- package/corpus/prose/wikipedia/House.txt +6 -0
- package/corpus/prose/wikipedia/Human.txt +4 -0
- package/corpus/prose/wikipedia/Insect.txt +6 -0
- package/corpus/prose/wikipedia/Interactive_fiction.txt +112 -0
- package/corpus/prose/wikipedia/Knowledge.txt +5 -0
- package/corpus/prose/wikipedia/Knowledge_representation_and_reasoning.txt +87 -0
- package/corpus/prose/wikipedia/LICENSE-NOTICE +94 -0
- package/corpus/prose/wikipedia/Language.txt +10 -0
- package/corpus/prose/wikipedia/Learning.txt +4 -0
- package/corpus/prose/wikipedia/Mammal.txt +3 -0
- package/corpus/prose/wikipedia/Memory.txt +5 -0
- package/corpus/prose/wikipedia/Milk.txt +1 -0
- package/corpus/prose/wikipedia/Mountain.txt +1 -0
- package/corpus/prose/wikipedia/Natural_language_processing.txt +211 -0
- package/corpus/prose/wikipedia/Ostrich.txt +2 -0
- package/corpus/prose/wikipedia/Owl.txt +2 -0
- package/corpus/prose/wikipedia/Penguin.txt +2 -0
- package/corpus/prose/wikipedia/Plant.txt +5 -0
- package/corpus/prose/wikipedia/Rain.txt +1 -0
- package/corpus/prose/wikipedia/Resource_Description_Framework.txt +184 -0
- package/corpus/prose/wikipedia/River.txt +1 -0
- package/corpus/prose/wikipedia/School.txt +8 -0
- package/corpus/prose/wikipedia/Sea.txt +1 -0
- package/corpus/prose/wikipedia/Semantic_Web.txt +114 -0
- package/corpus/prose/wikipedia/Semantic_reasoner.txt +29 -0
- package/corpus/prose/wikipedia/Snow.txt +5 -0
- package/corpus/prose/wikipedia/Sun.txt +5 -0
- package/corpus/prose/wikipedia/Teacher.txt +4 -0
- package/corpus/prose/wikipedia/Team.txt +3 -0
- package/corpus/prose/wikipedia/Text-based_game.txt +17 -0
- package/corpus/prose/wikipedia/Tool.txt +4 -0
- package/corpus/prose/wikipedia/Tree.txt +7 -0
- package/corpus/prose/wikipedia/Weather.txt +4 -0
- package/corpus/prose/wikipedia/Web_Ontology_Language.txt +133 -0
- package/corpus/prose/wikipedia/Wind.txt +8 -0
- package/corpus/prose/wikipedia/Writing.txt +5 -0
- package/corpus/seon/README.md +1 -0
- package/corpus/tier2/generate.mjs +18 -18
- package/corpus/tier2/manifest.json +3 -3
- package/data/games/hanoi-3.txt +8 -2
- package/package.json +24 -5
- package/src/adapters/corpus-lanes.mjs +13 -0
- package/src/adapters/graph-build.mjs +5 -7
- package/src/adapters/import-closure.mjs +28 -0
- package/src/adapters/memory/blocks.mjs +5 -4
- package/src/adapters/memory/core.mjs +78 -5
- package/src/adapters/memory/shacl.mjs +12 -0
- package/src/adapters/providers/graph-service.mjs +12 -5
- package/src/adapters/tracked-files.mjs +17 -0
- package/src/domain/ask-vocab.mjs +2 -0
- package/src/domain/ask.mjs +225 -13
- package/src/domain/cli-verbs.mjs +201 -0
- package/src/domain/codegraph.mjs +142 -56
- package/src/domain/completions/graph-adapter.mjs +1 -1
- package/src/domain/completions/group.mjs +3 -17
- package/src/domain/completions/infer.mjs +4 -13
- package/src/domain/completions/rank.mjs +6 -19
- package/src/domain/grammar/lexicon-core.json +1 -1
- package/src/domain/hash.mjs +36 -13
- package/src/domain/interpret/fuzzy.mjs +7 -2
- package/src/domain/interpret/normalize.mjs +9 -0
- package/src/domain/interpret/strategies/keywords.mjs +19 -9
- package/src/domain/memory/capability.mjs +22 -3
- package/src/domain/memory/touched-facts.mjs +17 -0
- package/src/domain/module-paths.mjs +9 -0
- package/src/domain/persona/tiers.mjs +1 -1
- package/src/domain/planning.mjs +37 -0
- package/src/domain/prose.mjs +10 -2
- package/src/domain/relative-specifiers.mjs +12 -0
- package/src/domain/router/registry.mjs +3 -2
- package/src/domain/router/results.mjs +5 -18
- package/src/domain/seeded-random.mjs +33 -0
- package/src/domain/syllogise.mjs +10 -7
- package/src/domain/text-stats.mjs +31 -0
- package/src/services/chat.mjs +720 -182
- package/src/services/extract-facts.mjs +155 -0
- package/src/services/import-file.mjs +2 -2
- package/src/services/ledger-viz.mjs +6 -1
- package/src/services/sentences.mjs +26 -0
- package/src/surfaces/web/memory-ask-browser.bundle.js +11390 -360
- package/src/tools/graph-load.mjs +7 -1
- package/src/tools/readme-docs.mjs +113 -0
- package/src/tools/schema-docs.mjs +2 -2
- package/corpus/namenet/generate.mjs +0 -309
- package/corpus/wordnet/generate.mjs +0 -332
- package/src/adapters/prose-tokens.mjs +0 -98
- package/src/adapters/wordnet-source.mjs +0 -70
- package/src/domain/corpus-matrix.mjs +0 -87
- package/src/domain/inflect.mjs +0 -67
- package/src/domain/licences.mjs +0 -68
- package/src/domain/markdown-links.mjs +0 -55
- package/src/domain/persona/codegen.mjs +0 -123
- package/src/domain/publish-gate.mjs +0 -41
- package/src/domain/schemaorg/turtle.mjs +0 -25
- package/src/domain/semcor/parse.mjs +0 -87
- package/src/domain/version-stamp.mjs +0 -36
- package/src/domain/wordnet/yaml.mjs +0 -133
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
Appropriate Uses For SQLite
|
|
2
|
+
Small. Fast. Reliable.
|
|
3
|
+
Choose any three.
|
|
4
|
+
Home
|
|
5
|
+
Menu
|
|
6
|
+
About
|
|
7
|
+
Documentation
|
|
8
|
+
Download
|
|
9
|
+
License
|
|
10
|
+
Support
|
|
11
|
+
Purchase
|
|
12
|
+
Search
|
|
13
|
+
About
|
|
14
|
+
Documentation
|
|
15
|
+
Download
|
|
16
|
+
Support
|
|
17
|
+
Purchase
|
|
18
|
+
Search Documentation
|
|
19
|
+
Search Changelog
|
|
20
|
+
Appropriate Uses For SQLite
|
|
21
|
+
Table Of Contents
|
|
22
|
+
1. Situations Where SQLite Works Well
|
|
23
|
+
2. Situations Where A Client/Server RDBMS May Work Better
|
|
24
|
+
3. Checklist For Choosing The Right Database Engine
|
|
25
|
+
SQLite is not directly comparable to client/server SQL database engines such
|
|
26
|
+
as MySQL, Oracle, PostgreSQL, or SQL Server since SQLite is trying to
|
|
27
|
+
solve a different problem.
|
|
28
|
+
Client/server SQL database engines strive to implement a shared repository
|
|
29
|
+
of enterprise data. They emphasize scalability, concurrency, centralization,
|
|
30
|
+
and control.
|
|
31
|
+
SQLite strives to provide local data storage for
|
|
32
|
+
individual applications and devices. SQLite emphasizes economy,
|
|
33
|
+
efficiency, reliability, independence, and simplicity.
|
|
34
|
+
SQLite does not compete with client/server databases.
|
|
35
|
+
SQLite competes with fopen() .
|
|
36
|
+
1. Situations Where SQLite Works Well
|
|
37
|
+
Embedded devices and the internet of things
|
|
38
|
+
Because an SQLite database requires no administration,
|
|
39
|
+
it works well in devices that must operate without expert human support.
|
|
40
|
+
SQLite is a good fit for use in
|
|
41
|
+
cellphones, set-top boxes, televisions, game consoles,
|
|
42
|
+
cameras, watches, kitchen appliances, thermostats, automobiles,
|
|
43
|
+
machine tools, airplanes, remote sensors, drones, medical devices,
|
|
44
|
+
and robots: the "internet of things".
|
|
45
|
+
Client/server database engines are designed to live inside a
|
|
46
|
+
lovingly-attended datacenter at the core of the network.
|
|
47
|
+
SQLite works there too, but SQLite also thrives at the edge of the network,
|
|
48
|
+
fending for itself while providing fast and
|
|
49
|
+
reliable data services to applications that would otherwise
|
|
50
|
+
have dodgy connectivity.
|
|
51
|
+
Application file format
|
|
52
|
+
SQLite is often used as the on-disk file format
|
|
53
|
+
for desktop applications such as version control systems,
|
|
54
|
+
financial analysis tools, media cataloging and editing suites, CAD
|
|
55
|
+
packages, record keeping programs, and so forth. The traditional
|
|
56
|
+
File/Open operation calls sqlite3_open() to attach to the database
|
|
57
|
+
file. Updates happen automatically as application content is revised
|
|
58
|
+
so the File/Save menu option becomes superfluous. The File/Save_As
|
|
59
|
+
menu option can be implemented using the backup API .
|
|
60
|
+
There are many benefits to this approach, including improved
|
|
61
|
+
performance, reduced cost and complexity, and
|
|
62
|
+
improved reliability. See technical notes
|
|
63
|
+
"aff_short.html" and
|
|
64
|
+
"appfileformat.html" and
|
|
65
|
+
"fasterthanfs.html" for more information.
|
|
66
|
+
This use case is closely related to the
|
|
67
|
+
data transfer format and
|
|
68
|
+
data container use cases below.
|
|
69
|
+
Websites
|
|
70
|
+
SQLite works great as the database engine for most low to
|
|
71
|
+
medium traffic websites (which is to say, most websites).
|
|
72
|
+
The amount of web traffic that SQLite can handle depends
|
|
73
|
+
on how heavily the website uses its database. Generally
|
|
74
|
+
speaking, any site that gets fewer than 100K hits/day should work
|
|
75
|
+
fine with SQLite.
|
|
76
|
+
The 100K hits/day figure is a conservative estimate, not a
|
|
77
|
+
hard upper bound.
|
|
78
|
+
SQLite has been demonstrated to work with 10 times that amount
|
|
79
|
+
of traffic.
|
|
80
|
+
The SQLite website ( https://sqlite.org/ ) uses SQLite itself,
|
|
81
|
+
of course, and as of this writing (2015) it handles about 400K to 500K
|
|
82
|
+
HTTP requests per day, about 15-20% of which are dynamic pages touching
|
|
83
|
+
the database. Dynamic content uses about 200 SQL statements per webpage .
|
|
84
|
+
This setup runs on a single VM that shares a physical server with 23 others
|
|
85
|
+
and yet still keeps the load average below 0.1 most of the time.
|
|
86
|
+
See also: Hacker News discussion from 2022-12-13 .
|
|
87
|
+
Data analysis
|
|
88
|
+
People who understand SQL can employ the
|
|
89
|
+
sqlite3 command-line shell (or various third-party
|
|
90
|
+
SQLite access programs) to analyze large
|
|
91
|
+
datasets. Raw data can be imported from CSV files, then that
|
|
92
|
+
data can be sliced and diced to generate a myriad of summary
|
|
93
|
+
reports. More complex analysis can be done using simple scripts written
|
|
94
|
+
in Tcl or Python (both of which come with SQLite built-in) or in R or
|
|
95
|
+
other languages using readily available adaptors.
|
|
96
|
+
Possible uses include website log analysis, sports
|
|
97
|
+
statistics analysis, compilation of programming metrics, and
|
|
98
|
+
analysis of experimental results. Many bioinformatics researchers
|
|
99
|
+
use SQLite in this way.
|
|
100
|
+
The same thing can be done with an enterprise client/server
|
|
101
|
+
database, of course. The advantage of SQLite is
|
|
102
|
+
that it is easier to install and use and the resulting database
|
|
103
|
+
is a single file that can be written to a USB memory stick
|
|
104
|
+
or emailed to a colleague.
|
|
105
|
+
Cache for enterprise data
|
|
106
|
+
Many applications use SQLite as a cache of relevant content from
|
|
107
|
+
an enterprise RDBMS.
|
|
108
|
+
This reduces latency, since most queries now occur against the local
|
|
109
|
+
cache and avoid a network round-trip. It also reduces the load
|
|
110
|
+
on the network and on the central database server. And in many cases,
|
|
111
|
+
it means that the client-side application can continue operating during
|
|
112
|
+
network outages.
|
|
113
|
+
Server-side database
|
|
114
|
+
Systems designers
|
|
115
|
+
report success using SQLite as a data store on server applications
|
|
116
|
+
running in the datacenter, or in other words, using SQLite as the underlying
|
|
117
|
+
storage engine for an application-specific database server.
|
|
118
|
+
With this pattern, the overall system is still client/server:
|
|
119
|
+
clients send requests to the server and get back replies over the network.
|
|
120
|
+
But instead of sending generic SQL and getting back raw table content,
|
|
121
|
+
the client requests and server responses are high-level and
|
|
122
|
+
application-specific.
|
|
123
|
+
The server translates requests into multiple SQL queries, gathers the
|
|
124
|
+
results, does post-processing, filtering, and analysis, then constructs
|
|
125
|
+
a high-level reply containing only the essential information.
|
|
126
|
+
Developers report that SQLite is often faster than a client/server
|
|
127
|
+
SQL database engine in this scenario.
|
|
128
|
+
Database requests are serialized by the server, so concurrency is not
|
|
129
|
+
an issue. Concurrency is also improved by "database sharding":
|
|
130
|
+
using separate database files for different subdomains. For
|
|
131
|
+
example, the server might have a separate SQLite database for each
|
|
132
|
+
user, so that the server can handle hundreds or thousands of simultaneous
|
|
133
|
+
connections, but each SQLite database is only used by one connection.
|
|
134
|
+
Data transfer format
|
|
135
|
+
Because an SQLite database is a single compact file in a
|
|
136
|
+
well-defined cross-platform format , it is often used
|
|
137
|
+
as a container for transferring content from one system to another.
|
|
138
|
+
The sender gathers content into an SQLite database file, transfers
|
|
139
|
+
that one file to the receiver, then the receiver uses SQL to extract
|
|
140
|
+
the content as needed.
|
|
141
|
+
An SQLite database facilitates data transfer between systems even
|
|
142
|
+
when the endpoints have different word sizes and/or byte orders.
|
|
143
|
+
The data can be a complex mix of large binary blobs, text, and small
|
|
144
|
+
numeric or boolean values. The data format can be easily extended
|
|
145
|
+
by adding new tables and/or columns, without breaking legacy receivers.
|
|
146
|
+
The SQL query language means that receivers are not required to parse
|
|
147
|
+
the entire transfer all at once, but can instead query the
|
|
148
|
+
received content as needed. The data format is "transparent" in the
|
|
149
|
+
sense that it is easily decoded for human viewing using
|
|
150
|
+
a variety of universally available, open-source tools, from multiple
|
|
151
|
+
vendors.
|
|
152
|
+
File archive and/or data container
|
|
153
|
+
The SQLite Archive idea shows how
|
|
154
|
+
SQLite can be used as a substitute for ZIP archives or Tarballs.
|
|
155
|
+
An archive of files stored in SQLite is only very slightly larger, and
|
|
156
|
+
in some cases actually smaller, than the equivalent ZIP archive.
|
|
157
|
+
And an SQLite archive features incremental and atomic updating
|
|
158
|
+
and the ability to store much richer metadata.
|
|
159
|
+
Fossil version 2.5 and later offers
|
|
160
|
+
SQLite Archive files as a download format, in addition
|
|
161
|
+
to traditional tarball and ZIP archive.
|
|
162
|
+
The sqlite3.exe command-line shell version 3.22.0 and later will create,
|
|
163
|
+
list, or unpack an SQL archive using the
|
|
164
|
+
.archive command .
|
|
165
|
+
SQLite is a good solution for any situation that requires bundling
|
|
166
|
+
diverse content into a self-contained and self-describing package
|
|
167
|
+
for shipment across a network.
|
|
168
|
+
Content is encoded in a
|
|
169
|
+
well-defined, cross-platform, and stable file format .
|
|
170
|
+
The encoding is efficient, and receivers can extract small subsets
|
|
171
|
+
of the content without having to read and parse the entire file.
|
|
172
|
+
SQL archives are useful as the distribution format for software
|
|
173
|
+
or content updates that are broadcast to many clients. Variations
|
|
174
|
+
on this idea are used, for example, to transmit TV programming guides
|
|
175
|
+
to set-top boxes and to send over-the-air updates to vehicle navigation
|
|
176
|
+
systems.
|
|
177
|
+
Replacement for ad hoc disk files
|
|
178
|
+
Many programs use
|
|
179
|
+
fopen() ,
|
|
180
|
+
fread() , and
|
|
181
|
+
fwrite() to create and
|
|
182
|
+
manage files of data in home-grown formats. SQLite works
|
|
183
|
+
particularly well as a
|
|
184
|
+
replacement for these ad hoc data files.
|
|
185
|
+
Contrary to intuition, SQLite can be faster than the filesystem
|
|
186
|
+
for reading and writing content to disk.
|
|
187
|
+
Internal or temporary databases
|
|
188
|
+
For programs that have a lot of data that must be sifted and sorted
|
|
189
|
+
in diverse ways, it is often easier and quicker to load the data into
|
|
190
|
+
an in-memory SQLite database and use queries with joins and ORDER BY
|
|
191
|
+
clauses to extract the data in the form and order needed rather than
|
|
192
|
+
to try to code the same operations manually.
|
|
193
|
+
Using an SQL database internally in this way also gives the program
|
|
194
|
+
greater flexibility since new columns and indices can be added without
|
|
195
|
+
having to recode every query.
|
|
196
|
+
Stand-in for an enterprise database during demos or testing
|
|
197
|
+
Client applications typically use a generic database interface that allows
|
|
198
|
+
connections to various SQL database engines. It makes good sense to
|
|
199
|
+
include SQLite in the mix of supported databases and to statically
|
|
200
|
+
link the SQLite engine in with the client. That way the client program
|
|
201
|
+
can be used standalone with an SQLite data file for testing or for
|
|
202
|
+
demonstrations.
|
|
203
|
+
Education and Training
|
|
204
|
+
Because it is simple to setup and use (installation is trivial: just
|
|
205
|
+
copy the sqlite3 or sqlite3.exe executable to the target machine
|
|
206
|
+
and run it) SQLite makes a good database engine for use in teaching SQL.
|
|
207
|
+
Students can easily create as many databases as they like and can
|
|
208
|
+
email databases to the instructor for comments or grading. For more
|
|
209
|
+
advanced students who are interested in studying how an RDBMS is
|
|
210
|
+
implemented, the modular and well-commented and documented SQLite code
|
|
211
|
+
can serve as a good basis.
|
|
212
|
+
Experimental SQL language extensions
|
|
213
|
+
The simple, modular design of SQLite makes it a good platform for
|
|
214
|
+
prototyping new, experimental database language features or ideas.
|
|
215
|
+
2. Situations Where A Client/Server RDBMS May Work Better
|
|
216
|
+
Client/Server Applications
|
|
217
|
+
If there are many client programs sending SQL to the same
|
|
218
|
+
database over a network, then use a client/server database
|
|
219
|
+
engine instead of SQLite. SQLite will work over a network filesystem,
|
|
220
|
+
but because of the latency associated with most network filesystems,
|
|
221
|
+
performance will not be great. Also, file locking logic is buggy in
|
|
222
|
+
many network filesystem implementations (on both Unix and Windows).
|
|
223
|
+
If file locking does not work correctly,
|
|
224
|
+
two or more clients might try to modify the
|
|
225
|
+
same part of the same database at the same time, resulting in
|
|
226
|
+
corruption. Because this problem results from bugs in
|
|
227
|
+
the underlying filesystem implementation, there is nothing SQLite
|
|
228
|
+
can do to prevent it.
|
|
229
|
+
A good rule of thumb is to avoid using SQLite
|
|
230
|
+
in situations where the same database will be accessed directly
|
|
231
|
+
(without an intervening application server) and simultaneously
|
|
232
|
+
from many computers over a network.
|
|
233
|
+
High-volume Websites
|
|
234
|
+
SQLite will normally work fine as the database backend to a website.
|
|
235
|
+
But if the website is write-intensive or is so busy that it requires
|
|
236
|
+
multiple servers, then consider using an enterprise-class client/server
|
|
237
|
+
database engine instead of SQLite.
|
|
238
|
+
Very large datasets
|
|
239
|
+
An SQLite database is limited in size to 281 terabytes
|
|
240
|
+
(2 48 bytes, 256 tibibytes).
|
|
241
|
+
And even if it could handle larger databases, SQLite stores the entire
|
|
242
|
+
database in a single disk file and many filesystems limit the maximum
|
|
243
|
+
size of files to something less than this. So if you are contemplating
|
|
244
|
+
databases of this magnitude, you would do well to consider using a
|
|
245
|
+
client/server database engine that spreads its content across multiple
|
|
246
|
+
disk files, and perhaps across multiple volumes.
|
|
247
|
+
High Concurrency
|
|
248
|
+
SQLite supports an unlimited number of simultaneous readers, but it
|
|
249
|
+
will only allow one writer at any instant in time.
|
|
250
|
+
For many situations, this is not a problem. Writers queue up. Each application
|
|
251
|
+
does its database work quickly and moves on, and no lock lasts for more
|
|
252
|
+
than a few dozen milliseconds. But there are some applications that require
|
|
253
|
+
more concurrency, and those applications may need to seek a different
|
|
254
|
+
solution.
|
|
255
|
+
3. Checklist For Choosing The Right Database Engine
|
|
256
|
+
Is the data separated from the application by a network?
|
|
257
|
+
→ choose client/server
|
|
258
|
+
Relational database engines act as bandwidth-reducing data filters.
|
|
259
|
+
So it is best to keep the database engine and the data on
|
|
260
|
+
the same physical device so that the high-bandwidth engine-to-disk
|
|
261
|
+
link does not have to traverse the network, only the lower-bandwidth
|
|
262
|
+
application-to-engine link.
|
|
263
|
+
But SQLite is built into the application. So if the data is on a
|
|
264
|
+
separate device from the application, it is required that the higher
|
|
265
|
+
bandwidth engine-to-disk link be across the network. This works, but
|
|
266
|
+
it is suboptimal. Hence, it is usually better to select a client/server
|
|
267
|
+
database engine when the data is on a separate device from the
|
|
268
|
+
application.
|
|
269
|
+
Nota Bene:
|
|
270
|
+
In this rule, "application" means the code that issues SQL statements.
|
|
271
|
+
If the "application" is an application server and
|
|
272
|
+
if the content resides on the same physical machine as the application server,
|
|
273
|
+
then SQLite might still be appropriate even though the end user is
|
|
274
|
+
another network hop away.
|
|
275
|
+
Many concurrent writers? → choose client/server
|
|
276
|
+
If many threads and/or processes need to write the
|
|
277
|
+
database at the same instant (and they cannot queue up and take turns)
|
|
278
|
+
then it is best to select a database engine that supports that
|
|
279
|
+
capability, which always means a client/server database engine.
|
|
280
|
+
SQLite only supports one writer at a time per database file.
|
|
281
|
+
But in most cases, a write transaction only takes milliseconds and
|
|
282
|
+
so multiple writers can simply take turns. SQLite will handle
|
|
283
|
+
more write concurrency than many people suspect. Nevertheless,
|
|
284
|
+
client/server database systems, because they have a long-running
|
|
285
|
+
server process at hand to coordinate access, can usually handle
|
|
286
|
+
far more write concurrency than SQLite ever will.
|
|
287
|
+
Big data? → choose client/server
|
|
288
|
+
If your data will grow to a size that you are uncomfortable
|
|
289
|
+
or unable to fit into a single disk file, then you should select
|
|
290
|
+
a solution other than SQLite. SQLite supports databases up to
|
|
291
|
+
281 terabytes in size, assuming you can find a disk drive and filesystem
|
|
292
|
+
that will support 281-terabyte files. Even so, when the size of the
|
|
293
|
+
content looks like it might creep into the terabyte range, it would
|
|
294
|
+
be good to consider a centralized client/server database.
|
|
295
|
+
Otherwise → choose SQLite!
|
|
296
|
+
For device-local storage with low writer concurrency and less than a
|
|
297
|
+
terabyte of content, SQLite is almost always a better solution. SQLite
|
|
298
|
+
is fast and reliable and it requires no configuration or maintenance.
|
|
299
|
+
It keeps things simple. SQLite "just works".
|
|
300
|
+
This page was last updated on 2025-05-31 13:08:22Z
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
The apple tree comes from southern Kazakhstan; Kyrgyzstan; Uzbekistan; Turkey; and the northwestern part of China. Apples have been grown for thousands of years in Asia and in Europe. They were brought to North America by European World Colonial settlers. Apples have Religious and mythological significance in many cultures.
|
|
2
|
+
Apples are generally grown by grafting, although wild apples grow readily from seed. Apple trees are normally large if grown from seed, but small if grafted onto roots (rootstock). There are more than 10,000 known variants of apples, with a range of desired characteristics. Different variants are bred for various tastes and uses: cooking, eating raw and cider production are the most common uses. In addition to that, when it comes to food toxicity, the seeds in apples can be fatal, but only if they've been crushed. Apples contain amygdalin, which can release cyanide when digested. Apple seeds contain a chemical that can make cyanide, but the amount is too small to harm people who eat a few seeds.
|
|
3
|
+
Trees and fruit are attacked by fungi, bacteria and pests. In 2010, the fruit's genome was sequenced as part of research on disease control and selective breeding in apple production.
|
|
4
|
+
Worldwide production of apples in 2013 was 90.8 million tonnes. China grew 49% of the total.
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
Attempto Controlled English (ACE) is a controlled natural language, i.e. a subset of standard English with a restricted syntax and restricted semantics described by a small set of construction and interpretation rules. It has been under development at the University of Zurich since 1995. In 2013, ACE version 6.7 was announced.
|
|
2
|
+
ACE can serve as knowledge representation, specification, and query language, and is intended for professionals who want to use formal notations and formal methods, but may not be familiar with them. Though ACE appears perfectly natural—it can be read and understood by any speaker of English—it is in fact a formal language.
|
|
3
|
+
ACE and its related tools have been used in the fields of software specifications, theorem proving, proof assistants, text summaries, ontologies, rules, querying, medical documentation and planning.
|
|
4
|
+
Here are some simple examples:
|
|
5
|
+
Every woman is a human.
|
|
6
|
+
A woman is a human.
|
|
7
|
+
A man tries-on a new tie. If the tie pleases his wife then the man buys it.
|
|
8
|
+
ACE construction rules require that each noun be introduced by a determiner (a, every, no, some, at least 5, ...). Regarding the list of examples above, ACE interpretation rules decide that (1) is interpreted as universally quantified, while (2) is interpreted as existentially quantified. Sentences like "Women are human" do not follow ACE syntax and are consequently not valid.
|
|
9
|
+
Interpretation rules resolve the anaphoric references in (3): the tie and it of the second sentence refer to a new tie of the first sentence, while his and the man of the second sentence refer to a man of the first sentence. Thus an ACE text is a coherent entity of anaphorically linked sentences.
|
|
10
|
+
The Attempto Parsing Engine (APE) translates ACE texts unambiguously into discourse representation structures (DRS) that use a variant of the language of first-order logic. A DRS can be further translated into other formal languages, for instance AceRules with various semantics, OWL, and SWRL. Translating an ACE text into (a fragment of) first-order logic allows users to reason about the text, for instance to verify, to validate, and to query it.
|
|
11
|
+
As an overview of the current version 6.6 of ACE this section:
|
|
12
|
+
Briefly describes the vocabulary
|
|
13
|
+
Gives an account of the syntax
|
|
14
|
+
Summarises the handling of ambiguity
|
|
15
|
+
Explains the processing of anaphoric references.
|
|
16
|
+
The vocabulary of ACE comprises:
|
|
17
|
+
Predefined function words (e.g. determiners, conjunctions)
|
|
18
|
+
Predefined phrases (e.g. "it is false that ...", "it is possible that ...")
|
|
19
|
+
Content words (e.g. nouns, verbs, adjectives, adverbs).
|
|
20
|
+
The grammar of ACE defines and constrains the form and the meaning of ACE sentences and texts. ACE's grammar is expressed as a set of construction rules. The meaning of sentences is described as a small set of interpretation rules. A Troubleshooting Guide describes how to use ACE and how to avoid pitfalls.
|
|
21
|
+
An ACE text is a sequence of declarative sentences that can be anaphorically interrelated. Furthermore, ACE supports questions and commands.
|
|
22
|
+
A simple sentence asserts that something is the case—a fact, an event, a state.
|
|
23
|
+
The temperature is −2 °C.
|
|
24
|
+
A customer inserts 2 cards.
|
|
25
|
+
A card and a code are valid.
|
|
26
|
+
Simple ACE sentences have the following general structure:
|
|
27
|
+
subject + verb + complements + adjuncts
|
|
28
|
+
Every sentence has a subject and a verb. Complements (direct and indirect objects) are necessary for transitive verbs (insert something) and ditransitive verbs (give something to somebody), whereas adjuncts (adverbs, prepositional phrases) are optional.
|
|
29
|
+
All elements of a simple sentence can be elaborated upon to describe the situation in more detail. To further specify the nouns customer and card, we could add adjectives:
|
|
30
|
+
A trusted customer inserts two valid cards.
|
|
31
|
+
possessive nouns and of-prepositional phrases:
|
|
32
|
+
John's customer inserts a card of Mary.
|
|
33
|
+
or variables as appositions:
|
|
34
|
+
John inserts a card A.
|
|
35
|
+
Other modifications of nouns are possible through relative sentences:
|
|
36
|
+
A customer who is trusted inserts a card that he owns.
|
|
37
|
+
which are described below since they make a sentence composite. We can also detail the insertion event, e.g. by adding an adverb:
|
|
38
|
+
A customer inserts some cards manually.
|
|
39
|
+
or, equivalently:
|
|
40
|
+
A customer manually inserts some cards.
|
|
41
|
+
or, by adding prepositional phrases:
|
|
42
|
+
A customer inserts some cards into a slot.
|
|
43
|
+
We can combine all of these elaborations to arrive at:
|
|
44
|
+
John's customer who is trusted inserts a valid card of Mary manually into a slot A.
|
|
45
|
+
Composite sentences are recursively built from simpler sentences through coordination, subordination, quantification, and negation. Note that ACE composite sentences overlap with what linguists call compound sentences and complex sentences.
|
|
46
|
+
Coordination by and is possible between sentences and between phrases of the same syntactic type.
|
|
47
|
+
A customer inserts a card and the machine checks the code.
|
|
48
|
+
There is a customer who inserts a card and who enters a code.
|
|
49
|
+
A customer inserts a card and enters a code.
|
|
50
|
+
An old and trusted customer enters a card and a code.
|
|
51
|
+
Note that the coordination of the noun phrases a card and a code represents a plural object.
|
|
52
|
+
Coordination by or is possible between sentences, verb phrases, and relative clauses.
|
|
53
|
+
A customer inserts a card or the machine checks the code.
|
|
54
|
+
A customer inserts a card or enters a code.
|
|
55
|
+
A customer owns a card that is invalid or that is damaged.
|
|
56
|
+
Coordination by and and or is governed by the standard binding order of logic, i.e. and binds stronger than or. Commas can be used to override the standard binding order. Thus the sentence:
|
|
57
|
+
A customer inserts a VisaCard or inserts a MasterCard, and inserts a code.
|
|
58
|
+
means that the customer inserts a VisaCard and a code, or alternatively a MasterCard and a code.
|
|
59
|
+
There are four constructs of subordination: relative sentences, if-then sentences, modality, and sentence subordination.
|
|
60
|
+
Relative sentences starting with who, which, and that allow to add detail to nouns:
|
|
61
|
+
A customer who is trusted inserts a card that he owns.
|
|
62
|
+
With the help of if-then sentences we can specify conditional or hypothetical situations:
|
|
63
|
+
If a card is valid then a customer inserts it.
|
|
64
|
+
Note the anaphoric reference via the pronoun it in the then-part to the noun phrase a card in the if-part.
|
|
65
|
+
Modality allows us to express possibility and necessity:
|
|
66
|
+
A trusted customer can/must insert a card.
|
|
67
|
+
It is possible/necessary that a trusted customer inserts a card.
|
|
68
|
+
Sentence subordination comes in various forms:
|
|
69
|
+
It is true/false that a customer inserts a card.
|
|
70
|
+
It is not provable that a customer inserts a card.
|
|
71
|
+
A clerk believes that a customer inserts a card.
|
|
72
|
+
Quantification allows us to speak about all objects of a certain class (universal quantification), or to denote explicitly the existence of at least one object of this class (existential quantification). The textual occurrence of a universal or existential quantifier opens its scope that extends to the end of the sentence, or in coordinations to the end of the respective coordinated sentence.
|
|
73
|
+
To express that all involved customers insert cards we can write
|
|
74
|
+
Every customer inserts a card.
|
|
75
|
+
This sentence means that each customer inserts a card that may, or may not, be the same as the one inserted by another customer. To specify that all customers insert the same card—however unrealistic that situation seems—we can write:
|
|
76
|
+
A card is inserted by every customer.
|
|
77
|
+
or, equivalently:
|
|
78
|
+
There is a card that every customer inserts.
|
|
79
|
+
To state that every card is inserted by a customer we write:
|
|
80
|
+
Every card is inserted by a customer.
|
|
81
|
+
or, somewhat indirectly:
|
|
82
|
+
For every card there is a customer who inserts it.
|
|
83
|
+
Negation allows us to express that something is not the case:
|
|
84
|
+
A customer does not insert a card.
|
|
85
|
+
A card is not valid.
|
|
86
|
+
To negate something for all objects of a certain class one uses no:
|
|
87
|
+
No customer inserts more than 2 cards.
|
|
88
|
+
or, there is no:
|
|
89
|
+
There is no customer who inserts a card.
|
|
90
|
+
To negate a complete statement one uses sentence negation:
|
|
91
|
+
It is false that a customer inserts a card.
|
|
92
|
+
These forms of negation are logical negations, i.e. they state that something is provably not the case. Negation as failure states that a state of affairs cannot be proved, i.e. there is no information whether the state of affairs is the case or not.
|
|
93
|
+
It is not provable that a customer inserts a card.
|
|
94
|
+
ACE supports two forms of queries: yes/no-queries and wh-queries.
|
|
95
|
+
Yes/no-queries ask for the existence or non-existence of a specified situation. If we specified:
|
|
96
|
+
A customer inserts a card.
|
|
97
|
+
then we can ask:
|
|
98
|
+
Does a customer insert a card?
|
|
99
|
+
to get a positive answer. Note that interrogative sentences always end with a question mark.
|
|
100
|
+
With the help of wh-queries, i.e. queries with query words, we can interrogate a text for details of the specified situation. If we specified:
|
|
101
|
+
A trusted customer inserts a valid card manually in the morning in a bank.
|
|
102
|
+
we can ask for each element of the sentence with the exception of the verb.
|
|
103
|
+
Who inserts a card?
|
|
104
|
+
Which customer inserts a card?
|
|
105
|
+
What does a customer insert?
|
|
106
|
+
How does a customer insert a card?
|
|
107
|
+
When does a customer enter a card?
|
|
108
|
+
Where does a customer enter a card?
|
|
109
|
+
Queries can also be constructed by a sequence of declarative sentences followed by one interrogative sentence, for example:
|
|
110
|
+
There is a customer and there is a card that the customer enters. Does a customer enter a card?
|
|
111
|
+
ACE also supports commands. Some examples:
|
|
112
|
+
John, go to the bank!
|
|
113
|
+
John and Mary, wait!
|
|
114
|
+
Every dog, bark!
|
|
115
|
+
A brother of John, give a book to Mary!
|
|
116
|
+
A command always consists of a noun phrase (the addressee), followed by a comma, followed by an uncoordinated verb phrase. Furthermore, a command has to end with an exclamation mark.
|
|
117
|
+
To constrain the ambiguity of full natural language ACE employs three simple means:
|
|
118
|
+
Some ambiguous constructs are not part of the language; unambiguous alternatives are available in their place.
|
|
119
|
+
All remaining ambiguous constructs are interpreted deterministically on the basis of a small number of interpretation rules.
|
|
120
|
+
Users can either accept the assigned interpretation, or they must rephrase the input to obtain another one.
|
|
121
|
+
In natural language, relative sentences combined with coordinations can introduce ambiguity:
|
|
122
|
+
A customer inserts a card that is valid and opens an account.
|
|
123
|
+
In ACE the sentence has the unequivocal meaning that the customer opens an account, as reflected by the paraphrase:
|
|
124
|
+
A card is valid. A customer inserts the card. The customer opens an account.
|
|
125
|
+
To express the alternative—though not very realistic—meaning that the card opens an account, the relative pronoun that must be repeated, thus yielding a coordination of relative sentences:
|
|
126
|
+
A customer inserts a card that is valid and that opens an account.
|
|
127
|
+
This sentence is unambiguously equivalent in meaning to the paraphrase:
|
|
128
|
+
A card is valid. The card opens an account. A customer inserts the card.
|
|
129
|
+
Not all ambiguities can be safely removed from ACE without rendering it artificial. To deterministically interpret otherwise syntactically correct ACE sentences we use a small set of interpretation rules. For example, if we write:
|
|
130
|
+
A customer inserts a card with a code.
|
|
131
|
+
then with a code attaches to the verb inserts, but not to a card. However, this is probably not what we meant to say. To express that the code is associated with the card we can employ the interpretation rule that a relative sentence always modifies the immediately preceding noun phrase, and rephrase the input as:
|
|
132
|
+
A customer inserts a card that carries a code.
|
|
133
|
+
yielding the paraphrase:
|
|
134
|
+
A card carries a code. A customer inserts the card.
|
|
135
|
+
or—to specify that the customer inserts a card and a code—as:
|
|
136
|
+
A customer inserts a card and a code.
|
|
137
|
+
Usually ACE texts consist of more than one sentence:
|
|
138
|
+
A customer enters a card and a code. If a code is valid then SimpleMat accepts a card.
|
|
139
|
+
To express that all occurrences of card and code should mean the same card and the same code, ACE provides anaphoric references via the definite article:
|
|
140
|
+
A customer enters a card and a code. If the code is valid then SimpleMat accepts the card.
|
|
141
|
+
During the processing of the ACE text, all anaphoric references are replaced by the most recent and most specific accessible noun phrase that agrees in gender and number. As an example of "most recent and most specific", suppose an ACE parser is given the sentence:
|
|
142
|
+
A customer enters a red card and a blue card.
|
|
143
|
+
Then:
|
|
144
|
+
The card is correct.
|
|
145
|
+
refers to the second card, while:
|
|
146
|
+
The red card is correct.
|
|
147
|
+
refers to the first card.
|
|
148
|
+
Noun phrases within if-then sentences, universally quantified sentences, negations, modality, and subordinated sentences cannot be referred to anaphorically from subsequent sentences, i.e. such noun phrases are not "accessible" from the following text. Thus for each of the sentences:
|
|
149
|
+
If a customer owns a card then he enters it.
|
|
150
|
+
Every customer enters a card.
|
|
151
|
+
A customer does not enter a card.
|
|
152
|
+
A customer can enter a card.
|
|
153
|
+
A clerk believes that a customer enters a card.
|
|
154
|
+
we cannot refer to a card with:
|
|
155
|
+
The card is correct.
|
|
156
|
+
Anaphoric references are also possible via personal pronouns:
|
|
157
|
+
A customer enters a card and a code. If it is valid then SimpleMat accepts the card.
|
|
158
|
+
or via variables:
|
|
159
|
+
A customer enters a card X and a code Y. If Y is valid then SimpleMat accepts X.
|
|
160
|
+
Anaphoric references via definite articles and variables can be combined:
|
|
161
|
+
A customer enters a card X and a code Y. If the code Y is valid then SimpleMat accepts the card X.
|
|
162
|
+
Note that proper names like SimpleMat always refer to the same object.
|
|
163
|
+
Natural language processing
|
|
164
|
+
Natural language programming
|
|
165
|
+
Structured English
|
|
166
|
+
ClearTalk, another machine-readable knowledge representation language
|
|
167
|
+
Inform 7, a programming language with English syntax
|
|
168
|
+
Gellish English, a controlled English subset and vocabulary
|
|
169
|
+
Official website, Project Attempto
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
Automated planning and scheduling, sometimes denoted as simply AI planning, is a branch of artificial intelligence that concerns the realization of strategies or action sequences, typically for execution by intelligent agents, autonomous robots and unmanned vehicles. Unlike classical control and classification problems, the solutions are complex and must be discovered and optimized in multidimensional space. Planning is also related to decision theory.
|
|
2
|
+
In known environments with available models, planning can be done offline. Solutions can be found and evaluated prior to execution. In dynamically unknown environments, the strategy often needs to be revised online. Models and policies must be adapted. Solutions usually resort to iterative trial and error processes commonly seen in artificial intelligence. These include dynamic programming, reinforcement learning and combinatorial optimization. Languages used to describe planning and scheduling are often called action languages.
|
|
3
|
+
Given a description of the possible initial states of the world, a description of the desired goals, and a description of a set of possible actions, the planning problem is to synthesize a plan that is guaranteed (when applied to any of the initial states) to generate a state which contains the desired goals (such a state is called a goal state).
|
|
4
|
+
The difficulty of planning is dependent on the simplifying assumptions employed. Several classes of planning problems can be identified depending on the properties the problems have in several dimensions.
|
|
5
|
+
Are the actions deterministic or non-deterministic? For nondeterministic actions, are the associated probabilities available?
|
|
6
|
+
Are the state variables discrete or continuous? If they are discrete, do they have only a finite number of possible values?
|
|
7
|
+
Can the current state be observed unambiguously? There can be full observability and partial observability.
|
|
8
|
+
How many initial states are there, finite or arbitrarily many?
|
|
9
|
+
Do actions have a duration?
|
|
10
|
+
Can several actions be taken concurrently, or is only one action possible at a time?
|
|
11
|
+
Is the objective of a plan to reach a designated goal state, or to maximize a reward function?
|
|
12
|
+
Is there only one agent or are there several agents? Are the agents cooperative or selfish? Do all of the agents construct their own plans separately, or are the plans constructed centrally for all agents?
|
|
13
|
+
The simplest possible planning problem, known as the Classical Planning Problem, is determined by:
|
|
14
|
+
a unique known initial state,
|
|
15
|
+
durationless actions,
|
|
16
|
+
deterministic actions,
|
|
17
|
+
which can be taken only one at a time,
|
|
18
|
+
and a single agent.
|
|
19
|
+
Since the initial state is known unambiguously, and all actions are deterministic, the state of the world after any sequence of actions can be accurately predicted, and the question of observability is irrelevant for classical planning.
|
|
20
|
+
Further, plans can be defined as sequences of actions, because it is always known in advance which actions will be needed.
|
|
21
|
+
With nondeterministic actions or other events outside the control of the agent, the possible executions form a tree, and plans have to determine the appropriate actions for every node of the tree.
|
|
22
|
+
Discrete-time Markov decision processes (MDP) are planning problems with:
|
|
23
|
+
durationless actions,
|
|
24
|
+
nondeterministic actions with probabilities,
|
|
25
|
+
full observability,
|
|
26
|
+
maximization of a reward function,
|
|
27
|
+
and a single agent.
|
|
28
|
+
When full observability is replaced by partial observability, planning corresponds to a partially observable Markov decision process (POMDP).
|
|
29
|
+
If there are more than one agent, we have multi-agent planning, which is closely related to game theory.
|
|
30
|
+
In AI planning, planners typically input a domain model (a description of a set of possible actions which model the domain) as well as the specific problem to be solved specified by the initial state and goal, in contrast to those in which there is no input domain specified. Such planners are called "domain independent" to emphasize the fact that they can solve planning problems from a wide range of domains. Typical examples of domains are block-stacking, logistics, workflow management, and robot task planning. Hence a single domain-independent planner can be used to solve planning problems in all these various domains. On the other hand, a route planner is typical of a domain-specific planner.
|
|
31
|
+
The most commonly used languages for representing planning domains and specific planning problems, such as STRIPS and PDDL for Classical Planning, are based on state variables. Each possible state of the world is an assignment of values to the state variables, and actions determine how the values of the state variables change when that action is taken. Since a set of state variables induce a state space that has a size that is exponential in the set, planning, similarly to many other computational problems, suffers from the curse of dimensionality and the combinatorial explosion.
|
|
32
|
+
An alternative language for describing planning problems is that of hierarchical task networks, in which a set of tasks is given, and each task can be either realized by a primitive action or decomposed into a set of other tasks. This does not necessarily involve state variables, although in more realistic applications state variables simplify the description of task networks.
|
|
33
|
+
forward chaining state space search, possibly enhanced with heuristics
|
|
34
|
+
backward chaining search, possibly enhanced by the use of state constraints (see STRIPS, graphplan)
|
|
35
|
+
partial-order planning
|
|
36
|
+
Action model learning (sometimes abbreviated action learning) is an area of machine learning concerned with the creation and modification of a software agent's knowledge about the effects and preconditions of the actions that can be executed within its environment. This knowledge is usually represented in a logic-based action description language and used as input for automated planners.
|
|
37
|
+
Learning action models is important when goals change. When an agent acted for a while, it can use its accumulated knowledge about actions in the domain to make better decisions. Thus, learning action models differs from reinforcement learning. It enables reasoning about actions instead of expensive trials in the world. Action model learning is a form of inductive reasoning, where new knowledge is generated based on the agent's observations.
|
|
38
|
+
The usual motivation for action model learning is the fact that manual specification of action models for planners is often a difficult, time-consuming, and error-prone task (especially in complex environments).
|
|
39
|
+
reduction to the propositional satisfiability problem (satplan).
|
|
40
|
+
reduction to model checking - both are essentially problems of traversing state spaces, and the classical planning problem corresponds to a subclass of model checking problems.
|
|
41
|
+
Temporal planning can be solved with methods similar to classical planning. The main difference is, because of the possibility of several, temporally overlapping actions with a duration being taken concurrently, that the definition of a state has to include information about the current absolute time and how far the execution of each active action has proceeded. Further, in planning with rational or real time, the state space may be infinite, unlike in classical planning or planning with integer time. Temporal planning is closely related to scheduling problems when uncertainty is involved and can also be understood in terms of timed automata. The Simple Temporal Network with Uncertainty (STNU) is a scheduling problem which involves controllable actions, uncertain events and temporal constraints. Dynamic Controllability for such problems is a type of scheduling which requires a temporal planning strategy to activate controllable actions reactively as uncertain events are observed so that all constraints are guaranteed to be satisfied.
|
|
42
|
+
Probabilistic planning can be solved with iterative methods such as value iteration and policy iteration, when the state space is sufficiently small.
|
|
43
|
+
With partial observability, probabilistic planning is similarly solved with iterative methods, but using a representation of the value functions defined for the space of beliefs instead of states.
|
|
44
|
+
In artificial intelligence, preference-based planning is a form of automated planning and scheduling which focuses on producing plans that additionally satisfy as many user-specified preferences as possible. In many problem domains, a task can be accomplished by various sequences of actions (also known as plans). These plans can vary in quality: there can be many ways to solve a problem, but preferred generally are ways more, e.g., cost-effective, quick, and safe.
|
|
45
|
+
Preference-based planners take these preferences into account when producing a plan for a given problem. Examples of preference-based planning software include PPLAN and HTNPlan-P (preference-based hierarchical task network (HTN) planning).
|
|
46
|
+
Deterministic planning was introduced with the STRIPS planning system, which is a hierarchical planner. Action names are ordered in a sequence and this is a plan for the robot. Hierarchical planning can be compared with an automatic generated behavior tree. The disadvantage is, that a normal behavior tree is not so expressive like a computer program. That means, the notation of a behavior graph contains action commands, but no loops or if-then-statements. Conditional planning overcomes the bottleneck and introduces an elaborated notation which is similar to a control flow, known from other programming languages like Pascal. It is very similar to program synthesis, which means a planner generates sourcecode which can be executed by an interpreter.
|
|
47
|
+
An early example of a conditional planner is “Warplan-C” which was introduced in the mid 1970s. What is the difference between a normal sequence and a complicated plan, which contains if-then-statements? It has to do with uncertainty at runtime of a plan. The idea is that a plan can react to sensor signals which are unknown for the planner. The planner generates two choices in advance. For example, if an object was detected, then action A is executed, if an object is missing, then action B is executed. A major advantage of conditional planning is the ability to handle partial plans. An agent is not forced to plan everything from start to finish but can divide the problem into chunks. This helps to reduce the state space and solves much more complex problems.
|
|
48
|
+
We speak of "contingent planning" when the environment is observable through sensors, which can be faulty. It is thus a situation where the planning agent acts under incomplete information. For a contingent planning problem, a plan is no longer a sequence of actions but a decision tree because each step of the plan is represented by a set of states rather than a single perfectly observable state, as in the case of classical planning. The selected actions depend on the state of the system. For example, if it rains, the agent chooses to take the umbrella, and if it doesn't, they may choose not to take it.
|
|
49
|
+
Michael L. Littman showed in 1998 that with branching actions, the planning problem becomes EXPTIME-complete. A particular case of contiguous planning is represented by FOND problems - for "fully-observable and non-deterministic". If the goal is specified in LTLf (linear time logic on finite trace) then the problem is always EXPTIME-complete and 2EXPTIME-complete if the goal is specified with LDLf.
|
|
50
|
+
Conformant planning is when the agent is uncertain about the state of the system, and it cannot make any observations. The agent then has beliefs about the real world, but cannot verify them with sensing actions, for instance. These problems are solved by techniques similar to those of classical planning, but where the state space is exponential in the size of the problem, because of the uncertainty about the current state. A solution for a conformant planning problem is a sequence of actions. Haslum and Jonsson have demonstrated that the problem of conformant planning is EXPSPACE-complete, and 2EXPTIME-complete when the initial situation is uncertain, and there is non-determinism in the actions outcomes.
|
|
51
|
+
The Hubble Space Telescope uses a short-term system called SPSS and a long-term planning system called Spike .
|
|
52
|
+
Action description language – Robot programming language
|
|
53
|
+
Actor model – Model of concurrent computation
|
|
54
|
+
Applications of artificial intelligence
|
|
55
|
+
Constraint satisfaction problem – Set of objects whose state must satisfy limits
|
|
56
|
+
International Conference on Automated Planning and Scheduling – Artificial intelligence conference
|
|
57
|
+
Reactive planning
|
|
58
|
+
Scheduling (computing) – Method by which work is assigned
|
|
59
|
+
Strategy (game theory) – Complete plan on how a game player will behave in every possible game situation
|
|
60
|
+
Lists
|
|
61
|
+
List of constraint programming languages
|
|
62
|
+
List of emerging technologies
|
|
63
|
+
List of robotics software
|
|
64
|
+
List of SMT solvers
|
|
65
|
+
Outline of artificial intelligence
|
|
66
|
+
Vlahavas, I. "Planning and Scheduling". EETN. Archived from the original on 2013-12-22.
|
|
67
|
+
International Conference on Automated Planning and Scheduling
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Bees are flying insects of the Hymenoptera, which also includes ants, wasps and sawflies. There are about 20,000 species of bees. Bees collect pollen from flowers. Bees can be found on all continents except Antarctica.
|
|
2
|
+
Bees fall into four groups:
|
|
3
|
+
Honeybees, including the Africanized honeybee, are in the genus Apis. The group is first known from Europe, at the Eocene–Oligocene boundary.
|
|
4
|
+
Bumblebees: 250 species in the Apidae family.
|
|
5
|
+
Stingless bees: 550 species in the Meliponini.
|
|
6
|
+
Solitary bees: solitary in the sense that every female is fertile, and usually lives in a nest she builds herself. There are quite a few of these, for example the carpenter bees, leafcutter bees and mason bees (and there are others).
|
|
7
|
+
The European honey bee (called Apis mellifera by biologists), is kept by humans for honey. Keeping bees to make honey is called beekeeping, or apiculture.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
Birds (Aves) are a group of animals with backbones. Birds are the only dinosaurs that survived the Cretaceous–Paleogene extinction, and are part of the theropod group of dinosaurs. The word for "bird-like" is avian, from Latin language avis, bird.
|
|
2
|
+
Birds are warm blooded. Their feathers help prevent loss of body heat. Modern birds do not have teeth. They have beaked jaws. Birds lay hard-shelled eggs. They have a high metabolic rate and a strong but lightweight skeleton. Their hearts have four chambers.
|
|
3
|
+
Birds live all over the world. They range in size from the 5 cm (2 in) bee hummingbird to the 2.70 m (9 ft) ostrich. There are about ten thousand species of birds. More than half of these are passerines, or perching birds.
|
|
4
|
+
Birds have wings. The wings develop differently in different species. The only known groups of birds without wings are the extinct moa and the elephant birds. Wings evolved from the forelimbs of birds. They give birds the ability to fly. Over time, many groups of birds evolved with smaller wings. These include ratites, penguins and many island species of birds. The digestive and respiratory systems of birds are also adapted for flight. Some bird species in aquatic environments have evolved as good swimmers. This is seen in seabirds and some waterbirds.
|
|
5
|
+
In general, birds inherit their behaviour almost entirely. The key elements of their lives are inherited. It was a great discovery that birds never learn to fly. It is wrong to say when a chick waves its wings in the nest that "it is learning to fly". What the chick is doing is exercising its muscles. If they are a species that flies, they develop the ability automatically. If they are species that migrates, that behaviour is also inherited. Many species migrate over great distances each year. Other main features of their life may be inherited, though they can, and do, learn. Birds have good memories, An example of this is when they search for food.
|
|
6
|
+
Several bird species make and use tools. Some social species pass on some knowledge across generation. This is a form of culture. Birds are social animals. They communicate with visual signals as well as with calls and bird songs. Most of their social behaviours are inherited. Examples of this include flocking, mobbing of predators and cooperative breeding and hunting,
|
|
7
|
+
Most bird species are socially monogamous; they usually mate for one breeding season at a time. They may mate for years. It is rare that these birds will mate for life. Other species are polygynous, in these species, one male will mate with many females. Birds species are rarely polyandrous. In these species, one female will mate with many males. Birds produce offspring by laying eggs. The eggs are fertilised by sexual reproduction. The eggs are often laid in a nest and incubated by the parents. Most birds take care of their offspring after hatching. Some birds, such as chickens, lay eggs even when not fertilised. Unfertilised eggs do not produce offspring.
|
|
8
|
+
Many species of birds are eaten by humans. Domesticated and undomesticated birds are sources of eggs, meat and feathers. In English, domesticated birds are often called poultry and undomesticated birds are called game birds. Songbirds, parrots and other types of birds are popular as pets. Guano is bird manure. It is harvested for use as a fertiliser. Birds figure throughout human culture. About 120–130 species of birds have become extinct because of human activity since the 17th century. Many more species had become extinct before then. Human activity threatens about 1,200 bird species with extinction, Things are being done to protect them. Recreational bird-watching is an important part of the ecotourism industry.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
Bones are parts of the skeleton of vertebrates. They also protect organs inside our body.
|
|
2
|
+
The bones are the framework of the body. Without them we would be a pile of organs and skin on the ground and would not be able to move.
|
|
3
|
+
Bones also protect us. The skull protects the brain and the ribs protect the heart and lungs. The jaw and skull support the facial muscles, which help us eat and move our mouth. The pelvis protects the reproductive organs, and vertebrae protect the spinal cord.
|
|
4
|
+
Bone is living tissue, and must be maintained by taking regular exercise and by having calcium from foods like milk, and dark leafy greens such as spinach. The bone marrow in the middle of the bigger bones makes our red blood cells.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
A book is now a set of printed sheets of paper held together between two covers. The sheets of paper in a book are called pages. The pages have words written in them and maybe illustrations drawn. The first books were not printed, but written by hand in ink.
|
|
2
|
+
The book is a more flexible format than the earlier idea of the scroll. The change from scrolls to books began in the Roman Empire and took many centuries to become complete.
|
|
3
|
+
A writer of a book is often called an author. Someone who draws the pictures in a book is called an illustrator. Books can have more than one writer or illustrator.
|
|
4
|
+
A book can be a text that is a part of a larger collection of texts. A section of a text may be published as a book so that it only has one writer or only focuses on one subject area. Books written in this way can be understood without reading whole collection of writings. Examples are the Iliad, Odyssey, Bible, Quran and Torah. Encyclopedias often have separate articles written by different people, and are published as separate volumes. Each volume is a book.
|
|
5
|
+
Hardcover books have hard covers made of cardboard that is covered in cloth or leather and sewn together. Paperback books have covers made of stiff paper that is glued together. A small book is a "booklet" and may be stapled together. The words in books can be read aloud and recorded. These are called "audiobooks".
|
|
6
|
+
Books may be borrowed from a library or bought from a bookstore. People can make their own books and write in them, and add family photos and drawings. Some books are empty inside, like a diary, an address book, or photo album. These books are meant to be written in. Usually, the word "book" means that the pages inside have words, and often pictures.
|
|
7
|
+
Some books are written just for children, some are for entertainment, and some are textbooks for studying something in school, such as math or history.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
Bread is a type of baked food. It is mainly made from dough, which is made mainly from flour and water. Usually, salt and yeast are added. Bread is often baked in an oven. It can be bought all over the world.
|
|
2
|
+
Bread can be toasted or used to make sandwiches. Bread can be made into many different foods, like pizza. There are many different kinds of bread.
|
|
3
|
+
The two main types of bread are:
|
|
4
|
+
Leavened bread is made by adding yeast or other leavening agents to the dough. The yeast produces gas that makes the dough lighter. Leavened bread can be made into larger loaves baked in an oven. This is the main type of bread eaten in Europe, America, and many parts of Asia.
|
|
5
|
+
Unleavened flatbread is baked from a dough of water and flour, with no yeast. It is baked in flat rounds like tortilla or chapati. This type of bread cannot be made thick as it would be too dense to eat. Unleavened bread is eaten throughout Greece, Africa, parts of Asia, and as the Central America such as Pitta bread or tortilla. Baking can be done on a metal plate or hot stone, or in an oven.
|
|
6
|
+
The color and taste of the bread depending on the kind of flour used and the style of baking. Flour made from the whole grain gives darker bread. Flour made just from the polished wheat grain gives a very white bread. Rye and barley flour give darker types of bread. The type of flour also changes how long the bread can be kept before going bad. Some strains of wheat are resistant to fungus, but may not produce bread as tasty as a weaker strain.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
A butterfly is a (usually) day-flying insect of the order Lepidoptera. They are grouped together in the suborder Rhopalocera. Butterflies are related to moths, from which they evolved about 56 million years ago. The earliest discovered fossil moth was 200 million years ago.
|
|
2
|
+
The life of butterflies is closely connected to flowering plants. Their larvae (caterpillars) feed on plants, and their adults feed on flowers. They lay their eggs on the plants their caterpillars feed on. Butterflies have a long history of co-evolution with flowering plants. Many of the details of plant anatomy are related to their pollinators, and vice versa. The other notable features of butterflies are their extraordinary range of colours and patterns, and their wings. These are discussed below.
|
|
3
|
+
Angiosperms (flowering plants) evolved in the Lower Cretaceous, but did not become common until the Upper Cretaceous. Butterflies were the last major group of insects to appear on the planet. They evolved from moths in the latest Cretaceous or the earliest Cainozoic. The earliest known butterfly fossils date to the mid Eocene epoch, between 40 and 50 million years ago.
|
|
4
|
+
Like moths, butterflies have four wings covered with tiny scales. The front and back wings are usually zipped together, so that the insect looks as if it has only two wings. When a butterfly is not flying, its wings are usually folded over its back. The wings are patterned and are often brightly coloured. There are many different kinds of butterflies. The males and females of each kind are often slightly different from each other. Butterfly watching is a popular hobby. Some people also keep collections of dead butterflies that they have caught, but they find out that the colour fades.
|
|
5
|
+
Like all insects with complete metamorphosis, a butterfly's life goes through four distinct stages. It begins as an egg, which hatches into a larva (a caterpillar). After some time, the larva turns into a chrysalis. While it is in the chrysalis stage, it changes to become an adult butterfly. These changes are only beginning to be understood. To complete the cycle, adults mate and the females lay eggs.
|
|
6
|
+
Butterflies are any of the species belonging to the superfamilies Papilionoidea and Hedyloidea. Butterflies, along with the moths and the skippers, make up the insect order Lepidoptera. Butterflies are nearly worldwide in their distribution.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
A car, or an automobile, is a motor vehicle with wheels. Most definitions of cars state that they run primarily on roads, seat 1-8 people, have four wheels, and mainly transport people rather than cargo but are relatively smaller than a truck/lorry (to carry goods) or a bus (to carry people). There are around 1.644 billion cars in use worldwide as of January 2025.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Cats, also called domestic cats (Felis catus), are small, carnivorous (meat eating) mammals, of the family Felidae. Cats have been domesticated (tamed) for nearly 10,000 years. Some of the most popular breeds of this mammal include the Siamese, Japanese Bobtail, Abysinnian, Cornish Rex, American Shorthair, Ragdoll, Aegean cat, Russian Blue, Persian, Manx, Burmese, Sphynx, and British Shorthair Tabby.
|