Drupal studio · Diego Suarez, Madagaskar
Opgericht 2025 · 12°16′ Z

Research Library

Een Drupal-catalogus voor lezingen, boeken, artikelen en kaarten: elk item geclassificeerd volgens standaardschema's, afgestemd met een audittrail, en doorbladerbaar op onderwerp.

Wat het is

Research Library is een Drupal-subsuite met drie modules, classification_x, library_x en research_library, die externe inhoud zoals lezingen, boeken, onderzoeksartikelen en kaarten catalogiseert in een register met betrouwbaarheidsscores, elk item classificeert volgens bibliografische en onderwerpsclassificatieschema's, en bezoekers een pagina met facetten biedt om het resultaat te bekijken.

Het bouwt voort op de External Entities-suite van MADDev: in plaats van zelf inhoud op te halen, registreert het waar een item zich bevindt en welke processormodule al weet hoe deze op te halen.

In één oogopslag

Modules
classification_x, het classificatiesubsysteem; library_x, de catalogushub; research_library, de openbare browse-laag
Drupal core
11
Vereist
Core Field, Options, Taxonomy, Datetime, Text en Media; de module key; de bijgedragen module external_entities en het eigen entities_ext van MADDev
Catalogustypen
lecture, book, research_paper en map, elk een in code gedefinieerde library_item-bundel
Veldtype
classification, een generiek veldtype: een tuple van schema, code en label, waarbij meer dan één schema op hetzelfde veld kan staan
Werkt met
Elke geregistreerde External Entities-processormodule, bijvoorbeeld species_ext, wikipedia_ext, publications_ext of entity_ext
Status
In ontwikkeling. Gebouwd en geverifieerd in juni 2026 met een eerste collectie van 20 lezingen en 11 boeken voor The Neville Goddard Library; de deduplicatie- en samenvoegengine volgde. Nog niet op een openbare site.

Wat bezoekers zien

De /library-pagina biedt facetten voor de catalogus op itemtype, collectie en classificatieschema, met een zoekvak voor titels.

Het openen van een item toont de detailpagina: titel, datum, bronnen, classificatiechips en, waar een exemplaar is gespiegeld, de eigen bodytekst van het item.

Wat het toevoegt aan een Drupal-site

Entiteitstypen

library_item: het catalogusrecord, in vier door code gedefinieerde bundels: lecture, book, research_paper en map. library_source: één rij per vertrouwde upstream-repository, met de eigen trustsubscores van die bron.

Velden en taxonomie

  • classification: een generiek veldtype dat een schema, code en label bevat; meer dan één schema kan op hetzelfde veld staan
  • library_collection: een taxonomievocabulaire om items in een project of collectie te groeperen
  • Vier basisvelden op library_item bevatten het reconciliatiepatroon van de suite: field_classification; field_local_copy, een verwijzing naar een gecorrigeerde lokale kopie die latere harvesting niet zal overschrijven; field_duplicate_of, een zachte link naar het canonieke item; en field_merge_provenance, een JSON-audittrail van hoe een samenvoegingsbeslissing tot stand kwam

Plugintypen

  • @ClassificationScheme: één klasse per classificatieschema; een nieuwe verschijnt in het instellingenformulier en de schema-dropdown van de veldwidget zonder enige wijziging aan schema of configuratie
  • @LibraryItemType: een catalogusbundel zoals lecture of map
  • @LibraryMergeStrategy: hoe twee catalogusitems met elkaar worden verzoend; de meegeleverde strategieën zijn soft_merge (de standaard), confidence en provenance

Pagina's

  • /library: de openbare gefacetteerde bladerpagina, op itemtype, collectie en classificatieschema, met een zoekopdracht op titel
  • /library/item/{id}: de detailpagina van een item, met de titel, datum, bronnen, classificatiechips en, waar een kopie is gespiegeld, de hoofdtekst
  • /admin/config/content/classification: instellingen voor classificatieschema's
  • /admin/content/library/duplicates: deduplicatiecuratie
  • /admin/config/library/merge-policy: configuratie van samenvoegingsbeleid

Diensten

library_x.dedup vindt waarschijnlijke dubbele items op basis van genormaliseerde titel binnen dezelfde bundel en collectie. library_x.classifier voorziet items van tags volgens schema's zoals LCC, Dewey en Wikipedia-categorieën met behulp van Claude, uitgevoerd vanaf Drush in plaats van automatisch. classification_x.iconclass_motif_bridge slaat op zachte wijze een brug van een Iconclass-notatie naar een folkloremotiefentiteit, en doet niets wanneer die andere module afwezig is.

Drush-commando's

lxin registreert in bulk een eerste deel van catalogusvermeldingen uit CSV. lxmir spiegelt vertrouwde items: het haalt de inhoud op, maakt een beheerd bestand en een documentmedia-item aan, en koppelt dit aan het catalogusitem.

Permissie

De route /library vereist Gepubliceerde bibliotheekitems bekijken, een permissie die wordt gedefinieerd door library_x.

Databronnen en licenties

Alleen classification_x bereikt een externe bron, en dan nog slechts in beperkte mate. Labels voor Getty's Art & Architecture Thesaurus worden opgezocht in de Linked Open Data-woordenlijstdienst van Getty wanneer de data_ext-module van MADDev is geïnstalleerd, en vallen terug op de kale code wanneer dat niet het geval is.

Bijschriften van de Dewey Decimal Classification zijn OCLC-gelicenseerd, dus classification_x slaat standaard de kale code op en toont die, en toont de bijschrifttekst pas zodra een licentiesleutel is geconfigureerd in de key-module. MADDev past dezelfde discipline toe op het niveau van hele werken, niet alleen catalogusmetadata, via Copyrights Guard.

Ontwerpbeslissingen

  • Strikte eenrichtingsgelaagdheid. classification_x is van niets daarboven afhankelijk; library_x is naar beneden afhankelijk van classification_x; research_library is naar beneden afhankelijk van library_x en definieert zelf geen entiteit. Geen van beide lagen voedt terug naar boven.
  • Nieuwe classificatieschema's vereisen geen schemawijziging. Eén nieuwe @ClassificationScheme-klasse toevoegen is voldoende: deze verschijnt vanzelf in het instellingenformulier en de schema-dropdown van de veldwidget.
  • Catalogusbundeltypen zijn code, geen configuratie. Een nieuw library_item-type is een @LibraryItemType-plugin, en de browsepagina in research_library neemt het automatisch op in haar facetten, zonder eigen UI-code.
  • Reconciliatie behoudt het record, niet alleen de samenvoeging. Een catalogusitem kan verwijzen naar een lokaal gecorrigeerde kopie die latere harvesting niet zal overschrijven, gemarkeerd worden als duplicaat van een ander item, en een JSON-audittrail bevatten van hoe die beslissing tot stand kwam, onder een van de drie inplugbare samenvoegstrategieën.
  • Een benoemd upgradepad, geen herschrijving. De browsepagina filtert voorlopig in PHP, een keuze die past bij een eerste deel van de collectie; een op Search API gebaseerde versie is de geplande vervanging naarmate de collectie groeit.

Start een project.

Vertel ons over de inhoud die u wilt laten catalogiseren en classificeren, en hoe u wilt dat bezoekers deze doorbladeren.