openapi: 3.0.1 info: title: Factset Natural Language Processing API description: >- APIs that leverage Natural Language Processing to help extract meaningful data from unstructured text contact: name: FactSet Research Systems url: https://developer.factset.com/contact email: api@factset.com version: 1.3.0 license: name: Apache License, Version 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 servers: - url: https://api.factset.com/cognitive/nlp/v1 tags: - name: Ner - name: Qna - name: Summarization - name: Themes paths: /themes: post: description: >- Endpoint to extract themes from provided text. Optionally, can include sentiment for each theme extracted. Please check the schema(s) for each of the status codes for more details. operationId: themesExtractThemes requestBody: content: application/json: schema: $ref: '#/components/schemas/ThemesParametersRoot' required: true responses: '202': $ref: '#/components/responses/202' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '500': $ref: '#/components/responses/500' summary: Factset Endpoint to begin theme extraction job tags: - Themes /themes/{id}: get: description: >- Endpoint to obtain the results from the original themes task request. The `id` parameter represents the identifier of the task generated from the POST request which created the task. Once the task is complete, the result can be fetched with this endpoint. operationId: themesGetThemes parameters: - $ref: '#/components/parameters/id' responses: '200': content: application/json: schema: $ref: '#/components/schemas/ThemeSentimentsRoot' description: OK '202': $ref: '#/components/responses/202' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: Factset Endpoint to get a theme (and sentiments if requested) job result tags: - Themes /themes/{id}/status: get: description: >- Endpoint to obtain the completion status of the themes task request. The `id` parameter represents the task. operationId: themesGetStatus parameters: - $ref: '#/components/parameters/id' responses: '201': content: application/json: schema: $ref: '#/components/schemas/TaskRoot' description: Created headers: Location: $ref: '#/components/headers/Location' '202': $ref: '#/components/responses/202' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' summary: Factset Endpoint to get the completion status of a themes job tags: - Themes /summarization/headline: post: parameters: [] operationId: summarizationHeadline requestBody: content: application/json: schema: $ref: '#/components/schemas/SummarizationRequest' responses: '201': content: application/json: schema: $ref: '#/components/schemas/SummarizationResultID' description: Unique Result ID '400': content: application/json: schema: $ref: '#/components/schemas/ValidationError' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/SummarizationHTTPError' description: Access Denied '500': content: application/json: schema: $ref: '#/components/schemas/SummarizationHTTPError' description: Internal Server Error summary: Factset Endpoint to generate a headline from text description: Generate a headline-length summary of plain text tags: - Summarization /summarization/headline-and-summary: post: parameters: [] operationId: summarizationHeadlineAndSummary requestBody: content: application/json: schema: $ref: '#/components/schemas/SummarizationRequest' responses: '201': content: application/json: schema: $ref: '#/components/schemas/SummarizationResultID' description: Unique Result ID '400': content: application/json: schema: $ref: '#/components/schemas/ValidationError' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/SummarizationHTTPError' description: Access Denied '500': content: application/json: schema: $ref: '#/components/schemas/SummarizationHTTPError' description: Internal Server Error summary: Factset Endpoint to summarize and generate a headline from text description: >- Generate both a paragraph-length, and headline-length summary of plain text tags: - Summarization /summarization/summary: post: parameters: [] operationId: summarizationSummary requestBody: content: application/json: schema: $ref: '#/components/schemas/SummarizationRequest' responses: '201': content: application/json: schema: $ref: '#/components/schemas/SummarizationResultID' description: Unique Result ID '400': content: application/json: schema: $ref: '#/components/schemas/ValidationError' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/SummarizationHTTPError' description: Access Denied '500': content: application/json: schema: $ref: '#/components/schemas/SummarizationHTTPError' description: Internal Server Error summary: Factset Endpoint to summarize text description: Generate a paragraph-length summary of plain text tags: - Summarization /ner/entities: post: parameters: [] operationId: nerEntities requestBody: content: application/json: schema: $ref: '#/components/schemas/NERInputSchema' responses: '200': content: application/json: schema: $ref: '#/components/schemas/NERResponseSchema' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/NERResponseSchema' description: Validation error summary: Factset Endpoint to detect entities from text description: Detect entities (People, Places, Organizations, etc.) in plain text tags: - Ner /summarization/result/{resultId}: get: operationId: summarizationResult parameters: - in: path name: resultId required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/SummarizationResult' description: Successful response '400': content: application/json: schema: $ref: '#/components/schemas/HTTPError' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/HTTPError' description: Access Denied '404': content: application/json: schema: $ref: '#/components/schemas/HTTPError' description: Not found '500': content: application/json: schema: $ref: '#/components/schemas/HTTPError' description: Internal Server Error summary: Factset Endpoint to obtain result of a particular summarization job description: >- Retrieve the summarization result from a job started with the other summarization endpoints tags: - Summarization /qna/answers: post: description: >- Endpoint to create a task submission by providing plain text and question(s). The underlying model will answer the question. The created task needs to be polled to obtain the results. Please check the schema(s) for each of the status codes for more details about the task. operationId: qnaPostQuestion parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/QnAAnswerParametersRoot' required: true responses: '202': content: application/json: schema: $ref: '#/components/schemas/TaskRoot' description: Accepted headers: Location: description: >- The `Location` response header indicates the URL to redirect a page to. required: true schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/HTTPErrorRoot' description: >- The browser (or proxy) sent a request that this server could not understand. '401': content: application/json: schema: $ref: '#/components/schemas/HTTPErrorRoot' description: >- The server could not verify that you are authorized to access the URL requested. You either supplied the wrong credentials (e.g. a bad password), or your browser doesn't understand how to supply the credentials required. '500': content: application/json: schema: $ref: '#/components/schemas/HTTPErrorRoot' description: >- The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application. summary: Factset Endpoint to submit a question for answer(s) tags: - Qna /qna/answers/{id}: get: description: >- Endpoint to obtain the results from the original Q&A task request. The `id` parameter represents the identifier from the task and comes from the POST request which created the task. Once the task is complete, the result can be fetched with this endpoint. operationId: qnaGetAnswers parameters: - description: >- Identifier from the Question & Answer task and comes from the POST request which created the task in: path name: id required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/QnAAnswerRoot' description: OK '202': content: application/json: schema: $ref: '#/components/schemas/TaskRoot' description: Accepted headers: Location: description: >- The `Location` response header indicates the URL to redirect a page to. required: true schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/HTTPErrorRoot' description: >- The server could not verify that you are authorized to access the URL requested. You either supplied the wrong credentials (e.g. a bad password), or your browser doesn't understand how to supply the credentials required. '404': content: application/json: schema: $ref: '#/components/schemas/HTTPErrorRoot' description: >- The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again. '500': content: application/json: schema: $ref: '#/components/schemas/HTTPErrorRoot' description: >- The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application. summary: Factset Endpoint to get the answer(s) tags: - Qna /qna/answers/{id}/status: get: description: >- Endpoint to obtain the status of the Q&A task request. The `id` parameter represents the identifier of the task created and comes from the POST request which created the task. operationId: qnaGetStatus parameters: - description: >- Identifier from the Question & Answer task and comes from the POST request which created the task in: path name: id required: true schema: type: string responses: '201': content: application/json: schema: $ref: '#/components/schemas/TaskRoot' description: Created headers: Location: description: >- The `Location` response header indicates the URL to redirect a page to. required: true schema: type: string '202': content: application/json: schema: $ref: '#/components/schemas/TaskRoot' description: Accepted headers: Location: description: >- The `Location` response header indicates the URL to redirect a page to. required: true schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/HTTPErrorRoot' description: >- The server could not verify that you are authorized to access the URL requested. You either supplied the wrong credentials (e.g. a bad password), or your browser doesn't understand how to supply the credentials required. '404': content: application/json: schema: $ref: '#/components/schemas/HTTPErrorRoot' description: >- The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again. '500': content: application/json: schema: $ref: '#/components/schemas/HTTPErrorRoot' description: >- The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application. summary: Factset Endpoint to get the completion status for a Q&A request tags: - Qna components: headers: Location: description: The `Location` response header indicates the URL to redirect a page to. schema: type: string parameters: id: description: Long running task identifier in: path name: id required: true schema: type: string responses: '202': content: application/json: schema: $ref: '#/components/schemas/TaskRoot' description: Accepted headers: Location: $ref: '#/components/headers/Location' '400': content: application/json: schema: $ref: '#/components/schemas/HTTPErrorRoot' description: >- The browser (or proxy) sent a request that this server could not understand. '401': content: application/json: schema: $ref: '#/components/schemas/HTTPErrorRoot' description: >- The server could not verify that you are authorized to access the URL requested. You either supplied the wrong credentials (e.g. a bad password), or your browser doesn't understand how to supply the credentials required. '404': content: application/json: schema: $ref: '#/components/schemas/HTTPErrorRoot' description: >- description: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again. '500': content: application/json: schema: $ref: '#/components/schemas/HTTPErrorRoot' description: >- The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application. schemas: QnAAnswer: description: Schema that defines the answer with a confidence score. properties: answer: description: The machine-generated answer to the question example: Joel Wilson type: string score: description: The confidence score associated to the answer example: 0.8831543922424316 type: number required: - answer - score type: object QnAAnswerParameters: description: >- Schema that defines the parameters needed to be supplied for generating answer(s). properties: input: description: The text input that provides the context example: >2 Matchbox.io Uses Voice-First Games as A Natural Way of Learning matchbox.ioCredit: matchbox.io Alexa and gaming have been rubbing shoulders since day one. From guiding children through LEGO adventures to multi-player trivia games for bored drivers, Voice has proven to be the new frontier of gaming. When voice assistants first bobbed into the mainstream, marketing solution architect and data scientist Joel Wilson immediately saw the potential of Voice not only for games, but for education. He started his venture with the Alexa skill Question of the Day, a simple trivia game that poses a different question each day. Over 4,000 five-star reviews and hundreds of thousands of users later, it has become a routine skill for people happy to learn something new every day. "We're on a mission to enable frictionless learning," Wilson told Amazon. "We've just scratched the surface of how we can do that with voice-first games." Meet matchbox.io In 2017, Wilson founded the voice-first gaming company matchbox.io, dedicated to creating interactive, educational experiences through Amazon Alexa and, more recently, Samsung Bixby. In just a few years, matchbox.io has become a recognized leader in educational games on voice-first devices. With Question of the Day growing into one of the most popular and highest rated skills in the Alexa Skill Store, Wilson and his team of Data Scientists and Education Innovators immersed themselves in helping people learn more about the world through Voice. Before long, they launched another educational skill called Kids Quiz. Kids Quiz poses new questions every day for children ages 5-12, from animals and science to brainteasers and fun facts. They can also collect stars and unlock surprises as they go. Another addition to the matchbox.io repertoire is Three Questions, which provides, well, three questions a day rather than just one. Like their other skills, players can earn points and unlock bonus content. With three successful voice-first experiences under their belt, matchbox.io is marching forward with their mission to leverage Voice to disperse a little bit more knowledge to their users every single day. Why Voice for learning? At this point, the question is almost rhetorical. We've seen games capture the short attention spans of children, teach stubborn students and professionals new skills, and hold the curiosity of busy adults for decades. With Voice, the captivating effect of gaming is multiplied by the prospect of playing with increasingly less effort. There are no controls to untangle (or fight over), no keyboard to pound repeatedly, and no limitation for people with limited vision or mobility. "Voice is the perfect, most accessible interface for gaming," says Wilson in an Amazon blog post. "We can tailor the experience to customers wants and needs, so they can learn something quick, hear more in-depth info about a particular fact, or settle in for an extended game play." With over 6 million users playing his company's voice-first gaming apps, it's clear that the marriage between Voice and traditional learning is set for the long-run. The question now is which gaming companies will take advantage of it. The future of voice-first gaming Using Voice for interactive learning is all well and good, but what about the business side of things? Wilson knows a few things about this too. Feeling confident about their skills' continued popularity, they made a move to monetize them with In-Skill Purchasing (ISP). This feature allows the company to fund the creation of more educational experiences by adding paid, premium content to their apps. This way, they can keep their users engaged while safely sustaining their business. Wilson believes that this is the future of voice-first gaming industry. In his eyes, all you need is a good idea, quality content, and the smarts to know how and when to monetize it. As voice assistants and devices evolve, however, so will the methods to run a successful business with them. But Wilson is already dabbling in new ways to make his passion for learning and gaming a long-term venture. "There's still a lot to be explored with Voice gaming," says Wilson. To learn so much more about Voice and gaming experiences, you'll be excited to know that Wilson will be at VOICE Summit to share design and strategy insights alongside equally bright minds from Gamefuly, Drivetime, and V Group Inc. Don't miss their talk "Gaming in the voice-first era," and make sure you stick around for hundreds more sessions, workshops, expert panels, and our exclusive VOICE Awards dinner. It's the world's largest voice tech event and we're pulling out all the stops. To join us at our annual showdown and have a summer you'll never forget, snatch one of the very last tickets! maxLength: 10000 minLength: 1 type: string numberOfAnswers: default: 2 description: Number of answers for the question example: 2 maximum: 10 minimum: 1 type: integer question: description: Question associated to the provided context example: Who is the founder? maxLength: 1000 minLength: 1 type: string required: - input - question type: object QnAAnswerParametersRoot: description: >- Schema that envelopes the `QnAAnswerParameters` and include additional `meta` (if available). properties: data: $ref: '#/components/schemas/QnAAnswerParameters' meta: description: Any associated metadata type: object required: - data type: object QnAAnswerRoot: description: >- Schema that envelopes the `QnAAnswer` and include additional `meta` (if available). properties: data: items: $ref: '#/components/schemas/QnAAnswer' type: array meta: description: Any associated metadata type: object required: - data type: object ErrorSource: description: Schema that defines the source of the error. properties: parameter: description: >- A string indicating which path or URI query parameter caused the error. type: string pointer: description: More details pointing to the error. type: string required: - parameter - pointer type: object HTTPError: description: Schema that defines HTTP error(s). properties: code: description: HTTP Status Code type: string detail: description: Error detail (if any) type: string id: description: The unique identifier detailing the error(s) format: uuid type: string source: $ref: '#/components/schemas/ErrorSource' title: description: Error title type: string required: - code - id - title type: object HTTPErrorRoot: description: Schema that defines HTTP error(s). properties: errors: description: List of errors items: $ref: '#/components/schemas/HTTPError' type: array required: - errors type: object SummarizationRequest: properties: text: description: The text that needs to be summarized example: >- Advanced Energy Transforms Indoor Farming With Intelligent New Lighting Power and Control System Friday, December 11, 2020 01:00:00 PM (GMT)Innovative technology breaks down barriers to indoor, vertical and greenhouse farming by reducing power consumption, cutting costs and increasing crop yield Advanced Energy (Nasdaq: AEIS) – a global leader in highly engineered, precision power conversion, measurement, and control solutions – today unveiled its newest lighting and power control system for indoor, vertical and greenhouse farming. This press release features multimedia. Advanced Energy's new Artesyn iTS provides the industry's first solution for switching or sharing a single power source between two different rooms. This reduces installation costs by cutting the number of iHP power supplies needed in half and it substantially reduces ongoing utility costs. (Photo: Business Wire)AE's new lighting and power system transforms the use of LED technology in horticultural lighting systems, which plays a fundamental role in cutting-edge farming practices that can address production challenges in food, pharmaceutical ingredients, plants and flowers. Utilizing AE's system, customers reduce their power conversion costs by as much as 50 percent, significantly lower installation and operating costs, and increase the quality of crop yield. "Our groundbreaking lighting, power and control system delivers significant improvements over conventional lighting solutions and opens up new opportunities for the industry," said Joe Voyles, vice president, industrial marketing, at Advanced Energy. "We are transforming our customers' operations by both reducing the amount of needed equipment and improving the efficiency of the lighting systems, thereby reducing cost and energy spend. Not only do these innovative new products increase the efficiency and quality of fruit and vegetable production, but they also open the door to establishing indoor farming facilities in harsh environments anywhere in the world." The new system consists of the patented Artesyn iTS (intelligent Transfer Switch) and iHPS configurable power supply. Alongside Artesyn's compact new 12 kW 300 VDC module, AE delivers a cost-effective platform for the most advanced indoor farming applications. The system is estimated to produce a 38 percent savings to lighting power and control installation cost, while eliminating substantial amounts of wasted energy. The new iHPS is a "short" version of AE's market-leading iHP power supply. The shorter design allows for more space within the lighting and power cabinet for other crucial components, reduces the weight and cost, and increases the life of the system. The new iTS provides the industry's first solution for switching or sharing a single power source between two different rooms. This reduces installation costs by cutting the number of iHP power supplies needed in half and it substantially reduces ongoing utility costs. title: Text type: string required: - text type: object SummarizationResult: properties: headline: description: A short headline generated for the input text. example: >- Advanced Energy unveils new lighting and power control system for indoor, vertical and greenhouse farming. type: string summary: description: The generated summary for the input text. example: >- Advanced Energy unveiled its newest lighting and power control system for indoor, vertical and greenhouse farming. The new system consists of the patented Artesyn iTS (intelligent Transfer Switch) and iHPS power supply. Alongside Artesyn's compact new 12 kW 300 VDC module, AE delivers a cost-effective platform for the most advanced indoor farming applications. The system is estimated to produce a 38 percent savings to lighting power and control installation cost, while eliminating substantial amounts of wasted energy. type: string type: object SummarizationResultID: properties: result_id: description: ID for retrieving the summary result title: ID type: string type: object Task: description: Schema that represents a long-running process/task. properties: id: description: The task identifier example: ca509a4a-2ec9-4770-817a-f1caac18c95c format: uuid type: string startedAt: description: The date time the task started (UTC). example: '2022-10-31T16:31:30.423086' format: date-time type: string status: description: >2- Completion status of the task. The detailed description of each of the statuses is as follows: |Status|Description| |--|--| |queued|The task did not start yet.| |created|The task is completed and the underlying resource is created.| |failed|The task has failed and consequently the creation of the resource failed.| |executing|The task is executing.| |cancelled|The task is cancelled and the creation of the underlying resource was cancelled before it could finish.| enum: - queued - created - failed - executing - cancelled example: queued type: string required: - id - startedAt - status type: object TaskRoot: description: >- Schema that envelopes `Task` and include additional `meta` (if available). properties: data: $ref: '#/components/schemas/Task' meta: description: Any associated metadata type: object required: - data type: object ThemeSentiment: description: Schema that defines the extracted theme and the corresponding sentiments properties: sentiment: description: The sentiment of the theme. enum: - positive - negative - neutral example: positive type: string sentimentScore: description: Confidence score of the sentiment example: 0.9900231957 type: number themeScore: description: The confidence score associated to the theme example: 0.88 type: number themeText: description: The extracted theme as text example: home entertainment results type: string required: - themeScore - themeText type: object ThemeSentimentsRoot: description: >- Schema that envelopes the `ThemeSentiment` and include additional `meta` (if available). properties: data: description: List of themes and their respective sentiments items: $ref: '#/components/schemas/ThemeSentiment' type: array meta: description: Any associated metadata type: object required: - data type: object ThemesParameters: description: Schema that defines the parameters needed to extract themes. properties: includeSentiments: description: Boolean flag indicating inclusion of sentiment for each theme. example: false type: boolean text: description: The text input that provides the context example: >- Studio Entertainment: At Studio Entertainment, operating income decreased in the quarter due to lower theatrical distribution and home entertainment results. Worldwide theatrical results continued to be adversely impacted by COVID-19, as theaters were closed in many key markets both domestically and internationally. With no significant worldwide theatrical releases in the quarter, we faced a difficult comparison against the strong performance of The Lion King and Toy Story 4 in the prior-year quarter. Operating Results: On our last earnings call, we said that we expected Q4 operating results of our DTC businesses to improve by approximately $100mm relative to the prior-year quarter. Our results came in better than that guidance, with operating income at our DTC businesses improving by approximately $300mm vs. the prior year due to better-than-expected performance across all three of our streaming services. I will note that we do not plan to further update any of our subscriber numbers until our Investor Day on December 10 At our International Channels, lower results were due to lower affiliate and advertising revenues, partially offset by a decrease in cost. maxLength: 10000 minLength: 1 type: string required: - includeSentiments - text type: object ThemesParametersRoot: description: >- Schema that envelopes the `ThemesParameters` and include additional `meta` (if available). properties: data: $ref: '#/components/schemas/ThemesParameters' meta: description: Any associated metadata type: object required: - data type: object Error: type: object properties: id: type: string title: type: string detail: type: string code: type: string additionalProperties: false SummarizationHTTPError: properties: detail: type: object message: type: string type: object ValidationError: properties: detail: properties: : properties: : items: type: string type: array type: object type: object message: type: string type: object NERResponseSchema: properties: data: $ref: '#/components/schemas/NEREntityList' errors: items: $ref: '#/components/schemas/Error' type: array meta: description: Any associated metadata type: object type: object NEREntity: properties: associatedOrgs: description: Organizations that are associated with this entity items: $ref: '#/components/schemas/NEROrganization' title: Associated Organizations type: array endChar: description: The index of the last character of the entity text example: 11 title: End Character type: integer entityId: description: The FactSet Entity ID that is linked to this text. example: 0016YD-E title: Entity ID type: string lookupText: description: Name of the FactSet entity that is linked to this text. example: FactSet Research Systems title: Lookup Text type: string lookupUrl: description: A link to the information page for the given entity example: https://.... title: Lookp URL type: string startChar: description: The index of the starting character of the entity text example: 5 title: Start Character type: integer text: description: The substring of the source text that ws found as an entity example: FactSet title: Text type: string type: description: The type of entity (organization, person, etc.) that was found enum: - NE_GPE - NE_ORG - NE_PERSON - NE_NUMBER - NE_MONEY - NE_DATETIME - NE_DRUG - NE_HEALTH_INDICATION example: NE_ORG title: Type type: string required: - endChar - startChar - text - type type: object NERInputDataSchema: properties: enableIdLookup: description: Retrieve Entity IDs using FactSet concordance systems. title: Enable Entity ID Lookup type: boolean filterEntities: description: Drop potentially spurious entities based on filtering rules title: Filter Entities type: boolean text: description: English plain-text from which entities should be retrieved example: >- Phil Snow is the CEO of FactSet Research Systems Inc. (NYSE:FDS), with its headquarter at NORWALK, Conn., Sept. 22, 2015 (GLOBE NEWSWIRE). title: Text type: string required: - text type: object NERInputSchema: properties: data: $ref: '#/components/schemas/NERInputDataSchema' type: object NEROrganization: properties: entityId: description: The FactSet Entity ID that is linked to this organization. example: 0016YD-E title: Entity ID type: string lookupUrl: description: A link to the information page for the given organization example: https://.... title: Lookp URL type: string name: description: The name this organization. example: FactSet Research Systems title: Name type: string type: object NEREntityList: properties: entities: items: $ref: '#/components/schemas/NEREntity' type: array type: object securitySchemes: FactSetOAuth2: type: oauth2 flows: clientCredentials: tokenUrl: https://auth.factset.com/as/token.oauth2 scopes: {} FactSetApiKey: type: http scheme: basic security: - FactSetApiKey: [] - FactSetOAuth2: []