get_wheel_of_innovation
Analyze patent data to visualize technology trends and keyword associations using a two-tiered hierarchical view based on recent publications.
Instructions
Provides a two-tiered hierarchical view of keywords/phrases in a technology space. Identify common terms and their associations. Based on the most recent 5,000 publications. Either keywords or IPC classification must be specified.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | No | Keywords to search within patent title and abstract/summary. Supports AND, OR, NOT logic. Example: "mobile phone AND (screen OR battery)" | |
| ipc | No | Patent IPC classification code. Used to specify a particular technology field. | |
| apply_start_time | No | Patent application start year (yyyy format). Filters by application filing date. | |
| apply_end_time | No | Patent application end year (yyyy format). Filters by application filing date. | |
| public_start_time | No | Patent publication start year (yyyy format). Filters by publication date. | |
| public_end_time | No | Patent publication end year (yyyy format). Filters by publication date. | |
| authority | No | Patent authority code (e.g., CN, US, EP, JP). Filters by patent office. Use OR for multiple, e.g., "US OR EP". | |
| lang | No | Language setting. Default is "en" (English). Choose "cn" (Chinese) or "en". |
Implementation Reference
- src/index.ts:232-238 (handler)The core handler function for the 'get_wheel_of_innovation' tool. It constructs URLSearchParams from input arguments, sets a default language if not provided, and delegates to the shared callPatsnapApi helper function targeting the 'wheel-of-innovation' endpoint.async function getWheelOfInnovation(args: LangPatentArgs): Promise<ServerResult> { const params = buildCommonSearchParams(args); if (!args.lang) { // Add default lang if not provided params.append('lang', 'en'); } return callPatsnapApi('wheel-of-innovation', params, 'get wheel of innovation'); }
- src/index.ts:303-324 (schema)Input schema definitions used by the tool: basePatentInputSchema for common patent search parameters, and langPatentInputSchema extending it with optional 'lang' field.const basePatentInputSchema = { type: 'object' as const, // Use 'as const' for stricter type checking properties: { keywords: { type: 'string', description: 'Keywords to search within patent title and abstract/summary. Supports AND, OR, NOT logic. Example: "mobile phone AND (screen OR battery)"' }, ipc: { type: 'string', description: 'Patent IPC classification code. Used to specify a particular technology field.' }, apply_start_time: { type: 'string', description: 'Patent application start year (yyyy format). Filters by application filing date.' }, apply_end_time: { type: 'string', description: 'Patent application end year (yyyy format). Filters by application filing date.' }, public_start_time: { type: 'string', description: 'Patent publication start year (yyyy format). Filters by publication date.' }, public_end_time: { type: 'string', description: 'Patent publication end year (yyyy format). Filters by publication date.' }, authority: { type: 'string', description: 'Patent authority code (e.g., CN, US, EP, JP). Filters by patent office. Use OR for multiple, e.g., "US OR EP".' } }, // Add a note about requiring keywords or IPC for most tools description: "Requires either 'keywords' or 'ipc' to be specified for a meaningful search. If both are provided, IPC is prioritized by the API." }; const langPatentInputSchema = { ...basePatentInputSchema, properties: { ...basePatentInputSchema.properties, lang: { type: 'string', description: 'Language setting. Default is "en" (English). Choose "cn" (Chinese) or "en".' } } };
- src/index.ts:213-215 (schema)TypeScript type definitions for the tool's input arguments, matching the JSON schemas.type BasePatentArgs = { keywords?: string; ipc?: string; apply_start_time?: string; apply_end_time?: string; public_start_time?: string; public_end_time?: string; authority?: string }; type LangPatentArgs = BasePatentArgs & { lang?: string };
- src/index.ts:346-350 (registration)Registration of the tool in the ListToolsRequestSchema handler, specifying name, description, and input schema.{ name: 'get_wheel_of_innovation', description: 'Provides a two-tiered hierarchical view of keywords/phrases in a technology space. Identify common terms and their associations. Based on the most recent 5,000 publications. Either keywords or IPC classification must be specified.', inputSchema: langPatentInputSchema },
- src/index.ts:393-404 (registration)Dispatch map registering the tool name to its handler function for use in the CallToolRequestSchema handler.const toolImplementations: Record<string, (args: any) => Promise<ServerResult>> = { 'get_patent_trends': getPatentTrends, 'get_word_cloud': getWordCloud, 'get_wheel_of_innovation': getWheelOfInnovation, 'get_top_authorities_of_origin': getTopAuthoritiesOfOrigin, 'get_most_cited_patents': getMostCitedPatents, 'get_top_inventors': getTopInventors, 'get_top_assignees': getTopAssignees, 'get_simple_legal_status': getSimpleLegalStatus, 'get_most_litigated_patents': getMostLitigatedPatents, 'get_portfolio_value_distribution': getPortfolioValueDistribution, // Add new tool here };