Aller au contenu

Extracteurs

Un extracteur est un composant réutilisable, doté d’un nom stable, qui collecte un type de données précis. Avec Guida 0.9, les descripteurs résident dans l’espace de travail. Guida les charge dans un catalogue consultable et permet de les valider, de les certifier et de comparer leurs résultats sans recourir à des listes de contrôle informelles.

Guida Complete et Guida Node exécutent les extracteurs. Guida Control présente les mêmes contrats par Remote Ops, sans entretenir un second catalogue.

Le descripteur constitue le contrat public. Il identifie l’implémentation, la source, le flux de travail, la file d’attente, les entrées par défaut, les domaines cibles, le contrat de sortie et les preuves demandées. L’implémentation reste du code ordinaire de l’espace de travail.

{
"$schema": "../../../extractors.schema.json",
"id": "careers.example.jobs",
"profile": "web.discovery.browser",
"label": "Example engineering jobs",
"domain": "careers",
"workflowName": "careers-example",
"queueName": "careers_example",
"implementation": {
"module": "lib/careers-example-worker.js",
"export": "discoverExampleJobs",
"language": "javascript"
},
"source": { "kind": "web", "url": "https://example.com/careers" },
"targetDomains": ["example.com"],
"input": {
"defaultUrl": "https://example.com/careers",
"defaultCompanyName": "Example",
"defaultSlug": "example"
},
"evidence": {
"requiresPageLoaded": true,
"requiresResultEvidence": true,
"allowQualifiedEmpty": true
}
}

Un petit fichier racine extractors.json peut inclure les descripteurs, sélectionner des profils communs et répartir un grand catalogue en segments déterministes. Chaque entrée conserve son identité et son chemin d’origine.

La validation repère les descripteurs incorrects, les ID en double, les implémentations absentes, les profils introuvables, les règles de domaine invalides et les contrats d’entrée ou de sortie incompatibles. Les contrôles de compatibilité rendent explicite la limite entre un extracteur et ses consommateurs.

L’API de scripting propose des lectures synchrones avec g.extractors.list(), g.extractors.get() et g.extractors.validate(). Les clients distants utilisent workspace.extractors.* et workspace.extractors.contracts.*.

La certification est une vérification opérationnelle délimitée, pas un label définitif. Quick vérifie volontairement peu de cibles pour donner un retour rapide; Coverage élargit la vérification dans les limites déclarées. Un résultat vide n’est acceptable que si le chargement est attesté et si le descripteur autorise explicitement ce cas. Les sélecteurs doivent avoir été observés. Guida consigne l’exhaustivité et toute troncature pour ne pas présenter une vérification partielle comme une couverture complète.

Commencez par workspace.extractors.certification.plan. Le plan distingue les éléments exécutables des éléments bloqués et précise les limites. Le démarrage, l’annulation et l’export des preuves restent soumis aux règles et confirmations locales de Guida.

Guida sépare le dernier résultat de l’historique qui l’explique. Exécutions, résultats par extracteur, statistiques, anomalies, évolutions de contrat et preuves exportées restent consultables. La politique de conservation réside dans l’espace de travail et les données opérationnelles dans operations.db.

Le catalogue et les interfaces opérationnelles ont été validés avec 5 000 extracteurs au cours de tests déterministes sur un seul hôte. Ce chiffre ne promet ni 5 000 sessions de navigateur simultanées ni une capacité de flotte Enterprise.

Une pipeline sémantique relie la sortie contractuelle aux validateurs, aux mappers et aux destinations. Les pipelines générées emploient des liaisons explicites comme $extractor.id; Guida ne déduit rien du nom des fichiers ou des dossiers.