Proximity operatoren

Laat een reactie achter

De nabijheidsoperatoren zijn een onderdeel van de relationele operatoren en veel minder bekend dan de  Booleaanse AND OR en NOT. Hoe staat het met deze proximity, welke zijn er en wie gebruikt wat?

Webopedia zegt:

A type of operator used by some search engines to improve search constraints by instructing the search to look for words that are within a short distance of each other in a document. For example, using a search engine that supports proximity operators, querying the phrase “cable NEAR modem” will instruct the search engine to look in documents for instances of the words “cable” and “modem” that are near each other. Different search engines will specify different distances that the words must be within.

Het gaat dus om niet alleen om de verhouding tussen meerdere zoektermen -hoe dicht staan ze bij elkaar-  maar ook of de volgorde uitmaakt.
Je komt ook wel de term  Adjacency (ADJ)  of NEAR operator tegen. Meestal is er een maximum aan het getal dat je kunt gebruiken om te zeggen hoeveel woorden ertussen mogen staan (Pandia: the NEAR operator) : de getallen ertussen betekenen soms “tot en met”  (Picarta) en andere keren weer “tot” (Ovid).
Soms  kun je tekens (koppelteken, apostrophe, komma of punt) ook als ADJ zien, nl als ze midden in een woord voorkomen. Dat hangt wel van de vertaaltabel van de database af.
Bij NEAR – soms zelfs bij WITHIN- is meestal de volgorde niet van belang, maar niet elke database ziet dat zo, dus daar kun je niet van uitgaan.

Over het algemeen zoek je met deze operatoren in hetzelfde veld: je kunt dus geen auteur en woord uit de titel -als die in verschillende veldne staan tenminste- met elkaar matchen op deze manier,  en stopwoorden en interpunctie worden niet meegeteld bij het aantal tussenwoorden dat je opgeeft.

CCL

Maakt gebruik van de symbolen !  (volgorde maakt uit) en % (volgorde maakt niet uit) al dan niet in combinatie met een getal:

  • dogs !5 cats (eerst dogs dan max 5 woorden, dan cats)
  • dogs % cats (dogs en cats voor of na elkaar met niets ertussen)

CQL

Maakt gebruik  van de operator “prox”  “adj”  en ‘within” maar in de vorm zoals ze het beschrijven – ADJ “heart attack”- zie je het als eindgebruiker meestal niet, is echt computer taal. Het aantal woorden ertussen kun je vastleggen in je vraag.

——————————–

Tot zover over de standaarden: hoe is het in het gebruikt? Het is een ratjetoe!
Er zijn een paar handige sheets van bibliotheken beschikbaar die er een duidelijk overzichtje van geven zoals deze Truncation and proximity van de  Colorado State universities .

Ovid SP gebruikt Adjacent Adj (in de advanced mode) met een max van 2-99 woorden ertussen:

  • Volgorde maakt niet uit
  • Syntax: ADJ5 (nb er kunnen dus 0 – 4 woorden tussen staan)
  • Vb: dogs ADJ5 cats

Picarta heeft het toch een kunst verheven: ik neem de helptekst maar min of meer integraal op

  • ?, * willekeurig aantal woorden er tussen; van links naar rechts.
    VB: gebruik ? drugs vindt ‘gebruik van drugs’, maar ook ‘gebruik van verschillende soorten drugs’.
  • #  nul of één woord; van links naar rechts
    VB:  gebruik # drugs vindt ‘gebruik van drugs’, maar niet ‘gebruik van verschillende soorten drugs’.
  • ! t één woord;  van links naar rechts.
    VB  gebruik ! drugs vindt ‘gebruik van drugs’, maar niet ‘gebruik van verschillende soorten drugs’.
  • %  woordvolgorde niet is aangegeven.
    VB: john % kennedy vindt ‘John Kennedy’, maar ook ‘Kennedy, John’. Zorgt ervoor dat een operator die standaard van links naar rechts zoekt, tevens van rechts naar links kan zoeken. Bijvoorbeeld : john #% kennedy vindt niet alleen John Kennedy en John F. Kennedy, maar ook Kennedy, John en Kennedy, John F.
  • BIJ, NEAR, ~  1e zoekterm binnen drie woorden van de volgende zoekterm wordt aangetroffen; zoekt twee richtingen op.
    VB: geld BIJ uitgeven twee of minder woorden ertussen
    Vb: geld BIJ/3 uitgeven drie of minder woorden

Web of Science / BIOSIS

Gebruikt SAME en SENT, ze doen hetzelfde. Het is wel volstrekt on-intuïtief als je dat zo moet intikken 😉

  • Volgorde niet van belang
  • Vb: dogs same cats

Scopus gebruikt Precedes by (PRE) en Within (W)

Met een max van 255 woorden ertussen, 0 mag ook, getal is ook echt het aantal woorden dat ertussen mag.  Niet in combinatie met Booleaanse operatoren.

Precedes by: 1e woord gaat vooraf aan het tweede

  • Syntax: PRE/5
  • Vb: dogs PRE/5 cats
  • heart PRE/0 = “heart attack”

Within: volgorde maakt niet uit.

  • Syntax W/5
  • Vb: dogs W/5 cats

Worldcat

Kent geen proximity search in de webversie,  via connexion client wel:

Type proximity operators with (w) or near (n) with numbers (1 to 25) to find multiple terms in one index that have a specified number of intervening words.

—————————————

Zie verder

Advertenties

Maskeren oftewel middentruncatie

Laat een reactie achter

“Iets of niets” dat is de vraag bij het maskeren, ofwel: een maskeringsteken hoort voor 0  of 1 teken te staan in mijn ogen. Maar is dat wel zo? Hoe hoort het eigenlijk? Even op onderzoek uit…

Maskeren -ook wel middentruncatie genoemd- en trunceren zijn beiden ‘wildcards’ ofwel jokers en worden nogal eens door elkaar gebruikt. En er worden ook dezelfde tekens voor gebruikt: #  $  ?  * :  sommigen noemen ook een % maar die laatste (%) ben ik als wildcard niet tegengekomen, wel als proximity operator.

Trunceren =

  • het deel aan het uiteinde van een woord vervangen door een teken dat staat voor alles wat erna (resp ervoor) kan komen.
  • er bestaat rechtstruncatie (alles wat erachter komt) en linkstruncatie (alles wat ervoor komt)
  • dat laatste zie je minder en kost vaak ook meer tijd
  • Vb: bibliot?
  • ?bibliotheek

Maskeren =

  • het vervangen van 1 letter door 0 of 1 teken dat van alles kan betekenen midden in een woord
  • de meeste systemen staan “0 of 1” teken toe
  • sommige systemen staan  precies 1 teken toe, geen 0
  • sommige systemen staan toe dat je dat teken herhaald: voor elke letter moet je dan het symbool zetten
  • soms betekent het symbool ‘alle tekens die ertussen kunnen’
  • Vb: wom#n

CCL:

Ooit werd hoe het hoort vastgelegd in de  Common Command Language (CCL) (Wikipedia duitse versie), waaruit in 1993 de ISO 8777 volgde en in 2004 de Common Query Language ook wel Contextual Query language CQL genoemd.  In die CCL worden allerlei commando’s  vastgelegd, ook de wildcards.
Zoals ik over truncatie al heb geroepen, vult elk systeem dat helaas weer anders in, maar volgens de universele richtlijnen van de CCL is de standaard voor truncatie een ? en voor maskeren een # . En als je de duitse wiki mag geloven, staat die maskering voor 0 of 1 teken, en niet voor 1 teken precies, zoals vaak aangehaald. Dat “1 teken precies” wordt dan aangegeven met een uitroepteken (!). De ISO 8777   is helaas niet full-text op ’t net, dus ik kan niet nakijken of het daar ook in staat, maar ik vermoed van niet (kan iemand erbij? Geef t even door svp).
Koha heeft een uitgebreid verhaal over de CCL, maar heeft vreemd genoeg als truncatie dan weer een * ingevoerd.
CCL is dus:

  • ? =  alles
  • # = 0 of 1 teken
  • ! = 1 teken

CQL:

De CQL is een systeem dat probeert CCL en SQL te combineren. Op de CQL homepage (van de LoC) wordt niets over trunceren / maskeren gezegd, maar in Pattern Matching’ van A gentle introduction to CQL wordt aangegeven hoe de wildcards  er uit zien:

  • ? = 1 teken
  • * =  alles
  • mogen overal voorkomen en herhaald worden
  • Vb: ?in?s*r

Mooi is dat … hebben we 2 afwijkende standaarden: geen wonder dat allerlei systemen dat anders aanpakken.

————————————–

Wat doen de grote databases  trouwens? (T = trunceren M = maskeren)

Ovid (PsycInfo):

Ovid heeft een uitgebreide helptekst, en hier zie ik weer een nieuwe, die je bij Worldcat ook terugvindt:

Limited truncation specifies a maximum number of characters that may follow the root word or phrase. For example, the truncated search dog$1 retrieves results with the words dog and dogs; but it does not retrieve results with the word dogma

In hun lijstje truncatie symbolen zie ik er ook een die ik nog niet eerder als truncatieteken was tegengekomen:  een  colon (:). Je mag nu al deze truncaties ook bij auteurs gebruiken.

  • T = $  *   :
  • M = ? 0 of 1
  • M = # 1 teken, mag vaker gebruikt, moet meer dan 1 letter aan vooraf gaan:
  • Vb: wom#n mag, d#g niet
  • wagenaar*.au.

Pica

Picarta heeft vrij op t net een oude tekst zoekhulp met info over wildcards (handleiding) maar binnen Picarta is deze tekst aangepast.  (update 16/1: op t net staat ook een nieuwere:  Picarta handleiding zoeken)

Binnen een zoekterm kunnen wildcards gecombineerd worden.

  • T = ? en *
  • M= ! 1 teken
  • M= #  0 of 1 teken
  • M = ? en * vervangt dan alle letters (je mag geen aantal toevoegen)
  • Vb: spa#n,g?
  • Vb: gebruik! vindt gebruikt, maar niet gebruik of gebruiker.
  • micro?p* vindt microcomputer, microscope, microprocessor, etc.
  • micro!p* vindt microsphere, microoptics, etc
  • 199#

Worldcat:

Search help (zoek voor Wildcards) / Quick reference card.

  • T = ? en *  je mag er ook cijfer aan toevoegen dat aantal te vervangen letters aangeeft
  • M= ! 1 teken (uitzetten rechtstruncatie: kan ik niet op de referencecard terugvinden, maar werkt wel)
  • M= #  1 teken
  • M = ? met aantal te vervangen letters
  • Vb: bu?2er = butterfly, burner
  • Vb: colo?1r = color, colour, maar niet colonizer

Scopus:

Only one wildcard can be included in a single term”

  • T = * (links en rechts)
  • M = ? 1 teken
  • M = * 0 of 1
  • Vb: he*moglobin vindt hemoglobine, haemoglobin maar ook hemidemiphosphorylmontotremoglobin

WOS:

  • T = *
  • M = ? 1 teken
  • M = $ 0 of 1

Mijn  eigen bibliotheeksysteem volgt de ISO 8777 met als gevolg dat een ? staat voor een truncatie, een # voor 1 teken als maskering.
0 of 1 kan in mijn syteem niet met een # : en daar kom ik weer met het colour/ color probleem. Ze hebben voor dezelfde oplossing gekozen voor dat “niets of iets” als Scopus, maar dan met een ? middenin het woord.
Maar dan vind je ook alles wat ertussen kan, dus

colo?r = color, colour, colorectal,  colonoscopistentekort ( ivm automatische rechtstruncatie)

en daar kan ik niet tegen … dus heb ik onze leverancier gevraagd er iets aan te doen: maak van # de keuze uit 0 of 1,  of verzin iets anders desnoods, maar die ? middenin een woord is niet handig.
Wat vinden jullie?

———————

Zie verder: