# Glossary ### Annotation A piece of documentation within a [search strategy](#search-strategy). See: [Docs > Strategies > Annotating a Strategy](../strategies/index.html#annotating-a-strategy) ### API Acronym for Application Programming Interface: a software intermediary that allows two applications to talk to each other. In the context of Spinque Desk it means the set of [API endpoints](#api-endpoint) that make up a service. For a typical search application there may be the following endpoints: an autocomplete, a search, a type-facet, an author-facet and a recommender endpoint. This set works as a whole; the service isn't complete if one of the endpoints in the set is not available. An active API is tied to a specific version of the data: each endpoint will yield information from the same version of the data (all endpoints will upgrade simultaneously). See: [Docs > APIs](../apis/index.html) ### API Endpoint A component of an [API](#api) that forms a touchpoint in the communication with other systems. In Spinque Desk API endpoints are tied to [search strategies](#search-strategy) to expose their functionality to the outside world. An API endpoint is part of a Spinque request URL: ``` https://rest.spinque.com/4/{WORKSPACE}/api/{API}/e/{ENDPOINT}/p/{PARAMETER}/{VALUE}/results ``` In the example below the 'search' endpoint of the 'movies' API is requested to return results for the query 'pulp fiction': ``` https://rest.spinque.com/4/fliques/api/movies/e/search/p/query/pulp%20fiction/results ``` See: [Docs > APIs > Endpoints](../apis/#endpoints) ### API Output The marker that defines which output connector in a strategy is selected as the output of the strategy as a whole: ![API Output](/images/strategy_editor_09_API_Output.png) See: [Docs > Strategies > Setting the Output of a Strategy](../strategies/#setting-the-output-of-a-strategy) ### API Template A pattern an [API Endpoint](#api-endpoint) or a [search strategy](#search-strategy) conforms to. It denotes the parameter(s) it expects and the type of output it returns. It can be found in the overview of endpoints within an API: ![API template](/images/api-template.png) and in the toolbar of the strategy editor: ![API template](/images/strategy_editor_11_API_Template.png) In this case the endpoint/strategy expects the parameter 'query' of type STRING and returns results of type OBJ, an object from the database. See: [Docs > APIs](../apis/index.html), [Docs > Strategies > Defining the API template](../strategies/index.html#defining-the-api-template) ### Attribute In context of a [graph](#graph): a [triple](#triple) specifying a Literal value for a property. (not a relation between 2 nodes). ### Block A constituent part of a [search strategy](#search-strategy). Each block performs an operation on the [knowledge graph](#knowledge-graph): filtering, ranking, transforming, combining, matching, etc. By combining blocks operations of a higher complexity can be defined. Blocks are combined by connecting the [output connector](#output-connector) of one block to the [input connector](#input-connector) of another block. Under the hood a block contains a [SpinQL](#spinql) snippet that defines how the [probabilistic graph database](#probabilistic-graph-database) should be queried in order to achieve the desired result. ### Block Group A set of blocks doing a specific subtask within a [search strategy](#search-strategy). ### Cache Temporary space used for making [strategies](#search-strategy)/[APIs](#api) execute faster. ### Class The specification of a [concept](#concept). ### Column Store (Database) A type of database that stores data using a column oriented model. They are very scalable and fast to load and query and therefore suitable for powering search engines. ### Commit An immutable instance of a [Strategy Document](#strategy-document). ### Compiler Depending on the context it can mean a block->spinql compiler, a spinql->sql compiler or a sql->mal compiler. Usually we mean the spinql->sql compiler, which determines how to execute a [search strategy](#search-strategy) and what to add to the [cache](#cache) to make execution most efficient. ### Concept A mental representation of a category of objects in a certain [domain](#domain). ### Connector A small circle at the top of a block ([input connector](#input-connector)) or at the bottom of a block ([output connector](#output-connector)) that allows blocks of matching data types to be connected to each other. ![Connector](/images/glossary_connector.png) *The output connector of a Datasets block being connected to the input connector of a Filter by Class block* See: [Connecting Building Blocks](../strategies/index.html#connecting-building-blocks) ### Container Describes how to access external data that needs to be loaded. May be flat files (like csv, xml or json, XLSX), but also allows access to remote data (for example JDBC) or compressed contents. ### Data Schema The description of how data is organized in a database. In the case of a relational database it defines, for example the tables, their fields and the relations between them. See: [Knowledge Graph](#knowledge-graph) ### Dataset A collection of data represented as a [knowledge graph](#knowledge-graph). ### Data Pipeline A combination of [data sources](#data-source) and their [mappings](#mapping). ### Data Silo A data system that is incompatible or not integrated with other data systems. Data silos arise within organizations when different applications are used in the day-to-day business, that each store data in application-specific proprietary formats. As a consequence data is not adequately shared and remains trapped within a container like grain within a silo. ### Data Source Data in its raw form. Obtained either through files (like CSV, XML, JSON or XLSX) or through protocols (HTTP, JDBC). ### Design Sprint A [sprint](#sprint) with a focus on [understanding](#understand-phase) the (search) problems of an organisation and exploring ways to solve them. See: [https://spinque.com/services/design-sprint/](https://spinque.com/services/design-sprint/), [Develop Sprint](#develop-sprint) ### Design Thinking A design methodology to solve complex problems. User needs form the starting point of an iterative process in which a solution (product or service) is created. Taking a user-centric approach while creating solutions ensures designers are solving actual problems of users instead of assumed problems of non-users. Design thinking comprises three distinct phases ([understand](#understand-phase), [explore](#explore-phase) and [materialize](#materialize-phase)). ### Develop Sprint A [sprint](#sprint) with a focus on [exploring](#explore-phase) ways to solve known (search) problems and [materializing](#materialize-phase) them. See: [https://spinque.com/services/develop-sprint/] (https://spinque.com/services/develop-sprint/), [Design Sprint](#design-sprint) ### Domain A particular subject area on which an application is intended to apply. ### Edge The relation between two [objects](#object) in a [graph](#graph). See: [Predicate](#predicate) ### Endpoint See: [API Endpoint](#api-endpoint) ### Entity The instantiation of a [class](#class). In other words: an [object](#object) within the [domain](#domain) such as a document, a fact or a product. ### Exploratory search A [search task](#search-task) people perform to find material dealing with a particular subject. See: [Known-item search](#known-item-search) ### Explore phase The second phase of a [design thinking](#design-thinking) iteration in which designers *ideate* about ways to solve (search) problems that were identified in the [understand phase](#understand-phase) and create a *prototype* based on the most promising solution(s). ### Graph A (data) structure consisting of [nodes](#node) (or entities / items / objects / points / resources / vertices) and [edges](#edge) (or attributes / links / lines / relations) between them. ### Graph Database A database that uses graph structures like [nodes](#nodes), [edges](#edges) and properties to represent and store data. See: [triplestore](#triplestore) ### Information Need The type of [concept](#concept) a user needs to complete a [(work) task](#work-task) or to satisfy the curiosity of the mind, independent of the method used to address the need, and regardless of whether the need is satisfied or not. ### Information Retrieval The computer science field that studies how information objects are obtained from a collection in response to an [information need](#information-need) that is expressed by a user. Results are typically ranked on the relevance of the information object to the expressed information need. ### Information Specialist A person that is responsible for gathering, managing and disseminating data within organizations. Information Specialists have [domain](#domain) knowledge and are well-aware of the information that is available within an organization and its quality. In addition they have a good understanding of the tasks that users perform with the use of data, of the challenges they encounter in their work and how search might help. Information specialists together with users can best determine which items a search application should return and in what order. ### Input Connector A small circle at the top of a block that indicates what type of data a block can have as input. An input connector can be connected to an [output connector](#output-connector) of another block if their data types match. Depending on the block these can be one or more [output connectors](#output-connector). If an input connector is connected to an [output connector](#output-connector) this results in data entering the block and being transformed by the operation defined for the block. ![Input Connector](/images/glossary_input_connector.png) *The input connector of a Filter by Class block* See: [Connector](#connector), [Connecting Building Blocks](../strategies/index.html#connecting-building-blocks) ### Knowledge Graph A model that integrates data by storing concepts/entities/resources as [linked data](#linked-data) [triples](#triples). As such, Knowledge Graphs do not have a fixed [data schema](#data-schema) and can be used to link any type of data, tiny or large, internal or external, [structured](#structured-data), [semi-structured](#semi-structured-data) or [unstructured](#unstructured-data) together into one rich model of a [domain](#domain). ### Known-item search A [search task](#search-task) people perform to find a particular [entity](#entity) they know exists. See: [Exploratory search](#exploratory-search) ### Linked Data (LD) Data that is identified by [Uniform Resource Identifiers (URIs)](#uri). By identifying data this way, the meaning of data can be determined by looking up the URI and data from different sources can be integrated based on the URI. See: [RDF](#rdf), [Triple](#triple), [https://www.w3.org/DesignIssues/LinkedData.html](https://www.w3.org/DesignIssues/LinkedData.html) ### Linked Open Data (LOD) Linked Data which is released under an open license, which does not impede its reuse for free. See: [https://www.w3.org/DesignIssues/LinkedData.html](https://www.w3.org/DesignIssues/LinkedData.html) ### Loading The process of ad-hoc populating the [knowledge graph](#knowledge-graph) (running the [pipelines](#data-pipeline)). ### Mapping The definition of how to map/interpret data in a [pipeline](#pipeline) to the [knowledge graph](#knowledge-graph) constituents. ### Materialize phase The third and final phase of a [design thinking](#design-thinking) iteration in which designers let users *test* the prototype they've built in the [explore phase](#explore-phase) and *implement* the tested solution to structurally improve the experience of the users. ### Node An object in a [graph](#graph). See: [edge](#edge) ### Optimize (a Strategy) Prepare a [strategy](#search-strategy) for efficient execution. ### Object The name of the third entity/resource in a [triple](#triple). See: [Subject](#subject), [Predicate](#predicate), [Property](#property) ### Output Connector A small circle at the bottom of a block that indicates what type of data a block can have as output. An output connector can be connected to an [input connector](#input-connector) of another block if their data types match. An output connector can be connected to multiple [input connectors](#input-connector). If an output connector is connected to an [input connector](#input-connector) this results in data flowing to the connected block. ![Output Connector](/images/glossary_output_connector.png) *The output connector of a Datasets block* See: [Connector](#connector), [Connecting Building Blocks](../strategies/#connecting-building-blocks) ### Parameter A setting within a [block](#block) or an input for an [API endpoint](#api-endpoint). ### Predicate The name of the second entity in a [triple](#triple) denoting the relation between the first and the third [entity](#entity). See: [Subject](#subject), [Object](#object), [Property](#property), [Relation](#relation) ### Probabilistic Graph Database (PGD) A database that stores [graph](#graph) data and a probability estimate for every [node](#node) and every [edge](#edge). Essentially a [triplestore](#triplestore) extended with a probability for every [triple](#triple). This extension allows for the fusion of selecting and ranking: when selecting [structured data](#structured-data) from a database, one is presented with certain answers from facts; the probability estimates will be equal to one or zero. When ranking [unstructured data](#unstructured-data), computers will never be certain about the degree of relevance of the result - here, the answer to a query is really a series of *probable* answers, produced by one ranking algorithm or another. The PGD stores facts with a probability of 1 and ranked results with a probability estimate that expresses their *relevance*. See: [SpinQL](#SpinQL) ### RDF The Resource Description Framework: a data model that specifies how [triples](#triple) can be stored. ### RDF store See: [Triplestore](#triplestore) ### Relation A connection/[edge](#edge) between two [nodes](#node). ### Query Language A computer language that is used to query a database. ### Search Design The design process in which [design thinking](#design-thinking) is applied to the creation of search solutions. ### Search Strategy A combination of [blocks](#block) in Spinque Desk. A search strategy results in a desired ranking of the [entities](#entity) in a [knowledge graph](#knowledge-graph). Under the hood the constituent [SpinQL](#spinql) snippets that make up the blocks define one complex SpinQL query that selects and ranks the desired entities in the [probabilistic graph database](#probabilistic-graph-database-pgd). ### Search Task An activity people perform to gather information using information systems. While designing a search application, search designers interview users about their most important search tasks. They then include these in the backlog of the application. See: [Seeking Task](#seeking-task), [Task](#task), [Work Task](#work-task) ### Seeking Task An activity people perform to gather information using various sources such as people, paper-based documents, information systems, etc. See: [Search Task](#search-task), [Task](#task), [Work Task](#work-task) ### Semi-Structured Data Data that is described by markup. It doesn't conform to the strict structure of a relational database but enforces hierarchies of records and fields within the data. Examples are XML and JSON. See: [Structured Data](#structured-data), [Unstructured Data](#unstructured-data) ### Snapshot A version of a strategy that was explicitly named and saved to be used by an [API endpoint](#api-endpoint) or to be reverted to. See: [Saving a Version of a Strategy](../strategies/#saving-a-version-of-a-strategy) ### SpinQL The query language Spinque developed to query the [probabilistic graph database](#probabilistic-graph-database-pgd) (PGD). For all operations on the PGD it has been defined how to compute the resulting probabilities using SpinQL. SpinQL thus combines and propagates probabilities allowing the fusion of selecting and ranking. ### SQL Structured Query Language: the computer language that is used for managing data in a relational database. ### Stacked Strategy A [Search Strategy](#search-strategy) that takes the output of another Search Strategy as its input. See: [Stacking Strategies](../strategies/#stacking-strategies) ### Strategy See: [Search Strategy](#search-strategy) ### Strategy Document The implementation of a [search strategy](#search-strategy). ### Strategy Parameter A parameter that is used within a strategy that can be filled in with a real value on demand. See: [Docs > Strategies > Adding a strategy parameter](../strategies/#adding-a-strategy-parameter) ### Structured Data Data that is stored in tables (typically in relational databases, spreadsheets, csv’s etc.). It is often quantitative data, such as numbers and dates. Other examples are phone numbers, zip codes and customer names. See: [Semi-Structured Data](#semi-structured-data), [Unstructured Data](#unstructured-data) ### Subject The name of the first entity/resource in a [triple](#triple). See: [Predicate](#predicate), [Object](#object), [Property](#property) ### Task An activity people perform to accomplish a goal. See: [Search Task](#search-task), [Seeking Task](#seeking-task), [Work Task](#work-task) ### Template See: [API Template](#api-template) ### Test An instantiation of one or more [strategy parameters](#strategy-parameter). If for example a strategy parameter 'query' is defined, a test could be 'tarantino'. This simulates the case where the user of a movie site would search for 'tarantino'. For a test to be used for a strategy it must match its [API Template](#api-template). ### Testset A list of [tests](#test). ### Triple A constituent part of a [knowledge graph](#knowledge-graph) of the form [subject](#subject) - [predicate](#predicate) - [object](#object). One resource (the subject) is connected to another resource (the object) via a relation (the predicate). ### Triplestore (Or RDF store): a purpose-built database for the storage and retrieval of [triples](#triple). ### Understand phase The first phase of a [design thinking](#design-thinking) iteration in which designers get to know an organization, *empathize* with the users and *define* their most pressing problem(s). ### Unstructured Data Data that is stored in its native format. Even though it may have an internal structure, it's not structured in a predefined way. Unstructured data is often qualitative data, such as customer surveys and interviews. Other examples are text files, multimedia content and e-mail. See: [Semi-Structured Data](#semi-structured-data), [Structured Data](#structured-data) ### URI Acronym for Uniform Resource Identifier: a unique sequence of characters that identifies a resource used by web technologies. ### Workspace A closed environment within Spinque Desk in which designers can create [datasets](#dataset), [pipelines](#data-pipeline), [strategies](#search-strategy), [APIs](#api), testsets. ### Work Task An activity people perform to fulfill the responsibility for their work. See: [Search Task](#search-task), [Seeking Task](#seeking-task), [Task](#task) ### XML Fragment A (relatively small) piece of data (ideally no more than a few megabytes) coming from a container to be processed by the load process. A container specifies the size of the XML Fragment. Often Container's provide mechanisms to influence the size of an XML Fragment.