<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mwiki.costasano.club/index.php?action=history&amp;feed=atom&amp;title=Reaserch%3ATyping_relations</id>
	<title>Reaserch:Typing relations - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mwiki.costasano.club/index.php?action=history&amp;feed=atom&amp;title=Reaserch%3ATyping_relations"/>
	<link rel="alternate" type="text/html" href="https://mwiki.costasano.club/index.php?title=Reaserch:Typing_relations&amp;action=history"/>
	<updated>2026-07-23T01:59:29Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://mwiki.costasano.club/index.php?title=Reaserch:Typing_relations&amp;diff=529&amp;oldid=prev</id>
		<title>Mngr: Created page with &quot;= HeritageObject Type – Concept and Purpose =  == Why do we need a &quot;Type&quot; for HeritageObjects? ==  Each HeritageObject represents a physical or historical item such as:  * church * bunker * farmhouse * bridge * lighthouse * monument * cemetery * windmill * etc.  These objects must be &#039;&#039;&#039;classified&#039;&#039;&#039; in a consistent way.  The field &#039;&#039;&#039;Type&#039;&#039;&#039; answers the simple question:  &#039;&#039;&quot;What kind of object is this?&quot;&#039;&#039;   == Why not simply use free text? ==  A simple text field like...&quot;</title>
		<link rel="alternate" type="text/html" href="https://mwiki.costasano.club/index.php?title=Reaserch:Typing_relations&amp;diff=529&amp;oldid=prev"/>
		<updated>2026-02-10T08:08:37Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;= HeritageObject Type – Concept and Purpose =  == Why do we need a &amp;quot;Type&amp;quot; for HeritageObjects? ==  Each HeritageObject represents a physical or historical item such as:  * church * bunker * farmhouse * bridge * lighthouse * monument * cemetery * windmill * etc.  These objects must be &amp;#039;&amp;#039;&amp;#039;classified&amp;#039;&amp;#039;&amp;#039; in a consistent way.  The field &amp;#039;&amp;#039;&amp;#039;Type&amp;#039;&amp;#039;&amp;#039; answers the simple question:  &amp;#039;&amp;#039;&amp;quot;What kind of object is this?&amp;quot;&amp;#039;&amp;#039;   == Why not simply use free text? ==  A simple text field like...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= HeritageObject Type – Concept and Purpose =&lt;br /&gt;
&lt;br /&gt;
== Why do we need a &amp;quot;Type&amp;quot; for HeritageObjects? ==&lt;br /&gt;
&lt;br /&gt;
Each HeritageObject represents a physical or historical item such as:&lt;br /&gt;
&lt;br /&gt;
* church&lt;br /&gt;
* bunker&lt;br /&gt;
* farmhouse&lt;br /&gt;
* bridge&lt;br /&gt;
* lighthouse&lt;br /&gt;
* monument&lt;br /&gt;
* cemetery&lt;br /&gt;
* windmill&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
These objects must be &amp;#039;&amp;#039;&amp;#039;classified&amp;#039;&amp;#039;&amp;#039; in a consistent way.&lt;br /&gt;
&lt;br /&gt;
The field &amp;#039;&amp;#039;&amp;#039;Type&amp;#039;&amp;#039;&amp;#039; answers the simple question:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;quot;What kind of object is this?&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Why not simply use free text? ==&lt;br /&gt;
&lt;br /&gt;
A simple text field like:&lt;br /&gt;
&lt;br /&gt;
 type = church&lt;br /&gt;
&lt;br /&gt;
looks easy but quickly creates problems.&lt;br /&gt;
&lt;br /&gt;
Examples of inconsistent input:&lt;br /&gt;
&lt;br /&gt;
* church&lt;br /&gt;
* Church&lt;br /&gt;
* chapel&lt;br /&gt;
* kerkje&lt;br /&gt;
* small church&lt;br /&gt;
&lt;br /&gt;
This causes:&lt;br /&gt;
&lt;br /&gt;
* spelling variations&lt;br /&gt;
* duplicate meanings&lt;br /&gt;
* impossible filtering&lt;br /&gt;
* unreliable statistics&lt;br /&gt;
* messy reports&lt;br /&gt;
&lt;br /&gt;
Over time this becomes unmanageable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The chosen solution ==&lt;br /&gt;
&lt;br /&gt;
Instead of free text, we use a separate table:&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;HeritageObjectType&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Relationship:&lt;br /&gt;
&lt;br /&gt;
 HeritageObject  →  HeritageObjectType&lt;br /&gt;
&lt;br /&gt;
So every object selects its type from a predefined list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Advantages of using a separate Type table ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Consistency ===&lt;br /&gt;
Users must select from an existing list.&lt;br /&gt;
No spelling errors or variations.&lt;br /&gt;
&lt;br /&gt;
=== 2. Reliable filtering ===&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
* show all bunkers&lt;br /&gt;
* show all churches&lt;br /&gt;
* count monuments per type&lt;br /&gt;
&lt;br /&gt;
These queries become simple and accurate.&lt;br /&gt;
&lt;br /&gt;
=== 3. Statistics and reporting ===&lt;br /&gt;
Cargo queries can group by type:&lt;br /&gt;
&lt;br /&gt;
* number of churches&lt;br /&gt;
* number of bridges&lt;br /&gt;
* number of military objects&lt;br /&gt;
&lt;br /&gt;
=== 4. Extensibility ===&lt;br /&gt;
The type table can later store extra metadata:&lt;br /&gt;
&lt;br /&gt;
* description&lt;br /&gt;
* icon&lt;br /&gt;
* color&lt;br /&gt;
* category&lt;br /&gt;
* historical period&lt;br /&gt;
* translations&lt;br /&gt;
&lt;br /&gt;
Without changing the HeritageObject table.&lt;br /&gt;
&lt;br /&gt;
=== 5. Controlled vocabulary ===&lt;br /&gt;
The club agrees once on the official terminology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Data model principle ==&lt;br /&gt;
&lt;br /&gt;
This follows a standard database design rule:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Do not use free text for classification fields.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Instead:&lt;br /&gt;
&lt;br /&gt;
 Entity → Category/Type table&lt;br /&gt;
&lt;br /&gt;
Other examples in this project:&lt;br /&gt;
&lt;br /&gt;
* Chapter hierarchy (parent chapter)&lt;br /&gt;
* DigitalAssets linked to Chapter/Place/Organisation&lt;br /&gt;
* HeritageObject linked to Type&lt;br /&gt;
&lt;br /&gt;
This keeps the data clean and structured.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How it is implemented in MediaWiki ==&lt;br /&gt;
&lt;br /&gt;
* Namespace: HeritageObjectType&lt;br /&gt;
* One page per type&lt;br /&gt;
* Cargo table stores all types&lt;br /&gt;
* Form uses a dropdown/combobox:&lt;br /&gt;
&lt;br /&gt;
  values from namespace=HeritageObjectType&lt;br /&gt;
&lt;br /&gt;
Users select a type instead of typing text.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Practical explanation for club members ==&lt;br /&gt;
&lt;br /&gt;
If asked:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;quot;What is Type for?&amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Answer simply:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Type is the official category of the object (church, bunker, bridge, etc.) chosen from a list so everyone uses the same terminology.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
The Type relation:&lt;br /&gt;
&lt;br /&gt;
* improves data quality&lt;br /&gt;
* avoids ambiguity&lt;br /&gt;
* enables statistics&lt;br /&gt;
* supports future growth&lt;br /&gt;
&lt;br /&gt;
It is therefore an essential part of the data model.&lt;/div&gt;</summary>
		<author><name>Mngr</name></author>
	</entry>
</feed>