Termindexering
Inom datavetenskap är ett termindex en datastruktur för att underlätta snabb uppslagning av termer och klausuler i ett logikprogram , deduktiv databas eller automatiserad teoremprovare .
Översikt
Många operationer i automatiska teoremprovare kräver sökning i enorma samlingar av termer och satser. Sådana operationer faller vanligtvis inom följande schema. Med tanke på en samling av termer (satser) och en frågeterm (klausul) , hitta i några/alla termer relaterade till enligt ett visst hämtningsvillkor. De mest intressanta hämtningsvillkoren är formulerade som förekomsten av en substitution som på ett speciellt sätt relaterar frågan och de hämtade objekten t {\ . Här är en lista över hämtningstillstånd som ofta används i prover:
- term kan förenas med term , dvs det finns en substitution så att =
- term är en instans av , dvs det finns en substitution så att =
- term är en generalisering av , dvs det finns en substitution så att =
- sats subsumerar sats , dvs det finns en substitution så att är en delmängd/submultis av
- klausul subsumeras av , dvs det finns en substitution så att är en delmängd/submultis av
Oftare än inte är vi faktiskt intresserade av att hitta lämpliga substitutioner explicit, tillsammans med de hämtade termerna , snarare än att bara fastställa existensen av sådana substitutioner.
Mycket ofta är storleken på termuppsättningar som ska sökas stora, hämtningsanropen är frekventa och hämtningsvillkorstestet är ganska komplicerat. I sådana situationer blir linjär sökning i , när hämtningsvillkoret testas på varje term från , oöverkomligt kostsam. För att övervinna detta problem är speciella datastrukturer, kallade index , utformade för att stödja snabb hämtning. Sådana datastrukturer, tillsammans med de tillhörande algoritmerna för indexunderhåll och hämtning, kallas termindexeringstekniker .
Klassiska indexeringstekniker
- diskrimineringsträd
- substitutionsträd
- banindexering
Substitutionsträd överträffar banindexering, diskrimineringsträdindexering och abstraktionsträd.
Ett termindex för diskrimineringsträd lagrar sin information i en försöksdatastruktur .
Moderna indexeringstekniker
- funktionsvektorindexering
- kodträd
- sammanhang träd
- relationell vägindexering
Vidare läsning
- P. Graf, Term Indexing, Lecture Notes in Computer Science 1053, 1996 (något föråldrad översikt)
- R. Sekar och IV Ramakrishnan och A. Voronkov, Term Indexing, i A. Robinson och A. Voronkov, redaktörer, Handbook of Automated Reasoning , volym 2, 2001 (nyare översikt)
- WW McCune, Experiments with Discrimination-Tree Indexing and Path Indexing for Term Retrieval, Journal of Automated Reasoning, 9(2), 1992
- P. Graf, Substitution Tree Indexing, Proc. of RTA, Lecture Notes in Computer Science 914, 1995
- M. Stickel, The Path Indexing Method for Indexing Terms, Tech. Rep. 473, Artificiell intelligens Center , SRI International , 1989
- S. Schulz, Enkel och effektiv klausulsubsumtion med funktionsvektorindexering, Proc. av IJCAR-2004 workshop ESFOR, 2004
- A. Riazanov och A. Voronkov, Partially Adaptive Code Trees, Proc. JELIA, föreläsningsanteckningar i artificiell intelligens 1919, 2000
- H. Ganzinger och R. Nieuwenhuis och P. Nivela, Fast Term Indexing with Coded Context Trees, Journal of Automated Reasoning, 32(2), 2004
- A. Riazanov och A. Voronkov, Efficient Instance Retrieval with Standard and Relational Path Indexing, Information and Computation, 199(1–2), 2005