Semantic Search Architecture for Software Development Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In software development, finding specific elements within large codebases is challenging due to the size of the codebase, which often results in outdated indexes and lengthy rebuilding processes, making it difficult for developers to locate elements that meet certain search criteria efficiently.

Innovation Solution

A semantic search architecture that leverages semantic element information to return relevant search results without the need for building or maintaining an index ahead of time, using search components specific to each element type and allowing for the inclusion of new elements without updating the index, thereby reducing processing load and improving search result relevancy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If a traditional index-based search architecture is used, then search speed may be improved for existing elements, but the system requires continuous index rebuilding when new elements are added, increasing processing time and memory requirements

Engineering Contradiction:
Improvesearch speedVSAvoidindex rebuilding time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-defining search components for each element type during system initialization. These search components are prepared in advance and stored in a search component store, so when searching is needed, the system can immediately instantiate and use them without requiring index rebuilding. This eliminates the time loss associated with traditional index maintenance while preserving fast search capabilities.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces search components as an intermediary layer between the query parser and the model store. Instead of directly querying a traditional index that requires rebuilding, the system uses these intermediary search components that are instantiated based on element types identified by the query parser. This intermediary mechanism enables fast searching without the need for continuous index maintenance.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If a traditional index-based search architecture is used, then search functionality can be provided, but processing load increases due to index maintenance and rebuilding

Engineering Contradiction:
Improvesearch functionalityVSAvoidprocessing load
Core Design Contradiction:
Ease of operationVSUse of energy by moving object

Solution Approach 1:

The patent segments the search functionality by creating distinct search components for each element type (e.g., form search components, entity search components). Each search component is specialized for a particular element type and contains only the necessary search logic for that type. This segmentation eliminates the need for a monolithic index and its associated maintenance overhead, reducing processing load while preserving comprehensive search functionality across all element types.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the fundamental parameter of how search data is organized and accessed. Instead of using a traditional index structure that requires maintenance, the system transforms search into an instantiation process where search components are created on-demand based on element types. This parameter change from index-based to component-based searching eliminates index maintenance overhead while maintaining search functionality.

Inventive Principle:
Principle #35Parameter changes

3Measurement precision

If semantic element information is leveraged with type-based search constraints, then search result relevancy is enhanced, but device complexity increases due to search component generation and management

Engineering Contradiction:
Improvesearch result relevancyVSAvoidsearch component management
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies universality by creating a standardized search component framework that serves multiple element types. The query parser and search component instantiation mechanism are universal across all element types, providing a consistent interface while handling diverse search requirements. This universal framework reduces the complexity of managing individual search implementations for each element type while maintaining high search result relevancy through type-specific search components.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent uses copying by instantiating search components from templates or definitions stored in the search component store. Instead of maintaining complex, unique search logic for each element type, the system creates copies of standardized search component structures, populating them with type-specific information. This copying approach simplifies management while enabling precise, type-aware searching that enhances result relevancy.

Inventive Principle:
Principle #26Copying

Data Source

PatentEP3149575B1Semantic content accessing in a development system
Publication Date: 2021.10.06 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3149575B1 patent drawingFigure 1
  • EP3149575B1 patent drawingFigure 2
  • EP3149575B1 patent drawingFigure 3

AI summary

A development system comprises, in one example, a development module sensing user development inputs and transforming elements of the computer system based on the user development inputs. The elements comprise types modeled in the computer system. A user interface module generates a user interface display with a user input mechanism, and senses a user search input received through the user input mechanism indicative of a user search query for searching the elements of the computer system. A search engine identifies a type-based search parameter for the user search query. The search engine is controlled to activate a type-based search component based on the type-based search parameter. The type-based search component performs an element search to return a set of search results in the user interface display.