addedInput schema / properties / fan_out
Added value: +{
+ "default": true,
+ "description": "Whether to derive further wordings from the query and ask each archive for the union of what they return. A question written as a sentence returns nothing where every word given has to appear, and the records an index scores highest where it does not, and a spelling of a name is not the only one a catalogue files it under. An archive is asked a derived wording only when the words as asked did not return as many rows as 'limit', so a query that works costs one request. Set false to send exactly the words given. 'per_source' names every wording, sent or not, and each row names the one that returned it.",
+ "type": "boolean"
+}
changedInput schema / properties / media_type / description
Previous value: -"The kind of material, in the vocabulary of whichever archive uses that name. the Internet Archive files texts, movies, audio, image, software, data, web; the Library of Congress files books, photos, maps, audio, film-and-videos, manuscripts, notated-music, newspapers. The names are the union of those vocabularies rather than a shared one, so an archive that does not use the name you give is named as absent rather than asked under another. Naming none leaves an archive that searches every kind unnarrowed and asks an archive that keeps one catalogue per kind for its own default."New value: +"The kind of material, in the vocabulary of whichever archive uses that name. the Internet Archive files texts, movies, audio, image, software, data, web; the Library of Congress files books, photos, maps, audio, film-and-videos, manuscripts, notated-music, newspapers; the Bibliothèque nationale de France files work. The names are the union of those vocabularies rather than a shared one, so an archive that does not use the name you give is named as absent rather than asked under another. Naming none leaves an archive that searches every kind unnarrowed and asks an archive that keeps one catalogue per kind for its own default."
changedInput schema / properties / media_type / enum
Previous value: -[
- "audio",
- "books",
- "data",
- "film-and-videos",
- "image",
- "manuscripts",
- "maps",
- "movies",
- "newspapers",
- "notated-music",
- "photos",
- "software",
- "texts",
- "web"
-]New value: +[
+ "audio",
+ "books",
+ "data",
+ "film-and-videos",
+ "image",
+ "manuscripts",
+ "maps",
+ "movies",
+ "newspapers",
+ "notated-music",
+ "photos",
+ "software",
+ "texts",
+ "web",
+ "work"
+]
changedInput schema / properties / sort / description
Previous value: -"Applied inside each archive. The merged list stays interleaved, because no order runs across archives."New value: +"Applied inside each archive. The merged list stays interleaved, because no order runs across archives. 'oldest' and 'newest' run on a date field carrying a year and no era, and a record stating no date is placed by a stand-in, so neither end of such an order is a claim about age."
changedInput schema / properties / sources / items / enum
Previous value: -[
- "archive",
- "loc"
-]New value: +[
+ "archive",
+ "loc",
+ "bnf"
+]
changedInput schema / properties / year_from / description
Previous value: -"Earliest year, in each archive's own reading of what a year is."New value: +"Earliest year, in each archive's own reading of what a year is. Given with 'year_to', it must not be the later of the two: a range running backwards names no year and is refused rather than read differently by each archive."
changedInput schema / properties / year_to / description
Previous value: -"Latest year, in each archive's own reading of what a year is."New value: +"Latest year, in each archive's own reading of what a year is. It cannot be earlier than 'year_from'."
addedOutput schema / properties / items / items / properties / found_by_derivation
Added value: +{
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "How that wording was arrived at from the question, in words."
+}
addedOutput schema / properties / items / items / properties / found_by_query
Added value: +{
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "The wording this archive was given that returned this row. It is the query as you wrote it unless a further wording was derived, in which case the row answers that wording's words and not the rest of the question."
+}
addedOutput schema / properties / items / items / properties / identifier_provisional
Added value: +{
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "True where the archive itself calls this identifier provisional: it can be replaced once a cataloguer settles the record, so a citation carrying it can stop naming anything. Null on an archive that mints one kind of identifier and says nothing about settling it, which is not the same as an archive stating this one is settled."
+}
changedOutput schema / properties / items / items / properties / online / description
Previous value: -"Whether a digitised copy can be read online. Null on an archive that holds a copy of everything it catalogues and so states nothing."New value: +"Whether a digitised copy can be read online. Null on an archive that states nothing about a copy against a catalogue row."
changedOutput schema / properties / items / items / required
Previous value: -[
- "id",
- "source",
- "source_name",
- "identifier",
- "title",
- "creator",
- "year",
- "date",
- "media_type",
- "source_url",
- "downloads",
- "location",
- "online"
-]New value: +[
+ "id",
+ "source",
+ "source_name",
+ "identifier",
+ "title",
+ "creator",
+ "year",
+ "date",
+ "media_type",
+ "source_url",
+ "downloads",
+ "location",
+ "online",
+ "identifier_provisional",
+ "found_by_query",
+ "found_by_derivation"
+]
changedOutput schema / properties / media_types / items / properties / vocabulary / description
Previous value: -"Every name this archive files material under."New value: +"Every name this archive takes as the 'media_type' argument, which is how its catalogue is divided. The 'media_type' on a row is the word that record carries, and is often none of these."
addedOutput schema / properties / non_word_characters
Added value: +{
+ "description": "Characters in the query that are neither letters nor digits. These catalogues answer on words, so a row here can carry none of them, and 'requires_every_word' covers the words that were given rather than these.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+}
addedOutput schema / properties / per_source / items / properties / attribution
Added value: +{
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "What to say when repeating what this archive contributed, as this archive states it for this answer. An archive whose licence asks for the date its metadata was retrieved carries that date here. Null on an archive that was never asked."
+}
changedOutput schema / properties / per_source / items / properties / corpus / description
Previous value: -"What body of material this archive's full-text index reads."New value: +"What body of material this archive's full-text index reads. Null where this answer did not read it."
addedOutput schema / properties / per_source / items / properties / filters_dropped
Added value: +{
+ "description": "Narrowings you asked for that this archive never received, because its catalogue cannot apply them. Its rows were not narrowed by them, and a row from it that happens to satisfy one is a coincidence rather than a filter. Empty when it received every narrowing asked for.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "because": {
+ "description": "Why this archive never received it.",
+ "type": "string"
+ },
+ "filter": {
+ "description": "The narrowing, named as the argument that carries it.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "filter",
+ "because"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}
addedOutput schema / properties / per_source / items / properties / queries
Added value: +{
+ "description": "Every wording derived for this archive, in the order they were tried, with what each one returned and why any was withheld. Retyping one of them reproduces its rows by hand. Empty on a call that carries no query.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "added": {
+ "anyOf": [
+ {
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Rows this wording contributed that an earlier one had not already returned. Null when it was not sent, or did not answer."
+ },
+ "count": {
+ "anyOf": [
+ {
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Rows the archive returned for this wording. Zero is that wording finding nothing, which is a statement about the wording. Null when it was not sent, or did not answer."
+ },
+ "derivation": {
+ "description": "How this wording was arrived at from the question, in words.",
+ "type": "string"
+ },
+ "error": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "hint": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "code",
+ "message"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Why this wording did not answer. Null when it did, or was never sent."
+ },
+ "not_run_because": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Why it was withheld. Null when it was sent."
+ },
+ "query": {
+ "description": "The words this archive was given, exactly as they were sent.",
+ "type": "string"
+ },
+ "ran": {
+ "description": "Whether it was sent. False means it was derived and withheld.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "query",
+ "derivation",
+ "ran",
+ "count",
+ "added",
+ "not_run_because",
+ "error"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}
addedOutput schema / properties / per_source / items / properties / requires_every_word
Added value: +{
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Whether the index this answer put the words to answers only where every word given appears. It covers the words: a character that is neither a letter nor a digit is not a word to an index, and those are listed in 'non_word_characters' instead. False means the index ranks the words and answers with what it scores highest, so one of its rows can carry only some of them. Null on an archive that was not asked."
+}
addedOutput schema / properties / per_source / items / properties / row_describes
Added value: +{
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "What one row from this archive is: a copy it holds, a record in a catalogue, or a work as an entity whose editions are records of their own. Rows carry the same fields and describe different kinds of thing."
+}
addedOutput schema / properties / per_source / items / properties / searches_on
Added value: +{
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "The fields this archive matched the query against. The archives read different ones, so the same words are not the same question everywhere, and a name given to an index over titles alone comes back as the works written about that person."
+}
removedOutput schema / properties / per_source / items / properties / skipped / anyOf
Removed value: -[
- {
- "maximum": 9007199254740991,
- "minimum": -9007199254740991,
- "type": "integer"
- },
- {
- "type": "null"
- }
-]
changedOutput schema / properties / per_source / items / properties / skipped / description
Previous value: -"Rows this archive sent in a shape the server could not read, and left out. Null on an answer served from a cache that kept the rows and not the count of what was dropped building them."New value: +"Rows this archive sent in a shape the server could not read, and left out of this answer. Always a count, so it reads the same way on every answer. Rows served out of a cache were counted the same way when they were first read, and 'cached' marks an answer whose count can be short of a drop nobody kept a record of."
addedOutput schema / properties / per_source / items / properties / skipped / maximum
Added value: +9007199254740991
addedOutput schema / properties / per_source / items / properties / skipped / minimum
Added value: +-9007199254740991
addedOutput schema / properties / per_source / items / properties / skipped / type
Added value: +"integer"
changedOutput schema / properties / per_source / items / required
Previous value: -[
- "source",
- "name",
- "status",
- "stage",
- "absent_because",
- "count",
- "reported_total",
- "reported_total_means",
- "skipped",
- "more_on_this_archive",
- "ordered_on",
- "media_type_asked",
- "year_means",
- "publishes_page_number",
- "corpus",
- "cached",
- "error"
-]New value: +[
+ "source",
+ "name",
+ "status",
+ "stage",
+ "absent_because",
+ "count",
+ "reported_total",
+ "reported_total_means",
+ "skipped",
+ "more_on_this_archive",
+ "ordered_on",
+ "media_type_asked",
+ "attribution",
+ "searches_on",
+ "row_describes",
+ "filters_dropped",
+ "queries",
+ "year_means",
+ "publishes_page_number",
+ "corpus",
+ "requires_every_word",
+ "cached",
+ "error"
+]
addedOutput schema / properties / queries_run
Added value: +{
+ "description": "Requests this server sent for this answer, counting every wording on every archive. Each archive's own wordings are in 'per_source'.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+}
changedOutput schema / required
Previous value: -[
- "query",
- "page",
- "items",
- "item_count",
- "per_source",
- "media_types",
- "order",
- "notes"
-]New value: +[
+ "query",
+ "page",
+ "items",
+ "item_count",
+ "per_source",
+ "queries_run",
+ "media_types",
+ "non_word_characters",
+ "order",
+ "notes"
+]