WO2017061902A1 - System and method for processing requests in projects - Google Patents

System and method for processing requests in projects Download PDF

Info

Publication number
WO2017061902A1
WO2017061902A1 PCT/RU2016/000204 RU2016000204W WO2017061902A1 WO 2017061902 A1 WO2017061902 A1 WO 2017061902A1 RU 2016000204 W RU2016000204 W RU 2016000204W WO 2017061902 A1 WO2017061902 A1 WO 2017061902A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
axioms
context
triples
rules
Prior art date
Application number
PCT/RU2016/000204
Other languages
French (fr)
Russian (ru)
Inventor
Максим Викторович ЦЫПЛЯЕВ
Петр Евгеньевич ВОЛЫНСКИЙ
Original Assignee
Общество с ограниченной ответственностью "Колловэар"
Максим Викторович ЦЫПЛЯЕВ
Петр Евгеньевич ВОЛЫНСКИЙ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "Колловэар", Максим Викторович ЦЫПЛЯЕВ, Петр Евгеньевич ВОЛЫНСКИЙ filed Critical Общество с ограниченной ответственностью "Колловэар"
Publication of WO2017061902A1 publication Critical patent/WO2017061902A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Definitions

  • the present invention relates to the management of business processes, and more specifically, to a unified architecture and a single syntactic structure for presenting business process data and managing and monitoring business processes.
  • Business process management is an increasingly popular area of research and modern software development. To date, there is no unified mechanism for the convenient presentation of data and the context of business process data.
  • most software vendors provide one piece of the puzzle, such as CRM (Customer Relationship Management), invoice tracking, order tracking, Gantt chart software.
  • CRM Customer Relationship Management
  • Many suppliers in this area are relatively small companies and, as a rule, a software product grows out of their own initial need to solve a specific problem, and the product is often associated with a specific view of the supplier on the world.
  • Semantic network see FIG. 1 includes XML standards and tools, XML schemas, RDF, RDF schemas, and OWL, which are organized on the Semantic Web Stack.
  • OWL Web Ontology Language Description describes the functionality and relationship of each of these components of the semantic network stack
  • XML provides an elementary syntax for the structure of content within documents, and associates non-semantic with the meaning of the content contained in them.
  • An XML schema is a language for providing and restricting the structure and content of elements contained in XML documents.
  • RDF is a simple data model description language that refers to objects ("resources”) and their relationships.
  • An RDF-based model can be represented in XML syntax.
  • the RDF schema extends RDF and is a dictionary for describing properties and classes of RDF-based resources with the semantics of generalized hierarchies of such properties and classes.
  • OWL illustrates an additional vocabulary for describing properties and classes: in particular, relationships between classes (for example, non-intersection), cardinality (for example, "exactly one"), equality, a rich set of properties, characteristics of properties (for example, symmetry) and enumerated classes.
  • SUBSTITUTE SHEET (RULE 26) Accordingly, a unified architecture is needed that would allow business enterprises to easily present the context for business analysis in business processes that occurs within the enterprise and provide an easy mechanism for interaction between users, representing various aspects of the business and stored data in the business model.
  • FIG. 1 illustrates a semantic network stack
  • FIG. 2. illustrates a fragment of the semantic network, which includes a family of descriptive languages, including XML, XML Schema, RDF, RDF Schema, OWL.
  • FIG. 3 illustrates an RDF graph of a triple.
  • FIG. 4 illustrates the application of semantic network concepts in the architecture described here.
  • FIG. 5 illustrates a fragment of a semantic network using the Comindware language.
  • FIG. 6 illustrates an exemplary system architecture.
  • FIG. 7 illustrates an example of various business applications used in various departments of a company in an exemplary embodiment.
  • FIG. 8 illustrates a data processing algorithm according to one embodiment of the invention.
  • FIG. 9 illustrates the details of the algorithm for working with axioms and rules.
  • FIG. 10 illustrates various operations with axioms, including conjunctions and disjunctions.
  • FIG. 11 illustrates an example of the application of the principles described herein.
  • FIG. 12 illustrates a diagram of a typical computer system that may be used to practice the invention.
  • FIG. 13 shows a primary data source in models.
  • FIG. 14 shows the logical organization of a database module.
  • FIG. 15 shows the basic elements for client-side database management.
  • FIG. 16 demonstrates ontologies.
  • FIG. 17 and FIG. 18 show various ways of partitioning databases.
  • N3-CHHT3KCHC will look like this: ex: index.html dc: creator exstaff: 85740. ex: index.html exterms: creation-date "August 16, 1999”. ex: index.html dc: language "en”.
  • the XML syntax is much more detailed than the ES syntax, however, it is easier to process by computers.
  • the triple is the basic unit of the RDF Resource Description Environment (RDF) and consists of a Subject, a Predicate and an Object.
  • RDF Resource Description Environment
  • a set of triples is usually called an RDF graph, an example of which is shown in FIG. 3.
  • the direction of the arrow in any three taken indicates from the Subject to the Object (http: ** en.wikipedia.org/wiki/Resource_Description_Framework).
  • the subject in the RDF statement is either a Unified Resource Identifier (URI) or an empty node, both of which define resources. Resources represented by an empty node are called anonymous resources. They are not directly identified from RDF statements.
  • a predicate is a URI that also indicates a resource that represents a relationship.
  • An object is a URI, an empty node, or a Unicode string literal.
  • SUBSTITUTE SHEET (RULE 26) is thereby what will be used in this application for processing information from various sources.
  • the semantic stack used in this application includes CmwL (Comindware language) 401, RDF circuit 403, RDF 405, N3 circuit 407 and N3 notation.
  • CmwL Cosmetic language
  • RDF circuit 403, RDF 405, N3 circuit 407 and N3 notation The main idea here is that OWL is replaced by a special Comindware language, which is a limited version of OWL in order to improve performance and get rid of functionality and operations that are not necessary for the purpose of modeling business processes (however, it uses the OWL dictionary and some of its rules )
  • SUBSTITUTE SHEET (RULE 26) Thanks to the use of RDF (resource description environment), it is possible to work with various data sources (databases, data warehouses that can be local, in a corporate environment or located on the Internet). It is possible to use a common URI dictionary, thereby allowing the integration of data from various sources. Also, based on data and rules, it is possible to provide data on the fly (unlike static slices, as is done in OLAP cubes).
  • RDF resource description environment
  • An example of the data sources that may be presented in this content is a database server (or some other type of storage), which serves as the personnel department for storing data about new employees.
  • the same data can be used by the IT department to add a user to the corporate network. Also, the same data can be used by the accounting department to make salary payments.
  • the servers can be either local (on the corporate network) or remote, for example, accessible via a global computer network or via the Internet. It is also worth noting that if one of the servers is offline, this will not affect the correctness of the data.
  • the server of the IT department is offline when the new employee is added to the HR department, then as soon as the IT server is online again, thanks to the RD department, the same people will be reflected in both business applications.
  • the email shown in the drawing is necessary not only to inform the other department about the addition of a new employee, but also to synchronize the terminology.
  • a human resources department a person is an employee, for an IT department, a user, for an accounting department, a recipient of money.
  • Data can also be taken from a web page or, for example, from any source identified by a URI.
  • any information described by RDF can be used, for example, the rule can say "something" from “source” - source: something - this is st ⁇ l: “our thing” http: ** www.w3.org / 2000/10 / swap / doc / Reach)
  • each business application can have its own server.
  • OK human resources management system
  • BUHG accounting system
  • IT information technology - Support Service
  • Accounting creates an employee with attributes related to his employment - salary, type of compensation, for example, hourly, monthly, etc., social security number, etc.
  • the IT department creates a user account with attributes that are relevant to the IT department - such as access rights to internal resources of the company, equipment / computer transferred to the employee, license fees for software installed on the user's computer, etc.
  • These three departments have their respective applications shown in FIG. 7 illustrating the human resources department and application 701,
  • SUBSTITUTE SHEET (RULE 26) accounting and application 703 and the IT department and application 705.
  • the global can be represented as an engine that represents the data context for a specific business application, 707, so it can aggregate all the information from all business applications and generate contextualized information related to the employee (as well as to other employees).
  • On the left in FIG. 6 there is an information pool that can be stored in various databases or other storages.
  • 707 is an element that allows contextualized business information to be displayed for a particular application.
  • “Global” is an entity for representing data in the specific context of a business application.
  • the context can be considered as the environment of a particular event, object or individual, which determines the interpretation of data and actions / operations on data in a particular situation.
  • the context determines the data processing method in a particular situation. For example, someone's email address can be considered login information in one context and as contact information in a user profile in another context; it can be used as the requesting party in the application for technical support in the third context - it all depends on the interpretation of the data.
  • FIG. 6 illustrates an implemented method of accessing any data store when using a URI and to present data in a specific context.
  • an enterprise may have several servers with databases 601A, 601B, ... 601N.
  • SUBSTITUTE SHEET (RULE 26) An enterprise can also connect to other database servers, for example, through a global computer network or via the Internet, see database servers 603A, 603B, ... 603N.
  • Storage layer 605 provides the engine with requested data from a particular storage.
  • the provided data 609 can be divided into user data in the form of axioms (facts) 607 and ontologies (also represented as axioms, but which can be recognized by the N3 syntax).
  • 611 contains information about what and how should be presented to a specific user in a particular Business application.
  • 611, 607 and 611 are processed by the Core and the result of processing is 613 -
  • the engine (The engine is part of the kernel), which can represent data in a specific context (615) in accordance with ontologies.
  • ontology data for example, data that describes the entities that are affected
  • ontology data for example, data that describes the entities that are affected
  • business applications for example, project management, issue tracking, bug tracking, CRM, etc.
  • Each of them is stored in its own database (or, alternatively, in a common database) and combined at a higher level.
  • the logical core it is possible to combine various data in various combinations and sets of ontologies, for example: using certain ontologies, the developer can see the context for representing the error declared by the QA as a task assigned to it, in other words, it is possible to track which task each specific error relates to, over which work is being done.
  • OLAP is a common technique for generating reports and various statistical documents. OLAP cubes are often used by analysts to quickly process complex database queries, and they are especially common in marketing reports, sales reports, data analysis, and so on. The reason OLAP cubes are so common is because of the speed with which processing can be performed. Relational databases store information about various entities in separate tables, which are usually well normalized. This structure is convenient for most database operating systems, but complex multi-table queries are usually difficult to quickly complete.
  • a good model for such queries is a table built using facts from OLAP cubes. Cube metadata is typically created from the star or snowflake schema of relational database tables. http: ** en.wikipedia.org/wiki/OLAP#Concept
  • OLAP slices a relational database at a particular point in time and structures it into a spatial model for queries.
  • OLAP structures generated from operational data are called OLAP cubes.
  • a cube is generated by combining tables using a snowflake or star pattern.
  • At the center of the star schema is a fact table containing key facts used to generate queries.
  • OLAP cubes contain master data and spatial information (aggregates). Potentially, the cube contains all the information that may be required to answer or respond to requests. Therefore, in order to analyze the information, it is necessary to generate slices of the cube (represented by tables). For example, you can look at different two-dimensional slices of a cube by moving the “position” of the slice vertically and horizontally in the cube, as well as opening and closing levels inside the cube.
  • the difficulty of using OLAP as a methodology is to generate queries, select the baseline data, and generate the appropriate schema, which is the reason why most modern OLAP products usually come with a lot of predefined queries.
  • OLAP cubes Another problem is the basic knowledge of the OLAP cube, which must be complete and consistent.
  • the main problem with OLAP cubes is that the analysis process usually requires re-creating the cube itself or frequently generating slices.
  • the proposed approach advantageously allows the regeneration of data representation on the fly without the difficulties of predefining and preliminary generating queries.
  • the business layer requests data from the kernel
  • the logical core collects data from various sources
  • the logical core recognizes the nature of the data and divides the data into axioms and rules.
  • the engine necessary to fulfill the request of the business layer collects compiled rules together (for example, in C # code, although the invention is not limited to any particular language).
  • the engine may have rules that were compiled and compiled earlier, as well as new rules for rules that have not yet been processed. Thus, compilation should only be done for new rules. Therefore, the kernel does not need to constantly work with data, but only to address data in response to requests from the business layer;
  • the kernel returns the requested data to the business layer.
  • FIG. 8 illustrates a data processing algorithm according to one embodiment of the invention.
  • the business layer requests data from the kernel (step 803).
  • step 805 data is received from the storage, and in step 807, the data is divided into axioms and rules.
  • step 811 user data that is stored as facts (607 in FIG. 6) is received from the repository and divided into rules (809) and axiom data (808).
  • step 811 the existing rules are checked. If the rule exists, in step 813, then the rules and engine are used (step 819). Otherwise, after step 813, the new rules are compiled (step 815). After that, new rules are added to the engine (step 817). Then the system starts working with the Engine with the new rules inclusive (step 819).
  • step 821 the axioms are processed by the engine. Requested (step 823) new axioms (data required for a specific context) resulting from the processing of the Engine. The kernel returns the requested data (provides the user with the requested context) (step 825). The process ends in step 827.
  • FIG. 9 illustrates the algorithm for working with the axioms and rules of the Kernel with a specific example (FIG. 9 illustrates the “request processing by the Kernel” block with FIG. 8).
  • the data obtained in step 903 from the source is identified by the RDF URI.
  • the data is divided into Axioms 907 and rules 909 in step 905.
  • the engine is prepared by compiling the Rules.
  • the original axioms (User data) are processed by the Engine.
  • new Axioms are accepted (e.g., contextualized data for a particular presentation of the data).
  • the process ends.
  • a rule such as a filter is often used in cases of a tracker, for example, obtaining a list of calls / errors / tasks of a support service for a specific user and a specific project with specific attributes.
  • a rule such as a filter is often used in cases of a tracker, for example, obtaining a list of calls / errors / tasks of a support service for a specific user and a specific project with specific attributes.
  • it is necessary to filter information from a common pool of tasks / errors / requests for a specific user and project and present them as separate axioms.
  • Converting rules relate to the same information that might otherwise be presented.
  • the IT department sees people as users of an IT system.
  • the project manager can consider the same users as resources working on specific tasks.
  • transformative rules may include the following: at the input, data (axioms) are obtained that describe a specific application (for example, requests from a specific user) and the presentation of this data. Therefore, the input engine will accept axioms in the form of a specific user interface filled with data.
  • rule types is a generating rule. For example, in a specific project containing more than 50% of critical errors and more than 50% of critical tasks, the system automatically generates a fact about the status of the project (for example, the status of the project will be displayed as "Critical").
  • the information is converted from the bug tracker and from the project management task to the data for the ABC project.
  • axioms An example of a conjunction of axioms is most often one of the easiest to understand examples. For example, when combining information related to project requirements (axiom “requirements” - requirements defined by analysts) and errors from a bug tracker (axiom “errors” - errors identified by testers, who are usually quality control specialists, and entered into forms tracking errors based on certain requirements), the results of the "resulting axiom", as a rule, are a combination of how many errors are associated with one functional requirement.
  • step 1001 the data is received " or any store identified by the URI in step 1003.
  • step 1007 axiom 1 is identified.
  • step 1005 axiom 2 is identified, etc.
  • step 1009 the axioms are processed, see the result in “Resulting Axioms" (step 1011). The process ends in step 1013.
  • Another illustrative example is the use of the semantic network concepts and notational / syntactic approximation described here to describe the production process of a toy car.
  • a toy car manufacturing uses a tracker to track the state of assembly changes.
  • the axioms are related to any data received by the system in the form of a triple (subject, predicate, object).
  • wheels for a jeep wheel for a truck are: wheels for a jeep wheel for a truck
  • the rules in this case have a similar appearance and may look something like this: ⁇ ?
  • This rule written in N3 syntax, means that if something (X) is a wheel belonging to car Y, and Z is the suspension of car Y, then their combination will be a chassis for Y. In this manner, all other rules will be formulated . As specific examples, the following rules can be created:
  • Truck Chassis combine with Truck body -> Truck
  • all the axioms and rules are in the repository, and when a user working with the business layer of the system performs a certain action (for example, he collects the wheels and the Jeep suspension together, and wants to make changes to the tracking system, for example, a toy assembly tracker, which is assembly tracking, in other words, an alternative representation in the form of case management), the business layer (see 607-609) sends the request to the kernel and the kernel 607-613 performs calculations.
  • a certain action for example, he collects the wheels and the Jeep suspension together, and wants to make changes to the tracking system, for example, a toy assembly tracker, which is assembly tracking, in other words, an alternative representation in the form of case management
  • the business layer sends the request to the kernel and the kernel 607-613 performs calculations.
  • case 123 has:
  • the body is ready
  • N3 is selected taking into account the main actions performed by the system, in this example, a syntactic notation, which means that all data stored in a specific format is defined by this notation.
  • CmwL means that the user's own predicate can be used to describe the system, how it works, etc.
  • prefix is the place where specific predicates are formed.
  • “belongs” - is cmw (short for http: //www.comindware.eom/logics#, and which may contain the necessary logic, that is, CmwL (Cmw language), while common the syntax is N3. Therefore, in the example of the production of a toy car, there is special data describing this case. Therefore, the engine (see FIG. 6) can take data from the storage layer, where, using N3 notations, axioms and rules are stated. The engine can parse the rules and based on the parse of the rules can receive data for working with the system, t .e. the business application that is currently being used.
  • the N3 rule can be used by the engine to provide contextualized data for a specific business application for modification and further work on it.
  • the advantage compared to OLAP cubes, is that this information can be presented as a “slice” at any time without the need for recompilation - the information has already been parsed, and there is no need to parse or compile it again.
  • the accounting department to calculate the proceeds from all collected toy cars of a particular seller, it is enough to take already compiled information about the collected cars and apply rules to it that filter information based on the employee’s identity. In other words, there is no need to recompile, it is only necessary to change the presentation of information. (See the example below about Formula 1.)
  • the example with F1 is illustrative.
  • Engineer / Pilot enters the system and works with tasks (tasks may look like: the chassis assembly is assigned to a specific engineer or test a car to drive several laps before the Canadian Grand Prix is assigned to Michael Schumacher)
  • a pilot can only use one prepared vehicle (in N3 it may look like an example with a toy car)
  • the kernel parses the data after receiving a request from the Business layer and compiles it into the Engine (based on the analyzed rules). Therefore, the compiled engine knows how to display information for a specific request (in other words, depending on the context,
  • SUBSTITUTE SHEET (RULE 26) presentation of information may vary).
  • the kernel compiles additional rules for the Engine only if a specific rule has not been previously parsed before.
  • the task tracker for the mechanics servicing the car to track its readiness for the race knows that the engineers are authorized, the engine provides users with information when a person is a user (for example, the owner of a task) and that the part is a resource.
  • the engine presents information in a specific context, in this case, presenting information to mechanics.
  • a slice is a query for a specific “fact table” that requires the user to reconfigure the slice each time the user needs to change any field in the fact table because they have a relational database (for example, the pilot change field as a resource for the pilot in the form user in the fact table).
  • the proposed architecture configures on the fly because it does not have duplicate data.
  • the Comindware ® database uses an internal binary format to store axioms and rules.
  • the storage is optimized for quick search and getting axioms.
  • the following data types are supported for any part of the axiom triple (subject, predicate or object):
  • U I - corresponds to the URI in the definition of the RDF graph.
  • Unicode string literal - contains a Unicode string of arbitrary length Integer literal - Contains a 32-bit integer
  • SUBSTITUTE SHEET (RULE 26) Decimal literal - Contains a 128-bit number. This data type is intended for financial and monetary calculations.
  • Duration literal - Contains a time interval (e.g. 4 hours)
  • N3 Lists An ordered collection of names or literals. For example (red: blue: orange)
  • any type of data anywhere in the top three can be used in the Comindware Database. For example,
  • Rules are stored as axioms with the following structure.
  • a subject is a formula containing a logical conjunction of triples, including rules of logic.
  • the subject is a formula containing triples of effect.
  • Comindware ® language extensions are a set of built-in predicates in addition to those defined by RDF (log namespace). Comindware ® extensions are located in the "assert" namespace:
  • a car is beautiful if its type is a convertible and the color is red OR blue. assert: c4eT. Counts matching statements and returns a number.
  • data can be partitioned between databases in one of the following ways to achieve data isolation and context.
  • Each application has its own database that stores data processed by the application.
  • An application context provides access to application data to a specific application. The data of another application is not available in this database.
  • the global context provides data access to many applications. This context can be used for reporting and statistics.
  • each user has his own database of personal data with personal data.
  • a separate database can be used for shared data.
  • the user data context combines the user database with a common database to allow the user access to personal and shared data.
  • the global context can access all users' data for reporting, statistics, and administrative tasks.
  • each database contains data (business applications) of a particular type.
  • data business applications
  • a separate database for tracking orders and a database for order history can be used.
  • SUBSTITUTE SHEET (RULE 26) information about all users, another for tasks and a third for calendar events.
  • a simple context containing only the most frequently used data of a particular type is used for most queries, while a full context containing all data types is used only in rare complex queries.
  • users mainly work with orders and only in rare cases request a history of orders.
  • a combined approach is possible. For example, there may be databases for each data type and an untyped database for each user with personal data.
  • Any database can be divided into several smaller databases.
  • a model can be a combination of several data sources, such as databases and / or ontology files.
  • a model is an effective data context that provides an interface for accessing data from multiple databases and other data sources. Within a single transaction, all changes are performed for only one database, even when data is stored in several databases. In one embodiment, there are four main data sources, see FIG. 13:
  • FIG. 14 is a block diagram of a database device.
  • the database module has 3 main functional layers:
  • a wrapper layer implemented, for example, in C #.
  • the wrapper is responsible for converting the data to the format used by the next layer.
  • An access layer implemented, for example, in C ++, which is responsible for the logical connections between data stored in databases.
  • a B-tree storage layer that stores current user data in the form of a B-tree.
  • FIG. 14 also shows the main components for each layer and how the implementation distributes the components between the layers.
  • the client-side user database stores data in N3 format.
  • the database module allows users to manage their data on a client computer, even with limited access to the server or without access to the server at all. This reduces the load on the server and allows the user to change, add, receive and modify data on the fly.
  • SUBSTITUTE SHEET (RULE 26) As a rule, large packets are used to transfer data to the server and to process and publish data on the server. How Since the same format is used on the client side and on the server side, there is no need to convert data between the client and server.
  • FIG. fifteen On the client side there are three main elements for database management, see FIG. fifteen:
  • the storage layer consists of the following components:
  • the triple memory model is the main component that controls other components. It provides basic, low-level mechanisms for adding, editing, deleting, and retrieving data.
  • a dictionary is a list of “words” that can be any constant, for example, “My favorite movie” or “May 12, 2013”, or “25.4”. Each word in the dictionary has a unique Identifier and is accessed by index.
  • a hash dictionary is a reverse dictionary that provides access to an index by word.
  • Link counter is a subcomponent for storing links for each word. Each time a word is used in a specific context, the counter is incremented by one. When a word is deleted, the counter decreases.
  • the subject-predicate-object coordinate system can be used to represent context or facts as points in three-dimensional space. For example, consider three facts: “Peter likes cars,” “Peter likes fishing,” and “Jason likes fishing.” Probably, all the words used in these facts are already in the dictionary and the corresponding indices are already known, for example, (Peter, 0), (Like, 1), (cars, 2), (fishing, 3), (Jason, 4 ) Then the facts can be represented as (0, 1, 2), (0, 1, 3), (4, 1, 3).
  • the subject-predicate-object coordinate system represents a similar concept except that the facts are written in the reverse order for further access to the objects.
  • the data acquisition layer includes the following components:
  • the “brain controller” provides an open interface for data acquisition functions. It allows the user to work with simple and simplified queries through the mechanism of the Processor of the Matcher of the Sequences.
  • the Sequencer Comparison processor provides functionality for processing matching sequences using the output parameters from previous matches as input parameters for the next sequence. Also
  • SUBSTITUTE SHEET (RULE 26) recursive processing is supported, for example, "What does Peter like, what does Jason also like?” (in natural language or “Does Peter like? x. Jason likes? x; Compare? x” in a more formal language), the result will be “fishing” in the above example, as well as filtering (for example, additional conditions for matches, for example, "who likes fishing and whose phone number starts at 212?"
  • Predicate Subject Matching allows the user to retrieve data based on a known subject and predicate. For example, based on the above facts, the brain controller may ask, “What does Peter like?” In a more formal presentation, the parameters “Peter” and “like” can be transferred to the Matcher of Subjects-Predicates, which will collect all the facts containing “Peter like ...” in the form of subjects and predicates. In this example, the result would be: "Peter likes cars and fishing.”
  • Matching Predicate Objects deals with other matches, such as queries such as "who likes fishing?" In this case, the verb “like” and the object “fishing” are known. The result will be “Peter likes fishing. Jason likes fishing.”
  • Subject Matching is a component similar to those described above, but it uses only the subject as an input parameter.
  • the Object Matcher is a component similar to those described above, but it uses an object as an input parameter.
  • the logic layer includes application logic, for example, rules, restrictions, description of business objects and their properties. Its main components are:
  • the entity controller is an open interface for creating, deleting, and retrieving business object data. He works with property ontologies, entity ontologies, a triple memory model, the Brain Controller, as well as with various models of business objects.
  • API methods of the logic layer - usually of two types - requests and operations. Queries are designed to obtain data from the database (s) of data. Operations are intended for data modification. After changes to the database systems (for example, the user data database) during the operation, the changes are analyzed to determine whether they should be reflected in the history - user fields and some system fields are selected and then sent to a special object called the history keeper, which is responsible for recording change histories in the corresponding database and combining records for each object history.
  • the history keeper which is responsible for recording change histories in the corresponding database and combining records for each object history.
  • Entries may be in string format:
  • Type of change create, edit, comment, etc.
  • the records in the history database can be combined into one record.
  • the history keeper sets an internal list of links to the latest changes for each object.
  • the entity ontology has a tree structure that describes what properties a business object has and describes the relationships between the objects.
  • an ontology defines the Project business object and lists all of its properties, such as Start Date or Title.
  • a property ontology is a catalog of all the possible properties in the system, together with their types and other attributes, for example, in a format, for example, the "Start date” property is of the "date” type and of the "month / day / year” format.
  • the Task Logic Model is a structure that includes rules and restrictions for customization and access to the task properties of a business object.
  • the rule might be "If the completion date of the task is shifted and the task is part of the project, then the completion date of the project is also shifted.”
  • the system object model usually reflects the component model described above.
  • a specific controller Upon receipt of a request to one of the web API methods, a specific controller performs the requested action and returns the desired result.
  • the results can be in any format suitable for further processing, for example, in the form of trees, graphs, lists, tables, text, JSON objects, or in any other format defined by the user.
  • Comindware provides an ontology for describing metadata similar to specific OWLs and RDFSs.
  • the following ontology describes itself as defined in its own expressions. This ontology introduces the concept of Class and Property.
  • a class is a collection of metadata that describes a particular data type.
  • the class has the following attributes:
  • a set of properties defined by a property predicate A set of properties defined by a property predicate.
  • Parent class Indicates that this class inherits a set of properties from the specified parent class.
  • SUBSTITUTE SHEET (RULE 26)
  • the property describes a specific predicate and constraints for statements that use a predicate.
  • the property has the following attributes: PropertyName - a string that defines the name of the property, how it is displayed to the user Description
  • Properties - a string that defines the description of the property, how it is displayed to the user
  • Type of Property - indicates the class to which the property attributes should belong - determines the number or restrictions of the property values. Possible limitations: mandatory - the value for this predicate must be present in the instance of the multiValue class. Value - There may be several statements with given subjects and predicates, but with different objects. If not defined, then an instance can contain only one or zero statements (objects) with a given predicate.
  • cmw Knacc a cmw: toiacc. sbsh: Class
  • SPGS and CMW Properties Class. sgsh: parentCgt TM class: attributesCmw properties: multipleValue.
  • cmw nMfl ⁇ acca cmw: TnnCBoftcrBa xsd: cTpoKa.
  • sggs attributes Properties sgs: attributes attributes st ⁇ l: multiValue.
  • a typical system for implementing the invention includes a multi-purpose computing device in the form of a computer 20 or a server including a processor 21, a system memory 22, and a system bus 23 that couples various system components, including the system memory to the processor 21.
  • the system bus 23 may be any of various types of bus structures, including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
  • System memory includes read-only memory (ROM) 24 and random access memory (RAM) 25.
  • ROM 24 stores the basic input / output system 26 (BIOS), consisting of basic routines that help exchange information between elements within the computer 20, for example, at the time of launch.
  • BIOS basic input / output system 26
  • Computing device 20 may also include a hard disk drive 27 for reading from and writing to a hard disk, not shown, a magnetic disk drive 28 for reading from or writing to a removable magnetic disk 29, and an optical disk drive 30 for reading from or recording to a removable optical disc 31 such as a CD, a digital video disc, and other optical means.
  • a hard disk drive 27 for reading from and writing to a hard disk, not shown
  • a magnetic disk drive 28 for reading from or writing to a removable magnetic disk 29
  • an optical disk drive 30 for reading from or recording to a removable optical disc 31 such as a CD, a digital video disc, and other optical means.
  • the hard disk drive 27, the magnetic disk drive 28, and the optical disk drive 30 are connected to the system bus 23 by means of the hard disk drive interface 32, the magnetic disk drive interface 33, and the optical drive interface 34, respectively.
  • Storage devices and their respective computer-readable means provide non-volatile storage of computer-readable instructions, data structures, program modules and other data for computer 20.
  • Computer 20 includes a file system 36 associated with or included with the operating system 35 or more software application 37, other program modules 38, and program data 39. A user can enter commands and information into a computer 20
  • SUBSTITUTE SHEET (RULE 26) using input devices, such as a keyboard 40 and pointing device 42.
  • Other input devices may include a microphone, joystick, gamepad, satellite dish, scanner, or any other.
  • serial port interface 46 that is connected to the system bus, but can be connected via other interfaces, such as a parallel port, game port, or universal serial bus (USB).
  • a monitor 47 or other type of visual display device is also connected to the system bus 23 via an interface, such as a video adapter 48.
  • Computing device 20 may operate in a networked environment through logical connections to one or more remote computers 49.
  • the remote computer (or computers) 49 may be another computer, server, router, network PC, peer-to-peer device or other node of a single network, as well as usually includes most or all of the elements described above with respect to computer 20, although only an information storage device 50 is shown.
  • Logical connections include a local area network (LAN) 51 and a global computer yuternuyu network (SCS) 52.
  • LAN local area network
  • SCS global computer yuternuyu network
  • Such networking environments are usually common in offices, enterprise-wide computer networks, intranets and the Internet.
  • the computer 20 used in the LAN network environment is connected to the local area network 51 via a network interface or adapter 53.
  • the computer 20 used in the GC network environment typically uses a modem 54 or other means to establish communication with the global computer network 52, such as the Internet.
  • the modem 54 which may be internal or external, is connected to the system bus 23 via the serial port interface 46.
  • program modules or parts thereof described with reference to computer 20 may be stored on a remote information storage device. It should be noted that the network connections shown are typical, and other means may be used to establish communication communication between computers.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Educational Administration (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Claimed is a computer-embedded method for processing business data, which includes storing data in SPO (subject-predicate-object) triple format in a plurality of databases; using a data persistence layer to connect to several databases, wherein data consists of rules and an axiom and axioms represent user data; the rules and axioms are stored in SPO format; at least one ontology, representing a combination of at least several rules and axioms, said combination representing a certain interpretation of the data; a data persistence layer which allows the user to work with data stored in different databases simultaneously; converting user data according to a context provided by a business application, working with defined objects and ontologies, wherein a context is defined by a concrete ontology; carrying out operations according to triggers determined by rules; generating new data in the same context; processing requests for data conversion; and displaying data to the user.

Description

СИСТЕМА И СПОСОБ ОБРАБОТКИ ЗАПРОСОВ В ПРОЕКТАХ  SYSTEM AND METHOD OF PROCESSING REQUEST FOR PROJECTS
Настоящее изобретение относится к управлению бизнес-процессами, а более конкретно, к унифицированной архитектуре и единой синтаксической конструкции для представления данных бизнес-процесса и управлению и отслеживанию бизнес-процессов. Управление бизнес- процессами является все более популярной областью исследований и современной разработки программного обеспечения. На сегодняшний день не существует унифицированного механизма для удобного представления данных и контекста данных бизнес-процессов. Как правило, большинство поставщиков программного обеспечения предоставляют одну часть "головоломки", например, CRM (систему управления взаимоотношениями с клиентами), отслеживание счетов, отслеживание заказов, программное обеспечение с диаграммой Ганта. Многие поставщики в данной области являются относительно небольшими компаниями и, как правило, программный продукт вырастает из их собственной начальной необходимости решить конкретную задачу, и продукт часто связан с конкретным взглядом поставщика на мир. The present invention relates to the management of business processes, and more specifically, to a unified architecture and a single syntactic structure for presenting business process data and managing and monitoring business processes. Business process management is an increasingly popular area of research and modern software development. To date, there is no unified mechanism for the convenient presentation of data and the context of business process data. Typically, most software vendors provide one piece of the puzzle, such as CRM (Customer Relationship Management), invoice tracking, order tracking, Gantt chart software. Many suppliers in this area are relatively small companies and, as a rule, a software product grows out of their own initial need to solve a specific problem, and the product is often associated with a specific view of the supplier on the world.
Для типичных деловых предприятий необходимо покупать и интегрировать несколько частей программного обеспечения, например, программное обеспечение для управления проектами обычно не "разговаривает" с бухгалтерским программных обеспечением. Программное обеспечение управления взаимоотношениями с клиентами не разговаривает с программным обеспечением по заказу запчастей и так далее. Кроме того, большая часть таких пакетов программного обеспечения обладает ограниченными возможностями изменять или менять способ предоставления данных пользователю. Зачастую в качестве движка используются реляционные базы данных с вытекающими ограниченными возможностями ручного добавления полей в базу данных. Однако для большинства конечных пользователей необходимость смены "прямого" представления данных представляет реальную сложность и часто требует найма консультантов или дополнительного ИТ-персонала.  For typical business enterprises, it is necessary to buy and integrate several pieces of software, for example, project management software usually does not "talk" with accounting software. Customer Relationship Management software does not talk with spare parts ordering software and so on. In addition, most of these software packages have limited ability to change or change the way data is presented to the user. Often, relational databases are used as the engine with the resulting limited ability to manually add fields to the database. However, for most end users, the need to change the “direct” presentation of the data is a real challenge and often requires hiring consultants or additional IT staff.
Семантическая сеть, см. ФИГ. 1, включает стандарты и инструменты XML, XML схемы, RDF, RDF схемы и OWL, которые организованы в Стек Семантической Сети. Описание Языка Веб Онтологии OWL описывает функционал и связь каждого из этих компонентов стека семантической сети  Semantic network, see FIG. 1 includes XML standards and tools, XML schemas, RDF, RDF schemas, and OWL, which are organized on the Semantic Web Stack. OWL Web Ontology Language Description describes the functionality and relationship of each of these components of the semantic network stack
XML обеспечивает элементарный синтаксис структуры содержания внутри документов, и ассоциирует несемантическое со значением содержащегося в них содержимого.  XML provides an elementary syntax for the structure of content within documents, and associates non-semantic with the meaning of the content contained in them.
XML схема является языком предоставления и ограничения структуры и содержимого элементов, содержащихся в XML документах.  An XML schema is a language for providing and restricting the structure and content of elements contained in XML documents.
RDF является простым языком описания моделей данных, который относится к объектам ("ресурсам") и их связям. Основанная на RDF модель может быть представлена в XML синтаксисе.  RDF is a simple data model description language that refers to objects ("resources") and their relationships. An RDF-based model can be represented in XML syntax.
RDF схема расширяет RDF и является словарем для описания свойств и классов основанных на RDF ресурсов с семантикой обобщенных иерархий таких свойств и классов. The RDF schema extends RDF and is a dictionary for describing properties and classes of RDF-based resources with the semantics of generalized hierarchies of such properties and classes.
OWL (см. ФИГ. 2) иллюстрирует дополнительный словарь для описания свойств и классов: в частности, связей между классами (например, непересечения), кардинальности (например, "точно один"), равенства, богатый набор свойств, характеристики свойств (например, симметрию) и перечисляемые классы.  OWL (see FIG. 2) illustrates an additional vocabulary for describing properties and classes: in particular, relationships between classes (for example, non-intersection), cardinality (for example, "exactly one"), equality, a rich set of properties, characteristics of properties (for example, symmetry) and enumerated classes.
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) Соответственно, необходима унифицированная архитектура, которая позволяла бы деловым предприятиям с легкостью представлять контекст для бизнес-анализа в бизнес- процессах, который возникает внутри предприятия, и предоставлять легкий механизм взаимодействия между пользователями, представляя различные аспекты, бизнеса и хранимые данные в бизнес-модели. SUBSTITUTE SHEET (RULE 26) Accordingly, a unified architecture is needed that would allow business enterprises to easily present the context for business analysis in business processes that occurs within the enterprise and provide an easy mechanism for interaction between users, representing various aspects of the business and stored data in the business model.
На чертежах: In the drawings:
ФИГ. 1 иллюстрирует стек семантической сети. FIG. 1 illustrates a semantic network stack.
ФИГ. 2. иллюстрирует фрагмент семантической сети, которая включает семейство описательных языков, включая XML, XML схему, RDF, RDF схему, OWL. FIG. 2. illustrates a fragment of the semantic network, which includes a family of descriptive languages, including XML, XML Schema, RDF, RDF Schema, OWL.
ФИГ. 3 иллюстрирует граф RDF тройки. FIG. 3 illustrates an RDF graph of a triple.
ФИГ. 4 иллюстрирует применение понятий семантической сети в описанной здесь архитектуре. FIG. 4 illustrates the application of semantic network concepts in the architecture described here.
ФИГ. 5 иллюстрирует фрагмент семантической сети, использующей язык Comindware. ФИГ. 6 иллюстрирует примерную архитектуру системы. FIG. 5 illustrates a fragment of a semantic network using the Comindware language. FIG. 6 illustrates an exemplary system architecture.
ФИГ. 7 иллюстрирует пример различных бизнес-приложений, используемых в различных отделах компании в примерном варианте. FIG. 7 illustrates an example of various business applications used in various departments of a company in an exemplary embodiment.
ФИГ. 8 иллюстрирует алгоритм обработки данных согласно одному воплощению изобретения. FIG. 8 illustrates a data processing algorithm according to one embodiment of the invention.
ФИГ. 9 иллюстрирует подробности алгоритма работы с аксиомами и правилами. FIG. 9 illustrates the details of the algorithm for working with axioms and rules.
ФИГ. 10 иллюстрирует различные операции с аксиомами, включая конъюнкции и дизъюнкции. FIG. 10 illustrates various operations with axioms, including conjunctions and disjunctions.
ФИГ. 11 иллюстрирует пример применения описанных здесь принципов.  FIG. 11 illustrates an example of the application of the principles described herein.
ФИГ. 12 иллюстрирует схему типичной компьютерной системы, которая может быть использована для осуществления изобретения.  FIG. 12 illustrates a diagram of a typical computer system that may be used to practice the invention.
ФИГ. 13 демонстрирует основной источник данных в моделях. FIG. 13 shows a primary data source in models.
ФИГ. 14 демонстрирует логическую организацию модуля базы данных. FIG. 14 shows the logical organization of a database module.
ФИГ. 15 демонстрирует основные элементы для управления базой данных на стороне клиента. FIG. 15 shows the basic elements for client-side database management.
ФИГ. 16 демонстрирует онтологии. FIG. 16 demonstrates ontologies.
ФИГ. 17 и ФИГ. 18 демонстрируют различные способы секционирования баз данных. FIG. 17 and FIG. 18 show various ways of partitioning databases.
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) Ниже приведены два примера представления RDF-графов в XML-формате (который зачастую наиболее удобен для компьютерной обработки) и в виде Ν-троек или N3 (которые используются в настоящем подходе и которые наиболее удобны для понимания человеком). SUBSTITUTE SHEET (RULE 26) Below are two examples of representing RDF graphs in XML format (which is often most convenient for computer processing) and in the form of тро-triples or N3 (which are used in this approach and which are most convenient for human understanding).
XML-синтаксис: XML syntax:
<?xml version="1.0"?> <? xml version = "1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/l.l/" xmlns:exterms="http://www.example.org/terms/"> <rdf: RDF xmlns: rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns: dc = "http://purl.org/dc/elements/ll / "xmlns: exterms =" http://www.example.org/terms/ ">
<rdf: Description rdf:about="http://www.example.org/index.html"> <rdf: Description rdf: about = "http://www.example.org/index.html">
<exterms:creation-date>August 16, 1999</exterms:creation-date> <exterms: creation-date> August 16, 1999 </ exterms: creation-date>
</rdf:Description> </ rdf: Description>
<rdf: Description rdf:about="http://www. example.org/index.html"> <rdf: Description rdf: about = "http: // www. example.org/index.html">
<dc:language>en</dc:language> <dc: language> en </ dc: language>
</rdf:Description> </ rdf: Description>
</rdf:RDF> </ rdf: RDF>
N3-CHHT3KCHC будет выглядеть следующим образом: ex:index.html dc:creator exstaff:85740 . ex:index.html exterms:creation-date "August 16, 1999" . ex:index.html dc:language "en". N3-CHHT3KCHC will look like this: ex: index.html dc: creator exstaff: 85740. ex: index.html exterms: creation-date "August 16, 1999". ex: index.html dc: language "en".
Таким образом, XML-синтаксис намного подробней ЫЗ-синтаксиса, однако он легче обрабатывается компьютерами.  Thus, the XML syntax is much more detailed than the ES syntax, however, it is easier to process by computers.
Тройка является основной единицей Среды Описания Ресурса RDF (RDF) и состоит из Субъекта, Предиката и Объекта. Набор троек обычно называют RDF-графом, пример которого представлен на ФИГ. 3. Направление стрелки в любой взятой тройке указывает от Субъекта к Объекту (http:**en.wikipedia.org/wiki/Resource_Description_Framework). Субъект в RDF- утверждении является либо Унифицированным Идентификатором Ресурса (URI), либо пустым узлом, оба из которых определяют ресурсы. Ресурсы, представленные пустым узлом, называется анонимными ресурсами. Они не являются непосредственно идентифицированными из RDF- утверждений. Предикат является URI, который также указывает на ресурс, представляющий связь. Объект - это URI, пустой узел или строковый литерал в Юникоде. Троечное приближение The triple is the basic unit of the RDF Resource Description Environment (RDF) and consists of a Subject, a Predicate and an Object. A set of triples is usually called an RDF graph, an example of which is shown in FIG. 3. The direction of the arrow in any three taken indicates from the Subject to the Object (http: ** en.wikipedia.org/wiki/Resource_Description_Framework). The subject in the RDF statement is either a Unified Resource Identifier (URI) or an empty node, both of which define resources. Resources represented by an empty node are called anonymous resources. They are not directly identified from RDF statements. A predicate is a URI that also indicates a resource that represents a relationship. An object is a URI, an empty node, or a Unicode string literal. Triple zoom
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) является тем самым, что будет использовано в настоящей заявке для обработки информации из различных источников. SUBSTITUTE SHEET (RULE 26) is thereby what will be used in this application for processing information from various sources.
Как показано на ФИГ. 4, между семантическим веб-стеком и (показанным слева) семантическим стеком настоящей заявки, показанного справа, существует смысловое соответствие. Как показано на ФИГ. 4, семантический стек, использованный в данной заявке, включает CmwL (язык Comindware) 401, RDF-схему 403, RDF 405, N3 схему 407 и N3 нотацию. Основная идея здесь состоит в том, что OWL заменен специальный язык Comindware, который представляет собой ограниченную версию OWL с целью повышения производительности и избавления от функциональности и операций, которые не являются необходимыми для целей2 моделирования бизнес-процессов (однако использует словарь OWL и некоторые его правила).  As shown in FIG. 4, there is a semantic correspondence between the semantic web stack and (shown on the left) the semantic stack of the present application, shown on the right. As shown in FIG. 4, the semantic stack used in this application includes CmwL (Comindware language) 401, RDF circuit 403, RDF 405, N3 circuit 407 and N3 notation. The main idea here is that OWL is replaced by a special Comindware language, which is a limited version of OWL in order to improve performance and get rid of functionality and operations that are not necessary for the purpose of modeling business processes (however, it uses the OWL dictionary and some of its rules )
Следующие OWL понятия используются для пользовательских шаблонов (см. http:**www.w3.org/TR/owl-ref/): The following OWL concepts are used for custom templates (see http: ** www.w3.org/TR/owl-ref/):
3.1 Описания классов 3.1 Class Descriptions
3.1.1 Перечисление 3.1.1 Enumeration
3.1.2.2 Ограничения кардинальности 3.1.2.2 Cardinality restrictions
3.1.3.2 owl:o6beflHHeHne4ero 3.1.3.2 owl: o6beflHHeHne4ero
3.2.1 rdfs:noflMacc4ero  3.2.1 rdfs: noflMacc4ero
4.1 Конструкции RDF схемы 4.1 RDF circuit designs
Типы данных RDF RDF Data Types
Расширенные возможности: Extended capabilities:
+ Онтология пользовательского шаблона + Ontology custom template
+Онтология типа перечисления  + Ontology enumeration type
+Онтология вычисленного свойства  + Ontology of the computed property
+Онтология безопасности  + Security Ontology
Системные онтологии, которые должны быть описаны в OWL: System ontologies that should be described in OWL:
+Онтология запроса, + Ontology request
+Онтология ограничения + Ontology restrictions
+Онтология рабочего процесса + Workflow ontology
+ Онтология пользовательской учетной записи, + Ontology user account,
+Онтологии Пользовательского интерфейса + User Interface Ontologies
+Прочие онтологии (электронная почта, история, вложения и т.д.) + Other ontologies (email, history, attachments, etc.)
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) Благодаря использованию RDF (среды описания ресурса), существует возможность работать с различными источниками данных (базами данных, хранилищами данных, которые могут быть локальными, в корпоративной среде или расположены в Итернете). Является возможным использовать общий словарь URI, тем самым позволяя интегрировать данные из различных источников. Также на основе данных и правил возможно обеспечивать представление данных на лету (в отличие от статических срезов, как это сделано в OLAP кубах). SUBSTITUTE SHEET (RULE 26) Thanks to the use of RDF (resource description environment), it is possible to work with various data sources (databases, data warehouses that can be local, in a corporate environment or located on the Internet). It is possible to use a common URI dictionary, thereby allowing the integration of data from various sources. Also, based on data and rules, it is possible to provide data on the fly (unlike static slices, as is done in OLAP cubes).
В качестве примеров источников данных, которые могут быть представлены в данном содержании, является сервер базы данных (или какой-нибудь другой тип хранения), который служит отделу кадров для хранения данных о новых сотрудниках. Те же самые данные могут быть использованы ИТ-отделом для добавления пользователя в корпоративную сеть. Также, эти же данные могут быть использованы отделом бухгалтерии для осуществления выплаты заработной платы. Стоит отметить, что серверы могут быть как локальными (в корпоративной сети), так и удаленными, например, доступными посредством глобальной компьютерной сети или через Интернет. Также стоит отметить, что если один из серверов находится в автономной режиме, это не повлияет на корректность данных. Например, если сервер ИТ-отдела находится в автономном режиме в момент добавления нового сотрудника отделом кадров, то, как только ИТ-сервер снова будет в сети, благодаря RD отделу, одни и те же лица будут отражены в обеих бизнес- приложениях. Электронная почта, показанная на чертеже, необходима не только для информирования другого отдела о добавлении нового сотрудника, но и для синхронизации терминологии. Например, для отдела кадров лицо - это сотрудник, для ИТ-отдела - пользователь, для отдела бухгалтерии - получатель денег. При помощи RDF глобальная база данных может отображать, что глобальная:лицо = ОКхотрудник = ИТ:пользователь, и тогда все будет синхронизировано без дальнейших чьих-либо усилий. An example of the data sources that may be presented in this content is a database server (or some other type of storage), which serves as the personnel department for storing data about new employees. The same data can be used by the IT department to add a user to the corporate network. Also, the same data can be used by the accounting department to make salary payments. It is worth noting that the servers can be either local (on the corporate network) or remote, for example, accessible via a global computer network or via the Internet. It is also worth noting that if one of the servers is offline, this will not affect the correctness of the data. For example, if the server of the IT department is offline when the new employee is added to the HR department, then as soon as the IT server is online again, thanks to the RD department, the same people will be reflected in both business applications. The email shown in the drawing is necessary not only to inform the other department about the addition of a new employee, but also to synchronize the terminology. For example, for a human resources department, a person is an employee, for an IT department, a user, for an accounting department, a recipient of money. Using RDF, a global database can display that the global: face = OK employee = IT: user, and then everything will be synchronized without any further effort.
Также данные могут быть взяты с веб-страницы или, например, из любого источника, идентифицированного с помощью URI. При помощи "преобразователей данных" может быть использована любая информация, описанная посредством RDF, например, в правиле может быть сказано "что-то" из "источника" - источник:что-то - это ст\л :"наша штука" http:**www.w3.org/2000/10/swap/doc/Reach)  Data can also be taken from a web page or, for example, from any source identified by a URI. With the help of "data converters" any information described by RDF can be used, for example, the rule can say "something" from "source" - source: something - this is st \ l: "our thing" http: ** www.w3.org / 2000/10 / swap / doc / Reach)
Далее, в качестве примера, рассмотрим, что компания, в которой есть три бизнес- приложения - одно для ОК (система управления человеческими ресурсами), одно для БУХГ (бухгалтерская система) и одно для ИТ (информационных технологий - Служба поддержки). Следовательно, у каждого бизнес-приложения может быть свой собственный сервер. Когда любой сотрудник начинает работать, отдел кадров "создает" нового сотрудника, указав имя, фамилию, должность. Далее вручную либо автоматически данная информация отправляется в бухгалтерию и в ИТ отдел. Further, as an example, we consider that a company in which there are three business applications - one for OK (human resources management system), one for BUHG (accounting system) and one for IT (information technology - Support Service). Therefore, each business application can have its own server. When any employee begins to work, the personnel department "creates" a new employee, indicating his name, surname, position. Then, manually or automatically, this information is sent to accounting and the IT department.
Бухгалтерия создает служащего с атрибутами, имеющими отношения к его занятости - заработную плату, тип компенсации, например, ежечасно, ежемесячно и т.д., номер социального страхования и т.д. ИТ-отдел создает учетную запись пользователя с атрибутами, которые имеют отношение к ИТ отделу - такие как права доступа к внутренним ресурсам компании, переданные сотруднику оборудование/компьютер, лицензионные отчисления за программное обеспечение, установленное на компьютере пользователя и т.д. Эти три отдела имеют свои соответствующие приложения, показанные на ФИГ. 7, иллюстрирующим отдел кадров и приложение 701,  Accounting creates an employee with attributes related to his employment - salary, type of compensation, for example, hourly, monthly, etc., social security number, etc. The IT department creates a user account with attributes that are relevant to the IT department - such as access rights to internal resources of the company, equipment / computer transferred to the employee, license fees for software installed on the user's computer, etc. These three departments have their respective applications shown in FIG. 7 illustrating the human resources department and application 701,
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) бухгалтерию и приложение 703 и ИТ отдел и приложение 705. Глобальная может быть представлена в виде Движка, которая представляет контекст данных для конкретного бизнес- приложения, 707, поэтому она может агрегировать всю информацию из всех бизнес-приложений и генерирует контекстуализированную информацию, относящуюся к сотруднику (также как и к другим сотрудникам). Слева на ФИГ. 6 (слева от Слоя Хранения) расположен пул информации, который может храниться в различных базах данных или на других хранилищах. 707 является элементом, который позволяет отображать контекстуализированную бизнес-информацию для конкретного приложения. "Глобальная" является сущностью для представления данных в конкретном контексте бизнес-приложения. SUBSTITUTE SHEET (RULE 26) accounting and application 703 and the IT department and application 705. The global can be represented as an engine that represents the data context for a specific business application, 707, so it can aggregate all the information from all business applications and generate contextualized information related to the employee (as well as to other employees). On the left in FIG. 6 (to the left of the Storage Layer) there is an information pool that can be stored in various databases or other storages. 707 is an element that allows contextualized business information to be displayed for a particular application. “Global” is an entity for representing data in the specific context of a business application.
Контекст может рассматриваться в качестве среды окружения конкретного события, объекта или индивида, который определяет интерпретацию данных и действий/операций над данными в конкретной ситуации. Опционально, контекст определяет метод обработки данных в конкретной ситуации. Например, чей-то адрес электронной почты может считаться информацией для входа в систему в одном контексте и в качестве контактной информации в профиле пользователя в другом контексте; он может использоваться в качестве запрашивающей стороны в заявке в техническую поддержку в третьем контексте - все зависит от интерпретации данных. The context can be considered as the environment of a particular event, object or individual, which determines the interpretation of data and actions / operations on data in a particular situation. Optionally, the context determines the data processing method in a particular situation. For example, someone's email address can be considered login information in one context and as contact information in a user profile in another context; it can be used as the requesting party in the application for technical support in the third context - it all depends on the interpretation of the data.
Обмен информацией между серверами выполняется автоматически, поскольку все серверы используют общий словарь. Например: http://<company_name>.com/tracker/ontology/global/hr, or http://<company_name>.com/tracker/ontology/global/it or http://<company_name>.com/tracker/ontology/global/acc, all are conjoined into http://<company_name>. com/tracker/ontology/global). Information exchange between servers is performed automatically, since all servers use a common dictionary. For example: http: // <company_name> .com / tracker / ontology / global / hr, or http: // <company_name> .com / tracker / ontology / global / it or http: // <company_name> .com / tracker / ontology / global / acc, all are conjoined into http: // <company_name>. com / tracker / ontology / global).
Даже в случае, когда бухгалтерия при создании вручную записи о сотруднике использует свой собственный словарь, возможно написать правило {?х а Бухпчеловек} => {?х а Глобальная:сотрудник}, тем самым обеспечив механизм перевода между словарем бухгалтерии и глобальным словарем. Even in the case when the accounting department uses its own dictionary when creating the employee record manually, it is possible to write the rule {? X a Bukhpchelovek} => {? X a Global: employee}, thereby providing a translation mechanism between the accounting dictionary and the global dictionary.
Из этого примера видно, что предлагаемая архитектура позволяет каждой отдельной группе или отделу в рамках бизнеса работать со своей собственной базой данных/хранилищем и своей собственной серверной системой, в то время как глобальный сервер с движком 707 может представлять собой объединенное представление данных из всех отделов. Это осуществляется на лету и без дублирования данных, что особенно важно с точки зрения безопасности информации, а также с точки зрения поддержания актуальности информации (в данном случае, когда данные на одном хранилище меняются, то нет необходимости менять данные , на других хранилищах), глобальная отрудник + описание правила для "принимающей персоны" из локальных бизнес- приложений является онтологией для Человека в Глобальной базе данных. Таким образом, одним из вариантов является использование различных онтологий для каждого бизнес- приложения, в то время как вторым вариантом является использование общей онтологии для всех приложений.  This example shows that the proposed architecture allows each individual group or department within the business to work with its own database / storage and its own server system, while a global server with the engine 707 can be a combined representation of data from all departments. This is done on the fly and without duplication of data, which is especially important from the point of view of information security, as well as from the point of view of maintaining the relevance of information (in this case, when the data on one repository changes, there is no need to change data on other repositories), global Employee + description of the rule for the “host” from local business applications is the ontology for the Person in the Global database. Thus, one option is to use different ontologies for each business application, while the second option is to use a common ontology for all applications.
ФИГ. 6 иллюстрирует реализованный способ доступа к любому хранилищу данных при с использованием URI и для представления данных в конкретном контексте. Как показано на ФИГ. 6, предприятие может иметь несколько серверов с базами данных 601А, 601В, ... 601N. FIG. 6 illustrates an implemented method of accessing any data store when using a URI and to present data in a specific context. As shown in FIG. 6, an enterprise may have several servers with databases 601A, 601B, ... 601N.
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) Предприятие также может подключаться к другим серверам баз данных, например, посредством глобальной компьютерной сети или через Интернет, см. серверы баз данных 603А, 603В, ... 603N. Слой хранения 605 предоставляет движку запрошенные данные из конкретного хранилища. SUBSTITUTE SHEET (RULE 26) An enterprise can also connect to other database servers, for example, through a global computer network or via the Internet, see database servers 603A, 603B, ... 603N. Storage layer 605 provides the engine with requested data from a particular storage.
Предоставленные данные 609 могут быть разделены на пользовательские данные в виде аксиом (фактов) 607 и онтологии (так же представленных в виде аксиом, но которые можно распознать по N3 синтаксису). Другими словами, 611 содержит информацию о то, что и как должно быть представлено конкретному пользователю в конкретном Бизнес-приложении. 611, 607 и 611 обрабатываются Ядром и результатом обработки является 613 — Движок (Движок является частью ядра), которая может представлять данные в конкретном контексте (615) в соответствии с онтологиями. The provided data 609 can be divided into user data in the form of axioms (facts) 607 and ontologies (also represented as axioms, but which can be recognized by the N3 syntax). In other words, 611 contains information about what and how should be presented to a specific user in a particular Business application. 611, 607 and 611 are processed by the Core and the result of processing is 613 - The engine (The engine is part of the kernel), which can represent data in a specific context (615) in accordance with ontologies.
Представление данных на лету может быть проиллюстрировано при помощи следующего примера. Рассмотрим данные онтологии (например, данные, которые описывают сущности, на которые воздействуют) в контексте бизнес-приложений, например, управления проектами, отслеживание вопросов, отслеживания ошибок, CRM и т.д. Каждое из них хранится в своей базе данных (или, альтернативно, в общей базе данных) и объединены на более высоком уровне. При помощи логического ядра возможно скомбинировать различные данные в различных комбинациях и наборах онтологий, например: используя определенные онтологии, разработчик может видеть контекст представления ошибки, заявленной QA в виде назначенной ему задачи, другими словами, существует возможность отслеживать какой задаче относится каждая конкретная ошибка, над которой проводится работа. Presentation of data on the fly can be illustrated using the following example. Consider ontology data (for example, data that describes the entities that are affected) in the context of business applications, for example, project management, issue tracking, bug tracking, CRM, etc. Each of them is stored in its own database (or, alternatively, in a common database) and combined at a higher level. Using the logical core, it is possible to combine various data in various combinations and sets of ontologies, for example: using certain ontologies, the developer can see the context for representing the error declared by the QA as a task assigned to it, in other words, it is possible to track which task each specific error relates to, over which work is being done.
Различия между представлением на лету, доступным благодаря описанному здесь подходу, и статичным представлением, предоставляемым поиском данных с использованием OLAP кубов (сетевая аналитическая обработка в реальном времени) также заслуживают рассмотрения. OLAP является общепринятой техникой для генерирования отчетов и различных статистических документов. OLAP кубы часто используются аналитиками для быстрой обработки сложных запросов к базе данных, и они особенно часто встречаются в маркетинговых отчетах, отчетах по продажам, анализе данных и , так далее. Причина, по которой OLAP кубы настолько распространены, кроется в скорости, с которой может быть выполнена обработка. Реляционные базы данных хранят информацию о различных сущностях в отдельных таблицах, которые обычно хорошо нормализованы. Эта структура удобна для большинства операционных систем баз данных, однако сложные многотабличные запросы обычно сложно быстро выполнить. Хорошей моделью для таких запросов (в отличие от изменений) является таблица, построенная с использованием фактов из OLAP кубов. Метаданные куба обычно создаются на базе схемы звезда или снежинка таблиц реляционной базы данных. http:**en.wikipedia.org/wiki/OLAP#Concept The differences between the on-the-fly view available through the approach described here and the static view provided by data mining using OLAP cubes (real-time network analytic processing) are also worth considering. OLAP is a common technique for generating reports and various statistical documents. OLAP cubes are often used by analysts to quickly process complex database queries, and they are especially common in marketing reports, sales reports, data analysis, and so on. The reason OLAP cubes are so common is because of the speed with which processing can be performed. Relational databases store information about various entities in separate tables, which are usually well normalized. This structure is convenient for most database operating systems, but complex multi-table queries are usually difficult to quickly complete. A good model for such queries (as opposed to changes) is a table built using facts from OLAP cubes. Cube metadata is typically created from the star or snowflake schema of relational database tables. http: ** en.wikipedia.org/wiki/OLAP#Concept
OLAP выполняет срез реляционной базы данных в конкретный момент времени и структурирует его в пространственную модель для запросов. Структуры OLAP, сгенерированные из рабочих данных, называются OLAP кубами. Куб генерируется путем комбинирования таблиц при помощи схемы снежинки или звезды. В центре схемы звезда располагается таблица фактов, содержащая ключевые факты, используемые для генерирования запросов. С таблицей фактов связано множество таблиц с изменениями. Эти таблицы показывают, как могут быть проанализированы собранные реляционные данные. Количество возможных агрегатов определяется количеством способов, которыми могут быть отображены иерархически OLAP slices a relational database at a particular point in time and structures it into a spatial model for queries. OLAP structures generated from operational data are called OLAP cubes. A cube is generated by combining tables using a snowflake or star pattern. At the center of the star schema is a fact table containing key facts used to generate queries. There are many change tables associated with the fact table. These tables show how collected relational data can be analyzed. The number of possible aggregates is determined by the number of ways that can be displayed hierarchically
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) первоначальные данные. OLAP кубы содержат основные данные и пространственную информацию (агрегаты). Потенциально куб содержит всю информацию, которая может потребоваться для ответов или ответа на запросы. Поэтому, чтобы проанализировать информацию, необходимо сгенерировать срезы куба (представленные таблицами). Например, можно посмотреть на различные двумерные срезу куба, перемещая "позицию" среза вертикально и горизонтально в кубе, а также открывая и закрывая уровни внутри куба. SUBSTITUTE SHEET (RULE 26) initial data. OLAP cubes contain master data and spatial information (aggregates). Potentially, the cube contains all the information that may be required to answer or respond to requests. Therefore, in order to analyze the information, it is necessary to generate slices of the cube (represented by tables). For example, you can look at different two-dimensional slices of a cube by moving the “position” of the slice vertically and horizontally in the cube, as well as opening and closing levels inside the cube.
Сложность использования OLAP в качестве методологии заключается в генерировании запросов, выборе базовых данных и генерировании соответствующей схемы, которая является причиной, по которой большинство современных OLAP продуктов обычно поставляются вместе с большим количеством предопределенных запросов. The difficulty of using OLAP as a methodology is to generate queries, select the baseline data, and generate the appropriate schema, which is the reason why most modern OLAP products usually come with a lot of predefined queries.
Другая проблема заключается в базовых знаниях OLAP куба, которые должны быть завершенными и непротиворечивыми. Таким образом, основной проблемой с OLAP кубами является то, что процесс анализа обычно требует пересоздания самого куба или частого генерирования срезов. В отличие от OLAP кубов предложенный подход выигрышно позволяет перегенерацию представления данных на лету без сложностей предопределения и предварительного генерирования запросов. Another problem is the basic knowledge of the OLAP cube, which must be complete and consistent. Thus, the main problem with OLAP cubes is that the analysis process usually requires re-creating the cube itself or frequently generating slices. Unlike OLAP cubes, the proposed approach advantageously allows the regeneration of data representation on the fly without the difficulties of predefining and preliminary generating queries.
Вкратце, процесс обсуждаемого здесь подхода может быть описан следующим образом: In short, the process of the approach discussed here can be described as follows:
- бизнес-слой запрашивает данные из ядра; - the business layer requests data from the kernel;
- логическое ядро собирает данные из различных источников; - the logical core collects data from various sources;
- логическое ядро распознает природу данных и делит данные на аксиомы и правила. Например, для баг-трекера аксиомой может быть "решение :is "нужно больше информации"", и правилом может быть { ?о операция:требуетсяБольшеДанных ?f. ?f Ьполе:пусто Истина.} => {?о операция:разрешить Ложь}; - the logical core recognizes the nature of the data and divides the data into axioms and rules. For example, for a bug tracker, the axiom may be "solution: is" you need more information "", and the rule may be {? About operation: requires More Data? F. ? f field: empty True.} => {? o operation: allow False};
- движок, необходимый для выполнения запроса бизнес слоя, собирает вместе скомпилированные правила (например, в С# коде, хотя изобретение не ограничено каким либо конкретным языком). - the engine necessary to fulfill the request of the business layer collects compiled rules together (for example, in C # code, although the invention is not limited to any particular language).
У движка могут наличествовать правила, которые были собраны и скомпилированы ранее, так же как и новые правила для правил, которые еще не были обработаны. Таким образом, компилирование должно быть выполнено только для новых правил. Поэтому ядру нет необходимости постоянно работать с данными, а только лишь адресовать данные в ответ на запросы из бизнес слоя; The engine may have rules that were compiled and compiled earlier, as well as new rules for rules that have not yet been processed. Thus, compilation should only be done for new rules. Therefore, the kernel does not need to constantly work with data, but only to address data in response to requests from the business layer;
- движок обрабатывает аксиомы, и генерируются новые вытекающие из этого аксиомы; - the engine processes axioms, and new axioms arising from this are generated;
- ядро возвращает запрошенные данные в бизнес слой. - the kernel returns the requested data to the business layer.
ФИГ. 8 иллюстрирует алгоритм обработки данных, согласно одному варианту осуществления изобретения. Как показано на ФИГ. 8, после шага старта (801) бизнес-слой запрашивает данные из ядра (шаг 803). В шаге 805 данные принимаются из хранилища, а в шаге 807 данные делятся на аксиомы и правила. FIG. 8 illustrates a data processing algorithm according to one embodiment of the invention. As shown in FIG. 8, after the start step (801), the business layer requests data from the kernel (step 803). In step 805, data is received from the storage, and in step 807, the data is divided into axioms and rules.
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) В следующем шаге пользовательские данные, которые хранятся в виде фактов (607 на ФИГ. 6), принимаются из хранилища и разбиваются на правила (809) и данные-аксиомы (808). В шаге 811 проверяются существующие правила. Если правило существует, в шаге 813, то используются правила и движок (шаг 819). В противном случае, после шага 813 компилируются новые правила (шаг 815). После этого в движок добавляются новые правила (шаг 817). Далее система начинает работать с Движком с новыми правилами включительно (шаг 819). В шаге 821 аксиомы обрабатываются движком. Запрашиваются (шаг 823) новые аксиомы (данные, требуемые для конкретного контекста), являющиеся результатом обработки Движка. Ядро выдает запрошенные данные (предоставляет пользователю запрошенный контекст) (шаг 825). Процесс заканчивается в шаге 827. SUBSTITUTE SHEET (RULE 26) In the next step, user data that is stored as facts (607 in FIG. 6) is received from the repository and divided into rules (809) and axiom data (808). At step 811, the existing rules are checked. If the rule exists, in step 813, then the rules and engine are used (step 819). Otherwise, after step 813, the new rules are compiled (step 815). After that, new rules are added to the engine (step 817). Then the system starts working with the Engine with the new rules inclusive (step 819). In step 821, the axioms are processed by the engine. Requested (step 823) new axioms (data required for a specific context) resulting from the processing of the Engine. The kernel returns the requested data (provides the user with the requested context) (step 825). The process ends in step 827.
ФИГ. 9 иллюстрирует алгоритм работы с аксиомами и правилами Ядром на конкретном примере (ФИГ. 9 иллюстрирует блок "обработки запроса Ядром" с ФИГ. 8). После старта (шаг 901) данные, полученные в шаге 903 из источника, идентифицируются посредством RDF URI. Данные разделяются на Аксиомы 907 и правила 909 в шаге 905. В шаге 911 движок подготавливается путем компиляции Правил. В шаге 913 исходные аксиомы (Пользовательские данные) обрабатываются Движком. В шаге 915 принимаются новые Аксиомы (например, контекстуализированные данные для конкретного представления данных). В шаге 917 процесс заканчивается.  FIG. 9 illustrates the algorithm for working with the axioms and rules of the Kernel with a specific example (FIG. 9 illustrates the “request processing by the Kernel” block with FIG. 8). After starting (step 901), the data obtained in step 903 from the source is identified by the RDF URI. The data is divided into Axioms 907 and rules 909 in step 905. In step 911, the engine is prepared by compiling the Rules. In step 913, the original axioms (User data) are processed by the Engine. In step 915, new Axioms are accepted (e.g., contextualized data for a particular presentation of the data). At step 917, the process ends.
К примеру, существует несколько типов правил. Правило типа фильтр часто используется в случаях трекера, например, получение списка обращений/ошибок/задач службы поддержки конкретного пользователя и конкретного проекта с конкретными атрибутами. Таким образом, необходимо отфильтровать информацию из общего пула задач/ошибок/обращений по конкретному пользователю и проекту и представить в виде отдельных аксиом. For example, there are several types of rules. A rule such as a filter is often used in cases of a tracker, for example, obtaining a list of calls / errors / tasks of a support service for a specific user and a specific project with specific attributes. Thus, it is necessary to filter information from a common pool of tasks / errors / requests for a specific user and project and present them as separate axioms.
Преобразующие правила относятся к одной и той же информации, что может быть представлена иным образом. Например, ИТ-отдел рассматривает людей в качестве пользователей ИТ-системы. С другой стороны, менеджер проекта может рассматривать тех же самых пользователей в качестве ресурсов, работающих над конкретными задачами. В качестве другого примера: преобразующие правила могут включать следующее: на входе получаются данные (аксиомы), которые описывают конкретную заявку (например, запросы от конкретного пользователя) и представление этих данных. Следовательно, движок на входе примет аксиомы в виде заполненного данными интерфейса конкретного пользователя. Converting rules relate to the same information that might otherwise be presented. For example, the IT department sees people as users of an IT system. On the other hand, the project manager can consider the same users as resources working on specific tasks. As another example: transformative rules may include the following: at the input, data (axioms) are obtained that describe a specific application (for example, requests from a specific user) and the presentation of this data. Therefore, the input engine will accept axioms in the form of a specific user interface filled with data.
Другим примером типов правил является генерирующее правило. Например, в конкретном проекте, содержащим более 50 % критических ошибок и более 50 % критических задач, система автоматически генерирует факт о статусе проекта (например, статус проекта будет показан как "Критический"). Another example of rule types is a generating rule. For example, in a specific project containing more than 50% of critical errors and more than 50% of critical tasks, the system automatically generates a fact about the status of the project (for example, the status of the project will be displayed as "Critical").
Ниже в качестве примера показано, как три типа правил, приведенных выше, могут быть скомбинированы при помощи N3 синтаксиса: As an example below, it is shown how the three types of rules listed above can be combined using the N3 syntax:
@prefix ошибка: <http://<company name>.com/tracker/bugs#>. @prefix error: <http: // <company name> .com / tracker / bugs #>.
@prefix задача: <http://<company name>. com/project manager/tasks#>. @prefix task: <http: // <company name>. com / project manager / tasks #>.
@prefix пркт: <http://<company name>.com/projects#>. @prefix prct: <http: // <company name> .com / projects #>.
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) @prefix матем: <http://<company name>.com/mathematic#>. @prefix assert: <http://comindware.eom/logics/assert#. @prefix cmw: <http://comindware.eom/logics#. SUBSTITUTE SHEET (RULE 26) @prefix mat: <http: // <company name> .com / mathematic #>. @prefix assert: <http: //comindware.eom/logics/assert#. @prefix cmw: <http: //comindware.eom/logics#.
Прежде всего, информация преобразуется из баг-трекера и из задачи управления проектами в данные для проекта ABC. First of all, the information is converted from the bug tracker and from the project management task to the data for the ABC project.
Далее, фильтруются и оставляются только те ошибки, чей статус - "критический", и движок считает общее количество ошибок, после чего если количество "критических" ошибок - больше половины от их общего количества, то генерирует критическое состояния ошибок проекта: Further, only those errors whose status is “critical” are filtered and left, and the engine considers the total number of errors, after which if the number of “critical” errors is more than half of their total number, it generates a critical state of project errors:
{ Рошибка cmw:is ошибка:Ошибка. ? ошибка прж:включено пркт:Проект_АВС. {? ошибка пркт:Статус статусПркт:Критический} assert:c4HTaTb ?колвоКритическихОшибок. { ?ошибка пркт:Статус ?любой} assert:c4 HTaTb ?ВсегоОшибок. (?ВсегоОшибок 2) матем:разделить ?половинаВсехОшибок. ? колвоКритическихОшибок матем:больше ? половинаВсехОшибок .} => {пркт:Проект_АВС пркт:КритическиеОшибки истина}. {Error cmw: is error: Error. ? error przh: included prkt: Project_ABC. {? error prct: Status statusPrt: Critical} assert: c4HTaTb? {? error prct: Status? any} assert: c4 HTaTb? Total Error. (? Total Error 2) mat: split? Half All Error. ? number of Critical Mate Error: more? halfAllError.} => {prct: ABC_Project prct: Critical Errors true}.
Те же операции над данными (задачами) из системы управления проектами The same operations on data (tasks) from the project management system
{ ?задача:15 задача:3адача. ? задача пркт:включено пркт:Проект_АВС. {Рзадача пркт:Статус статусПркт:Критический} assert:c4HTaTb ?колвоКритическихОшибок. { ? задача пркт:Статус Рлюбой} assert: считать ?ВсегоЗадач. (?ВсегоЗадач 2) матем:разделить ?половинаВсехЗадач. ?колвоКритическихЗадач матем:больше ?половинаВсехЗадач.} => {пркт:Проект_АВС пркт:КритическиеЗадачи истина}. {? task: 15 task: 3 task. ? task prct: included prkt: Project_ABC. {Task pct: Status statusPrt: Critical} assert: c4HTaTb is a critical Critical Error. {? task prct: Status of Love} assert: count? TotalTasks. (? Total Tasks 2) Math: Divide? Half of All Tasks. ? number of Critical Tasks math: more? half All Tasks.} => {prct: Project_ABC prct: Critical Problems true}.
Далее выполняется автоматическое генерирование "Критического" статуса проекта, если в проекте есть задачи и ошибки в "Критических" состояниях: Next, the “Critical” status of the project is automatically generated if the project has tasks and errors in the “Critical” states:
{пркт:Проект_АВС пркт:КритическиеОшибки истина. пркт:Проект_АВС пркт:КритическиеЗадачи истина}. => {пркт:Проект_АВС пркт:Статус "Критический"}. {prct: Project_ABC prct: Critical Errors true. prct: Project_ABC prct: Critical Tasks true}. => {prct: Project_ABC prct: Status "Critical"}.
То же самое происходит со статусом проекта, но с другим условием: автоматическое генерирование "Критического" статуса для проекта, когда "критических" ошибок ИЛИ задач - больше половины.  The same thing happens with project status, but with a different condition: automatic generation of a “Critical” status for a project when more than half of “critical” errors OR tasks.
{?х cmw:is задача:3адача} => {?х cmw:is пркт:ЗадачаИлиОшибка}. {? x cmw: is task: 3 task} => {? x cmw: is project: Task or Error}.
{?х cmw:is ошибка:Ошибка} => {?х cmw:is пркт:ЗадачаИлиОшибка}. {? x cmw: is error: Error} => {? x cmw: is prct: Task or Error}.
{?х cmw:is пркт:ЗадачаИлиОшибка. ?х пркт:включено пркт:Проект_АВС. {?х пркт:Статус статусПроекта:Критический} . assert:c4HTaTb ?колвоКритических. { ?х пркт:Статус ?любой} assert:c4HTaTb ?Всего. (?Всего 2) матем:разделить ?половинаВсего. ?колвоКритических матем:больше ?половинаВсего.} => {пркт:Проект_АВС пркт:Статус "Критический"}. {? x cmw: is prct: Task or Error. ? x project: included project: Project_ABC. {? x project: Status of the status of the Project: Critical}. assert: c4HTaTb? {? x prct: Status? any} assert: c4HTaTb? Total. (? Total 2) mate: divide? Half of the total. ? number of Critical Mat: more than half of the total.} => {prct: Project_ABC prct: Status "Critical"}.
Как должно быть понятно, примеры из реальной жизни обычно более сложные, чем этот, и может существовать гораздо больше типов правил в большинстве реальных жизненных ситуациях, однако, принцип остается тем же. I As should be understood, real-life examples are usually more complex than this, and there may be many more types of rules in most real-life situations, however, the principle remains the same. I
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) Пример конъюнкции аксиом SUBSTITUTE SHEET (RULE 26) Axiom conjunction example
Пример конъюнкции аксиом чаще всего является одним из самых легким для понимания примером. Например, при объединении информации, относящейся к требованиям проекта (аксиома "требования" - требования, определенные аналитиками) и ошибкам из баг-трекера (аксиома "ошибки" - ошибки, выявленные тестерами, которые обычно являются специалистами по контролю качества, и внесенные в формы отслеживания ошибок на базе определенных требований), результаты "результирующей аксиомы", как прави , являются комбинацией того, сколько ошибок связано с одним функциональным требованием. An example of a conjunction of axioms is most often one of the easiest to understand examples. For example, when combining information related to project requirements (axiom “requirements” - requirements defined by analysts) and errors from a bug tracker (axiom “errors” - errors identified by testers, who are usually quality control specialists, and entered into forms tracking errors based on certain requirements), the results of the "resulting axiom", as a rule, are a combination of how many errors are associated with one functional requirement.
Это проиллюстрировано на ФИГ. 10. После старта процесса (шаг 1001), данные принимаются "ил любого хранилища, идентифицированного с помощью URI, в шаге 1003. В шаге 1007 идентифицируется аксиома 1. В шаге 1005 идентифицируется аксиома 2 и т.д. В шаге 1009 аксиомы обрабатываются, см. результат в "Результирующих аксиомах " (шаг 1011). Процесс заканчивается в шаге 1013. This is illustrated in FIG. 10. After the start of the process (step 1001), the data is received " or any store identified by the URI in step 1003. In step 1007, axiom 1 is identified. In step 1005, axiom 2 is identified, etc. In step 1009, the axioms are processed, see the result in “Resulting Axioms" (step 1011). The process ends in step 1013.
Другим наглядным примером является использование описанных здесь концепций семантической сети и нотационного/синтаксического приближения для описания процесса производства игрушечного автомобиля. Предположим, что производство игрушечного автомобиля использует трекер для отслеживания состояния изменений сборки. В данном случае, аксиомы имеют отношение к любым данным, полученным системой, в форме тройки (субъект, предикат, объект). Вот они: колеса для Джипа колеса для Грузовика Another illustrative example is the use of the semantic network concepts and notational / syntactic approximation described here to describe the production process of a toy car. Suppose a toy car manufacturing uses a tracker to track the state of assembly changes. In this case, the axioms are related to any data received by the system in the form of a triple (subject, predicate, object). Here they are: wheels for a jeep wheel for a truck
% передние колеса для Спортивного Автомобиля задние колеса для Спортивного Автомобиля % front wheels for Sports Car rear wheels for Sports Car
кузов Джипа  Jeep body
кузов Грузовика  Truck body
кузов Спортивного автомобиля  Sports car body
Подвеска Джипа Jeep Pendant
Подвеска Грузовика Truck Suspension
Подвеска Спортивного автомобиля Sports Car Suspension
Правила в данном случае имеют похожий внешний вид и могут выглядеть приблизительно следующим образом: {?у игрушки олеса ?х. ?у игрушки:подвеска ?z} => {?у игрушки:шасси (?z ?х) }  The rules in this case have a similar appearance and may look something like this: {? The toy has an olesha? X. ? toy: suspension? z} => {? toy: chassis (? z? x)}
Данное правило, написанное в N3 синтаксисе, означает, что если что-то (X) является колесом, принадлежащим автомобилю Y, и Z является подвеской автомобиля Y, то их объединение будет представлять собой шасси для Y. В такой манере будут сформулированы все остальные правила. В качестве конкретных примеров, могут быть созданы следующие правила: This rule, written in N3 syntax, means that if something (X) is a wheel belonging to car Y, and Z is the suspension of car Y, then their combination will be a chassis for Y. In this manner, all other rules will be formulated . As specific examples, the following rules can be created:
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) Подвеска Грузовика должна быть объединена с колесами Грузовика -> шасси Грузовика, где шасси Грузовика является аксиомой +1 на ФИГ. 10, т.е. это - результат конкретного правила. SUBSTITUTE SHEET (RULE 26) Truck Suspension should be combined with Truck wheels -> Truck chassis, where Truck chassis is axiom +1 in FIG. 10, i.e. this is the result of a specific rule.
Шасси Грузовика объединить с кузовом Грузовика -> Грузовик Truck Chassis combine with Truck body -> Truck
Подвеску Джипа объединить с колесами Джипа -> Шасси Джипа Jeep suspension combined with Jeep wheels -> Jeep chassis
Шасси Джипа объединить с кузовом Джипа -> Джип Jeep chassis combined with Jeep -> Jeep
Подвеска Спортивного автомобиля объединена с колесами Спортивного автомобиля - шасси Спортивного автомобиля Sports Car Suspension combined with Sports Car wheels - Sports Car chassis
Шасси Спортивного автомобиля объединено с кузовом Спортивного автомобиля -> Спортивный автомобиль Sports Car chassis combined with Sports car body -> Sports car
Таким образом, все аксиомы и правила находятся в хранилище, и когда пользователь, работающий с бизнес-слоем системы, совершает некое действие (например, он собирает вместе колеса и подвеску Джипа, и хочет внести изменения в систему отслеживания, например, трекер сборки игрушек, который представляет собой отслеживание сборки, другими словами, альтернативное представление в виде менеджмента случаев), бизнес- слой (см. 607-609) передает запрос ядру и ядро 607-613 выполняет вычисления. Thus, all the axioms and rules are in the repository, and when a user working with the business layer of the system performs a certain action (for example, he collects the wheels and the Jeep suspension together, and wants to make changes to the tracking system, for example, a toy assembly tracker, which is assembly tracking, in other words, an alternative representation in the form of case management), the business layer (see 607-609) sends the request to the kernel and the kernel 607-613 performs calculations.
Рассмотрим далее понятие "случая" для данного примера. В данном примере случай 123 имеет: Further we consider the concept of "case" for this example. In this example, case 123 has:
Ид случая 123 Сборки ЦельСборки объект: Джип Case ID 123 Assemblies Purpose Assemblies: Jeep
Факты: Готово (например, полностью собрано, в противном случае, какого-либо факта не будет в наличии) Facts: Done (for example, fully compiled, otherwise, any fact will not be available)
Кузов готов The body is ready
Колеса готовы Wheels are ready
Шасси готовы  Chassis ready
Подвеска готова  The suspension is ready
Вследствие этого, могут быть выполнены следующие действия: a) Добавить деталь (ид) => В случае есть деталь автомобиля (например, добавить кузов, ид = какой-то идентификатор детали автомобиля b) для сборки колес и подвески может быть использована следующая конструкция: As a result of this, the following actions can be performed: a) Add part (id) => If there is a car part (for example, add a body, id = some kind of identifier for a car part b) the following construction can be used to assemble the wheels and suspension:
Собрать детали (ид1 : ид2) ид1 собрана с ид2 ид собрана с ид 3 => (В случае есть новая деталь) Collect details (id1: id2) id1 assembled with id2 id assembled with id 3 => (In case there is a new part)
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) (другими словами, данное правило соответствует переходу к блоку 1111 на ФИГ. 11). SUBSTITUTE SHEET (RULE 26) (in other words, this rule corresponds to the transition to block 1111 in FIG. 11).
На основе правил можно получить список доступных действий для конкретной стадии сборки, вот почему это можно описать как "случай" и "инструкцию" (например, случай, когда сборка не может быть завершена, поскольку на складе нет кузовов). Based on the rules, you can get a list of available actions for a particular assembly stage, which is why it can be described as a “case” and an “instruction” (for example, the case when the assembly cannot be completed because there are no bodies in the warehouse).
N3 выбирается с учетом основных выполняемых системой действий, в данном примере, синтаксическая нотация, которая означает, что все данные, хранящиеся в определенном формате, определены данной нотацией. С другой стороны, CmwL означает, что может быть использован собственный предикат пользователя для описания системы, как она работает и т.д. N3 is selected taking into account the main actions performed by the system, in this example, a syntactic notation, which means that all data stored in a specific format is defined by this notation. On the other hand, CmwL means that the user's own predicate can be used to describe the system, how it works, etc.
Это проиллюстрировано на ФИГ. 4. Например, данные хранятся в текстовом файле примера. 3 This is illustrated in FIG. 4. For example, data is stored in an example text file. 3
@prefix cmw:<http://www.comindware.com/logics#>. @prefix toys:<http://toys.com/description/toys#>. игрушкижолеса сгтш:принадлежит игрушки рузовик. @prefix cmw: <http://www.comindware.com/logics#>. @prefix toys: <http://toys.com/description/toys#>. toyswheels sgtsh: belongs to the toy truck.
{ ?у игрушкижолеса ?х. ?у игрушки:подвеска ?z} => { ?у игрушки:шасси (?z ?х) } {? at toys ? toy: suspension? z} => {? toy: chassis (? z? x)}
Из этого становится понятно, что prefix является местом, где формируются конкретные предикаты. Другими словами, "принадлежит" - является cmw (сокращение, относящееся к http://www.comindware.eom/logics#, и которое может содержать необходимую логику, т.е. является CmwL (языком Cmw), в то время как общим синтаксисом является N3. Поэтому, в примере про производство игрушечного- автомобиля, существуют специальные данные, описывающие данный случай. Поэтому, движок (см. ФИГ. 6) может брать данные из слоя хранения, где, используя N3 нотации, изложены аксиомы и правила. Движок может разбирать правила и на основе разбора правил может получать данные для работы с системой, т.е. бизнес- приложением, которое используется в данный момент. From this it becomes clear that prefix is the place where specific predicates are formed. In other words, “belongs” - is cmw (short for http: //www.comindware.eom/logics#, and which may contain the necessary logic, that is, CmwL (Cmw language), while common the syntax is N3. Therefore, in the example of the production of a toy car, there is special data describing this case. Therefore, the engine (see FIG. 6) can take data from the storage layer, where, using N3 notations, axioms and rules are stated. The engine can parse the rules and based on the parse of the rules can receive data for working with the system, t .e. the business application that is currently being used.
Таким образом, как только N3 правило было разобрано, оно может быть использовано движком для предоставления контекстуализированных данных конкретному бизнес-приложению для модификации и дальнейшей работы над ним. Преимущество, по сравнению в OLAP кубами, состоит в том, что данная информация может быть представлена в виде "среза" в любой момент без необходимости перекомпиляции - информация уже была разобрана, и нет необходимости разбирать или компилировать ее снова. Например, отделу бухгалтерии для подсчета выручки от всех собранных игрушечных автомобилей конкретного продавца достаточно взять уже скомпилированную информацию о собранных автомобилях и применить к ней правила, которые фильтруют информацию на основе личности сотрудника. Другими словами, в перекомпиляции нет необходимости, необходимо лишь сменить представление информации. (См. пример ниже про Формулу 1.) Для представления данных, переключения между контекстами определенного бизнес-приложения, иллюстративным является пример с Ф1.  Thus, as soon as the N3 rule has been parsed, it can be used by the engine to provide contextualized data for a specific business application for modification and further work on it. The advantage, compared to OLAP cubes, is that this information can be presented as a “slice” at any time without the need for recompilation - the information has already been parsed, and there is no need to parse or compile it again. For example, the accounting department to calculate the proceeds from all collected toy cars of a particular seller, it is enough to take already compiled information about the collected cars and apply rules to it that filter information based on the employee’s identity. In other words, there is no need to recompile, it is only necessary to change the presentation of information. (See the example below about Formula 1.) For the presentation of data, switching between the contexts of a particular business application, the example with F1 is illustrative.
Пример Формула Ф1: Example Formula F1:
Ф1 команда Ferrari 2004 год F1 team Ferrari 2004
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) Люди: SUBSTITUTE SHEET (RULE 26) People:
Пилоты: Pilots:
Михаэль Шумахер Рубенс Баррикелло Michael Schumacher Rubens Barrichello
1 менеджер команды 20 инженеров 1 team manager 20 engineers
2 автомобиля / 8 колес / 2 подвески / 2 шасси / 8 инженеров на весь сезон / 2 кузова автомобиля / 15 гран-при в сезон/ 1 гран-при за 3 тренировочных заезда, 1 квалификационная гонка и 1 главное событие - гонка / требуется 15 инженеров на гонку / 2 cars / 8 wheels / 2 suspensions / 2 chassis / 8 engineers for the whole season / 2 car bodies / 15 grand prix per season / 1 grand prix for 3 training runs, 1 qualification race and 1 main event - race / 15 required engineers for the race /
Команде нужно: The team needs:
1 система для отслеживания создания автомобиля (аналогично трекеру задач для инженеров), так что в реальном случае, это можно рассматривать как:  1 system for tracking the creation of the car (similar to the task tracker for engineers), so in the real case, this can be considered as:
Инженер/Пилот входит в систему и работает с задачами (задачи могут выглядеть, как: сборка шасси назначена конкретному инженеру или протестировать автомобиль проехать несколько кругов перед Гран-при Канады назначена Михаэлю Шумахеру) Engineer / Pilot enters the system and works with tasks (tasks may look like: the chassis assembly is assigned to a specific engineer or test a car to drive several laps before the Canadian Grand Prix is assigned to Michael Schumacher)
1 система для управления людьми в гонках (аналогичный проект для менеджера), например, менеджер использует инженеров и пилотов в качестве ресурсов для конкретной гонки.  1 system for managing people in races (a similar project for a manager), for example, a manager uses engineers and pilots as resources for a particular race.
Архитектура Comindware Comindware Architecture
Есть хранилище данных (написанное на N3 нотации: субъект-предикат-объект):  There is a data store (written in N3 notation: subject-predicate-object):
Аксиомы: Axioms:
Шумахер - пилот  Schumacher - pilot
Петр - инженер  Peter - engineer
автомобилю требуются 4 колеса автомобилю требуется 1 двигатель car needs 4 wheels car needs 1 engine
Настройка системных правил следующим образом: Set up system rules as follows:
Пилот может использовать только один подготовленный автомобиль (в N3 может быть похоже на пример с.игрушечным автомобилем)  A pilot can only use one prepared vehicle (in N3 it may look like an example with a toy car)
Ядро разбирает данные после получения запроса от Бизнес-слоя и компилирует в Движок (на основе проанализированных правил). Поэтому, скомпилированный движок знает, как отображать информацию для конкретного запроса (другими словами, в зависимости от контекста,  The kernel parses the data after receiving a request from the Business layer and compiles it into the Engine (based on the analyzed rules). Therefore, the compiled engine knows how to display information for a specific request (in other words, depending on the context,
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) представление информации может отличаться). Ядро компилирует дополнительные правила для Движка, только если до этого конкретное правило не было ранее разобрано. SUBSTITUTE SHEET (RULE 26) presentation of information may vary). The kernel compiles additional rules for the Engine only if a specific rule has not been previously parsed before.
Когда инженер входит в систему, он видит задачи, которые должен сделать. Следуя правилам, он собирает автомобиль и обновляет статусы задач. Он также изменяет в системе доступные запчасти для автомобиля, поскольку запчасти являются ресурсами для Задачи.  When an engineer enters the system, he sees the tasks that he must do. Following the rules, he collects the car and updates the status of tasks. It also changes the available spare parts for the car in the system, since spare parts are resources for the Task.
Трекер задач для механиков, обслуживающих автомобиль для отслеживания его готовности к гонке, знает, что инженеры авторизовались, в Движок предоставляет пользователям информацию, когда человек является пользователем (например, владельцем задачи) и то, что деталь является ресурсом. Движок представляет информацию в определенном контексте, в данном случае, представляя информацию механикам. The task tracker for the mechanics servicing the car to track its readiness for the race knows that the engineers are authorized, the engine provides users with information when a person is a user (for example, the owner of a task) and that the part is a resource. The engine presents information in a specific context, in this case, presenting information to mechanics.
Когда менеджер авторизуется для назначения людей на гонку, он видит людей в виде ресурсов для конкретной гонки. Таким образом, для менеджера это будет другой трекер, больше похожим на программное обеспечение для управления проектами, а механики для трекера менеджера являются ресурсами, хотя эти же механики являлись обычными пользователями, когда автомобиль нуждался в обслуживании. When a manager logs in to assign people to a race, he sees people as resources for a particular race. Thus, for the manager, this will be a different tracker, more similar to project management software, and the mechanics for the manager’s tracker are resources, although these mechanics were ordinary users when the car needed maintenance.
В предлагаемой архитектуре все данные могут быть использованы в различных бизнес- приложениях, использующихся в различных бизнес-приложениях, с определенными контекстуализированными видами (см. ФИГ. 6). Для той же самой системы, использующей реляционные базы данных или OLAP кубы, требуется дублируемая информация в нескольких базах данных (инженер Петр - в качестве инженера для системы проектов, чтобы назначить его на конкретную гонку, и Петр - в качестве пользователя для Трекера задач во время процесса сборки автомобиля). Условно, если Ferrari нанимает нового пилота, то он должен быть добавлен в систему проекта в виде ресурса.и в трекер задач в виде пользователя. In the proposed architecture, all data can be used in various business applications used in various business applications, with certain contextualized views (see FIG. 6). For the same system that uses relational databases or OLAP cubes, duplicate information is required in several databases (engineer Peter as an engineer for a project system to assign him to a specific race, and Peter as a user for the Task Tracker during car assembly process). Conditionally, if Ferrari hires a new pilot, then he must be added to the project system as a resource. And to the task tracker as a user.
Срез представляет собой запрос для конкретной "таблицы фактов", который требует от пользователя перенастраивать срез каждый раз, когда пользователю необходимо изменить любое поле в таблице фактов, поскольку у них есть реляционная база данных (например, поле смены пилота в качестве ресурса для пилота в виде пользователя в таблице фактов). Предлагаемая архитектура конфигурирует на лету, поскольку не имеет продублированных данных. A slice is a query for a specific “fact table” that requires the user to reconfigure the slice each time the user needs to change any field in the fact table because they have a relational database (for example, the pilot change field as a resource for the pilot in the form user in the fact table). The proposed architecture configures on the fly because it does not have duplicate data.
В одной реализации база данных Comindware® использует внутренний бинарный формат для хранения аксиом и правил. Хранилище оптимизировано для быстрого поиска и получения аксиом. Следующие типы данных поддерживаются для любой части тройки аксиомы (субъект, предикат или объект): In one implementation, the Comindware ® database uses an internal binary format to store axioms and rules. The storage is optimized for quick search and getting axioms. The following data types are supported for any part of the axiom triple (subject, predicate or object):
U I - соответствует URI в определении RDF графа. U I - corresponds to the URI in the definition of the RDF graph.
Пустой узел - анонимное имя ресурса, как определено RDF Empty Node - Anonymous resource name as defined by RDF
Строковый литерал в Юникоде - содержит строку в Юникоде произвольной длины Целочисленный литерал - Содержит 32-битное целое число Unicode string literal - contains a Unicode string of arbitrary length Integer literal - Contains a 32-bit integer
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) Десятичный литерал - Содержит 128-битное число. Данный тип данных предназначен для финансовых и денежно-кредитных вычислений SUBSTITUTE SHEET (RULE 26) Decimal literal - Contains a 128-bit number. This data type is intended for financial and monetary calculations.
Литерал Дата/Время - Содержит значения даты и времени в часовом поясе UTC Literal Date / Time - Contains date and time values in the UTC time zone
Литерал продолжительности - Содержит временной интервал (например, 4 часа) Duration literal - Contains a time interval (e.g. 4 hours)
Логический - Содержит либо "истину", либо "ложь" Logical - Contains either "truth" or "false"
N3 формулы - упорядоченная коллекция троек. Например { :автомобиль вет :красный. :автомобиль :модель :х } N3 formulas - an ordered collection of triples. For example {: car vet: red. : car: model: x}
N3 Списки - упорядоченная коллекция имен или литералов. Например (жрасный :синий :оранжевый) N3 Lists - An ordered collection of names or literals. For example (red: blue: orange)
В отличие от RDF, в Базе данных Comindware может быть использован любой тип данных в любом месте в тройке. Например, Unlike RDF, any type of data anywhere in the top three can be used in the Comindware Database. For example,
"l"AAxsd:integer log:paBHO "npnMep"AAxsd:string. "l" AA xsd: integer log: paBHO "npnMep" AA xsd: string.
Правила хранятся в виде аксиом со следующей структурой. Субъект является формулой, содержащей логическую конъюнкцию троек, включающих правила логики. Предикат установлен на log:implies, чаще обозначаемом как "=>". Субъект является формулой, содержащей тройки следствия. Рассмотрим следующее правило: Rules are stored as axioms with the following structure. A subject is a formula containing a logical conjunction of triples, including rules of logic. The predicate is set to log: implies, often referred to as "=>". The subject is a formula containing triples of effect. Consider the following rule:
{ ?о операция:естьТребуемыеДанные ?f. ?f Ьполе:пусто истина.} => {?о операция:позволить ложь} {? about operation: is there Required Data? f. ? f field: empty true.} => {? o operation: allow false}
Здесь "{ ?о операция:естьТребуемыеДанные ?f. ?f Ьполе:пусто истина.}" формулой в является субъекте  Here "{? O operation: is the Required Data? F.? F b field: empty is true.}" The formula in is subject
"=>" является предикатом, "{?о операция:позволить ложь}" является формулой импликации объекта.  "=>" is a predicate, "{? o operation: allow false}" is the formula for implicating an object.
Расширения языка Comindware® представляют собой набор встроенных предикатов в дополнение к тем, что определены RDF (пространство имен log). Расширения Comindware® размещаются в пространстве имен "assert": Comindware ® language extensions are a set of built-in predicates in addition to those defined by RDF (log namespace). Comindware ® extensions are located in the "assert" namespace:
@prefix assert: <http://comindware.eom/logics/assert#>. @prefix assert: <http: //comindware.eom/logics/assert#>.
Определены следующие расширения: assertriff. Предоставляет возможность условного анализа логических конъюнкций.. Пример The following extensions are defined: assertriff. Provides the ability to conditionally analyze logical conjunctions .. Example
{ { Равтомобиль щвет жрасный} assertriff ({?автомобиль :тип жабриолет} { ?автомобиль щвет :синий}) } => { ?а8томобиль :прелестный истина }. {{Car shields red} assertriff ({? Car: type jabriolet} {? Car shields: blue})} => {? A8 car: lovely truth}.
Автомобиль - прелестный, если его тип - кабриолет, а цвет красный ИЛИ синий. assert:c4eT. Считает совпадающие утверждения и возвращает число. A car is lovely if its type is a convertible and the color is red OR blue. assert: c4eT. Counts matching statements and returns a number.
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) { { Равтомобиль а :Автомобиль } assert:c4eT ?n } => { :Автомобиль :счет ?n }. Считает все автомобили аБзег^последовательность. Генерирует N3 список из утверждений. SUBSTITUTE SHEET (RULE 26) {{Car: Car} assert: c4eT? N} => {: Car: account? N}. Counts all cars abzeg ^ sequence. Generates an N3 list of statements.
{ ({ Равтомобиль а :Автомоблль } ?автомобиль) аББег^последовательность ?списокАвтомобилей} => { результат : списокАвтомобилей ? списокАвтомобилей}. Генерирует список из всех автомобилей азБег^уникальный. Фильтрует набор утверждений, содержащих только уникальные значения переменной {({Car a: Car}? Car) aBBReg ^ sequence? List of Cars} => {result: list of Cars? car list}. Generates a list of all AzBeg vehicles ^ unique. Filters a set of claims containing only unique variable values
{ { ?автомобиль : цвет ? цвет} аББеПгуникальный Pcolor } => { результат ветаАвтомобилей ?цвет}. Генерирует уникальный набор всех существующих уветов автомобилей. assert:o6pe3aTb. Ограничивает набор совпадающих утверждений заданным числом {{? car: color? color} aBBePunical Pcolor} => {result of a vetaAutomotive? color}. Generates a unique set of all existing vehicle displays. assert: o6pe3aTb. Limits the set of matching statements to a given number
{ { ?автомобиль а :Автомобиль } assert:o6pe3aTb 2} => { результат :автомобили ?автомобиль }. Генерирует набор максимум из 2 автомобилей. assert:0TMeHa. Отменяет вычисления с конкретным сообщением об ошибке. Полезно для диагностики и отслеживания ошибок. {{? car a: car} assert: o6pe3aTb 2} => {result: cars? car}. Generates a set of a maximum of 2 cars. assert: 0TMeHa. Cancels calculations with a specific error message. Useful for diagnosing and tracking errors.
{ ?автомобиль :цвет ?цвет. {?цвет log:paBHO красный.} } asserfciff ({:автомобиль assert:0TMeHa ("красные машины не допускаются")} {}). } => { результат :автомобили ?автомобиль }. Генерирует набор из всех машин, проверяя, чтобы в нем не было красных автомобилей. {? car: color? color. {? color log: paBHO red.}} asserfciff ({: car assert: 0TMeHa ("red cars are not allowed")} {}). } => {result: cars? car}. Generates a set of all cars, checking that it does not have red cars.
В сложной системе с множеством пользователей и приложений данные могут быть разбиты между базами данных одним из следующих способов для достижения изоляции данных и контекста.  In a complex system with many users and applications, data can be partitioned between databases in one of the following ways to achieve data isolation and context.
(i) По приложению (см. ФИГ. 17). У каждого приложения есть своя собственная база данных, хранящая данные, обработанные приложением. В данной схеме существует два типа контекста данных. Контекст приложения предоставляет доступ к данным приложения конкретному приложению. Данные другого приложения не доступны в данной базе данных. Глобальный контекст предоставляет доступ к данным множеству приложений. Данный контекст может быть использован для отчетности и сбора статистики. (i) According to the annex (see FIG. 17). Each application has its own database that stores data processed by the application. In this scheme, there are two types of data context. An application context provides access to application data to a specific application. The data of another application is not available in this database. The global context provides data access to many applications. This context can be used for reporting and statistics.
(П) По владельцу данных (см. ФИГ. 18). В данном сценарии у каждого пользователя есть своя база собственная данных с персональными данными. Для общих данных может быть использованы отдельная база данных. В данном случае контекст пользовательских данных объединяет базу данных пользователя с общей базой данных, чтобы разрешить пользователю доступ к персональным и общим данным. Глобальный контекст может получать доступ к данным всех пользователей для отчетности, статистики и административных задач. (P) According to the owner of the data (see FIG. 18). In this scenario, each user has his own database of personal data with personal data. A separate database can be used for shared data. In this case, the user data context combines the user database with a common database to allow the user access to personal and shared data. The global context can access all users' data for reporting, statistics, and administrative tasks.
(iii) По типу данных (см. ФИГ. 18). В данном сценарии каждая база данных содержит данные (бизнес-приложения) конкретного типа. Например, может использоваться отдельная база данных для отслеживания заказов и база данных для истории заказов. В случае системы управления задачами может существовать три базы данных: одна, которая содержит (iii) By type of data (see FIG. 18). In this scenario, each database contains data (business applications) of a particular type. For example, a separate database for tracking orders and a database for order history can be used. In the case of a task management system, there may be three databases: one that contains
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) информацию о всех пользователях, другая - для задач и третья для событий календаря. Простой контекст, содержащий только наиболее часто используемые данные конкретного типа, используется для большинства запросов, в то время как полный контекст, содержащий все типы данных, используется только в редких сложных запросах. В приведенном выше примере пользователи в основном работают с заказами и только в редких случаях запрашивают историю заказов. SUBSTITUTE SHEET (RULE 26) information about all users, another for tasks and a third for calendar events. A simple context containing only the most frequently used data of a particular type is used for most queries, while a full context containing all data types is used only in rare complex queries. In the above example, users mainly work with orders and only in rare cases request a history of orders.
В некоторых случаях возможно использование комбинированного подхода. Например, могут существовать базы данных для каждого типа данных и нетипизированная база данных для каждого пользователя с персональными данными. In some cases, a combined approach is possible. For example, there may be databases for each data type and an untyped database for each user with personal data.
Любые базы данных могут быть разделены на несколько более мелких баз данных. Any database can be divided into several smaller databases.
При описании операции или запроса к базе данных предоставляется модель конфигурации, когда операция будет выполнена внутри конструкции данной модели. Модель может являться-комбинацией нескольких источников данных, таких как базы данных и/или файлы онтологий. Модель является эффективным контекстом данных, который предоставляет интерфейс для доступа к данным из нескольких баз данных и других источников данных. В пределах одной транзакции все изменения выполняются только для одной базы данных, даже когда данные хранятся в нескольких базах данных. В одной варианте осуществления существует четыре основных источников данных, см. ФИГ. 13: When describing an operation or query to the database, a configuration model is provided when the operation is performed inside the structure of this model. A model can be a combination of several data sources, such as databases and / or ontology files. A model is an effective data context that provides an interface for accessing data from multiple databases and other data sources. Within a single transaction, all changes are performed for only one database, even when data is stored in several databases. In one embodiment, there are four main data sources, see FIG. 13:
База данных пользовательских данных User data database
База данных истории операций Operation History Database
База Конфигурационная база данных, содержащая установки приложения Файлы онтологий в N3 формате  Base Configuration database containing application settings. Ontology files in N3 format
На ФИГ. 14 показана блок-схема устройства базы данных. Модуль базы данных имеет 3 основных функциональных слоя:  In FIG. 14 is a block diagram of a database device. The database module has 3 main functional layers:
Слой-обертка, реализованный, например, на С#. Обертка отвечает за преобразование данных в формат, используемый следующим слоем.  A wrapper layer implemented, for example, in C #. The wrapper is responsible for converting the data to the format used by the next layer.
Слой доступа, реализованный, например, на С++, который отвечает за логические связи между данными, сохраненными в базах данных.  An access layer, implemented, for example, in C ++, which is responsible for the logical connections between data stored in databases.
Слой хранилища Б-дерева, который хранит актуальные пользовательские данные в виде Б- дерева. A B-tree storage layer that stores current user data in the form of a B-tree.
На ФИГ. 14 также показаны основные компоненты для каждого слоя и как реализация распределяет компоненты между слоями.  In FIG. 14 also shows the main components for each layer and how the implementation distributes the components between the layers.
Пользовательская база данных на стороне клиента хранит данные в формате N3. Модуль базы данных позволяет пользователям управлять их данными на клиентском компьютере, даже с ограниченным доступом к серверу или без доступа к серверу совсем. Это снижает нагрузку на сервер и позволяет пользователю менять, добавлять, получать и модифицировать данные на лету. The client-side user database stores data in N3 format. The database module allows users to manage their data on a client computer, even with limited access to the server or without access to the server at all. This reduces the load on the server and allows the user to change, add, receive and modify data on the fly.
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) Как правило, для передачи данных на сервер и для обработки и публикации данных на сервере используются большие пакеты. Как Поскольку на стороне клиента и на стороне сервера используется один и тот же формат, то нет необходимости в преобразовании данных между клиентом и сервером. SUBSTITUTE SHEET (RULE 26) As a rule, large packets are used to transfer data to the server and to process and publish data on the server. How Since the same format is used on the client side and on the server side, there is no need to convert data between the client and server.
На стороне клиента располагаются три основных элемента для управления базами данных, см. ФИГ. 15: On the client side there are three main elements for database management, see FIG. fifteen:
Слой хранения; Storage layer;
Слой получения данных; Data acquisition layer;
Слой логики. Layer of logic.
Слой хранения состоит из следующих компонентов: The storage layer consists of the following components:
Троечная модель памяти является основным компонентом, управляющим другими компонентами. Она представляет основные, низкоуровневые механизмы для добавления, редактирования, удаления и получения данных.  The triple memory model is the main component that controls other components. It provides basic, low-level mechanisms for adding, editing, deleting, and retrieving data.
Словарь является списком "слов", которые могут быть любыми константами, например, "Мой любимый фильм " или "12 Мая 2013", или "25.4". Каждое слово в словаре имеет уникальный Идентификатор и доступ к нему осуществляется по индексу.  A dictionary is a list of “words” that can be any constant, for example, “My favorite movie” or “May 12, 2013”, or “25.4”. Each word in the dictionary has a unique Identifier and is accessed by index.
Словарь хешей является обратным словарю, который предоставляет доступ к индексу по словам.  A hash dictionary is a reverse dictionary that provides access to an index by word.
Счетчик ссылок является субкомпонентом для хранения ссылок для каждого слова. Каждый раз, когда слово используется в определенном контексте, счетчик увеличивается на единицу. Когда слово удаляется, считчик уменьшается. Link counter is a subcomponent for storing links for each word. Each time a word is used in a specific context, the counter is incremented by one. When a word is deleted, the counter decreases.
Система координат субъект-предикат-объект может быть использована для представления контекста или фактов, в качестве точек в трехмерном пространстве. Например, рассмотрим три факта: "Петру нравятся автомобили ", " Петру нравится рыбалка" и " Джейсону нравится рыбалка". Вероятно, все слова, используемые в данных фактах, уже находятся в словаре и соответствующие индексы уже известно, например, (Петр, 0), (Нравится, 1), (автомобили, 2), (рыбалка, 3), (Джейсон, 4). Тогда факты могут быть представлены как (0, 1, 2), (0, 1, 3), (4, 1, 3).  The subject-predicate-object coordinate system can be used to represent context or facts as points in three-dimensional space. For example, consider three facts: “Peter likes cars,” “Peter likes fishing,” and “Jason likes fishing.” Probably, all the words used in these facts are already in the dictionary and the corresponding indices are already known, for example, (Peter, 0), (Like, 1), (cars, 2), (fishing, 3), (Jason, 4 ) Then the facts can be represented as (0, 1, 2), (0, 1, 3), (4, 1, 3).
Система координат субъект-предикат-объект представляет схожий концепт за исключением того, что факты записаны в обратном порядке для дальнейшего доступа к объектам.  The subject-predicate-object coordinate system represents a similar concept except that the facts are written in the reverse order for further access to the objects.
Слой получения данных включает следующие компоненты: The data acquisition layer includes the following components:
"Контроллер мозг" предоставляет открытый интерфейс для функций получения данных. Он позволяет пользователю работать с простыми и упрощенными запросами посредством механизма Процессора Сличителя Последовательностей. The “brain controller” provides an open interface for data acquisition functions. It allows the user to work with simple and simplified queries through the mechanism of the Processor of the Matcher of the Sequences.
Процессор Сличителя Последовательностей обеспечивает функциональность для обработки совпадающих последовательностей с использованием выходных параметров из предыдущих совпадений в виде входных параметров для следующей последовательности. Также The Sequencer Comparison processor provides functionality for processing matching sequences using the output parameters from previous matches as input parameters for the next sequence. Also
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) поддерживается рекурсивная обработка, например, "Что нравится Петру, что также нравится Джейсону?" (на естественном языке или "Петру нравится ?х. Джейсону нравится ?х.; Сличить ?х" на более формальном языке), результатом чего будет "рыбалка" в приведенном выше примере, также как и фильтрация (например, дополнительные условия для совпадений, например, "кому нравится рыбалка и у кого номер телефона начинается с 212?" SUBSTITUTE SHEET (RULE 26) recursive processing is supported, for example, "What does Peter like, what does Jason also like?" (in natural language or “Does Peter like? x. Jason likes? x; Compare? x” in a more formal language), the result will be “fishing” in the above example, as well as filtering (for example, additional conditions for matches, for example, "who likes fishing and whose phone number starts at 212?"
Сличитель Субьектов-Предикатов позволяет пользователю получать данные на основе известного субъекта и предиката. Например, на основе приведенных выше фактов контроллер мозг можно спросить "Что нравится Петру?" В более формальном представлении параметры "Петр" и "нравится" могут быть переданы в Сличитель Субьектов-Предикатов, который соберет все факты, содержащие "Петру нравится ..." в виде субъектов и предикатов. В данном примере результатом будет."Петру нравятся автомобили и рыбалка ". Predicate Subject Matching allows the user to retrieve data based on a known subject and predicate. For example, based on the above facts, the brain controller may ask, “What does Peter like?” In a more formal presentation, the parameters “Peter” and “like” can be transferred to the Matcher of Subjects-Predicates, which will collect all the facts containing “Peter like ...” in the form of subjects and predicates. In this example, the result would be: "Peter likes cars and fishing."
Сличитель Предикатов-Объектов имеет дело с другими совпадениями, например, такими запросами как "кому нравится рыбалка?" В данном случае известны глагол "нравится" и объект "рыбалка". Результатом будет "Петру нравится рыбалка. Джейсону нравится рыбалка". Matching Predicate Objects deals with other matches, such as queries such as "who likes fishing?" In this case, the verb “like” and the object “fishing” are known. The result will be "Peter likes fishing. Jason likes fishing."
Сличитель Субьектов является компонентом, похожим на описанные выше, но в качестве входного параметра он использует только субъект. Subject Matching is a component similar to those described above, but it uses only the subject as an input parameter.
Сличитель Объектов является компонентом, похожим на описанные выше, но в качестве входного параметра он использует объект. The Object Matcher is a component similar to those described above, but it uses an object as an input parameter.
Слой логики включает логику приложений, например, правила, ограничения описание бизнес-объектов и их свойства. Его основными компонентами являются: The logic layer includes application logic, for example, rules, restrictions, description of business objects and their properties. Its main components are:
Контроллер сущностей представляет собой открытый интерфейс для создания, удаления и получения данных бизнес-объектов. Он работает е онтологиями свойств, онтологиями сущностей, моделью троечной памяти, Контроллером Мозгом, а также с различными моделями бизнес- объектов. The entity controller is an open interface for creating, deleting, and retrieving business object data. He works with property ontologies, entity ontologies, a triple memory model, the Brain Controller, as well as with various models of business objects.
API методы слоя логики - обычно двух типов - запросы и операции. Запросы предназначены для получения данных из баз(ы) данных. Операции предназначены для модификации данных. После изменений в системы БД (например, БД пользовательских данных) во время операции изменения анализируются для определения того, следуют ли их отразить в истории - выбираются пользовательские поля и некоторые системные поля и затем отправляются в специальный объект, называемый хранителем истории, который отвечает за запись истории изменений в соответствующую базу данных и объединение записей для каждой истории объекта.  API methods of the logic layer - usually of two types - requests and operations. Queries are designed to obtain data from the database (s) of data. Operations are intended for data modification. After changes to the database systems (for example, the user data database) during the operation, the changes are analyzed to determine whether they should be reflected in the history - user fields and some system fields are selected and then sent to a special object called the history keeper, which is responsible for recording change histories in the corresponding database and combining records for each object history.
По окончании операции изменения записываются в специальную базу данных, например, в качестве отдельной ветки. Записи могут содержаться в формате строк: At the end of the operation, the changes are recorded in a special database, for example, as a separate branch. Entries may be in string format:
Связь с измененным объектом Link to modified object
Автор изменений Change Author
Дата изменения Date of change
Тип изменения (создание, редактирование, комментарий и т.д.) Type of change (create, edit, comment, etc.)
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) Измененные поля SUBSTITUTE SHEET (RULE 26) Modified Fields
Удаленные (старые) значения Deleted (old) values
Добавленные (новые) значения Added (new) values
Если в течение некоторого периода времени (например, N минут) тот же пользователь совершает похожие виды операций с тем же объектом (например, пользователь Джон Смит редактирует объект "Ошибка 120"), то записи в базе данных истории могут быть объединены в одну запись. Хранитель истории устанавливает внутренний список .ссылок на последние изменения для каждого объекта. При получении новой записи первым делом он проверяет может ли новая запись быть объединена с предыдущей записью. Затем он на основании проверки либо создает новую запись, либо редактирует старую запись. If during the same period of time (for example, N minutes) the same user performs similar types of operations with the same object (for example, user John Smith edits the object "Error 120"), then the records in the history database can be combined into one record. The history keeper sets an internal list of links to the latest changes for each object. When receiving a new record, the first thing he checks is whether the new record can be combined with the previous record. Then, on the basis of the verification, he either creates a new record or edits the old record.
На ФИГ. 16 показаны онтологии. Онтология сущностей имеет древовидную структуру, которая описывает какие свойства есть у бизнес-объекта и описывает связи между between the objects. Например, онтология определяет бизнес-объект "Проект" и перечисляет все его свойства, такие как "Дата начала" или "Заголовок". In FIG. 16 shows ontologies. The entity ontology has a tree structure that describes what properties a business object has and describes the relationships between the objects. For example, an ontology defines the Project business object and lists all of its properties, such as Start Date or Title.
Онтология свойств представляет собой каталог всех возможных свойств в системе, вместе с их типами и другими атрибутами, например, форматом, например, свойство "Дата начала" имеет тип "дата" и формат "месяц/ день/год". A property ontology is a catalog of all the possible properties in the system, together with their types and other attributes, for example, in a format, for example, the "Start date" property is of the "date" type and of the "month / day / year" format.
Модель Логики Задач представляет собой структуру, включающую правила и ограничения для настройки и доступ к свойствам задач бизнес-объекта. Например, правило может быть "Если дата завершения задачи сдвинута и задача является частью проекта, то дата завершения проекта также сдвигается". The Task Logic Model is a structure that includes rules and restrictions for customization and access to the task properties of a business object. For example, the rule might be "If the completion date of the task is shifted and the task is part of the project, then the completion date of the project is also shifted."
Модель системных объектов обычно отражает модель компонентов, описанную выше. При получении запроса к одному из методом веб-API, определенный контроллер выполняет запрошенное действие и возвращает требуемый результат. Результаты могут иметь любой формат, пригодный для дальнейшей обработки, например, в виде деревьев, графов, списков, таблиц, текста, объектов JSON или в любом другом формате, определенным пользователем. The system object model usually reflects the component model described above. Upon receipt of a request to one of the web API methods, a specific controller performs the requested action and returns the desired result. The results can be in any format suitable for further processing, for example, in the form of trees, graphs, lists, tables, text, JSON objects, or in any other format defined by the user.
Comindware предоставляет онтологию для описания метаданных, похожую на определенные OWL и RDFS. Следующая онтология описывает сама себя, как это определено в ее собственных выражениях. Данная онтология вводит понятие Класса и Свойства. Comindware provides an ontology for describing metadata similar to specific OWLs and RDFSs. The following ontology describes itself as defined in its own expressions. This ontology introduces the concept of Class and Property.
Класс является набором метаданных, описывающих конкретный тип данных. Класс имеет следующие атрибуты: A class is a collection of metadata that describes a particular data type. The class has the following attributes:
Имя, определенное предикатом имяКласса Name defined by the predicate ClassName
Описание, определенное предикатом описаниеКласса Description defined by predicate Class description
Набор свойств, определенных предикатом свойства. A set of properties defined by a property predicate.
Родительский класс. Указывает на то, что данный класс наследует набор свойств из заданного родительского класса. Parent class. Indicates that this class inherits a set of properties from the specified parent class.
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) Свойство описывает конкретный предикат и ограничения для утверждений, использующих предикат. Свойство имеет следующие атрибуты: имяСвойства - строка, определяющая имя свойства, как оно отображается пользователю описаниеСвойства - строка, определяющая описание свойства, как оно отображается пользователю типСвойства - указывает на класс, которому должны принадлежать объекты атрибутыСвойства - определяет число или ограничения значений свойства. Возможные ограничения: обязательный - значение для данного предиката должно присутствовать в экземпляре класса мультиЗначение - Может существовать несколько утверждений с заданными субъектами и предикатами, но с различными объектами. Если не определено, то экземпляр может содержать только один или ноль утверждения (объектов) с данным предикатом. SUBSTITUTE SHEET (RULE 26) The property describes a specific predicate and constraints for statements that use a predicate. The property has the following attributes: PropertyName - a string that defines the name of the property, how it is displayed to the user Description Properties - a string that defines the description of the property, how it is displayed to the user Type of Property - indicates the class to which the property attributes should belong - determines the number or restrictions of the property values. Possible limitations: mandatory - the value for this predicate must be present in the instance of the multiValue class. Value - There may be several statements with given subjects and predicates, but with different objects. If not defined, then an instance can contain only one or zero statements (objects) with a given predicate.
Пример самой онтологии может быть следующим: An example of the ontology itself can be as follows:
(©prefix xsd: <http://www.w3.org/2001/XMLSchema#>. (© prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
@prefix log: <http://www.w3.org/2000/10/swap/log#>. @prefix log: <http://www.w3.org/2000/10/swap/log#>.
@prefix cmw: <http://comindware.eom/logics#>. @prefix cmw: <http: //comindware.eom/logics#>.
cmw:Knacc a cmw:toiacc. сгтш:Класс
Figure imgf000024_0001
cmw: Knacc a cmw: toiacc. sbsh: Class
Figure imgf000024_0001
Figure imgf000024_0002
ст\л/:Свойство cmw:Knacc
Figure imgf000024_0003
сгтш писаниеКласса. сггш:Класс сггш:Свойство ст\л/:Свойство.
Figure imgf000024_0004
Figure imgf000024_0002
steel \ l /: cmw property: Knacc
Figure imgf000024_0003
the scripture of the Class. sgsh: Class sgsh: Property st \ l /: Property.
Figure imgf000024_0004
Figure imgf000024_0005
спгш ипСвойства cmw: Класс. сггш:родительскийКласс сгт™:атрибутыСвойства cmw:мyльτиЗнaчeниe.
Figure imgf000024_0005
SPGS and CMW Properties: Class. sgsh: parentCgt ™ class: attributesCmw properties: multipleValue.
сггш:имяКласса а спш:Свойство. cmw:nMfl^acca cmw:TnnCBoftcrBa xsd:cTpoKa. sgsh: class name and ssh: property. cmw: nMfl ^ acca cmw: TnnCBoftcrBa xsd: cTpoKa.
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) спгм писаниеКласса а сггш:Свойство. SUBSTITUTE SHEET (RULE 26) css scripture Class a sggs: Property.
спл\л/:описаниеКласса сгтш ипСвойства ст\л/:Класс.
Figure imgf000025_0001
spl \ l /: description of the class of class and properties of \ l /: class.
Figure imgf000025_0001
атш:Свойство ст\л/:атрибутыСвойства ст : ультиЗначение. спгш:Свойство
Figure imgf000025_0002
Figure imgf000025_0003
atsh: Property st \ l /: attributes Properties st: ultiValue. cssh: Property
Figure imgf000025_0002
Figure imgf000025_0003
сггш: ультиЗначение а ст\л/:АтрибутСвойства.sgsh: ultiValue a st \ l /: AttributeProperties.
Figure imgf000025_0004
Figure imgf000025_0004
СГТШ:СВОЙСТВО  SGTS: PROPERTY
сггш:Свойство
Figure imgf000025_0005
Figure imgf000025_0006
sgsh: Property
Figure imgf000025_0005
Figure imgf000025_0006
а ст\л/:Свойство. and st \ l /: Property.
Figure imgf000025_0007
сггшггипСвойства xsd:crpoKa.
Figure imgf000025_0007
sggsggip xsd: crpoKa properties.
ст\л/:типСвойства а ст\л/:Свойство.st \ l /: type Property and st \ l /: Property.
Figure imgf000025_0008
cmw: nacc.
Figure imgf000025_0008
cmw: nacc.
Figure imgf000025_0009
сгтш:атрибутыСвойства
Figure imgf000025_0009
ssh: attributes
@in ?свойство.  @in? property.
{  {
? свойство
Figure imgf000025_0010
?тип.
? property
Figure imgf000025_0010
?type of.
@if-not { ?тип сггш:и яКласса ?и я} @then @ if-not {? type crap: and I'm Class? and me} @then
{ {
?ТИП -> ?и я.  ? TYPE ->? And me.
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) } SUBSTITUTE SHEET (RULE 26) }
} => { ?свойство ст\л :показатьТипСвойства ?и я. }.  } => {? property st \ l: showTypeProperties? and I. }.
сгтш писаниеСвойства а сгтш:Свойство. real estate property and real estate property.
ст\«:описаниеСвойства ст\л/:типСвойства xsd:crpoKa.
Figure imgf000026_0001
сгтш:АтрибутСвойства.
st \ ": descriptionProperties st \ l /: typeProperty xsd: crpoKa.
Figure imgf000026_0001
sms: Property Attribute.
сггш:атрибутыСвойства сггш:атрибутыСвойства ст\л :мультиЗначение. sggs: attributes Properties sgs: attributes attributes st \ l: multiValue.
in ?класс. in? class.
{ {
?класс
Figure imgf000026_0002
?родительский
? class
Figure imgf000026_0002
?parental
} => { ?класс cmw: все Родительские ?родительский}. } => {? class cmw: all Parents? parent}.
in ?класс. {·· in? class. {··
?класс
Figure imgf000026_0003
?родительский.
? class
Figure imgf000026_0003
?parental.
?родительский спгш:всеРодительские?рр ? parental union: all Parents? pp
} => { ?класс ст\л :всеРодительские?рр }. } => {? class st \ l: all Parents? pp}.
in ?х, ?класс. in? x,? class.
{ ?х а ?класс } => { ?х ст\л/:являетсяТипо Класса ?класс}.  {? x ah? class} => {? x st \ l /: isType Class? class}.
in ?х, ?класс. in? x,? class.
{ ?х а ?хс. ?хс сгсм:всеРодительские ?класс} => { ?х ст\л :являетсяТипомКласса ?класс }. {? x ah? xs. ? xs sgsm: all Parents? class} => {? x st \ l: is a Class Type? class}.
Пример использования онтологии: An example of using an ontology:
:Автомобиль а ст\ :Класс.  : Car and art.: Class.
:Автомобиль спгш:Свойство :цвет.  : Car spgsh: Property: color.
:Автомобиль
Figure imgf000026_0004
:название.
Figure imgf000026_0005
:Car
Figure imgf000026_0004
:title.
Figure imgf000026_0005
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) :название а
Figure imgf000027_0001
SUBSTITUTE SHEET (RULE 26) : name a
Figure imgf000027_0001
: название ст\м:типСвойства xsd:crpoKa. :Цвет a ст\л :Класс. расный а :Цвет. :синий а :Цвет.  : name st \ m: typeProperty xsd: crpoKa. : Color a st \ l: Class. Red A: Color. : blue a: color.
Ссылаясь на ФИГ. 12, типичная система для реализации изобретения включает в себя многоцелевое вычислительное устройство в виде компьютера 20 или сервера, включающего в себя процессор 21, системную память 22 и системную шину 23, которая связывает различные системные компоненты, включая системную память с процессором 21. Referring to FIG. 12, a typical system for implementing the invention includes a multi-purpose computing device in the form of a computer 20 or a server including a processor 21, a system memory 22, and a system bus 23 that couples various system components, including the system memory to the processor 21.
Системная шина 23 может быть любого из различных типов структур шин, включающих шину памяти или контроллер памяти, периферийную шину и локальную шину, использующую любую из множества архитектур шин. Системная память включает постоянное запоминающее устройство (ПЗУ) 24 и оперативное запоминающее устройство (ОЗУ) 25. В ПЗУ 24 хранится базовая система ввода/вывода 26 (БИОС), состоящая из основных подпрограмм, которые помогают обмениваться информацией между элементами внутри компьютера 20, например, в момент запуска. The system bus 23 may be any of various types of bus structures, including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. System memory includes read-only memory (ROM) 24 and random access memory (RAM) 25. The ROM 24 stores the basic input / output system 26 (BIOS), consisting of basic routines that help exchange information between elements within the computer 20, for example, at the time of launch.
Вычислительное устройство 20 также может включать в себя накопитель 27 на жестком диске для чтения с и записи на жесткий диск, не показан, накопитель 28 на магнитных дисках для чтения с или записи на съёмный магнитный диск 29, и накопитель 30 на оптическом диске для чтения с или записи на съёмный оптический диск 31 такой, как компакт-диск, цифровой видео- диск и другие оптические средства. Computing device 20 may also include a hard disk drive 27 for reading from and writing to a hard disk, not shown, a magnetic disk drive 28 for reading from or writing to a removable magnetic disk 29, and an optical disk drive 30 for reading from or recording to a removable optical disc 31 such as a CD, a digital video disc, and other optical means.
Накопитель 27 на жестком диске, накопитель 28 на магнитных дисках и накопитель 30 на оптических дисках соединены с системной шиной 23 посредством, соответственно, интерфейса 32 накопителя на жестком диске, интерфейса 33 накопителя на магнитных дисках и интерфейса 34 оптического накопителя. Накопители и их соответствующие читаемые компьютером средства обеспечивают энергонезависимое хранение читаемых компьютером инструкций, структур данных, программных модулей и других данных для компьютера 20. The hard disk drive 27, the magnetic disk drive 28, and the optical disk drive 30 are connected to the system bus 23 by means of the hard disk drive interface 32, the magnetic disk drive interface 33, and the optical drive interface 34, respectively. Storage devices and their respective computer-readable means provide non-volatile storage of computer-readable instructions, data structures, program modules and other data for computer 20.
Хотя описанная здесь типичная конфигурация использует жесткий диск, съёмный магнитный диск 29 и съёмный оптический диск 31, специалист примет во внимание, что в типичной операционной среде могут также быть использованы другие типы читаемых компьютером средств, которые могут хранить данные, которые доступны с помощью компьютера, такие как магнитные кассеты, карты флеш-памяти, цифровые видеодиски, картриджи Бернулли, оперативные запоминающие устройства (ОЗУ), постоянные запоминающие устройства (ПЗУ) и т.п.  Although the typical configuration described here uses a hard disk, a removable magnetic disk 29, and a removable optical disk 31, one skilled in the art will appreciate that other types of computer-readable media that can store data that are accessible by a computer may also be used in a typical operating environment. such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memory (RAM), read-only memory (ROM), etc.
Различные программные модули, включая операционную систему 35, могут быть сохранены на жёстком диске, магнитном диске 29, оптическом диске 31, ПЗУ 24 или ОЗУ 25. Компьютер 20 включает в себя файловую систему 36, связанную с операционной системой 35 или включенную в нее, одно или более программное приложение 37, другие программные модули 38 и программные данные 39. Пользователь может вводить команды и информацию в компьютер 20  Various software modules, including operating system 35, may be stored on a hard disk, magnetic disk 29, optical disk 31, ROM 24, or RAM 25. Computer 20 includes a file system 36 associated with or included with the operating system 35 or more software application 37, other program modules 38, and program data 39. A user can enter commands and information into a computer 20
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) при помощи устройств ввода, таких как клавиатура 40 и указательное устройство 42. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, геймпад, спутниковую антенну, сканер или любое другое. SUBSTITUTE SHEET (RULE 26) using input devices, such as a keyboard 40 and pointing device 42. Other input devices (not shown) may include a microphone, joystick, gamepad, satellite dish, scanner, or any other.
Эти и другие устройства ввода соединены с процессором 21 часто посредством интерфейса 46 последовательного порта, который связан с системной шиной, но могут быть соединены посредством других интерфейсов, таких как параллельный порт, игровой порт или универсальная последовательная шина (УПШ). Монитор 47 или другой тип устройства визуального отображения также соединен с системной шиной 23 посредством интерфейса, например видеоадаптера 48. These and other input devices are connected to the processor 21 often through a serial port interface 46 that is connected to the system bus, but can be connected via other interfaces, such as a parallel port, game port, or universal serial bus (USB). A monitor 47 or other type of visual display device is also connected to the system bus 23 via an interface, such as a video adapter 48.
Вычислительное устройство 20 может работать в сетевом окружении посредством логических соединений к одному или нескольким удаленным компьютерам 49. Удаленный компьютер (или компьютеры) 49 может представлять собой другой компьютер, сервер, роутер, сетевой ПК, пиринговое устройство или другой узел единой сети, а также обычно включает в себя большинство или все элементы, описанные выше, в отношении компьютера 20, хотя показано только устройство хранения информации 50. Логические соединения включают в себя локальную сеть (ЛВС) 51 и глобальную компьютерную сеть (ГКС) 52. Такие сетевые окружения обычно распространены в учреждениях, корпоративных компьютерных сетях, Интранете и Интернете. Computing device 20 may operate in a networked environment through logical connections to one or more remote computers 49. The remote computer (or computers) 49 may be another computer, server, router, network PC, peer-to-peer device or other node of a single network, as well as usually includes most or all of the elements described above with respect to computer 20, although only an information storage device 50 is shown. Logical connections include a local area network (LAN) 51 and a global computer yuternuyu network (SCS) 52. Such networking environments are usually common in offices, enterprise-wide computer networks, intranets and the Internet.
Компьютер 20, используемый в сетевом окружении ЛВС, соединяется с локальной сетью 51 посредством сетевого интерфейса или адаптера 53. Компьютер 20, используемый в сетевом окружении ГКС, обычно использует модем 54 или другие средства для установления связи с глобальной компьютерной сетью 52, такой как Интернет. The computer 20 used in the LAN network environment is connected to the local area network 51 via a network interface or adapter 53. The computer 20 used in the GC network environment typically uses a modem 54 or other means to establish communication with the global computer network 52, such as the Internet.
Модем 54, который может быть внутренним или внешним, соединен с системной шиной 23 посредством интерфейса 46 последовательного порта. В сетевом окружении программные модули или их части, описанные применительно к компьютеру 20, могут храниться на удаленном устройстве хранения информации. Надо принять во внимание, что показанные сетевые соединения являются типичными, и для установления коммуникационной связи между компьютерами могут быть использованы другие средства. The modem 54, which may be internal or external, is connected to the system bus 23 via the serial port interface 46. In a networked environment, program modules or parts thereof described with reference to computer 20 may be stored on a remote information storage device. It should be noted that the network connections shown are typical, and other means may be used to establish communication communication between computers.
Принимая во внимание описанный предпочтительный вариант, для специалиста в данной области очевидно, что были достигнуты определенные преимущества описанного способа и инструмента. Также должно быть оценен тот факт, что различные модификации, адаптации и альтернативные реализации могут быть сделаны в пределах объема и духа настоящего изобретения. Изобретение далее определяется следующей формулой изобретения.  Considering the described preferred option, it is obvious to a person skilled in the art that certain advantages of the described method and tool have been achieved. It should also be appreciated that various modifications, adaptations and alternative implementations can be made within the scope and spirit of the present invention. The invention is further defined by the following claims.
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) SUBSTITUTE SHEET (RULE 26)

Claims

ФОРМУЛА ИЗОБРЕТЕНИЯ CLAIM
1. Система для обработки данных приложений, включающая: 1. A system for processing application data, including:
(A) множество баз данных, расположенных на одном или более аппаратном устройстве хранения данных, множество баз данных, хранящих правила и аксиомы в формате СПО-троек (субъект-предикат-объект); (A) a plurality of databases located on one or more hardware data storage devices, a plurality of databases storing rules and axioms in the format of STR triples (subject-predicate-object);
(Б) общий слой хранения данных, обеспечивающий доступ приложениям к СПО-тройкам, хранимым в множестве баз данных, (B) a common data storage layer that provides applications with access to the STR-triples stored in multiple databases,
где СПО-тройки представлены в виде глобальной виртуальной базы данных, уникально представленной для каждого приложения, где глобальная виртуальная база данных генерирует связанные с приложением данные, доступные через общий слой хранения, без дублирования троек, посредством механизма перевода между словарем соответствующего приложения и глобальным словарем; и где глобальный словарь связывает множество баз данных;  where open source triples are presented in the form of a global virtual database uniquely presented for each application, where the global virtual database generates data associated with the application accessible through a common storage layer, without duplicating triples, through a translation mechanism between the dictionary of the corresponding application and the global dictionary; and where a global dictionary links many databases;
(B) по меньшей мере, одну онтологию, хранимую в виде СПО-троек и основанную на правилах и аксиомах; (B) at least one ontology stored in the form of STR triples and based on rules and axioms;
(Г) логическое ядро, которое (D) the logical core that
(i) обрабатывает запросы для преобразования одного набора СПО-троек в другой набор СПО-троек .в зависимости от контекста, представляемого приложениями, который определяет интерпретацию аксиом, (i) processes requests to convert one set of STR triples into another set of STR triples. depending on the context represented by the applications, which defines the interpretation of axioms,
(ii) выполняет операции над аксиомами и генерирует новые аксиомы в том же контексте; и (Hi) фильтрует аксиоме в зависимости, по крайней мере, от одной онтологии. (ii) performs operations on axioms and generates new axioms in the same context; and (Hi) filters the axiom depending on at least one ontology.
2. Система по пункту 1, отличающаяся тем, что логическое ядро фильтрует данные, основываясь на соблюдении контекста введенных данных.  2. The system according to claim 1, characterized in that the logical core filters the data based on the observance of the context of the entered data.
3. Система по пункту 1, отличающаяся тем, что логическое ядро фильтрует данные, основываясь на соблюдении контекста введенных данных.  3. The system according to claim 1, characterized in that the logical core filters the data based on the observance of the context of the entered data.
4. Система по пункту 1, отличающаяся тем, что логическое ядро интерпретирует данные в их контексте.  4. The system according to paragraph 1, characterized in that the logical core interprets the data in their context.
5. Система по пункту 1, отличающаяся тем, что логическое ядро добавляет новые онтологии, включающие новые правила.  5. The system according to paragraph 1, characterized in that the logical core adds new ontologies, including new rules.
6. Система по пункту 1, отличающаяся тем, что аксиомы хранятся в Б-деревьях. 6. The system according to paragraph 1, characterized in that the axioms are stored in B-trees.
7. Система по пункту 1, отличающаяся тем, что множество баз данных включает базу данных аксиом, базу данных историй операций и базу данных конфигураций с установками приложения. 7. The system according to claim 1, characterized in that the plurality of databases includes a database of axioms, a database of operation histories and a database of configurations with application settings.
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) SUBSTITUTE SHEET (RULE 26)
8. Система по пункту 1, отличающаяся тем, что множество баз данных включает: базу данных пользователей, в которой хранятся аксиомы каждого пользователя; базу данных операций, в которой хранится история изменений объектов; и базу данных конфигураций, в которой хранятся настройки приложений. 8. The system of claim 1, wherein the plurality of databases include: a user database in which axioms of each user are stored; database of operations, which stores the history of changes to objects; and a configuration database that stores application settings.
9. Система по пункту 1, отличающаяся тем, что аппаратные устройства хранения данных являются любым из хранилищ данных: ОЗУ, жесткий диск, твердотельный накопитель, сетевое хранилище, облачное хранилище, SAN и NAS. 9. The system according to claim 1, characterized in that the hardware storage devices are any of the data storages: RAM, hard disk, solid state drive, network storage, cloud storage, SAN and NAS.
10. Система по пункту 1, отличающаяся тем, что общий слой хранения данных отслеживает, что и в какой базе данных хранится, для обеспечения обработки данных из баз данных в зависимости от контекста, предоставленного приложениями. 10. The system according to claim 1, characterized in that the common data storage layer keeps track of what and in which database is stored, to ensure the processing of data from the databases depending on the context provided by the applications.
11. Внедренный в компьютер способ обработки бизнес-данных/включающий: 11. A method of processing business data embedded in a computer / including:
(A) хранение множества баз данных, расположенных на одном или более аппаратном средстве хранения данных, множества баз данных, хранящих правила и аксиомы в формате СПО- троек (субъект-предикат-объект); (A) storing a plurality of databases located on one or more hardware data storage means, a plurality of databases storing rules and axioms in the format of STR triples (subject-predicate-object);
(Б) обеспечение доступа приложениям к СПО-тройкам, хранимым во множестве баз данных, (B) providing access to applications to STR triples stored in multiple databases,
где СПО-тройки представлены в виде глобальной виртуальной базы данных, уникально представленной для каждого приложения, где глобальная виртуальная база данных генерирует связанные с приложением данные, доступные через общий слой хранения, без дублирования троек, посредством механизма перевода между словарем соответствующего приложения и глобальным словарем; и где глобальный словарь связывает множество баз данных;  where open source triples are presented in the form of a global virtual database uniquely presented for each application, where the global virtual database generates data associated with the application accessible through a common storage layer, without duplicating triples, through a translation mechanism between the dictionary of the corresponding application and the global dictionary; and where a global dictionary links many databases;
(B) хранение по крайней мере одной онтологии в виде СПО-троек и основанную на правилах и аксиомах;  (B) storage of at least one ontology in the form of STR triples and based on rules and axioms;
(Г) обработку запросов на преобразование одного набора СПО-троек в другой набор СПО-троек в зависимости от контекста, представленного приложениями, который определяет интерпретацию аксиом,  (D) processing requests for converting one set of STR triples into another set of STR triples depending on the context represented by the applications, which determines the interpretation of axioms,
(Д) выполнение операций над аксиомами и генерирование новых аксиом в том же контексте; и  (E) performing operations on axioms and generating new axioms in the same context; and
(Е) фильтрацию аксиом в зависимости, по крайней мере, от одной онтологии. (E) filtering axioms depending on at least one ontology.
12. Способ по пункту 11, отличающийся тем, что далее включает генерирование новых аксиом, представляя существующие аксиомы в новом контексте.  12. The method according to paragraph 11, characterized in that it further includes generating new axioms, presenting existing axioms in a new context.
13. Способ по пункту 11, отличающийся тем, что далее включает добавление новых онтологий, включающих существующие аксиомы. 13. The method according to paragraph 11, characterized in that it further includes the addition of new ontologies, including existing axioms.
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) SUBSTITUTE SHEET (RULE 26)
14. Способ по пункту 11, отличающийся тем, что далее включает добавление новых онтологии, включающих новые аксиомы. 14. The method according to paragraph 11, characterized in that it further includes the addition of new ontologies, including new axioms.
15. Способ по пункту 11, отличающийся тем, что далее включает добавление новых онтологии, включающих существующие правила.  15. The method according to paragraph 11, characterized in that it further includes the addition of new ontologies, including existing rules.
16. Способ по пункту 11, отличающийся тем, что далее включает определение контекста для данных, который определяет, какие операции могут быть выполнены с данными.  16. The method according to paragraph 11, characterized in that it further includes determining a context for the data, which determines what operations can be performed with the data.
17. Способ по пункту 11, отличающийся тем, что далее включает генерирование представления данных для тех же самых данных, но в новом контексте. 17. The method according to paragraph 11, characterized in that it further includes generating a presentation of the data for the same data, but in a new context.
18. Способ по пункту 11, отличающийся тем, что представление включает фильтрацию данных на основе связей между объектами, установленных онтологиями.  18. The method according to paragraph 11, wherein the presentation includes filtering data based on relationships between objects established by ontologies.
19. Способ по пункту 11, отличающийся тем, что онтология включает ограничения для аксиом, использующиеся для проверки данных. 19. The method according to paragraph 11, wherein the ontology includes restrictions for axioms that are used to verify data.
20. Способ по пункту 11, отличающийся тем, что операции определяются пользователем и включают совокупность таблиц, логических и математических операций.  20. The method according to paragraph 11, characterized in that the operations are user-defined and include a combination of tables, logical and mathematical operations.
ЗАМЕНЯЮЩИЙ ЛИСТ (ПРАВИЛО 26) SUBSTITUTE SHEET (RULE 26)
PCT/RU2016/000204 2015-10-08 2016-04-07 System and method for processing requests in projects WO2017061902A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2015142790 2015-10-08
RU2015142790A RU2015142790A (en) 2015-10-08 2015-10-08 SYSTEM AND METHOD FOR PROCESSING QUESTIONS IN THE PROJECT

Publications (1)

Publication Number Publication Date
WO2017061902A1 true WO2017061902A1 (en) 2017-04-13

Family

ID=58488066

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/RU2016/000204 WO2017061902A1 (en) 2015-10-08 2016-04-07 System and method for processing requests in projects

Country Status (2)

Country Link
RU (1) RU2015142790A (en)
WO (1) WO2017061902A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100185700A1 (en) * 2007-09-17 2010-07-22 Yan Bodain Method and system for aligning ontologies using annotation exchange
US8478766B1 (en) * 2011-02-02 2013-07-02 Comindware Ltd. Unified data architecture for business process management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100185700A1 (en) * 2007-09-17 2010-07-22 Yan Bodain Method and system for aligning ontologies using annotation exchange
US8478766B1 (en) * 2011-02-02 2013-07-02 Comindware Ltd. Unified data architecture for business process management

Also Published As

Publication number Publication date
RU2015142790A3 (en) 2019-03-26
RU2015142790A (en) 2017-04-13

Similar Documents

Publication Publication Date Title
US9213698B1 (en) Unified data architecture for business process management and data modeling
US11328003B2 (en) Data relationships storage platform
US8478766B1 (en) Unified data architecture for business process management
US9569725B2 (en) Techniques for extracting semantic data stores
Reeve Managing data in motion: data integration best practice techniques and technologies
Rost et al. Distributed temporal graph analytics with GRADOOP
CN101454779A (en) Search-based application development framework
Ben-Gan Microsoft SQL server 2012 t-SQL fundamentals
US10019537B1 (en) System and method for data search in a graph database
Challawala et al. MySQL 8 for Big Data: Effective Data Processing with MySQL 8, Hadoop, NoSQL APIs, and Other Big Data Tools
RU2707708C2 (en) System and method of searching data in database of graphs
Ben-Gan T-Sql Fundamentals
Masood-Al-Farooq SQL Server 2014 Development Essentials
US10146809B2 (en) Mining of policy data source description based on file, storage and application meta-data
Garmany et al. Logical database design principles
Chen Database Design and Implementation
Leonard Design and implementation of an enterprise data warehouse
WO2017061902A1 (en) System and method for processing requests in projects
Krogh MySQL Concurrency [M]
Nadkarni et al. Metadata for Data Warehousing
Engle A Methodology for Evaluating Relational and NoSQL Databases for Small-Scale Storage and Retrieval
Nishida et al. Data Integrity in Cloud Transactions.
Kumar Graph data modeling for political communication on Twitter
Mhashilkar et al. Information Integration: Metadata Management Landscape
Lad Build Relational and Non-Relational Data Solutions on Azure

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16853980

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16853980

Country of ref document: EP

Kind code of ref document: A1