Systeemarchitecturen en opslag van gegevens
Deel 3: zoeken in ongestructureerde gegevens
Dr. Wilfried Lemahieu
[email protected]
Gestructureerde versus ongestructureerde gegevens •
•
•
De gegevens die in deel 2 aan bod kwamen waren steeds gestructureerde gegevens: ze vertoonden een bepaalde regelmaat, die op een abstract niveau kon beschreven worden in de vorm van een logisch datamodel met entity record types en attributen. De gegevens zelf vormden instanties van deze types. De structuur weerspiegelt zo de semantiek die in deze gegevens is vastgelegd. De beschrijving van de structuur vormde de structural metadata van de betrokken gegevens. De zoekmethoden die we in deel 2 hebben besproken maakten steeds gebruik van deze structural metadata om zoekcriteria te kunnen formuleren: elke item condition kwam overeen met een bepaald onderdeel van de gegevensstructuur (bv. voor een werknemersbestand: departement, loonschaal, diplomacode, …) Een enorm aantal gegevens waarmee we worden geconfronteerd is echter ongestructureerd: word-processor documenten, foto's, videobestanden, geluidsbestanden, e-mails, webdocumenten, … Dergelijke gegevens beschikken niet over structural metadata, zodat ook de tot hiertoe geziene zoekmethoden nauwelijks toepasbaar zijn.
1
Gestructureerde versus ongestructureerde gegevens (vervolg) • Gestructureerd: Naam F. Janssens Departement 119 Salaris 2000 Diplomacode UNIV Naam D. Willems Departement 119 Salaris 1100 Diplomacode
SEC
…
• Ongestructureerd: "F. Janssens is verbonden aan het departement met nummer 119. Hij verdient 2000 EURO per maand en hij heeft een universitair diploma. In hetzelfde departement is ook D. Willems werkzaam, die over een diploma secundair onderwijs beschikt. Het salaris is hier 1100 EURO."
Soorten metadata: een voorbeeld Document metadata
Auteur: W. Lemahieu Aangemaakt op: 21/3/2000
Naam
Werknemer Departement Diploma
Semantic metadata
Naam: F. Janssens Departement: 119 Diplomacode: UNIV
Structural metadata
2
Zoeken in ongestructureerde gegevens •
•
•
Aangezien ongestructureerde gegevens niet over structural metadata beschikken, moeten de zoekmethoden van andere eigenschappen van de gegevens gebruik maken. Elk bestand beschikt uiteraard over een inhoud (namelijk de gegevens zelf). Soms kunnen aan ongestructureerde gegevens ook document metadata verbonden zijn, die informatie over het bestand op zich bevatten. Tenslotte kan aan een ongestructureerd bestand ook een bepaalde semantiek gekoppeld zijn, ook al is deze semantiek nu niet weerspiegeld in een welomlijnde bestandsstructuur. Zoeken in ongestructureerde bestanden kan dan ook verlopen aan de hand van één of meer van de volgende kenmerken van de gegevens: – De inhoud van het bestand – De document metadata – De semantic metadata
Zoeken in ongestructureerde bestanden aan de hand van de inhoud •
• • •
•
Hierbij gaat men zoeken of een bepaald patroon in het bestand voorkomt. Deze technologie wordt voornamelijk toegepast op tekstgebaseerde bestanden ("full text search"). Voorbeeld: "Geef alle bestanden waarin de woorden 'diploma' en ('universitair' of 'universiteit') voorkomen". Het resultaat van de zoekopdracht is een (verzameling van) gehe(e)l(e) document(en). Het is dus niet mogelijk om individuele data items op te halen. Het zoeken kan versneld worden door de tekstdocumenten vooraf te indexeren op de meest betekenisvolle termen (dus geen voorzetsels, voegwoorden, …). De meeste recente databasesystemen bieden specifieke functies voor het doorzoeken van ongestructureerde tekstdocumenten. Deze worden dan opgeslagen als één data item in zogenaamde Character Large OBjects (CLOB’s). Bovenstaand principe kan eveneens worden toegepast op andere gegevenstypes (bv. herkennen van een bepaalde vorm in een foto, herkennen van een bepaalde klank in een geluidsbestand), maar de hiertoe benodigde technologie is veel complexer.
3
Zoeken in ongestructureerde bestanden aan de hand van de document metadata •
•
•
•
•
Full text search technieken kunnen aangevuld worden met zoekcriteria die slaan op het bestand zélf, eerder dan op de inhoud: document metadata. Typische voorbeelden zijn: de bestandsnaam, de auteur van het bestand, de datum waarop het bestand is aangemaakt, type van het bestand (text, foto, geluid), … Deze informatie wordt doorgaans bijgehouden door het operating system dat het bestandensysteem beheert, of is in een speciale sectie van het bestand zelf opgeslagen. Vaak worden aan de document metadata ook een aantal keywords toegevoegd, die een aanwijzing geven over de inhoud van het bestand, zonder zelf een deel van de inhoud te vormen. Voorbeeld: "Geef alle tekstbestanden aangemaakt door Wilfried lemahieu sinds 01/01/2001, die beschreven worden met de keywords ' gegevensopslag' en ' zoektechnieken' ". Zoeken op basis van document metadata is veel efficiënter dan het doorzoeken van de eigenlijke bestanden. De zoekefficiëntie kan nog verhoogd worden door ook deze document metadata te indexeren. Ook hier is het resultaat van de zoekopdracht een (verzameling van) gehe(e)l(e) document(en) en is het dus niet mogelijk om individuele data items op te halen.
"Structuur" van het World Wide Web •
•
•
Webdocumenten worden aangemaakt met behulp van HTML (HyperText Markup Language). HTML is een zogenaamde markup-taal, waarmee men op een gestandaardiseerde wijze annotaties kan aanbrengen in documenten. Deze annotaties worden aangegeven door middel van tags. Elke tag is verbonden met een welbepaalde specificatie over hoe het geannoteerde stuk tekst in een web-browser dient gevisualiseerd te worden. HTML is zo zeer geschikt om het uitzicht van webdocumenten te beschrijven, maar laat niet echt toe om er structuur in aan te brengen. Wel is mogelijk om door middel van links verbanden te leggen met andere webdocumenten. Het Web bestaat zo in essentie uit een hypertext-netwerk van onderling gelinkte knooppunten, die elk op zich een ongestructureerd tekstbestand vormen. HTML
HTML HTML
HTML
HTML
4
Voorbeeld van HTML <TITLE>Wilfried Lemahieu <META content="text/html; charset=windows-1252" http-equiv=Content-Type> <META content="Microsoft FrontPage 4.0" name=GENERATOR> <META content="Wilfried Lemahieu, database systems, hypermedia modeling, middleware, Prof. Dr. J. Vandenbulcke, commercial engineer" name=keywords> <META content="Canada:Microsoft Office 98:Templates:Web Pages:Blank Web Page" name=Template>
Wilfried Lemahieu
Zoeken in het World Wide Web •
HTML-documenten zijn in de eerste plaats ongestructureerde tekstdocumenten, zodat de standaard-zoektechnieken voor dergelijke documenten kunnen gebruikt worden: – Zoeken op basis van inhoud (full text search) – Zoeken op basis van document metadata, aangegeven met speciale tags, zoals <META> en <TITLE>
•
•
•
•
Door de eindeloze omvang van het Web kunnen search engines echter enkel efficiënt zoeken op basis van vooraf aangemaakte indexen. Deze worden opgebouwd op basis van de inhoud en eventuele document metadata van webdocumenten (voorbeelden: Altavista, Google, Hotbot, …). Dergelijke indexen komen tot stand dankzij zogenaamde Web crawlers, die door het web navigeren van document naar document via de hypertext links. Alle relevante termen worden opgeslagen in indexen, die dan achteraf door een search engine kunnen gebruikt worden. Een andere methode is de webdocumenten classificeren in een hiërarchie van steeds meer gespecialiseerde categorieën. Dergelijke categorie geeft aan welke informatie in het document te vinden is. Documenten kunnen dan opgezocht worden door de juiste categorie(ën) uit te kiezen en te verfijnen (bv.: Toerisme Toerisme.België Toerisme.België.Leuven). Deze methode wordt ondermeer door Yahoo gevolgd. Hier kan men al van een zeer rudimentaire vorm van semantische metadata spreken. Alle bovenstaande technieken zijn toepasbaar op ongestructureerde gegevens. Jammer genoeg kunnen ze enkel volledige documenten als resultaat bieden.
5
Gestructureerde webdocumenten: XML • XML (eXtensible Markup Language) is eigenlijk een meta-markup taal, waarin men zijn eigen tags kan definiëren. Deze tags geven nu niet zozeer informatie over hoe een document op het scherm moet getoond worden, maar over de structuur ervan. Meer en meer webdocumenten worden tegenwoordig opgemaakt in XML in plaats van in HTML. • Dit biedt de mogelijkheid om gestructureerde data op te slaan in webdocumenten, waarbij de XML-tags de structural metadata vormen. Dit heeft tot gevolg dat nu query-talen worden ontwikkeld om gestructureerd te zoeken in XML-documenten, net zoals met behulp van SQL gestructureerd kan gezocht worden in databases. • Op deze wijze kan men veel fijnere zoekopdrachten geven. Als resultaat kunnen nu ook niet enkel gehele documenten worden opgehaald, maar ook onderdelen van documenten, op basis van hun structuur. Bijvoorbeeld: "geef de familienaam, voornaam en salarisschaal van alle werknemers van departement 119", in plaats van "geef alle documenten waarin de woorden ' werknemer' , ' deprtement' en ' 119' voorkomen". 11
Voorbeeld van een XMLdocument (I) <werknemerslijst> <werknemer>
Frans Janssens <departement>119 <salaris>2000 <werknemer> Hanne Demeyer <departement>119 <salaris>2800 …
6
Voorbeeld van een XMLdocument (II) <werknemerslijst><werknemer>F. Janssens is verbonden aan het departement met nummer <departement>119. Hij verdient <salaris>2000 EURO per maand en hij heeft een universitair diploma. <werknemer>In departement <departement>119 is ook D. Willems werkzaam, die over een diploma secundair onderwijs beschikt. Het salaris is hier <salaris>1100 EURO.
De toekomst: het Semantic Web ??? • Momenteel wordt onderzoek gedaan naar mogelijkheden om de semantiek van webdocumenten apart op te slaan als gestructureerde XML-data. De documenten zélf kunnen dan al dan niet gestructureerd zijn. Indien het beschreven document zelf gestructureerd is, weerspiegelt de structuur de semantiek zoals die in het aparte document is vastgelegd. • Op deze wijze wordt het voor intelligent search agents mogelijk om de inhoud van documenten beter te "begrijpen" en zo ook verfijnder te doorzoeken, zelfs al gaat het om ongestructureerde gegevens. • Zoekcriteria kunnen dan gebaseerd zijn op een combinatie van document metadata, structural metadata (indien aanwezig) en semantic metadata.
7
De toekomst: het Semantic Web ??? Semantic metadata (XML)
Semantic metadata (XML)
Semantic metadata (XML)
Gestructureerde data (bv. database)
Ongestructureerde data (bv. HTML)
Semantic metadata (XML) Gestructureerde data (bv. XML)
Ongestructureerde data (bv. Word)
8