Streepjes
Behalve uit letters en cijfers bestaan teksten ook nog uit een heleboel andere tekens. Ook met die tekens moeten zoekmachines en databasesoftware overweg kunnen; in de eerste plaats natuurlijk bij het indexeren ervan in tekstbestanden, maar ook bij de interpretatie van de verschillende alternatieve manieren waarop zulke tekens in de te indexeren (HTML- of anderszins gecodeerde) tekstbestanden kunnen zijn ingevoerd; en eigenlijk ook bij de interpretatie van de diverse manieren waarop gebruikers van zoekmachines en databases dat in de zoekregel(s) kunnen doen. Doorgaans maken we ons over zulke tekens niet druk, en doorgaans hoeft dat ook niet. Komma's en punten bijvoorbeeld worden doorgaans zowel door ons als door de zoekmachines verwaarloosd, met als gevolg dat we een phrase als "hij sliep, maar droomde niet" met en zonder de komma in de zoekregel kunnen invoeren zonder dat dat consequenties voor het zoekresultaat heeft ; hetzelfde geldt voor de punt in "Hij sliep. Maar hij droomde niet." Maar ook en juist bij deze leestekens zijn er uitzonderingen: zo hebben de drie grote internationale zoekmachines Google, Yahoo! en Live Search elk hun eigen manier om met punten en komma's in getallen om te gaan:
- in getallen onder 1000 behandelt Google de (eerste) punt als een punt en de (eerste) komma (en andere tekens, zoals /, :, -) als een spatie; om te voorkomen dat een getal onder 1000 met een komma erin als twee getallen met een EN-relatie wordt gelezen moet het getal tussen aanhalingstekens worden gezet.
- in getallen van 1000 en meer behandelt Google de (eerste) punt als een punt en verwaarloost de (eerste) komma.
- in getallen onder 1000 behandelt Yahoo! de (eerste) punt als een punt en de (eerste) komma (en andere tekens, zoals /, :, -) als een spatie; om te voorkomen dat een getal onder 1000 met een komma erin als twee getallen met een EN-relatie wordt gelezen moet het getal tussen aanhalingstekens worden gezet.
- in getallen van 1000 en meer behandelt Yahoo! zowel de (eerste) punt als de (eerste) komma als een spatie; om te voorkomen dat een getal van 1000 en meer met een komma erin als twee getallen met een EN-relatie wordt gelezen moet het getal tussen aanhalingstekens worden gezet.
- in getallen onder 1000 behandelt Live Search zowel de (eerste) punt als de (eerste) komma (en andere tekens, zoals /, :, -) als een spatie binnen een phrase
- in getallen van 1000 en meer behandelt Live Search zowel de (eerste) punt als de (eerste) komma (en andere tekens, zoals /, :, -) als een spatie binnen een phrase
Voor de zoekpraktijk heeft een en ander nogal wat gevolgen. Zo is het met Google en Yahoo! wel mogelijk breuken in de Angelsaksische notatie (6.5) te vinden, maar levert het zoeken naar breuken in de continentaal-Europese notatie (6,5) ook treffers met andere tekens dan de komma op; en om met Google getallen van 1000 en meer in alle gangbare notaties (6500, 6.500 en 6,500) te vinden moet je zowel zonder als met punt zoeken.
Streepjes
Een bijzondere plaats tussen de tekens die in teksten kunnen voorkomen en waar zoekmachines iets mee moeten, nemen wat mijn Witte Boekje simpelweg de "streepjes" noemt in . Daarvan zijn er drie: twee streepjes "sec", namelijk het koppelteken (diploma-uitreiking) en het weglatingsteken (in- en uitvoer), en het afbreekstreepje, waarmee (doorgaans) langere woorden over twee regels in een tekst kunnen worden verdeeld (om een gelijkmatige witverdeling over de regels mogelijk te maken).
Het koppelteken
Laten we eerst eens kijken wat de drie grote internationale zoekmachines met het koppelteken doen. In principe kunnen we vijf mogelijkheden verwachten:
- het koppelteken wordt letterlijk en uitsluitend als zodanig opgevat
- het wordt verwaarloosd
- het wordt – samen met andere niet alfanumerieke tekens – als spatie in een phrase opgevat (In dat geval is het theoretisch mogelijk dat de zoektermen ook in omgekeerde volgorde worden gevonden.)
- het wordt als een spatie zonder meer opgevat en tussen de leden van de samenstelling wordt een EN-relatie gelegd
- het wordt opgevat als spatie in een phrase maar vindt ook de aaneengeschreven spellingsvarianten
|
| Zoekmachine | Google (Engels) | Google (Nederlands) | Yahoo | Live Search |
| 1 | diploma uitreiking Oegstgeest | ||||
| 2 | diploma-uitreiking Oegstgeest | ||||
| 3 | "diploma uitreiking" Oegstgeest | ||||
| 4 | diplomauitreiking Oegstgeest | ||||
| 5 | +diplomauitreiking Oegstgeest |
|
| ||
| 6 | "diploma uitreiking" OR diploma-uitreiking Oegstgeest | ||||
| 7 | "diploma uitreiking" OR diploma-uitreiking OR diplomauitreiking Oegstgeest | ||||
| 8 | diploma-uitreiking -"diploma uitreiking" Oegstgeest | ||||
| 9 | diplomauitreiking -diploma-uitreiking Oegstgeest | ||||
| 10 | "diploma uitreiking" -diploma-uitreiking Oegstgeest | ||||
| 11 | diplomauitreiking -diploma-uitreiking -"diploma uitreiking" Oegstgeest |
Dit testje levert interessante en voor een deel nog niet zo gemakkelijk te interpreteren resultaten op. Het simpelst liggen de zaken bij Live Search: deze zoekmachine behandelt het koppelteken als een spatie binnen een phrase en behandelt de aaneengeschreven spellingsvariant als een apart geval. Dit komt overeen met de manier waarop in Live Search de punt en de komma worden behandeld.
Ingewikkelder liggen de zaken al bij Yahoo! Bij deze zoekmachine wordt het koppelteken doorgaans als spatie zonder meer opgevat (rij 2 en rij 8), maar als in de vraag een OR-relatie wordt gelegd (rij 6) blijkt het koppelteken als een spatie in een phrase te worden geïnterpreteerd. (De 88 treffers voor deze zoekmachine in rij 8 zijn te verklaren als 171 min 82, d.w.z. dat de treffers van deze zoekactie documenten zijn waarin de termen diploma en uitreiking beide voorkomen, maar niet als phrase.)
Het ingewikkeldst zijn de zaken bij Google ingericht. In de eerste plaats blijkt het verschil te maken of je Engels of Nederlands als interfacetaal gebruikt. Uit rij 2, 4, 6 en 7 blijkt dat bij het gebruik van Nederlands als interfacetaal Google bij de aaneengeschreven spellingsvariant en bij de variant met het koppelteken alle spellingsvarianten van de term vindt: diplomauitreiking, diploma-uitreiking en "diploma uitreiking". Maar bij gebruik van de phrase als zoekterm wordt de aaneengeschreven variant niet gevonden. Daaruit is het resultaat in rij 8 te verklaren, dat uitsluitend treffers met de aaneengeschreven variant bevat.
Bij Engels als interfacetaal vindt Google bij de zoekterm diplomauitreiking alleen de aaneengeschreven varianten (rij 4). Dit resultaat komt overeen met dat in rij 5, met de gepluste zoekterm (zoals bekend dient het +-teken voor een zoekterm bij Google om de term te preciseren, dus zonder spellingsvarianten, automatische word stemming, zoektermen in verwijzende documenten etc.). Voor het overige komen de resultaten voor beide interfacetalen vrijwel met elkaar overeen, met als uitzondering rij 11, waar Google Engels de 34 treffers van rij 9 oplevert, en Google Nederlands de 11 treffers van rij 8.
Voor deze aantallen, in rij 8 en in Google Nederlands in rij 11, heb ik geen verklaring. Bij het bekijken van de treffers blijkt het in alle gevallen om documenten te gaan waarin de term "diplomauitreiking" aaneengeschreven voorkomt. Maar zoals we in rij 5 hebben gezien, zijn er daarvan 34, en bij nadere inspectie blijken de meeste van de 23 documenten die in rij 5 wel worden gevonden maar in rij 8 en 11 niet, in niets te verschillen van de 11 die in rij 8 en 11 wel worden gevonden. Ook deze documenten bevatten de aaneengeschreven term "diplomauitreiking" en of meer malen en bevatten geen varianten (die in rij 8 en 11 worden uitgesloten).
De belangrijkste conclusies van dit testje zijn dat:
- de grote internationale zoekmachines heel verschillend met het koppelteken omgaan
- bij Google de interfacetaal tot heel verschillende resultaten kan leiden.
Eén koppelteken – diverse invoerwijzen
Voor het bekijken van de webpagina die u voor u ziet, gebruikt u een browser. Dit is een programma dat de opmaaktaal van het Web, HTML, naar normaal leesbare pagina's vertaalt. Zoekmachines lezen en indexeren echter niet documenten zoals wij die met de browser zien, maar de HTML-code daaronder, en in deze code zijn er diverse manieren om streepjes weer te geven.
Voor het koppelteken zijn dat in de eerste plaats de - toets en de toetsencombinatie Alt-45. Maar zoals dat in HTML met meer tekens het geval is, kan het teken ook als een numerieke (decimale of hexadecimale) HTML-code geschreven worden: - (decimaal) of - (hexadecimaal); deze code wordt door de browser als - of - weergegeven, maar wordt hij door zoekmachines ook als zodanig gelezen? Om dat te kunnen vaststellen dienen we enkele documenten te vinden waarin het koppelteken gecodeerd voorkomt en deze documenten dan met de diverse zoekmachines op te zoeken met invoer van het koppelteken via het toetsenbord. Voor wat de decimale aanduiding betreft is zo'n document de blogpost Ubuntu and my Canon IXUS 850IS in gThumb, zie ook: Wordpress and special chars(double minus/hyphen, ampersand, etc). Zoeken we daaruit de phrase: "sudo gthumb --import-photos" op (de twee koppeltekens in het midden zijn via het toetsenbord ingevoerd), dan vinden Google, Yahoo! en Live Search dit document inderdaad; Google doet dat overigens ook als de phrase gecodeerd wordt ingevoerd, dus als "sudo gthumb --import-photos", Yahoo! en Live Search doen dat niet (voor de verschillen tussen de ingevoerde phrases, zie de URLs van de zoekmachines).
Ook voor de hexadecimale aanduiding - lijkt het goed te gaan, want alle drie de zoekmachines vinden met de phrase "So for example --- becomes" het document DTD for XR: XML representation of textual XML files, waarin deze phrase voorkomt met de streepjes in hexadecimale code. Maar bij nader inzien blijkt dit schijn: de zoekmachines vinden ook treffers waarin de streepjes niet in de phrase voorkomen, met andere woorden "So for example --- becomes" geeft hetzelfde resultaat als "So for example becomes". Hoogstwaarschijnlijk worden zo gecodeerde koppeltekens in HTML-documenten dus eenvoudig verwaarloosd.
Je kunt je natuurlijk afvragen waarom iemand een teken dat hij via het toetsenbord kan invoeren als een nummercode in zijn document zou zetten. Maar de meeste HTML-pagina's worden allang niet meer door hun auteurs gecodeerd; in plaats daarvan gebruiken die WYSIWYG-editors, converteren tekstverwerkingsformaten naar HTML of slaan de output van OCR-programma's op als HTML-bestand. Hoewel te verwachten valt dat het koppelteken in de zo tot stand gekomen documenten nog gewoon als koppelteken figureert, is dat niet altijd met zekerheid te zeggen.
Over het feit dat zoekmachines op het Web niet alleen maar HTML-pagina's indexeren, maar ook nog andere documentformaten, kom ik hieronder nog te spreken.
Het weglatingsteken
Over het weglatingsteken kan ik kort zijn: alle drie de grote internationale zoekmachines behandelen dit teken alsof het er niet stond. Dat bewijzen de treffers die met Google, Yahoo! en Live Search worden gevonden op de zoekphrase "dood- en doodzonde": er worden ook treffers gevonden met de phrase "dood en doodzonde". Bij geen van de drie zoekmachines is het mogelijk de phrase "dood en doodzonde" te vinden zonder treffers met "dood- en doodzonde" op de koop toe te krijgen. In HTML-documenten wordt het weglatingsteken op dezelfde manier ingevoerd als het koppelteken.
Het afbrekingsstreepje
Een heel ander verhaal is het afbrekingsstreepje. Dit dient om op het einde van een regel – en alleen daar – een woord volgens de afbreekregels over twee regels te verdelen en dit zichtbaar te maken door een streepje dat op het koppelteken lijkt, maar het niet is. Afbrekingsstreepjes moeten daarom niet direct via het toetsenbord of als Alt-045 worden ingevoerd, maar als toetsencombinatie Alt-0173, nummercode ­ of lettercode ­; dit laatste staat voor soft (ook wel conditional of discretionary) hyphen, de Engelse naam waaronder het afbrekingsteken bekendstaat (i.t.t. de hard hyphen of hyphen-minus voor het koppelteken). Ten slotte is er ook van dit teken nog een hexadecimale omschrijving, nl. ­ (= Unicode: U+00AD).
Het afbrekingsstreepje wordt niet door alle browsers op de juiste manier behandeld; zie bijvoorbeeld het verschil in weergave van een document in Firefox en in Internet Explorer (zie onder 9.3.3, Hyphenation). Maar voor de zoekmachines ligt de zaak eenvoudig: die moeten het teken, in welke vorm ook, verwaarlozen. Een testje met het document Soft hyphen test wijst uit dat in elk geval de nummercode ­, de lettercode ­ en Unicode U+00AD door Google en Yahoo! correct behandeld worden; dit in tegenstelling tot Live Search, dat het document wel kent maar niet vindt. Deze zoekmachine vat de soft hyphens, in alle drie de in dit document gebruikte representaties, kennelijk als spaties op.
<wbr>: de w(ORD)br(EAK) code
Een naar het schijnt tamelijk onbekende manier in HTML om woorden over twee regels te verdelen is de word break-code: <wbr> of ​. Ook hier valt te constateren dat niet alle browsers deze codes correct interpreteren. Ook tussen de zoekmachines blijken in dit opzicht verschillen te bestaan. Google interpreteert de codes <wbr> en ­ correct door ze te verwaarlozen, maar vat ​ kennelijk als een spatie op; Yahoo! interpreteert alleen ­ correct (zie ook hier), maar vat zowel <wbr> als ​ op als een spatie; en Live Search – dat de zoektermen niet gemarkeerd in de cachekopie toont -- vat vermoedelijk alle drie de codes als zodanig op.
Andere dan HTML-documenten
Nu indexeren tekstzoekmachines ook nog heel wat andere formaten dan HTML. Twee van zulke formaten die alle drie de grote internationale zoekmachines indexeren zijn MS Word en Adobe PDF; overigens doen ze dat niet direct, maar nadat de spider een HTML-kopie van de betreffende documenten heeft gemaakt, die tevens als HTML- of cacheversie dienst doet. Laten we eens kijken wat ze met soft hyphens doen. Eerst een document, gemaakt met MS-Word, een cursusboekje van de Economische faculteit van de VU, met als URL: http://www.feweb.vu.nl/iko/IKOold2002/Documents/ Cursusboekje.doc . De zinsnede: "tot de ontwikkelingslanden behoren" bevat drie soft hyphens (Unicode U=00AD), die, zoals eerder gezegd, door zoekmachines verwaarloosd dienen te worden. Alle drie de grote zoekmachines vinden het document als men de phrase zonder soft hyphens als zoekphrase invoert: Google en Yahoo! en Live Search. Ook als door middel van zo'n soft hyphen een woord over twee regels verdeeld is, wordt het door de drie zoekmachines gevonden.
Van het hier vermelde cursusboekje bestaat ook een recentere PDF-versie, met als URL http://www.feweb.vu.nl/iko/Documents/cursusboekje2006.pdf . Hierin is de phrase "waarheen de ontwikkelingslanden" over twee regels verdeeld. Opmerkelijk genoeg vindt geen van de drie zoekmachines het document met deze phrase; zowel Google als Yahoo! en Live Search behandelen het afbrekingsteken hier als een koppelteken gevolgd door een EOL (Google en Yahoo!), resp. een spatie (Live Search).
Krantenzoekmachines
In ons land zijn van nogal wat kranten archieven beschikbaar, die met eigen zoekmachines doorzocht kunnen worden. Voor een overzicht, zie Kranten-historisch.startpagina.nl. Omdat kranten, met hun talrijke kolommen, een rijke bron van afbrekingen zijn, leek het mij wel interessant te kijken hoe daar met dit verschijnsel wordt omgegaan. Zo heb ik eens gekeken hoe het project Historische Kranten van de KB het er in dit opzicht van afbrengt. Bij inspectie van zo maar een pagina uit een willekeurig nummer van Het Vaderland uit 1929, nl. p. 2 van de ochtendeditie van 4 januari 1929, eerste kolom, blijkt de gebruikte zoekmachine, ZyLAB, het afbrekingsteken in sommige gevallen wel, en in andere niet te herkennen. Zo komt het woord herstelbetalingen in deze eerste kolom drie keer afgebroken voor, tweemaal als herstelbetalingen, en eenmaal als herstelbetalingen. Met de zoekmachine wordt alleen het eerste voorkomen gevonden, niet het tweede en het derde. Van de overige 26 afbrekingen (aankomst, tegenover, herhaalde, deskundigen, verschillende, consulaat-generaal, economischen, Duitsche, deskundigen, sociaal-democratische, verplichtingen, Vorwaerts, arbeidersklasse, verplichting, schadevergoeding, neergedrukt, gedelegeerden, deskundigen, aangewezen, Bergmann, directeur-generaal, Bovendien, vraagstukken, waarschijnlijk, gedurende, vlugger) worden er 24 niet gevonden, waarvan 22 als gevolg van de afbreking en 2 door andere leesfouten van de OCR-software.
Een testje dat ik met het OCR-programma ABBYY Finereader heb uitgevoerd, biedt misschien een verklaring voor het feit dat de zoekmachine van Historische kranten het afbreekteken soms wel, maar meestal niet vindt. ABBYY Finereader behandelde de afbrekingstekens in het door mij gescande document nu eens correct als een soft hyphen, dan weer als hard hyphen. Bij PDF-bestanden die met behulp van OCR tot stand zijn gekomen, kan het probleem dus ook daar liggen.
Conclusies
Koppeltekens en vooral afbrekingstekens kunnen een van de oorzaken zijn waardoor zoektermen waarmee men een document op het Web of in een database verwacht te vinden, niet gevonden worden. Hoewel dat probleem door technische of financiële restricties onoplosbaar kan zijn, zou van zoekmachine- en databaseproviders verwacht mogen worden dat ze hun gebruikers op het probleem attenderen, en van gebruikers dat ze ermee rekening houden. Het is een van de vormen van computer literacy.


