Spécification interface Web pour descriptions botaniques
$Header$
XPath |
Donnée |
|
/table/tr/td[1] |
taxon_id |
clé pour le nom d'espèce (voir Flora of China) ; A FAIRE: j'ai ça dans une autre table. |
/table/tr/td[2] | publication_id | clé pour la référence à la publication
(article, livre, ...) |
/table/tr/td[3] | category_id | spécifie le type de contenu, ici =12021 pour description botanique |
/table/tr/td[4] | content | la description botanique XML-isée |
note |
En attendant d'avoir des données correspondant à un modèle sémantique solide, nous allons exploiter la structure existante dans les flores, en terme d'Organes ayant une suite de propriétés textuelles "brutes". On souhaite faire des requêtes à la Google étendues du genre:
family:Rosaceae basal_leaves:glabrous petals:5,yellow spine: edibleLe serveur Web traduira ceci en une requête XPath sur la base XML tenant compte de la structure du document XML:
//species[ .//family="Rosaceae"] [contains( .//leaf/basal, "glabrous")] [contains( .//petals, "five")] [contains( .//petals, "yellow")] [ .//spine ] [contains( .,"edible") ]Pour comprendre la structure des descriptions botaniques et comment elles ont été "XML-isées", voir "syntaxic processing" et "UML diagrams". Grâce à cette implémentation, le serveur Web retournera une page comprenant:
Note: il se peut que des critères visibles sur l'échantillon ne soient pas présents dans la description correspondante; en fait, il faut accepter le fait que les descriptions sont toujours incomplètes. Donc il est utile de pouvoir connaitre les Organes effectivement décrits dans l'ensemble qui nous intéresse.
Pour ordonner ces hyperliens Organe-Propriété, on peut évaluer leur Pouvoir Discriminant ainsi. D'abord si la Propriété est uniformément répartie, plus il y a de valeurs, et plus le Pouvoir Discriminant est grand. Maintenant si une des valeurs a beaucoup d'occurences, on risque de se retrouver avec un grand ensemble si notre échntillon a justement cette valeur. C'est le cas pire. On ordonnera donc les Propriétés (en sens inverse) par la quantité suivante: le maximum du nombre d'occurence pour toutes les valeurs existantes dans l'ensemble courant.
On placera chaque fois que possible des hyperliens vers les définitions des termes botaniques. On essaiera de présenter des icones en plus ou à la place des libellés pour les Organes, et éventuellement pour les Propriétés. Les mots de la recherche (balises et contenus) seront colorés soit tous en jaune, soit (de préférence) avec une couleur par critère.
Let's switch to English here; I'll translate the beginning when I'll have time.
The most important object is obviously the Query, with two properties: the "Google" style query,
family:Rosaceae basal_leaves:glabrous petals:5,yellow
and the XPath query (adapted to the actual structure of the XML data) :
//species[family="Rosaceae"]
[contains( leaf/basal, "glabrous")]
[contains( petals, "five")]
[contains( petals, "yellow")]
In fact a Query is an aggregation of one or more Criterium
objects; in this example we have four (petals have two criteria). In turn a
Criterium essentially connects an Organ
and a plain
Word
. The Word
is possibly connected to a
Property
(e.g. yellow with color ).
This is the query aspect. Now for the result aspect, a Query is associated with a set of Species, and a set of Families, both satisfying the Query.
Criterium class diagram in SVG - Criterium class diagram in PNG (Poseidon/ArgoUML source file) :
Note: the results for the Query is the intersection of the results for all the Criterium objects.
Now for the user interaction package, we have:
We will use an XML database compliant with the XML:DB standard. At least
two free products exist: namely -;) eXist, and apache.org/xindice . We need a
linguistic tool to try to associate a Word
with a
Property
. I allready used WordNet to prepare the XML data set,
so it just natural to continue using it.