Marquage sémantique par transformation XSL
XSLT
Il existe de nombreuses ressources sur le web qui traitent de XSLT (transformation XSL), à commencer par la recommandation du W3C. Nous ne nous étendrons donc pas sur cette technologie, et en rappellerons simplement l'essentiel : XSLT est un langage fondé sur XML autorisant l'écriture de règles de transformations visant à passer d'un arbre XML source à un arbre XML résultat.
Un document XSLT décrit donc une transformation s'appliquant à un document ou une classe de documents. L'obtention du document transformé découle de la soumission à un proceseur XSLT du document XML à transformer et la transformation XSLT. Le processeur XSLT est l'outil informatique capable d'interpréter le langage XSLT pour réaliser la transformation concrète d'arbres XML.
Semark.xsl : principe général
La transformation semark.xsl produit, à partir un
document XML de contenu source et d'un lexique tiers, un arbre XML résultat
de même contenu que la source, mais présentant des marques sur certains
contenus spécifiques décrits au sein du lexique. Le lexique liste le
vocabulaire spécifique, et explicite ce vocabulaire en vue du marquage.
La transformation s'applique à tout fichier XML, donc en particulier aux
fichiers web écrits en XHTML.
Supposons par exemple que nous disposions de ce fragment d'arbre source :
<body>
<h1>SEMARK.XSL</h1>
<p>un outil <a href="url">xsl</a> intéressant
<br />basé sur :
</p>
<ul>
<li>XML</li>
<li>XSLT</li>
</ul>
</body>
Supposons que le lexique soit ainsi :
<body>
<dl>
<dt>XSLT</dt> <dd>Transformation XSL</dd>
<dt>SVG</dt> <dd>Scalable Vector Graphics</dd>
<dt>XSL</dt> <dd>eXtended Stylesheet Language</dd>
</dl>
</body>
Nous obtiendrons avec les options par défaut le résultat suivant :
<body>
<h1>SEMARK.XSL</h1>
<p>un outil
<a href="url">
<acronym title="eXtended Stylesheet Language">xsl</acronym>
</a>
intéressant
<br />basé sur :
</p>
<ul>
<li>XML</li>
<li>
<acronym title="Transformation XSL">XSLT</acronym>
</li>
</ul>
</body>
Le lexique a une structure fixe basée sur les éléments dl, dt et dd. Les éléments dt sont les entrées du lexique, et listent les mots ou expressions devant faire l'objet d'un marquage dans le document source. Les éléments dd qualifient les entrées du lexique. Les contenus des éléments dd servent lors du marquage à renseigner l'attribut de marquage s'il est présent.
Semark.xsl : options de fonctionnement
La transformation semark.xsl admet en entrée quelques paramètres qui autorisent d'en régler le fonctionnement.
- lexique-name
- Chemin d'accès au fichier contenant le lexique. Valeur par défaut : lexicon.html.
- to-parse
- Liste d'éléments du document source devant faire l'objet d'une analyse pour le marquage. Tout contenu marqué a obligatoirement pour ancêtre un des éléments de cette liste. Valeur par défaut : body.
- not-to-parse
- Liste d'éléments du document source devant être bannis de l'analyse. Aucun contenu ayant pour ancêtre un élément de cette liste ne pourra faire l'objet d'un marquage. not-to-parse est prioritaire sur to-parse, lorsqu'un contenu a des ancêtres dans les 2 listes il n'est pas analysé. Valeur par défaut : chaîne vide (pas d'éléments dans cette liste).
- marker-name
- Elément et attribut de marquage. L'attribut de marquage, s'il existe, est renseigné par le contenu de l'élément dd du lexique. Le marquage est de la forme : <element attribut="contenu dd prélevé dans le lexique">vocabulaire à marquer</element>. Valeur par défaut : acronym title.
- max-per-doc
- Nombre maximum de marquage par entrée du lexique sur l'ensemble du document. Valeur par défaut : -1 (pas de limite).
- element-to-limit
- Liste d'éléments pour lesquels on souhaite imposer une limite spécifique du nombre de marquage. Valeur par défaut : chaîne vide (pas d'éléments dans cette liste).
- max-per-element
- Nombre maximum de marquage par entrée du lexique pour chaque élément listé dans le paramètre element-to-limit . Valeur par défaut : -1 (pas de limite).
- case-accent-sensitive
- Booléen permettant de gerer la sensibilité à la casse et aux accents. True rend semark.xsl sensible à la casse et aux accents. Valeur par défaut : false.

