Query exceeds the maximum allowable selection. Below is sample of results. Please narrow search.

Displaying ${displayed} of ${selected} selected

The CIA World Factbook Search (2018-2019):

The CIA World Factbook contains a great wealth of information on our world and its people (in the public domain), but it is somewhat rigidly organized by country or territory. Because of this structure, The Factbook (though still a great resource) is not conducive to full analysis and comparisons, nor succinct customized-briefing. This site seeks to overcome those limitations, without linking to the CIA servers. Go Ahead!

Free text, fast response, world search

We do this by allowing free text searching over the regions, countries, categories, and fields in an index of The Factbook data. This allows the user to select an arbitrary field and an arbitrary region (e.g. the world, by default) or any arbitrary set of countries (with logical connectives) for comparisons. For example,

Finland AND (imports OR exports)

Will return all information on Finland related to imports and exports. While we can analyze all the Scandinavian countries with,

(Finland OR Norway OR Denmark OR Sweden) AND (imports OR exports) ^+

Note that there is a special directive on this query '^+'. There are not many of these (only four to be exact), but this one is useful for putting comparisons in a nice form.

If you haven't typed anything in the search yet, I recommend you type a single character. That will give you a list of the basics you need to get started. For more depth, keep reading...

Brief Tutorial

All words are atomic propositions (boolean) which 'say' that the word is in the index for this field. By default, spaces between words without explicit connectives are read as AND. Logical or is OR. And if you want to say that a word is not in the index, you use 'NOT something'. Arbitrary logical complexity is allowed between (complex) propositions, however, and it is often better to use (...) (e.g. 'word1 AND NOT (word2 OR word3)' ) to be clear (see the section 'gotchas' below).

A typical ad hoc report will start with the use of AND and OR, and use NOT to take out those things not intended. A simple example of where this works is if one queries:

United States

In this case, the user finds they receive information on all of the United States wildlife refuges as well. To get only (and all) the information on the United States, one can use:

United States NOT wildlife

There are some cases where the method of ad hoc exclusion will be too cumbersome. For instance, if you want a listing of the 'Area' field for all countries, you might try


After hunting and pecking you may realize that what you would need is:

Area AND geography AND NOT (comparative OR land OR water OR waterways)

A better way is to realize that Area is a ranked field (most values contain a [I] next to them, for some integer I). If you want to limit your search to just ranked fields and put them in ranked order, you can use '^', as in


This gives us what we are looking for. If we want to reverse the list and see the smallest countries by area, we use '~', as in


In general, if you want to see only one field you can either supply its full description or it is a rank field and you can use ^ to get what you want. In some rare cases, such as 'Population', you will need to use NOT with ^ to exclude, e.g. 'Population growth rate'.

Note that you can use '^' with any query to limit your search to only ranked fields, and put them in side-by-side ranked order. Also, you can use '~' with any query to reverse the order, not just rank queries. There is one special use of '^' which is in '^+'. We saw this in action before. This query uses the rank index, but does not limit the search to ranked fields. It will give you a side-by-side view of all the fields in the query (fields in alphabetical order by section, category, and field), in ranked order only if the field is ranked. Note that '+' by itself does nothing in this context and ^ should not be used separately if ^+ is used at the same time.

The capacity to customize the ordering and format on reports is limited (requests are welcome), but one can fully customize the information returned in a query. Often, however, one wants a simple refined overview, without full detail. And for this we provide the '<' (less than) operator.

Italy <

It can be used absolutely anywhere in conjunction with the other operators and limits the query to crucial entries (cutting results in about half).


If implicit 'AND' is used, as in 'population society', the parser will parse explicit connectives first. This means that if you say 'Norway imports OR exports', you will get what you are looking for, namely anything related to imports or exports for Norway. If you state 'Norway AND imports OR exports', you will get imports for Norway, and exports for the world! If there is any question, it is better to be explicit and use 'Norway AND ( imports OR exports )'

As of this writing, one cannot write AND, OR, or NOT immediately preceding or after a '(' or ')' without a space. It may feel sensible to write them as operators, like NOT(america) but you must write NOT (america). However, as of this writing, operators are case *insensitive*, meaning 'or' and 'OR', etc. mean the same thing.

If you run a query with a very large result set, you will get unexpected results. If your result set returns 3000 items, we will only consider an arbitrary 2000 of these rows, and then return the top 300 (or bottom 300) from that query. In short, you have to refine your search to roughly either one country or one field (across the world) in size, or some tradeoff between these (say 4 countries and all of Geography). Full comparisons (every field) between two countries using ^+< or ^ are supported, but not necessarily ^+ by itself.

Numerical queries are not accepted at this time.

The Factbook does have the maps... I am working on it :)

Contact and Contributions

If you like this work, want to contribute or need my assistance, write me at cs @at@ atheoryof.com

Go to the top

Basic Examples

  • Start with: world countries continent
  • Choose country: Italy
  • Choose any field in country: Geography : Area - comparative
  • Reduce overload: Italy <
  • Choose category: Italy People <
  • Expand scope: Italy AND (People OR Geography) <
  • Compare: (Italy OR Greece) AND (People OR Geography) ^+
  • Change it up: (Uganda OR Rwanda) AND (people OR transnational) ^+
  • Basics: United States NOT wildlife
  • Basics: GDP parity ^
  • Basics: (Europe OR (United States NOT wildlife)) AND GDP parity ^
  • Basic Guidelines

  • Be precise: don't write 'Tyland'; the suggestion bar may help, but sometimes it won't.
  • When in doubt, be explicit: use ( ) if unsure how the query will be parsed.
  • Put spaces between OR, AND, NOT and parentheses: don't write 'NOT(phrase)', write 'NOT (phrase):
  • Limit results: peruse, but typing 'Economy' won't give you a reliable result; try 'Economy Overview'.
  • Warning: If the result set is too big, you will not get everything from the top, nor (with ~) the bottom.
  • Rule of thumb: we support all fields from one country or one field from all countries, plus trade-offs.
  • Directives

  • '<': indicates that you want a limited, more readily understandable, collection of preset fields from the query
  • '^': indicates that you want to limit your results to ranked fields, ordered by name of field (not country), then rank.
  • '^+' (not '^ +'): indicates you want all fields in query, ordered by name of field (not country), then rank (if available)
  • '~': indicates that you want to reverse the order of results; particularly good for ranked fields, but generally useful.
  • combinations: do not use any symbol '<', '^', '+', '~' twice; '^ ^+' won't work; all other combinations will.
  • Suggestion: put list of directives at the beginning or end of query for assurance of no duplicates and readability.
  • Go to the top