Knowledge-based systems latest trends. Knowledge-based systems and expert systems

In this article:

This can happen to absolutely every woman. Myoma appears at different ages, but most often before menopause. This is a benign tumor that causes a lot of trouble. Among them are pain, burning, tissue proliferation. If fibroids are not treated, they can develop into a malignant tumor. This is precisely the main threat of the disease. A conspiracy against fibroids will help protect you. Every woman over 35 needs to know it. It will help you stay healthy and happy and lead a normal life.

Myoma is a benign tumor

We live in an age of advanced technology. Many secrets of past years are revealed to us. But, unfortunately, the exact causes of the formation of uterine fibroids are not yet known. The most common cause is hormonal imbalance. It may occur:

  • after childbirth;
  • after 45 years, menopause;
  • use of hormonal drugs;
  • due to the characteristics of nutrition and environment.

In any case, the disease develops quickly. The most affordable treatment is complete removal of the uterus. Sometimes all female reproductive organs are removed if they are also captured by the tumor. In itself, fibroids are not dangerous, because they are benign formations, the growth of muscle tissue.

Dangers of disease

The disease is accompanied by severe pain. A woman may have only one focus of growth, or many. If there is only one, only the lesion is removed, this is a serious abdominal operation. Recovery takes a long time.

To prevent this from happening, you need to check with your doctor.

A very effective method is folk conspiracies that help against fibroids. It is very important to react quickly. The advanced form is dangerous - it can lead to uterine cancer. Traditional medicine successfully fights the disease. Be sure to try this method, because it is safe, proven and works for everyone. You don't need to be a healer to speak to fibroids yourself.

Effective conspiracies for fibroids

They must be learned by heart. No woman is immune from such danger. There is a method of fighting against fibroids.

Important: if your diagnosis is old, more than 2-3 months, then such conspiracies will not help.

They act only in the first stages of 1-1.5 months. Any doctor will tell you this period. In later stages, you need to contact a professional healer.

Conspiracy on the mirror

To ward off illness, you will need a new folding mirror, a church candle and holy water. All this must be bought without haggling. Buy candles only in a church shop. Water must be collected from a source; they do not pay for water.

Don't forget to leave gifts at the cemetery

Place a mirror on the table with a candle in front of it. Drink a sip of holy water. Let the abdominal area (where the uterus is located: below the navel) be reflected in the mirror.

“The Mother of God walked, got tired, sat down on the ground,
She took out a handkerchief, wiped the sweat from her face,
The pain and illness were erased.
She got up from the ground and walked further -
All her sickness and pain went away.
It doesn't hurt anywhere else.
Nothing else bothers me.
So it is with the servant of God (name)
The body doesn't hurt
Doesn't whine, doesn't tingle.
The keys are the locks to these words.
Amen".

Close the mirror and fill the seam with candle wax.
It will need to be taken to the cemetery and buried there in the grave of a woman with the same name as yours. This way the disease will remain there forever, and will no longer harm you. This method treats the early stage.

Egg spell


We perform deliverance rituals on the waning moon, on Women's Day

Used if you think that the fibroids are caused as damage. Then you need to roll it out with an egg. To do this, take a fresh chicken egg. The fresher the better.
Say the text of the conspiracy against fibroids 10 times while rolling the egg over your stomach in the uterine area:

“Just as a tumor once attacked the servant of God, let it recede at this very hour! Go away, painful pain, wet and burning, dry and viscous, go away, tumor, away from my insides, from my stomach! My words and thoughts are firm, may it be as I say! Amen".

The egg will then need to be taken to the river and buried there. Don't break it! Otherwise, the disease will return to you again. A woman must do this herself.

A woman can remain healthy and happy at any age. There are many dangers; uterine fibroids are just one of hundreds. Practitioners of healing magic have solutions for all ailments, illnesses and illnesses. Some believe that women's diseases are the result of the evil eye or damage. To prevent this from happening to you, protect yourself.

How to stay healthy for years to come

Practitioners advise you:

  • Check with your doctor regularly. You may not know you are sick. Regular examination is best done once every 6 months;
  • If you are engaged in magical practices, especially black magic, then always put protection on yourself. A “rollback” from your ritual can hit the reproductive organs hard;
  • Use talismans to protect your health: Star of Lada, Lunnitsa. These are Slavic amulets that protect a woman’s health;
  • The strength of the fibroid spell depends on your experience. If it doesn't work out the first time, try another plot.

Remove fibroids at a late stage

You won't be able to do this on your own. If you have already started the disease, then there are only two options:

  • go for emergency surgery;
  • go to a healer.

The healer will give you a treatment for the disease, this may take 1-2 months. Decide for yourself what to do. If the disease is caused by damage, then it is difficult to reprimand it; it clings tightly to you. On the other hand, surgery will help get rid of the problem entirely. Both of these methods are time-consuming, painful and expensive. It is better not to bring the fibroid to the stage where you have to completely remove the uterus and ovaries.

Traditional medicine knows the answers to all questions. This method was used to treat patients even when there were no modern drugs and research methods. They have been tested by thousands of women who managed to maintain health and life.

Research in the field of artificial intelligence began in the 60s. Artificial intelligence today is understood as a science that studies the possibilities of creating computer programs that solve problems that require certain intellectual efforts, and not routine procedures when performed by a person. The task of this science is to recreate rational judgments and actions using artificial devices, mainly computers. To date, based on research in the field of artificial intelligence, a new industry has emerged - the development of intelligent systems.

From the very beginning of the research in the field of artificial intelligence has developed in two directions:
. knowledge of artificial intelligence and the laws of its functioning.
. the creation of artificial systems that are capable of performing the work that is traditionally classified as intellectual work no worse (and perhaps better).

Research in this area is focused on the development and implementation of computer programs capable of emulating (simulating, reproducing) those areas of human activity that require thinking, a certain skill and accumulated experience. These include tasks in decision making, pattern recognition, and understanding human language. This technology has already been successfully used in some areas of technology and social life - organic chemistry, mineral exploration, medical diagnostics.

The central paradigm of intelligent technologies today is knowledge processing. Systems, the core of which is a knowledge base or a domain model, described in an ultra-high-level language close to natural, are called intelligent. Most often, information systems are used to solve complex problems, where the main complexity of the solution is associated with the use of weakly formalized knowledge of practitioners and where logical (or semantic) information processing prevails over computational one.

There are two main difficulties in developing such systems. Firstly, in most cases, when performing any action, a person is not clearly aware of how he is doing it. In other words, he does not know the exact algorithm for performing such actions as understanding a text or making a decision in certain conditions. Secondly, despite the constant improvement and development in the level of competence in the activity under consideration, computers are still far from human: they work according to an appropriate program.

Problems solved by artificial intelligence methods have two characteristic features:
. they, as a rule, use information in symbolic form, such as letters, words, signs, drawings, in contrast to traditional computers that process data in numerical form;
. these problems assume the presence of choice, namely, the absence of an algorithm in them only means that it is necessary to make a choice between many options, and often under conditions of uncertainty.

All currently existing intelligent systems can be divided into two classes: specialized and general purpose.

Specialized information systems include those that perform a solution to a fixed set of tasks predetermined during the design of the system. To use such systems, they need to be equipped with data and knowledge relevant to specific problem or subject areas.

General-purpose intelligent systems include those that not only execute given procedures, but, based on search meta-procedures, generate and execute procedures for solving new specific problems. In these systems, the user (expert) generates knowledge (data and rules) describing the selected problem or subject area. Then, based on this knowledge, a given goal and initial data, the system's metaprocedures generate and execute a procedure for solving a specific problem. This technology allows a specialist in a certain problem area, who does not know programming, to develop flexible application systems.

One of the main types of intelligent systems are ES. They appeared as part of AI research at a time when this science was experiencing a serious crisis and a significant breakthrough was required in the development of practical applications. The idea came to model the specific knowledge of expert specialists. Until now, the only criterion of intelligence is the presence of mechanisms for working with knowledge.

The term “knowledge-based systems” appeared in 1976, simultaneously with the first systems accumulating the experience and knowledge of experts. These were expert systems for medicine and chemistry. They made diagnoses for infectious blood diseases and interpreted mass spectrographic analysis data.

ES make it possible to formalize specific content knowledge about control objects and the processes occurring in them, that is, to introduce logical-linguistic models along with mathematical ones into computers. Logical-linguistic modeling expands the scope of computer applications due to previously difficult or completely unformalized areas of knowledge (dispatcher control, control of flexible automated production, combat control, etc.).

ES are effective in specific “expert” areas where the experience of specialists is important. The development of ES is aimed at using computers for information processing in those areas of science and technology where traditional mathematical modeling methods are of little use.

1. Knowledge and data

What is the difference between knowledge and data?

Data– this is information obtained as a result of observations or measurements of individual properties characterizing objects, processes and phenomena of the subject area, that is, these are specific facts, such as air temperature, building height, last name, etc.

Knowledge is based on data obtained empirically. They are the result of human experience and mental activity aimed at generalizing this experience obtained as a result of practical activity. (Data about a person’s high temperature does not allow solving the problem of recovery. However, knowledge that the temperature can be reduced by one means or another brings the solution of the problem closer.)

Knowledge– these are connections and patterns of a subject area (principles, models, laws), obtained as a result of practical activities and professional experience, allowing specialists to set and solve problems in this area. That. knowledge is well-structured data, or data about data, or metadata.

The knowledge possessed by a specialist in any field can be divided into formalized (accurate) and informal (inaccurate). Formalized knowledge is formulated in books and manuals in the form of general and strict judgments reflecting universal knowledge. Unformalized knowledge, as a rule, does not end up in books due to its subjectivity and approximateness. Knowledge of this kind is a generalization of many years of experience and intuition of specialists.

Unformalized tasks usually include those that have one or more of the following features:
. the algorithmic solution to the problem is unknown or cannot be used due to limited computing resources;
. the task cannot be defined in numerical form;
. the goals of a task cannot be expressed in terms of a precisely defined
target function.

In addition, informal tasks usually have the following features:
. erroneousness, ambiguity, incompleteness and contradictory knowledge about the problem being solved and the problem area to which it relates;
. erroneousness, ambiguity, incompleteness and inconsistency of the source data;
. the large dimension of the solution space of the problem, which implies the need for a large number of search steps when searching for a solution;
. dynamically changing data and knowledge.

Knowledge is also divided into procedural and declarative. Any knowledge can be represented both declaratively and procedurally, but, depending on the tasks being solved, it is convenient to have some knowledge in a declarative representation, and others in a procedural one. For example, a fact in the declarative view is simply a statement that a fact is true.

Primary was procedural knowledge, i.e. knowledge “dissolved” in algorithms. They managed the data. To change them, you need to change the text of the programs. However, with the development of computer science and software, an increasing part of knowledge was concentrated in data structures (tables, lists, abstract data types), i.e. the role of declarative knowledge increased.

A procedural representation of a fact is a set of instructions, the execution of which gives a result consistent with the fact. If the facts entered into the knowledge base are independent and unchangeable, then the declarative approach is easier to understand by the user and is quite easily supported by the system, due to its modularity. Experts and users prefer to deal with declarative representations. The procedural approach is more analytically efficient, but it is more difficult to maintain in the system. ES developers prefer a procedural presentation, because The result of a procedure is always easy to check by tracing the sequence of its execution. In principle, it is always possible to convert a declarative representation into a procedural one and vice versa.

2. Characteristics and features of expert systems (ES)

By IP we will understand the following: IP is a computer program that operates with knowledge in a specific subject area in order to develop recommendations or solve problems.

For expert systems, two main definitions are accepted:
- these are programs that manipulate knowledge in order to obtain a satisfactory or effective solution in a narrow subject area;
are information systems built on the principles of artificial intelligence, capable of solving problems in a certain subject area, making decisions and obtaining conclusions that only a very qualified specialist (expert) can make.

An expert system can completely take over functions, the implementation of which usually requires the involvement of the experience of a human specialist, or play the role of an assistant for the decision maker. In other words, a system requiring a decision can receive it directly from the program or through an intermediate link - a person who communicates with the program. The decision maker may be an expert in his own right, in which case the program can "justify" its existence by making his work more efficient. Alternatively, a person working in collaboration with such a program can achieve higher quality results with it. Generally speaking, the correct distribution of functions between man and machine is one of the key conditions for the high efficiency of the implementation of expert systems.

Like a human expert, an expert system uses symbolic logic and rules of thumb to find a solution. These systems, like humans, can make mistakes, but unlike conventional programs, expert systems can learn from their mistakes, accumulating and generalizing knowledge in a certain problem area. Such artificial expertise also has advantages over humans: it is constant, consistent, easily transfers its knowledge, is documented and clarified.

ES do not reject or replace the traditional approach to software development; they differ from traditional programs in that they are focused on solving difficult-to-formalize problems.

ES differ from traditional programs in that they are focused on solving informal problems and have the following features:
. the solution algorithm is not known in advance, but is constructed by the ES itself using symbolic reasoning based on heuristic techniques;
. the clarity of the solutions obtained, that is, the ES “realizes” in user terms how it obtained the solution;
. the ability to analyze and explain one’s actions and knowledge;
. the ability to acquire new knowledge from an expert user who does not know programming and change their behavior in accordance with it;
. provision, as a rule, of a natural language interface with the user.

An expert system differs from other application programs by the presence of the following features.
. It models not so much the physical (or other) nature of a certain problem area, but rather the mechanism of human thinking in relation to solving problems in this problem area. This significantly distinguishes expert systems from mathematical modeling or computer animation systems. It is impossible, of course, to say that the program completely reproduces the psychological model of a specialist in this subject area (expert), but it is important that the main attention is still paid to the reproduction by computer means of the problem-solving technique that is used by the expert, i.e. performing some of the tasks as well (or even better) as an expert does.
. The system, in addition to performing computational operations, forms certain considerations and conclusions based on the knowledge it has. Knowledge in the system is presented, as a rule, in some special language and is stored separately from the actual program code, which generates conclusions and considerations. This component of the program is usually called the knowledge base.
. When solving problems, the main ones are heuristic and approximate methods, which, unlike algorithmic ones, do not always guarantee success. Such methods are approximate in the sense that, firstly, they do not require exhaustive initial information, and, secondly, there is a certain degree of confidence (or uncertainty) that the proposed solution is correct.

Among artificial intelligence systems, expert systems are distinguished by two features:
— practical orientation (solve problems in a narrow subject area);
— clarity to the user of all actions of the expert system due to the fact that the expert system conducts a dialogue with him in a subset of natural language and is able to explain all its actions.

The importance of expert systems in modern decision design processes is determined mainly by three circumstances:
— the technology of expert systems significantly expands the range of practically significant problems that can be solved, which in turn brings a significant economic effect;
— expert system technology is one of the most important means of solving global problems of designing complex systems with traditional programming, such as the duration and high cost of development, the high cost of maintaining their software, and reuse of programs;
- the combination of technologies, expert systems and traditional programming adds new qualities to design software products both in the content side of the design process and in providing better graphics, better interface and interaction with the user of the product.

So, ES are designed to perform special, difficult to formalize tasks, the solution of which is possible by taking into account the experience of qualified specialists who are experts. Experts not only participate in identifying knowledge from the field of development, manufacturing and operation of AT products necessary to solve a given problem, but also in developing rules on the basis of which acceptable options for solving it can be proposed. These techniques or methods, which significantly reduce search time by cutting off unpromising branches, not just by exhaustive search, are called heuristics and are one of the types of rules.

Chapter 1. Knowledge-based systems.

Chapter 2. Introduction to Knowledge Engineering.

CHAPTER 1. Knowledge-based systems.

^ 1.1. Knowledge and data

If you have a problem or task that cannot be solved on your own, you turn to knowledgeable people, or experts, those who have KNOWLEDGE. The term “knowledge-based systems” appeared in 1976, simultaneously with the first systems accumulating the experience and knowledge of experts. These were expert systems MYCIN and DENDRAL for medicine and chemistry. They made diagnoses for infectious blood diseases and interpreted mass spectrographic analysis data.

Expert systems emerged as part of research into artificial intelligence (AI) at a time when this science was experiencing a serious crisis and a significant breakthrough in the development of practical applications was required. This breakthrough occurred when the search for a universal algorithm for thinking and solving problems was replaced by the idea of ​​modeling the specific knowledge of expert specialists. This is how the first commercial knowledge-based systems or expert systems (ES). These systems rightfully became the first intelligent systems, and until now the only criterion for intelligence is the presence of mechanisms for working with knowledge.

This is how a new approach to solving artificial intelligence problems emerged - knowledge representation.

You can read more about the history of artificial intelligence in [Pospelov, 1986; Jackson, 2001; Gavrilova, Khoroshevsky, 2001; Andrew, 1985|.

When studying intelligent systems, the question traditionally arises: what is knowledge and how does it differ from ordinary data processed on computers for decades. Several working definitions can be proposed within which this becomes obvious.

Definition 1.1

Data- this is information obtained as a result of observations or measurements of individual properties (attributes) characterizing objects, processes and phenomena of the subject area.

Otherwise, data are specific facts, such as air temperature, building height, employee’s name, website address, etc.

When processed on a computer, data is transformed, conditionally going through the following stages:


  • D1 - data as a result of measurements and observations;

  • D2 - data on tangible media (tables, protocols, directories);

  • D3 - data models (structures) in the form of diagrams, graphs, functions;

  • D4 - data in the computer in the data description language;

  • D5 - databases on computer storage media.
Knowledge is based on data obtained empirically. They are the result of human experience and mental activity aimed at generalizing this experience obtained as a result of practical activity.

So, if you arm a person with the data that he has a high temperature (the result of observation or measurement), then this fact will not allow him to solve the problem of recovery. And if an experienced doctor shares knowledge that the temperature can be reduced with antipyretic drugs and drinking plenty of fluids, this will significantly bring the solution to the problem of recovery closer, although in fact additional data and deeper knowledge are needed.

Definition 1.2

Knowledge- these are connections and patterns of the subject area (principles, models, laws) obtained as a result of practical activities and professional experience, allowing specialists to set and solve problems in this area.

When processed on a computer, knowledge is transformed similarly to data:


  • Z1 - knowledge in human memory as a result of analysis of experience and thinking;

  • Z2 - material carriers of knowledge (special literature, textbooks, teaching aids);

  • Z3 - field of knowledge - conditional description of the main objects of the subject area, their attributes and patterns connecting them;

  • Z4 - knowledge described in knowledge representation languages ​​(production languages, semantic networks, frames - see below);

  • Z5 - knowledge base on computer storage media. The following definition of knowledge is often used:
Knowledge is well-structured data, or data about data, or metadata.

The key stage when working with knowledge is the formation of a knowledge field (third stage Z3), this non-trivial task includes identifying and defining objects and concepts of the subject area, their properties and connections between them, as well as presenting them in a visual and intuitive form. This term was first introduced during the practical development of the expert system for psychodiagnostics AVTANTEST [Gavrilova, 1984] and is now widely used by ES developers.

Without a thorough study of the knowledge field, there can be no talk of creating a knowledge base.

Essential for understanding the nature of knowledge are the ways of defining concepts. One widely used method is based on the idea of ​​intension and extension.

Definition 1.3

Intension of a concept- this is its definition through correlation with the concept of a higher level of abstraction, indicating specific properties.

For example, the intension of the concept “FURNITURE”: “items intended to ensure comfortable living for a person and cluttering up the house.”

Definition 1.4

Extensional is a definition of a concept through a listing of its specific examples, i.e., concepts of a lower level of abstraction.

Extensional of the concept “FURNITURE”: “Closet, sofa, table, chair, etc.”

Intensions form knowledge about objects, while extensions combine data. Together they form the elements of the knowledge field of a specific subject area.

Databases are used to store data (they are characterized by a large volume and relatively low unit cost of information), and to store knowledge - knowledge bases (small volume, but extremely expensive information arrays).

Knowledge base - the basis of any intellectual system, where knowledge is described in some knowledge representation language that is close to natural.

Knowledge can be divided into:


  • deep;

  • superficial.
Superficial - knowledge about visible relationships between individual events and facts in the subject area.

Deep- abstractions, analogies, diagrams that reflect the structure and nature of processes occurring in the subject area. This knowledge explains phenomena and can be used to predict the behavior of objects.

Superficial knowledge

"If you enter the correct password, a desktop image will appear on your computer screen."

Deep knowledge

"Understanding operating system operating principles and knowledge at the level of a qualified system administrator."

Modern expert systems work mainly with superficial knowledge. This is due to the fact that at the moment there are no universal methods that allow us to identify deep knowledge structures and work with them.

In addition, in textbooks on AI, knowledge is traditionally divided into procedural And declarative. Historically, procedural knowledge was primary, i.e. knowledge “dissolved” in algorithms. They managed the data. To change them, it was necessary to change the text of the programs. However, with the development of computer science and software, an increasing part of knowledge was concentrated in data structures (tables, lists, abstract data types), i.e., the role of declarative knowledge increased.

Today, knowledge has acquired a purely declarative form, i.e. knowledge is considered to be sentences written in knowledge representation languages ​​that are close to natural language and understandable to non-specialists.

One of the pioneers of AI, Alan Newell, illustrated the evolution of human-computer communication as a transition from machine codes through symbolic programming languages ​​to knowledge representation languages ​​(Fig. 1.1).

^ 1.2. Knowledge representation models

Currently, dozens of knowledge representation models (or languages) have been developed for various subject areas. Most of them can be reduced to the following classes:


  • product models;

  • semantic networks;

  • frames;

  • formal logical models.
In turn, this set of classes can be divided into two large groups (Fig. 1.2):

  • modular;

  • network.
Modular languages ​​operate with separate (unrelated) elements of knowledge, be they rules or axioms of the subject area.

Network languages ​​provide the ability to link these elements or pieces of knowledge through relationships into semantic networks or networks of frames.

Let's take a closer look at the most popular knowledge representation languages ​​(KRLs) among developers.

^ 1.2.1. Product model

Rule-based LPs are the most common and more than 80% of ES use them.

Definition 1.5

The production model or rule-based model allows knowledge to be represented in the form of sentences like “If (condition), then (action).”

By “condition” (antecedent) we mean a certain sample sentence by which a search is carried out in the knowledge base, and by “action” (consequent) we mean actions performed upon a successful outcome of the search (they can be intermediate, further acting as conditions, and terminal or targets that terminate the system).

Most often, the conclusion from such a knowledge base is direct(from data to target search) or back(from the goal to confirm it - to the data). Data are the initial facts stored in the fact base, on the basis of which the inference engine or rule interpreter is launched, enumerating the rules from the production knowledge base (see section 1.3).

The production model is so often used in industrial expert systems because it attracts developers with its clarity, high modularity, ease of making additions and changes, and simplicity of the logical inference mechanism.

There are a large number of software tools that implement the production approach (for example, high-level languages ​​CLIPS and OPS 5; “shells” or “empty” ES - EXSYS Professional and Carra, instrument systems KEE, ARTS, PIES [Khoroshevsky, 1993]), as well as industrial ES based on it (for example, ES created by G2 tools [Popov, 1996]). For more details, see [Popov, Fominykh et al., 1996; Khoroshevsky, 1993; Gavrilova, Khoroshevsky, 2001; Durkin, 1998].

^ 1.2.2.Semantic networks

Term "semantic" means“semantic”, and semantics itself is a science that establishes relationships between symbols and the objects that they designate, i.e. a science that determines the meaning of signs. A model based on semantic networks was proposed by the American psychologist Quillian. Its main advantage is that it corresponds more than others to modern ideas about the organization of human long-term memory [Scragg, 1983].

Definition 1.6

Semantic Web is a directed graph whose vertices are concepts and arcs are relationships between them.

Concepts are usually abstract or concrete objects, and relationship these are connections of the type: “this” (“AKO - A-Kind-Of, “is” or “class element”), “has part”, “belongs”, “loves”.

Several classifications of semantic networks can be proposed, related to the types of relationships between concepts.

By number of relationship types:


  • homogeneous (with a single type of relationship);

  • heterogeneous (with different types of relationships).
-By type of relationship:

  • binary (in which relationships connect two objects);
N-ary (in which there are special relations connecting more than two concepts).

The following relationships are most often used in semantic networks:


  • class element (rose This flower);

  • attributive connections / have the property (memory has the property- volume);

  • meaning properties (color matters - yellow);

  • example of a class element (rose, For example - tea room);

  • connection type "part-whole"(bike includes steering wheel);

  • functional connections (usually defined by the verbs “produces”, “influences”...);

  • quantitative (more, less, equal...);

  • spatial (far from, close to, behind, under, above...);

  • temporary (earlier, later, during...);

  • logical connections (and, or, not) etc.
The minimum composition of relations in a semantic network is as follows:

  • class element or ACO;

  • attributive connections /have a property;

  • property value.
The disadvantage of this model is the complexity of organizing the procedure for organizing output on the semantic network.

This problem comes down to the non-trivial task of finding a network fragment corresponding to a certain subnet that reflects the query to the database.

In Fig. Figure 1.3 shows an example of a semantic network. The vertices here are the concepts “person”, “comrade Smirnov”, “Audi A4”, “car”, “mode of transport” and “engine”.

Rice. 1.3. Semantic Web

To implement semantic networks, there are special network languages, for example, NET [Tseytin, 1985], the implementation language for SIMER + MIR systems [Osipov, 1997], etc. Expert systems that use semantic networks as a knowledge representation language are widely known - PROSPECTOR, CASNET, TORUS [Hayes-Roth et al., 1987; Durkin, 1998].

1.2.3. Frames

Term frame(from English frame -"skeleton" or "frame") was proposed by Marvin Minsky [Minsky, 1979], one of the pioneers of AI, in the 70s to refer to the knowledge structure for the perception of spatial scenes. This model, like the semantic network, has a deep psychological basis.

Definition 1.7

A frame is an abstract image to represent a stereotype of an object, concept or situation.

It is intuitively clear that an abstract image is understood as some generalized and simplified model or structure. For example, saying aloud the word “room” gives rise to the image of a room in the listeners: “a living space with four walls, a floor, a ceiling, windows and a door, with an area of ​​6-20 m2”. Nothing can be removed from this description (for example, by removing the windows, we will get a closet, not a room), but there are “holes” in it or "slots" - these are blank values ​​of some attributes - for example, the number of windows, wall color, ceiling height, floor covering, etc.

In frame theory, this image of a room is called a room frame. A frame is also a formalized model for displaying an image.

Distinguish sample frames or prototypes, stored in the knowledge base, and instance frames, which are created to reflect real actual situations based on incoming data. The frame model is quite universal, since it allows you to display the entire diversity of knowledge about the world through:


  • frame-structures, used to designate objects and concepts (loan, pledge, bill);

  • frame-roles(manager, cashier, client);

  • script frames(bankruptcy, shareholders meeting, name day celebration);

  • situation frames(alarm, accident, device operating mode), etc.
Traditionally, the structure of a frame can be represented as a list of properties:

^ (FRAME NAME:

(1st slot name: 1st slot value),

(2nd slot name: 2nd slot value),

…………….

(N-th slot name: N-th slot value)).

The same record can be presented in the form of a table (see Table 1.1), supplementing it with two columns.

Table 1.1. Frame structure


Frame name

Slot name

Slot value

How to get the value

Attached procedure

In the table, additional columns (3rd and 4th) are intended to describe the way a slot receives its value and the possible attachment of special procedures to a particular slot, which is allowed in frame theory. The value of a slot can be the name of another frame, which is how networks of frames are formed.

There are several ways for a slot to obtain values ​​in an instance frame:


  • by default from the sample frame (Default-value);

  • through inheritance of properties from the frame specified in the ACO slot;

  • according to the formula specified in the slot;

  • through an attached procedure;

  • clearly from the dialogue with the user;

  • from the database.
The most important property of frame theory is borrowing from the theory of semantic networks - the so-called inheritance of properties. In both frames and semantic networks, inheritance occurs through AKO connections (A-Kind-Of = this). The ACO slot points to a frame at a higher level of the hierarchy, from which the values ​​of similar slots are implicitly inherited, i.e., transferred.

For example, in the network of frames in Fig. 1.4, the concept of “student” inherits the properties of the frames “child” and “person”, which are at a higher level of the hierarchy. To the question “Do students like sweets?” The answer should be “yes”, since all children have this property, which is indicated in the “child” frame. Inheritance of properties can be partial: the age for students is not inherited from the child frame, since it is specified explicitly in its own frame.


Rice. 1.4. Frame network

The main advantage of frames as a model for representing knowledge is that it reflects the conceptual basis of human memory organization [Schenk, Hunter, 1987], as well as its flexibility and visibility.

Special knowledge representation languages ​​in frame networks FRL (Frame Representation Language) [Baydun, Bunin, 1990], KRL (Knowledge Representation Language) [Waterman, 1989], the Kappa frame “shell” [Strelnikov, Borisov, 1997] and other software tools allow effectively build industrial power plants. Frame-oriented expert systems such as ANALYST, MODIS, TRISTAN, ALTERID are widely known [Kovrigin, Perfilyev, 1988; Nikolov, 1988; Sisodia, Warkentin, 1992].

^ 1.2.4. Formal logic models

Traditionally, in the representation of knowledge there are formal logical models based on classical 1st order predicate calculus, when a subject area or problem is described as a set of axioms. In reality, first-order predicate calculus is practically not used in industrial expert systems. This logical model is applicable mainly in research “toy” systems, since it places very high requirements and restrictions on the subject area. In industrial expert systems, various modifications and extensions are used, the presentation of which is beyond the scope of this book. See [Adamenko, Kuchukov, 2003].

^ 1.3. Conclusion on knowledge

As already said in section 1.2, The most widespread is the production model of knowledge representation. When using it, the knowledge base consists of a set of rules, and the program that controls the enumeration of the rules is called output machine.

Definition 1.8

Output machine(rules interpreter) is a program that simulates the logical conclusion of an expert who uses this production knowledge base to interpret the data entered into the system.

Typically it performs two functions:

Reviewing existing data (facts) from working memory (database) and rules from the knowledge base and adding (to the extent possible) new facts to working memory;

Determine the order in which rules are viewed and applied. This mechanism controls the consultation process, storing information about the conclusions received for the user, and requests information from him when there is not enough data in working memory to trigger the next rule [Osuga, Saeki, 1990].

In the vast majority of knowledge-based systems, the inference mechanism is a small program and includes two components - one implements the inference itself, the other controls this process.

Action output component based on the application of a rule called modus ponens:“If statement A is known to be true, and there is a rule of the form “IF A, THEN B,” then statement B is also true.”

Thus, the rules are triggered when there are facts that satisfy their left side: if the premise is true, then the conclusion must be true.

The inference component must function even when there is insufficient information. The resulting solution may not be exact, but the system should not stop because any part of the input information is missing.

^ Control component determines the order in which the rules are applied and performs four functions:


  1. Comparison- the sample rule is compared with the available facts.

  2. Choice - if in a specific situation several rules can be applied at once, then one of them is selected that is most suitable according to a given criterion (conflict resolution).

  3. Trigger - if the rule sample, when compared, coincides with any facts from working memory, then the rule is triggered.

  4. Action - working memory is modified by adding the conclusion of the triggered rule to it. If the right side of the rule contains an indication of any action, then it is performed (as, for example, in information security systems).
The production interpreter works cyclically. In each cycle, it looks through all the rules to identify those whose premises match the currently known facts from working memory. Once selected, the rule is triggered, its conclusion is stored in working memory, and then the cycle repeats all over again.

Only one rule can be triggered in one cycle. If several rules are successfully matched with facts, then the interpreter selects, based on a certain criterion, the only rule that is triggered in a given cycle. The interpreter operation cycle is schematically shown in Fig. 1.5.

Information from working memory is sequentially compared with the premises of the rules to identify a successful match. The set of selected rules constitutes the so-called conflict set. To resolve a conflict, the interpreter has a criterion by which it selects a single rule, after which it is triggered. This is expressed in entering the facts that form the conclusion of the rule into the working

At the initial stage of research on artificial intelligence, a general belief arose that behind a person’s intellectual behavior lies his knowledge of the world around him. We are talking about the knowledge that professionals have.

A knowledge-based intelligent system is a system in which knowledge is applied to solving assigned problems using logical inference.

    Expert systems differ from traditional computing software packages in the way they are organized. From a traditional perspective, a program is a procedure and data.

A general idea of ​​the operation of the expert system is shown in Figure 6.2.

Expert systems contain three different modules in the database:

    facts about the characteristics of a particular situation

    rules relating to the field of expertise

rules for working with “expert rules” or “inference engine”

Scheme of operation of the expert system.

Figure 6.2

      1. Expert systems architecture

If a computer program is to perform an expert's task, it needs a large amount of knowledge to solve complex problems, just as a human can. The system must be carefully organized. In general, knowledge is divided into three types:

    Factual (declarative) knowledge. This type of knowledge is information about a particular case, usually collected through dialogue with the user, which indicates what facts should be considered fair at the present time. How this information is presented is important, since the structure of the presentation itself is also informative. The representation structure should be chosen depending on the knowledge content.

    Procedural knowledge. This knowledge is usually collected in advance by interviewing a specialist in a given subject area and forms the core of the knowledge base. They are also used in the reasoning block of the system, allowing subsequent conclusions to be drawn. Procedural knowledge makes it possible to generate facts if necessary. Thus, factual and procedural knowledge are closely intertwined. In addition, as the system operates, decisions must be made about which of those rules should be used.

    Control knowledge. The system must be provided with a certain set of strategies so that it is possible to consider alternative possibilities in the course of work, and transition from one strategy to another in case of failure.

Product systems are a specific method of organizing programs into collections of the three groups mentioned above. Each group is treated separately, so the system is easy to understand and work with.

    Database (DB)

    List of generating rules (GP)

    A method for choosing which generating rule should be applied given the state of the database

Each generating rule (production) has the form IF (condition), THEN (action) or possibly the form IF (condition), THEN (action 1), OTHERWISE (action 2). In this case, the pattern matching procedure determines whether the rule is applicable at all.

The conditional part of the product is compared with the existing database. If the matching process ends successfully, then all variables included in the sample, that is, variables from the conditional part of some generating rule, are given certain values ​​from the database that ensure comparability. In the future, these values ​​will be used in the part corresponding to the action of the same generating rule. This part can be an arbitrary procedure that runs only if the matching is successful and if the product has been selected by the control mechanism. All changes can be made through two elementary functions - adding and deleting. At the beginning of the system, a simple rule is launched that collects information about the case in question and enters it into the database. In the future, the system operates on a simple principle: “select products - take appropriate actions.” The centralized database is the focus of the system's activity, and the programmer must introduce potentially very complex control strategies into the system that will avoid such natural disorder in the system's operation and lead it along the right path to the successful solution of the task. The most common way to both “run” and “manage” a production system is through the use of mechanisms called “daemons.”

There are three possible flavors of daemons, namely "if-added", "if-removed" and "if-needed". Daemons are launched by adding them to the database. Typically, if-added daemons will be used to perform straightforward logical deductions that are performed automatically if some additional facts are known. If-deleted daemons are started by the delete function. These daemons are the exact opposite of if-added daemons, but they work in pretty much the same way. Typically, if-removed daemons are used to remove from the database those explicit deductions that were made by if-added daemons once the things that caused those deductions have been removed from the database (which is necessary to maintain database consistency) . If-necessary demons are used to carry out deduction in reverse.

Most of the database consists of rules that are triggered by comparison with the corresponding features that characterize a given task, and which can be added, modified or removed by the user. This special type of database is usually called a knowledge base.

There are three modes for user interaction with an expert system, in contrast to the only mode of interaction (receiving answers to assigned tasks), typical of more familiar computing systems:

    obtaining solutions to assigned tasks - the user as a consumer

    improving or increasing knowledge of the system - user as teacher

    extracting benefits for a person from a knowledge base - the user as a learner

Expert systems (ES) are computer programs that use the principles of artificial intelligence and formalized expert knowledge to process operational information and make informed decisions in the analyzed subject area.

In expert systems, specialized knowledge is widely used to solve problems at the level of a human expert. The term "expert" refers to a person who has expert knowledge in a certain field. This means that an expert has knowledge or special skills that are unknown or unavailable to most people. An expert is able to solve problems that most people cannot solve at all, or solves them much more efficiently. When expert systems were first developed, they contained exclusively expert knowledge. However, these days the term " expert system" is often applied to any system that uses expert system technology. Expert system technology can include specialized expert system languages, as well as software and hardware designed to support the development and operation of expert systems.

The knowledge in expert systems can be either expert knowledge or ordinary public knowledge, which can be obtained from books, magazines and well-informed people. In this sense, common knowledge is seen as a lower level concept compared to rarer expert knowledge. Terms " expert system", "knowledge based system", And " knowledge-based expert system" are often used interchangeably. But most people only use the term " expert system" simply because it is shorter, even though in expert system, which is in question, may not represent expert knowledge, but only ordinary knowledge.

There are two fundamentally different classes of ES: “knowledge-based” and “example-based”. The first class of ES is used to work with well-systematized elements of knowledge and a priori known patterns, expressed by various kinds of techniques, instructions, rules, etc. Operating principles knowledge-based expert system, are illustrated in Fig. 11.15.


Rice. 11.15.

In addition, useful knowledge-based systems have been developed that are intended to serve as an intelligent assistant for the human expert. These intelligent assistants are designed using expert system technology because such technology provides significant design advantages. The more knowledge is entered into the knowledge base of an intelligent assistant, the more its actions will resemble those of an expert. Developing an intelligent assistant can be a useful intermediate step before creating a full-fledged expert system. In addition, the intelligent assistant allows the expert to free up more useful time, since its use helps to solve problems faster.

The expert’s knowledge relates to only one subject area, and this is the difference between methods based on the use of expert systems and general methods for solving problems. A domain is a special problem area, such as medicine, finance, science and technology, in which only a certain expert can solve problems very well. Expert systems, like human experts, are generally intended to be used as experts in a single subject area. For example, a chess expert cannot generally be expected to have expert knowledge relevant to medicine. Expertise in one subject area does not automatically transfer to another area.

An expert's knowledge related to solving specific problems is called the expert's area of ​​knowledge. The connection between the subject area and the knowledge area is shown in Figure 11.16.

In this figure, the knowledge area is completely included in the subject area. The part that goes beyond the domain of knowledge symbolizes the area in which there is no knowledge about any of the problems related to the given subject area.

In the field of knowledge expert system conducts reasoning or draws logical conclusions on the same principle as a human expert would reason or arrive at a logical solution to a problem.


Rice. 11.16.

This means that based on certain facts, a logical, justified conclusion is formed through reasoning, which follows from these facts.

ES are successfully used in those areas where, in addition to the use of standard algorithmic methods based on accurate calculations, the knowledge and experience of specific experts - analysts, are essentially used, and decision-making is formed in conditions of incomplete data and depends on qualitative rather than quantitative assessments. Such subject areas include, first of all, the area of ​​financial activity analysis, where the effectiveness of decisions made depends on the comparison of many different factors, taking into account complex cause-and-effect relationships, the use of non-trivial logical reasoning, etc.

Classical expert system embodies unwritten knowledge that must be obtained from an expert through interviews conducted by a knowledge engineer over an extended period of time. This creation process expert system called knowledge engineering and is carried out by a knowledge engineer. Knowledge Engineering refers to the acquisition of knowledge from a human expert or other sources and the subsequent presentation of knowledge in expert system(Fig. 11.17).


Rice. 11.17.

First, the knowledge engineer establishes a dialogue with the human expert to identify the expert's knowledge. This step is similar to the work done by a systems designer in conventional programming when discussing system requirements with the client for whom the program is being created. The knowledge engineer then presents the knowledge explicitly for entry into the knowledge base. After this, the expert assesses expert system and passes on criticisms to the knowledge engineer. This process is repeated again and again until the expert evaluates the results of the system as satisfactory.

Generally speaking, the process of creating expert systems is much different from the process of developing conventional programs. Expert systems consider problems that do not have a satisfactory algorithmic solution, so logical inference is used to achieve an acceptable solution. Since the basis of functioning expert system the logical conclusion lies, such a system must be able to explain its reasoning so that it can be verified. Therefore, an integral part of any complex expert system is a means of explanation. In fact, complex explanation tools can be developed that allow the user to explore multiple lines of questions like "What would happen if...", called hypothetical reasoning.

Hence, knowledge engineering is a field of information technology, the purpose of which is to accumulate and apply knowledge not as an object for processing by a person, but as an object for processing it on a computer. To do this, it is necessary to analyze knowledge and the features of its processing by humans and computers, as well as to develop their machine representation. Unfortunately, an accurate and indisputable definition of what knowledge is has not yet been given. But nevertheless, the goal knowledge engineering– ensuring the use of knowledge in computer systems at a higher level than hitherto is relevant. The possibility of using knowledge is feasible only when this knowledge exists, which is understandable. The technology of accumulating and summing up knowledge goes side by side with the technology of using knowledge, where they complement each other and lead to the creation of one technology, the technology of knowledge processing.

The second class of ES is used in situations where there are no obvious connections and patterns between elements of knowledge, and the knowledge itself is presented in the form of lists of examples describing the implementation of certain events. If the first class of ES works with well-defined data and knowledge extracted from experts - analysts and knowledge engineers, then the second class forms its knowledge by adapting to the subject area represented by examples, and both training and analyzed information can be distorted and incomplete. In the first case, the inference mechanisms, as a rule, are based on classical strategies of inheritance and logical inference, while in the second case, various methods of inductive generalization from examples, in particular, the properties of artificial neural networks used for this.

In a rule-based system, the problem domain knowledge needed to solve problems is encoded in the form of rules and contained in a knowledge base. Of course, rules are the most widely used to represent knowledge. Elements of a typical expert system, based on rules, are shown in Fig. 11.18.


Rice. 11.18.

Expert system consists of the components described below.

  • User interface. The mechanism by which communication between the user and expert system.
  • Means of explanation. A component that allows you to explain to the user the reasoning of the system.
  • Working memory. Global database of facts used in the rules.
  • Inference machine. A software component that provides logical inference (deciding which rules facts or objects satisfy). Prioritizes the rules to be executed and executes the rule with the highest priority.
  • Working list of rules. A prioritized list of rules created by an inference engine whose patterns match facts or objects in working memory.
  • A means of acquiring knowledge. An automated method that allows the user to enter knowledge into the system, rather than involving a knowledge engineer in solving the task of explicitly encoding knowledge.

Many systems have an optional means of acquiring knowledge. This tool in some expert systems is capable of learning by deriving rules by induction based on examples, and automatically generating rules. Other methods and algorithms, such as artificial neural networks and genetic algorithms. The main problem with using machine learning to generate rules is that there is no explanation as to why the rules were created. Unlike humans, who can explain why a rule was chosen, machine learning systems have never been able to explain their actions, which can lead to unpredictable results. However, in general, examples presented in simple tables are best for creating decision trees. General rules prepared by a knowledge engineer can be much more complex compared to simple rules obtained by inductive rule derivation.

IN expert system A rule-based knowledge base is also called production memory. As a very simple example, consider the problem of making a decision about crossing the road. Below are the outputs for two rules where the arrows indicate that the system will take action to the right of the arrow if the conditions to the left of the arrow are true:

red light on -> stand

green light on -> move

Production rules can be expressed in the equivalent IF-THEN pseudocode format as follows:

Rule: red__light

IF the red light is on THEN stand

Rule: green_light

IF the green light is on THEN move

Each rule is identified by a name. Following the name is the IF part of the rule. The section of a rule between the IF and THEN parts of a rule is referred to by various names, such as the antecedent, conditional part, pattern part, or left-hand-side (LHS). A single condition such as

"The red light is on" is called a conditional element, or pattern.

In a rule-based system, the inference engine determines which antecedents of the rules (if any) are satisfied according to the facts. Two general inference methods are commonly used as problem-solving strategies in expert systems: forward inference and reverse inference. Other techniques used to accomplish more specific techniques may include means-ends analysis, problem simplification, backtracking, plan-build-check, hierarchical planning and the principle of least contribution, and constraint handling.

Direct inference is a method of forming reasoning from facts to conclusions that follow from those facts. For example, if before leaving home you find that it is raining (fact), you should take an umbrella with you (conclusion).

Reverse inference involves forming reasoning in the opposite direction - from a hypothesis (a potential conclusion that must be proven) to facts that support the hypothesis. For example, if you are not looking outside, but someone comes into the house with wet boots and an umbrella, then you can accept the hypothesis that it is raining. To confirm this hypothesis, it is enough to ask this person if it is raining. If the answer is yes, the hypothesis will be proven to be true, so it becomes a fact. As mentioned above, a hypothesis can be considered a fact whose truth is in doubt and must be established. In such a case, a hypothesis can be interpreted as a goal that must be proven.

Depending on the project expert system In an inference machine, either forward or inverse logical inference is carried out, or both of these forms of logical inference. For example, the CLIPS language is designed to use forward inference, the PROLOG language does backward inference, and the version of CLIPS called Eclipse, developed by Paul Haley, does both forward and backward inference. The choice of inference engine depends on the type of problem. Diagnostic tasks are best solved using reverse inference, while prediction problems, current control and controls can most easily be solved using direct logical inference.

Working memory may contain facts about the current state of a traffic light, such as “the light is green” or “the light is red.” Either or both of these facts may be present in working memory. If the traffic light is working normally, then only one fact will be in working memory. But it is also possible that both facts will be present in working memory if the traffic light is faulty. What is the difference between knowledge base and working memory? Facts do not interact with each other. The fact “the light is green” does not affect the fact “the light is red.” On the other hand, knowledge about the operation of traffic lights suggests that if both facts are present at the same time, then the traffic light is faulty.

If there is a fact in working memory "the light is green", the inference engine detects that this fact satisfies the conditional part of the green_light rule and places this rule in the working rule list. And if a rule has several templates, then all of these templates must be satisfied at the same time in order for the rule to be placed in the working rule list. You can even specify the absence of certain facts in working memory as a condition for satisfying some patterns.

A rule for which all patterns are satisfied is called activated, or implemented. The working list of rules can contain several activated rules at the same time. In this case, the inference engine must choose one of the rules to run.

Following the THEN part of the rule is a list of actions that must be performed after the rule runs. This part of the rule is called the consequent, or right-hand side (RHS). If the red_light rule fires, its "stand" action is executed. Similarly, once the green_light rule is fired, its action becomes "move". Specific actions usually involve adding or deleting facts from working memory or displaying results. The format for describing these actions depends on the syntax of the language expert system. For example, in the CLIPS language, the action of adding a new fact called “stop” to working memory takes the form (assert stop).

The logical inference machine operates in the “recognition-action” cycle mode. Other terms such as sample-do cycle, situation-response cycle, and situation-action cycle are also used to describe this mode of operation. But whatever the name of such a loop, the inference engine performs some groups of tasks over and over again until certain criteria are identified that cause execution to stop. This solves common problems, identified in the pseudocode below as conflict resolution, action, negotiation, and checking stop conditions.

WHILE work not finished

Conflict resolution. If there are activated rules, then select the rule with the highest priority; otherwise the job is finished.

Action. Consistently carry out the actions indicated on the right side of the selected activated rule. This cycle manifests the direct influence of those actions that change the contents of working memory. Remove the newly launched rule from the working list of rules.

Coordination. Update the rules worklist by checking if the left side of any rules are satisfied. If the answer is positive, activate the appropriate rules. Remove activated rules if the left side of the corresponding rules is no longer executed.

Checking stop conditions. If the halt action is performed or the break command is given, then the work is completed.

Accept new user command.

During each cycle, numerous rules can be activated and placed in the rule worklist. In addition, the results of activating rules from previous cycles remain in the working list of rules, unless these rules are deactivated due to the fact that their left parts are no longer executed. Thus, as the program runs, the number of activated rules in the rule worklist changes. Depending on the program, previously activated rules may always remain in the working rules list, but may never be selected to run. Likewise, some rules may never become activated. In such cases, you should re-check the purpose of these rules because either the rules are not needed or their templates are not designed correctly.

The inference engine performs the actions of the highest priority activated rule in the rule worklist, then the actions of the next highest priority activated rule, and so on, until there are no more activated rules left in the list. Various priority systems have been developed for expert system tools, but generally speaking, all tools allow the knowledge engineer to prioritize rules.

Conflicts occur in the rule worklist if different activated rules have the same priority and the inference engine must decide which of these rules to run. Different shells use different methods to solve this problem. Newell and Simon used the approach that the rules introduced into the system first become the highest priority by default. In the CLIPS language, rules have the same priority by default unless some of them are assigned a different priority by the knowledge engineer.

After all rules are completed, control returns to command interpreter top level so that the user can issue the shell expert system additional instructions. Top-level mode corresponds to the default mode in which the user interacts with expert system, and is designated as the "Accept a new user command" task. New commands are accepted at the top level.

The top level represents the user interface to the command interpreter during the period when the application is being developed expert system. But usually more complex user interfaces are developed to make it easier to work with expert system. In reality, designing and implementing a user interface may require more effort than creating a knowledge base expert system, especially at the prototype development stage. Depending on the capabilities of the command interpreter expert system the user interface can be implemented using rules or using statements in another language called from expert system.

Main feature expert system is a means of explanation provided in it that allows the user to ask questions about how the system came to a certain conclusion and why it needs certain information. A rule-based system can easily answer the question of how a certain conclusion was reached because the history of rule activations and the contents of working memory can be stored on the stack. But this possibility is not so easily achievable when using artificial neural networks. genetic algorithms or other systems whose development is still ongoing. Of course, attempts have been made to provide for the possibility of explanation in some systems, but the means of explanation created cannot be compared in their clarity with the means of any expert system designed by man. Advanced explanatory tools can enable the user to ask “what if” questions and explore alternative ways of forming hypothetical reasoning.