User:Alex brollo/O Categories

From Wikimedia Commons, the free media repository
Jump to: navigation, search

w:Ontology is a method to describe complex, multiaxial relationships among objects. Here I am describing a relatively simple method to implement some of features of ontological classification to a group of Commons images: Category:Pathology. The preliminary tests have been don into it.source, where I am presently working.

Pathology images problems[edit]

Pathology is a very large field of medicine; it deals with abnormal features of organs and tissues anatomy (at many levels: macroscopic, microscopic, ultramicroscopic and so on) with a strict relationship between anatomical derangement and specific diseases. Most of pathology deals with images and imaging.

The problem is that a multi-axial categorization is mandatory. Let's keep in consideration some of these axes with just some entries and sub-entries.

Topography axis:

  • Nervous system
    • Central nervous system
      • Brain
      • ...
    • Peripheral nervous system
      • ...
  • Digestive system
    • Mouth
    • Esophagus
    • Stomach
    • ...
  • ...

(imagine to expand the list to hundreds of entries and subentries: say, to list only the main ones, 100)

Morphology axis:

  • Normal
    • Normal, embrional
    • ...
    • Normal, adult
  • Inflammation
    • Acute
    • ..
  • Tumors
    • Benign tumors
      • Epithelial benign tumors
      • ...
    • Malignant tumors
      • Epithelial malignant tumors
        • Squamous carcinoma
        • Adenocarcinoma, NAS
        • ...

(imagine to expand this list too to hundreds of entries: say, 100)

Imaging tecnique:

  • Macroscopic
    • Direct view
    • Endoscopy
    • ....
  • Microscopic
    • HE (Ematoxyline-Eosine)
    • Special stains
    • IC (immunohistochemistry)
    • ...
  • Ultramicroscopic
    • Transmission EM
    • Scansion EM
    • ...
  • ...

(imagine to expand this list to 20 entries).

The first problem ( a very common one) is that this simplified schema needs 100x100x20 = 200.000 categories, if one would like to found precisely a category for "Stomach, adenocarcinoma, endoscopy". The second problem is that a full browsing of such a tree needs that not only the terminal categories ones, but the intermediate too are considered.


Much of troubles would be solved, if you assign individual categories to any item to be categorized, then using +incategory to have a "category intersection". But it is very important that any item is assigned to intermediare categories too. Unluckily, it only works with "real categories", those written into the wiki text, it doesn't works with "virtual categories", those created on the fly by a template.

So, imagine to have:

  1. a microscopic, HE picture of a gastric adenocarinoma; assign categories: HE,microscopic,stomach,digestive system,adenocarcinoma, malignant epithelial tumor, malignant tumor, tumor
  1. an endoscopic picture of a colon polyp; assign endoscopy,macroscopic,colon,digestive system,polyp, benign epithelial tumor, benign tumor, tumor
  2. a microscopic picture of a normal small intestine: assign microscopic,small intestine,digestive system, normal

As you see, these categories look just like keywords, and really they behave as keywords - I call them "Catwords" in it.source talks about. Incategory can do here a great work, selecting items for a very large, or for a very strict gridle of caracters.

But a main problem is: how to ensure that any user will be so diligent, to add the whole chain of related categories? The best would be, that adding anyone of them parents would be added automatically, being "inherited". This can be done with a trick of recursive category transclusion/substitution.

The tranclusioni trick[edit]

If you go into it:s, there's a running test implementation of a "self-including categories". You can try it into it:s:Wikisource:Sandbox where I posted a message for you.

One of such categories is Categoria:Equitazione. Its anchestors are two different branches of books topics:

  • letteratura
    • saggi
      • equitazione
  • arti
    • arti performative
      • equitazione

Simply adding to an equitation item the code: {{subst:Categoria:Equitazione}} the code will be exploded and substituted with [[Categoria:Equitazione]] [[Categoria:Arti performative]] [[Categoria:Arti]] [[Categoria:Saggi]] [[Categoria:Letteratura]] [[Categoria:Arti], t.i. all anchestor categories will be phisically written into the code of the page, allowing a consistent use of +incategory intersection.

If you take a look to the code of it:s:Categoria:Equitazione, you'll find the "transclusion engine":

<onlyinclude> <includeonly>[[Categoria:Equitazione]]{{subst:Categoria:Arti performative}}{{subst:Categoria:Saggi}}</includeonly></onlyinclude>


I'd like to implement something similar here, to test it. Just to let it clear that new categories are "special", I'd prefix their name with O_ (so risulting O_Stomach, O_Cancer, O-Microscopic and so on) linking them with "Ontology" idea. My question for you is: can I? Are you interested about such a test? --Alex_brollo Talk|Contrib 14:09, 19 June 2009 (UTC)