Metoda List Inwersyjnych

Podobne dokumenty
Metoda list inwersyjnych. Wykład III

Metoda List Łańcuchowych

Metoda list inwersyjnych

Metoda list prostych Wykład II. Agnieszka Nowak - Brzezińska

Systemy Wyszukiwania Informacji

Metoda Składowych atomowych

Dekompozycja w systemach wyszukiwania informacji

Metoda List Prostych mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Sosnowiec, 2012

METODA LIST PROSTYCH. Marcin Jaskuła

Wprowadzenie i pojęcia wstępne.

Metody indeksowania dokumentów tekstowych

Systemy Wyszukiwania Informacji: Metoda list inwersyjnych

Rys Wykres kosztów skrócenia pojedynczej czynności. k 2. Δk 2. k 1 pp. Δk 1 T M T B T A

Bazy danych Access KWERENDY

Cel normalizacji. Tadeusz Pankowski

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

1. Korzyści z zakupu nowej wersji Poprawiono Zmiany w słowniku Stawki VAT Zmiana stawki VAT w kartotece Towary...

Matematyczne Podstawy Informatyki

Ćwiczenia z metodyki nauczania rachunku prawdopodobieństwa

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

Nowe funkcje w programie Symfonia Faktura w wersji

Metoda Karnaugh. B A BC A

Wykład 2. Relacyjny model danych

Haszowanie (adresowanie rozpraszające, mieszające)

Nowe funkcje w programie Symfonia Handel w wersji

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Luty 2001 Algorytmy (4) 2000/2001

Obliczenia iteracyjne

Materiały dla finalistów

Karty pracy. Ustawienia. W tym rozdziale została opisana konfiguracja modułu CRM Karty pracy oraz widoki i funkcje w nim dostępne.

Pojęcie systemu informacyjnego i informatycznego

Czynności wstępne dla bazy produkcyjnej programu mrej2

B jest globalnym pokryciem zbioru {d} wtedy i tylko wtedy, gdy {d} zależy od B i nie istnieje B T takie, że {d} zależy od B ;

PROJEKT CZĘŚCIOWO FINANSOWANY PRZEZ UNIĘ EUROPEJSKĄ. Opis działania raportów w ClearQuest

Zadania do Rozdziału X

KOMBINATORYKA OBIEKTY KOMBINATORYCZNE MATEMATYKA DYSKRETNA (2014/2015)

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Rysunek 1: Przykłady graficznej prezentacji klas.

Rejestr Personelu Medycznego

SYSTEMY WYSZUKIWANIA INFORMACJI

Rodzinę spełniającą trzeci warunek tylko dla sumy skończonej nazywamy ciałem (algebrą) w zbiorze X.

Normalizacja. Pojęcie klucza. Cel normalizacji

Bazy Danych i Usługi Sieciowe

Wykład 5: Klasy cz. 3

Podstawy Informatyki Systemy sterowane przepływem argumentów

Ile waży arbuz? Copyright Łukasz Sławiński

Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2

MS Access - bazy danych.

Ćwiczenie: JavaScript Cookies (3x45 minut)

FUNKCJA KWADRATOWA. Zad 1 Przedstaw funkcję kwadratową w postaci ogólnej. Postać ogólna funkcji kwadratowej to: y = ax + bx + c;(

Matematyka dyskretna. Andrzej Łachwa, UJ, A/10

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Reguły decyzyjne, algorytm AQ i CN2. Reguły asocjacyjne, algorytm Apriori.

Funkcje wymierne. Funkcja homograficzna. Równania i nierówności wymierne.

FORMUŁY AUTOSUMOWANIE SUMA

Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania.

Teoretyczne podstawy informatyki

166 Wstęp do statystyki matematycznej

Elementy modelowania matematycznego

Optymalizacja ciągła

1.Formatowanie tekstu z użyciem stylów

Indukcja matematyczna

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Sztuczna Inteligencja Projekt

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe

7. Pętle for. Przykłady

Pochodna i różniczka funkcji oraz jej zastosowanie do rachunku błędów pomiarowych

O MACIERZACH I UKŁADACH RÓWNAŃ

PROBLEM: SORTOWANIE PRZEZ ODWRÓCENIA METODA: ALGORYTMY ZACHŁANNE

Przestrzenne bazy danych Podstawy języka SQL

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Hierarchiczna analiza skupień

Niezawodność i Diagnostyka

Lista 4. Kamil Matuszewski 22 marca 2016

A i. i=1. i=1. i=1. i=1. W dalszej części skryptu będziemy mieli najczęściej do czynienia z miarami określonymi na rodzinach, które są σ - algebrami.

MS Excel 2007 Kurs zaawansowany Obsługa baz danych. prowadzi: Dr inż. Tomasz Bartuś. Kraków:

Dodawanie treści na stronę projektu z Poddziałania 3.1.2

Zestaw C-11: Organizacja plików: Oddajemy tylko źródła programów (pliki o rozszerzeniach.cpp i.h)!!! Zad. 1: Zad. 2:

10. Wstęp do Teorii Gier

Program MS PowerPoint umożliwia tworzenie prezentacji z wykorzystaniem trzech podstawowych sposobów:

RACHUNEK ZDAŃ 7. Dla każdej tautologii w formie implikacji, której poprzednik również jest tautologią, następnik także jest tautologią.

MS Word Długi dokument. Praca z długim dokumentem. Kinga Sorkowska

Egzamin z logiki i teorii mnogości, rozwiązania zadań

Definicja pliku kratowego

Teoretyczne podstawy informatyki

Wykład 8: klasy cz. 4

Kopiowanie, przenoszenie plików i folderów

CLUSTERING. Metody grupowania danych

BAZY DANYCH Formularze i raporty

Hurtownie danych. Przetwarzanie zapytań. ZAPYTANIA NA ZAPLECZU

Modelowanie diagramów klas w języku UML. Łukasz Gorzel @stud.umk.pl 7 marca 2014

Normalizacja baz danych

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

Opis nowych funkcji w programie Symfonia Handel w wersji 2010

Zestaw 1: Organizacja plików: Oddajemy tylko źródła programów (pliki o rozszerzeniach.adb i.ads)!!! Zad. 1: Zad. 2: 2,2,2 5,5,5,5,5,5 Zad.

SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska

Kolorowanie wierzchołków grafu

4. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych.

Transkrypt:

Metoda List Inwersyjnych

Celem metody jest poprawienie (skrócenie) czasów wyszukiwania względem MLP (i tak się faktycznie dzieje dla pewnej klasy pytań). Założenie: Dany jest system informacyjny S = <X, A, V, ρ> W Metodzie List Inwersyjnych występuje funkcja adresująca, która jest zdefiniowana następująco: : X N, gdzie X zbiór obiektów, N zbiór adresów obiektów w systemie. Funkcja adresująca zachowuje jednak właściwość, że: Obiekty mają przyporządkowany ten sam adres jeśli posiadają identyczny opis deskryptorowy.

Dla zbioru wszystkich deskryptorów systemu D = {d 1 d m }, gdzie d i = (a i, v i ), tworzone są listy inwersyjne ( ). Lista inwersyjna jest to lista adresów obiektów, które w swoim opisie zawierają deskryptor d i. Listę inwersyjną oznaczamy jako (d i ): (d i ) = {n 1,, n z } Kartotekę wyszukiwawczą stanowi utworzony zbiór list inwersyjnych. Przy niewielkiej liczbie obiektów w systemie można wprost pamiętać te obiekty.

(Tytuł,Zagubieni)={1} (Tytuł,House M.D.)={2} (Tytuł,Moda na sukces)={3} (Tytuł,Magia kłamstwa)={4} (Tytuł,Klan)={5} (Tytuł,Barwy szczęścia)={6} (Tytuł,Brzydula)={7} (Tytuł,Majka(PL) )={8} (Tytuł,4400)={9} (Tytuł,Jezioro marzeń)={10} (Tytuł,Magazyn 13)={11} (Tytuł,Fringe)={12} (Tytuł,Plotkara)={13} (Tytuł,Chirurdzy)={14} (Tytuł,Tajemnice Smallvile)={15} (Tytuł,Simpsonowie)={16} (Tytuł,Pingwiny z Madagaskaru)={17} (Tytuł,Reksio)={18} (Tytuł,Dwóch i pół)={19} (Tytuł,Usta usta)={20} (Rodzaj, sci-fi) = {15,9,12,11,1} (Rodzaj, obyczajowy) = {2,14,4} (Rodzaj,telenowela)={8,3,7,5,6} (Rodzaj,młodzieżowy)={10,13} (Rodzaj,animowany)={17,16,18} (Rodzaj,komedia)={19,20} (Rok powstania,niedawno)={1,2,9,13,14,15,17,19,6} (Rok powstania,bardzo dawno)={3,16,18} (Rok powstania,bardzo niedawno)={4,8,11,12,20} (Rok powstania,dawno)={5,7,10} (Liczba odcinków,dużo)={1,2,6,7,8,10,14,15,16,19} (Liczba odcinków,bardzo dużo)={5,3} (Liczba odcinków,mało)={20,11,4} (Liczba odcinków,średnio)={9,12,13,17,18} (Kraj poch.,usa)={19,9,11,13,15,17,10,12,14,16,4,3,2,1} (Kraj pochodzenia,polska={5,6,8,18,20} (Kraj pochodzenia,kolumbia)={7} (Czy zak.,tak}={1,7,9,10,18} (Czy zak.,nie}={2,3,4,5,6,8,11,12,13,14,15,16,17,19,20} Kolejność list inwersyjnych jest dowolna

Informacja o każdym z obiektów pamiętana jest wielokrotnie tyle razy ile jest atrybutów opisujących dany obiekt. Redundancje w systemie z MLI można obliczyć ze wzoru: Gdzie r liczba deskryptorów, N liczba adresów. Przykład: Dla pokazanego systemu r = 39, N = 20 zatem redundancja to: 20 100

Do systemu kierujemy pytanie w postaci termu t: t = t 1 + t 2 + + t m Należy zatem rozpatrzyć dwa możliwe przypadki: 1. Termy składowe pytania to pojedyncze deskryptory (t i = d i ) zatem t = d 1 + d 2 + + d k : (t) = (d 1 ) (d 2 ) (d k ) Odpowiedź na pytanie t otrzymuje przez wygenerowanie list inwersyjnych dla deskryptorów występujących w pytaniu. 2. Termy składowe pytania mają postać iloczynu deskryptorów (t i = d 1 d 2 d k ), wówczas: (t i ) = (d 1 ) (d 2 ) (d k ) (t) = (t 1 ) (t 2 ) (t m ) Odpowiedź na term składowy ti otrzymujemy jako przecięcie list inwersyjnych związanych z deskryptorami występującymi w pytaniu ti. Jako, że w listach inwersyjnych występują adresy obiektów, to kolejnym krokiem jest znalezienie obiektów odpowiadających tym adresom.

Pytanie: t = (Rok powstania,niedawno) 1. Wybieramy spośród list inwersyjnych tą, która zawiera deskryptor pytania t: Czy t (Rodzaj,animowany)? Czy t (Rodzaj,komedia)? Czy t (Rok powstania,niedawno)? NIE NIE TAK 2. Generujemy listę inwersyjną (Rok powstania,niedawno) ={1,2,9,13,14,15,17,19,6} 3. Wyznaczamy znaczenie termu t: (t) = (Rok powstania,niedawno) = {1,2,9,13,14,15,17,19,6} = {x 1,x 2,x 9,x 13,x 14,x 15,x 17,x 19,x 6 }

Pytanie: t = (Rodzaj, sci-fi) (Liczba odcinków, dużo) + (Rok powstania,niedawno) 1. t = t 1 + t 2 t 1 = (Rodzaj, sci-fi) (Liczba odcinków, dużo) t 2 = (Rok powstania,niedawno) 2. Dla każdego termu składowego pytania znajdujemy osobno właściwe listy inwersyjne Generujemy listę dla deskryptora (Rodzaj, sci-fi) (Rodzaj, sci-fi) = {15,9,12,11,1} Szukamy listy dla deskryptora (Liczba odcinków, dużo) (Liczba odcinków, dużo) = {1,2,6,7,8,10,14,15,16,19} Wyznaczamy znaczenie termu t1 (t1) = {15,9,12,11,1} {1,2,6,7,8,10,14,15,16,19} = {1,15} = {x1, x15} 3. Wyznaczamy znaczenie termu t 2 : Szukamy listy inwersyjnej dla deskryptora (Rok powstania,niedawno) (Rok powstania,niedawno) ={1,2,9,13,14,15,17,19,6} (t 2 ) = {x 1,x 2,x 9,x 13,x 14,x 15,x 17,x 19,x 6 } 4. Wyznaczamy znaczenie termu t: 5. (t1) = {1,15} {x 1,x 2,x 9,x 13,x 14,x 15,x 17,x 19,x 6 } = {x 1,x 2,x 9,x 13,x 14,x 15,x 17,x 19,x 6 } TAK NIE SUMUJEMY ANI NIE WYZNACZAMY CZĘŚCI WSPÓLNEJ!

1. Struktura bazy danych Jest ona bardziej złożona, niż w MLP, gdyż poza pamiętaniem opisów obiektów, istnieje konieczność pamiętania list inwersyjnych dla każdego z deskryptorów systemu. 2. Redundancja Metoda ta pociąga ze sobą dużą redundancję 3. Zajętość pamięci Zależy od liczby deskryptorów opisujących obiekty w systemie: Gdzie - średnia zajętość pamięci potrzebna na zapamiętanie jednej listy inwersyjnej, r liczba deskryptorów systemu

4. Czas wyszukiwania Generalnie krótki czas wyszukiwania: Gdzie gi czas generowania listy inwersyjnej dla deskryptora d i, p czas generowania przecięcia list. Dla pytań ogólnych p = 0. 5. Aktualizacja bazy danych Dodanie nowego obiektu wymaga wstawienia adresu obiektu do wszystkich list zawierających deskryptor wchodzący w skład opisu tego obiektu Usunięcie obiektu wiąże się z koniecznością usunięcia adresu tego obiektu ze wszystkich list w jakich on występuje. Modyfikacja opisu wymaga usunięcia adresu obiektu z listy, która nie jest dla niego właściwa i dopisanie adresu do innej odpowiedniej listy.

1. Uporządkowanie adresów obiektów wewnątrz list 2. Uporządkowanie list Według ich długości. Leksykograficznie. Według częstości występowania deskryptorów w pytaniach. 3. Tworzenie list zredukowanych Zaznaczanie przedziałów adresów. Listy wielodeskryptorowe. Listy wspólne dla pary deskryptorów z zaznaczeniem części wspólnej. Listy zanegowane. Listy dla niepełnego zbioru deskryptorów. 4. Dekompozycje Obiektowa. Atrybutowa. Opracowane dekompozycje: http://zsi.tech.us.edu.pl/~nowak/swi/dmli.zip

Bez uporządkowania: (Kraj poch.,usa)={19,9,11,13,15,17,10,12,14,16,4,3,2,1} Z uporządkowaniem (Kraj poch.,usa)={1,2,3,4,9,10,11,12,13,14,15,16,17,19} Modyfikacja ta skraca czas generowania przecięcia dwóch list inwersyjnych wiadome jest od którego elementu zacząć szukać elementu wspólnego i na którym skończyć.

Porządkujemy listy zaczynając od najkrótszych do najdłuższych. W metodzie klasycznej może być: {1,2,6,7,8,10,14,15,16,19} {1,9,15} W tej modyfikacji: {1,9,15} {1,2,6,7,8,10,14,15,16,19} Zalety: Skraca się czas przecięcia list Wady: Aktualizacja jest utrudniona, bo gdy zmienia się długość list należy dokonać ich uporządkowania od nowa

Umożliwia stosowanie innych modyfikacji: w szczególności podziału połówkowego Zalety: Czas wyszukiwania odpowiedniej listy ulega znacznemu zmniejszeniu (przy zastosowaniu podziału połówkowego średnia liczba porównań to log 2 k, gdzie k liczba list inwersyjnych) Przy założeniu, że pamiętane są listy puste, nie utrudnia ona aktualizacji.

Najczęściej wyszukiwane listy inwersyjne znajdują się na wysokiej pozycji w kartotece wyszukiwawczej (patrz odcedzanie statyczne) Zalety: Skraca się czas wyszukiwania odpowiedniej listy. Wady: Jeżeli pytanie kierowane do systemu nie jest ze zbioru najczęściej zadawanych pytań metoda ta nie przynosi żadnej poprawy (może nawet pogorszyć sytuację).

Jeżeli w obrębie jakiejś listy występuje ciąg kolejnych adresów to można wtedy je zaznaczyć jako przedział (używając np. znacznika -) Zalety: Skraca się czas wyszukiwania (czas generowania przecięcia list) Zmniejsza się zajętość pamięci Wady: Aktualizacja jest bardziej złożona, ze względu na ewentualne modyfikacje granic przedziałów Przykład: (Czy zak.,nie}={2,3,4,5,6,8,11,12,13,14,15,16,17,19,20,21} (Czy zak.,nie}={2-6,8,11-17,19-21}

Przy założeniu, że mamy dwie listy, które mają pewne wspólne dla siebie adresy to tworzona jest zamiast tych dwóch list jedna, która ma odpowiednio zaznaczone część wspólną i unikalne dla każdej z deskryptorów Przykład: (Rodzaj,animowany)={17,16,18} (Rok powstania,bardzo dawno)={3,16,18} <=> ((Rodzaj,animowany)*(Rok powstania,bardzo dawno))={17 # 16,18 # 3} Zalety: Krótszy czas wyszukiwania dla pytań o oba deskryptory. Zmniejszona zajętość pamięci Wady: Nieznacznie utrudniona aktualizacja.

Przy założeniu, że mamy dwie listy inwersyjne, które posiadają jakąś cześć wspólną, a pytania kierowane do systemu często dotyczą obu deskryptorów, które te listy reprezentują to dopisujemy na koniec kartoteki listę będącą iloczynem tych dwóch deskryptorów. Przykład: (Rodzaj,animowany)={17,16,18} (Rok powstania,bardzo dawno)={3,16,18} ((Rodzaj,animowany)*(Rok powstania,bardzo dawno))={16,18} Zalety: Krótszy czas wyszukiwania. Wady: Zwiększona redundancja i zajętość pamięci. Bardziej złożona aktualizacja.

Przy założeniu, że mamy dwie listy inwersyjne, które posiadają jakąś cześć wspólną, a pytania kierowane do systemu często dotyczą obu deskryptorów, które te listy reprezentują usuwamy owe dwie listy i dopisujemy do kartoteki listę będącą iloczynem tych dwóch deskryptorów. Zalety: Zmniejszona zajętość pamięci. Wady: Utrudniona aktualizacja. Zwiększony czas wyszukiwania dla pytań o pojedyncze deskryptory, które już nie są uwzględnione w kartotece.

Modyfikacja ma za zadanie zmniejszenie zajętości pamięci. Dla bardzo długich list tworzone są listy zanegowane listy adresów obiektów, które nie są odpowiedzią na deskryptor reprezentujący daną listę. Atrybut zawarty w takim deskryptorze musi być atrybutem dychotomicznym. Modyfikacja ma sens dla list zawierających dużo więcej adresów niż połowa obiektów w systemie. Przykład: W systemie występują listy: (Czy zak.,tak}={1,7,9,10,18} (Czy zak.,nie}={2,3,4,5,6,8,11,12,13,14,15,16,17,19,20, 21} Listę (Czy zak.,nie} zastępujemy listą zanegowaną: (Czy zak.,tak}={1,7,9,10,18} ~ (Czy zak.,nie} = {1,7,9,10,18} Wyszukiwanie: Ϭ((Czy zak.,nie)*(rodzaj,animowany)) = (X\{1,7,9,10,18}) {16,17,18} = {16,17}

W tej modyfikacji listy inwersyjne tworzone są wyłącznie dla pewnego podzbioru deskryptorów występujących w opisach obiektów (D D). Wybrany zbiór D może być zbiorem deskryptorów najczęściej występujących w pytaniach kierowanych do systemu lub zbiorem deskryptorów pewnego atrybutu(atrybutów) analogia do grupowania w MLP.

Pytanie do systemu ma postać termu t = t 1 + t 2 + + t m Podobnie jak wcześniej odpowiedź na pytanie (t) to suma odpowiedzi na termy składowe. Aby wyznaczyć odpowiedź na term składowy t i (t i = d 1 d 2 d k ) należy rozważyć 3 przypadki: 1. Jeżeli wszystkie deskryptory pytania są zawarte w zbiorze D (d i D ) to postępujemy jak w klasycznej metodzie list inwersyjnych: (t i ) = (d 1 ) (d 2 ) (d k ) 2. Jeżeli nie wszystkie deskryptory pytania zawierają się w zbiorze D (część tak, część nie) to najpierw znajdujemy odpowiedź przybliżoną w formie zbioru Xp taką, że: Xp = (d i ) dla każdego d i D Wówczas X ti Xp. Taki zbiór (Xp) przeglądamy MLP by znaleźć adresy tych obiektów, które w swoim opisie zawierają też pozostałe deskryptory pytania: 3. Jeżeli żaden z deskryptorów pytania nie znajduje się w zbiorze D to odpowiedź uzyskujemy metodą przeglądu zupełnego.

Kartoteka wyszukiwawcza: (Rok powstania,niedawno)={1,2,6,9,13,14,15,17,19} (Rok powstania,bardzo dawno)={3,16,18} (Rok powstania,bardzo niedawno)={4,8,11,12,20, 21} (Rok powstania,dawno)={5,7,10} (Czyzak.,NIE}={2,3,4,5,6,8,11,12,13,14,15,16,17,19,20,21} Pytanie: t = (Rok powstania,dawno)*(czyzak.,tak} Odpowiedź: Wyszukujemy odpowiedź przybliżoną: Xp = (Rok powstania,dawno) = {5,7,10} Stosujemy przegląd zupełny kartoteki wtórnej: Czy t tx 5? NIE Czy t tx 7? TAK Czy t tx 10? TAK (t) = {x 7, x 10 }

System S jest dekomponowany na podsystemy o zmniejszonej liczbie obiektów: S Podsystem S1 (mający określony zbiór deskryptorów D1), S2 (D2)... Sn (Dn) S1 S2... Sn Dekompozycje obiektową stosujemy gdy mamy dużą liczbę obiektów w systemie (i niewielką liczbę atrybutów oraz ich wartości). Szczególnie jest to uzasadnione, gdy obiekty systemu są fizycznie rozproszone, a ich podział na podsystemy wydaje się naturalny.

Zastosowanie dekompozycji obiektowej powoduje, że listy inwersyjne tworzone w podsystemach są znacznie krótsze, co przyspiesza wyszukiwanie i zmniejsza zajętość pamięci (redundancję) w obrębie podsystemu. Odpowiedzi na pytania otrzymywane są w następujący sposób: Jeśli pytanie składowe dotyczy tylko obiektów określonego systemu Si to odpowiedź na pytanie znajdowana jest wyłącznie w podsystemie Si. Jeśli pytanie składowe dotyczy wielu podsystemów to odpowiedź uzyskujemy jako sumę odpowiedzi z tych podsystemów.

System S jest dekomponowany na podsystemy o zmniejszonej liczbie atrybutów: S Podsystem S1 (mający okeślony zbiór deskryptorów D1), S2 (D2)... Sn (Dn) S1 S2... Sn Gdy pytania zadawane do systemu odnoszą się do pewnego podzbioru atrybutów można zastosować dekompozycję atrybutową. Jest ona zasadna również gdy istnieje wielu użytkowników systemu, a każdy z nich dysponuje językiem o własnym podzbiorze deskryptorów.

Listy inwersyjne (kartoteka wyszukiwawcza) tworzone są oddzielnie dla każdego z podsystemów. Zastosowanie dekompozycji atrybutowej powoduje, że zmniejsza się liczba list inwersyjnych tworzonych w obrębie każdego podsystemu, a co za tym idzie maleje również redundancja i skraca się średni czas wyszukiwania. Odpowiedź na zadane pytanie to suma odpowiedzi na pytania składowe. Odpowiedź na pytanie składowe uzyskuje się następująco: Jeśli wszystkie deskryptory pytania składowego znajdują się w podzbiorze deskryptorów Di podsystemu Si to odpowiedź na pytanie jest przecięciem list inwersyjnych podsystemu Si. Jeżeli część deskryptorów pytania składowego należy do zbioru deskryptorów Di, a część nie, to odpowiedź znajdujemy w systemie Si jako odpowiedź przybliżoną, a dokładną odpowiedź uzyskujemy stosując metodę przeglądu zupełnego.