graph LR classDef actor stroke:#4e4403,fill:#fdde29,color:#4e4403,rx:5px,ry:5px; classDef object stroke:#2C5D98,fill:#2C5D98,color:white,rx:5px,ry:5px; classDef note stroke:#2C5D98,fill:#D8FDFF,color:#2C5D98,rx:5px,ry:5px; classDef thing stroke:#2C5D98,fill:#D0E5FF,color:#2C5D98,rx:5px,ry:5px; classDef literal stroke:black,fill:#f0f0e0,color:black,rx:2px,ry:2px,max-width:100px; subgraph NewSimpleIIIFDiscoverySystem ["New Simple IIIF Discovery System"] O0("Results formatters") class O0 actor; O1("Standard IIIF Viewers#-2") class O1 object; O0["Results formatters"] -- passes data to -->O1["Standard IIIF Viewers"] O2("Formatters would be simple generic pieces of code to take the results and pass then into a given viewer - this could be done as the page is built when using something like php, or it could be more dynamically using javascript") class O2 note; O0["Results formatters"] -- has note -->O2["Formatters would be simple generic pieces of code to take
the results and pass then into a given viewer - this could
be done as the page is built when using something like php,
or it could be more dynamically using javascript"] O3("Simple IIIF Discovery") class O3 thing; O3["Simple IIIF Discovery"] -- could also define or describe -->O0["Results formatters"] O4("API Inputs") class O4 object; O3["Simple IIIF Discovery"] -- defines inputs -->O4["API Inputs"] O5("API Results") class O5 object; O3["Simple IIIF Discovery"] -- returns -->O5["API Results"] O6("Does not need to define or limit the data structure of any database behind a linked API, just the structure of the expected inputs and the type and format of the results") class O6 note; O3["Simple IIIF Discovery"] -- has note -->O6["Does not need to define or limit the data structure of any
database behind a linked API, just the structure of the
expected inputs and the type and format of the results"] subgraph DetailsoftheAPIInputs ["Details of the API Inputs"] O7("search") class O7 stuff; O4["API Inputs"] -- requires -->O7["search"] O8("limit") class O8 stuff; O4["API Inputs"] -- optional -->O8["limit"] O9("from") class O9 stuff; O4["API Inputs"] -- optional -->O9["from"] O10("URI GET variables") class O10 literal; O4["API Inputs"] -- formatted as -->O10["URI GET variables"] O11("Simple keyword to act as the basis of a search - this could be developed to allow phrases or simple AND and OR combinations, but this would not be needed") class O11 note; O7["search"] -- has note -->O11["Simple keyword to act as the basis of a search - this could
be developed to allow phrases or simple AND and OR
combinations, but this would not be needed"] O12("the limit and from values are used to work with large sets of results, and act as a limit on the number of results returned for a given call and indicate where that number of results should start from relative to the total number of results") class O12 note; O8["limit"] -- has note -->O12["the limit and from values are used to work with large sets
of results, and act as a limit on the number of results
returned for a given call and indicate where that number of
results should start from relative to the total number of
results"] O9["from"] -- has note -->O12["the limit and from values are used to work with large sets
of results, and act as a limit on the number of results
returned for a given call and indicate where that number of
results should start from relative to the total number of
results"] end subgraph DetailsoftheAPIResults ["Details of the API Results"] O13("limit#-1") class O13 stuff; O5["API Results"] -- includes -->O13["limit"] O14("from#-1") class O14 stuff; O5["API Results"] -- includes -->O14["from"] O15("limited#-1") class O15 stuff; O5["API Results"] -- includes -->O15["limited"] O16("total#-1") class O16 stuff; O5["API Results"] -- includes -->O16["total"] O17("search#-1") class O17 stuff; O5["API Results"] -- includes -->O17["search"] O18("results") class O18 object; O5["API Results"] -- includes -->O18["results"] O19("comment") class O19 stuff; O5["API Results"] -- includes -->O19["comment"] O20("altIDs") class O20 stuff; O5["API Results"] -- includes -->O20["altIDs"] O21("JSON") class O21 literal; O5["API Results"] -- formatted as -->O21["JSON"] O22("A record of the actual value used in the search") class O22 note; O13["limit"] -- has note -->O22["A record of the actual value used in the search"] O14["from"] -- has note -->O22["A record of the actual value used in the search"] O23("A boolean value to indicate if the returned number of results has been limited") class O23 note; O15["limited"] -- has note -->O23["A boolean value to indicate if the returned number of
results has been limited"] O24("The total number of possible results that could be returned for a given search") class O24 note; O16["total"] -- has note -->O24["The total number of possible results that could be returned
for a given search"] O17["search"] -- has note -->O22["A record of the actual value used in the search"] O25("info") class O25 stuff; O18["results"] -- includes -->O25["info"] O26("manifests") class O26 stuff; O18["results"] -- includes -->O26["manifests"] O27("A simple list of IIIF info.json URLs") class O27 note; O25["info"] -- has note -->O27["A simple list of IIIF info.json URLs"] O28("manifest") class O28 object; O29("A simple list of IIIF manifest URLs") class O29 note; O28["manifest"] -- has note -->O29["A simple list of IIIF manifest URLs"] O30("A text description or comment related to the results, specific to any given API") class O30 note; O19["comment"] -- has note -->O30["A text description or comment related to the results,
specific to any given API"] O31("An optional list of IDs used to help the searching for individual images") class O31 note; O20["altIDs"] -- has note -->O31["An optional list of IDs used to help the searching for
individual images"] end end ;