Concepts
The contents of this page is meant to clarify some of the terms we will use
frequently throughout the application screens and in this documentation, as
well as give a high-level overview of the application architecture.
Here are the topics we will cover:
- Internal Project Hirtius structures
- Intended scope of Project Hirtius objects
- Introducing the INXtree
- Implementation details
These are the internal Project Hirtius structures we may collectively
refer to as objects (even though our application doesn't use the
object-oriented programming paradigm). There are different kinds, though, with
a hierarchy between them, based on the "features" they offer.
- object:
- What makes a fully-fledged object is the fact that it supports all of
the relationships / metadata featured by the application. These relationships
or metadata are:
- See also
- Categories (INX links: see below)
- Bibliographical references
- Source references
- Attachments
In addition to these, and depending of the object type, additional
relationships may be available (links to events, to alternate names or titles,
links between events for the purpose of relative dating, etc.).
The fully-fledged objects are:
- Slides
- Sources
- Individuals
- Families
- Events
- Tiddlers
- lesser object:
- By opposition with the fully-fledged objects, the lesser objects
support but a subset of the relationships / metadata featured by Project
Hirtius. These relationships or metadata are:
- Bibliographical references
- Source references
- Attachments
The lesser objects are:
- Titles
- Alternate names
- Sequences
- Projects
- non-object entities (metadata):
- Non-object entities, then, don't support any of the relationship /
metadata featured by the program (although there may exist links
between two kind of non-object entities, as between articles and books).
These non-object entities are either leaves in the structure (e.g.
attachments), or are used to embody the relationships themselves (e.g. a
bibliographical reference is a link between an object and a book/article).
The non-object entities are:
- Books
- Articles
- Web links
- Attachments
- Bibliographical references
- Source references
- INXtree node
All these entities (objects, lesser objects and non-object entities) can be
referenced throughout the application using their prefix and ID. This is what
separates them form other Project Hirtius data structures not metioned in
this list (such as Trays, Users, etc.). For more information
about these prefixes and how to use them, please refer to Objects and Metadata Types and
Navigation Tips.
Let's now have a look at the most important objects (or lesser objects)
supported by Project Hirtius and explain what they are meant to be used
for in the context of historical research. What kind of data should we store
in them ?
- Slide:
- The Slide object is meant to store any kind of picture, in
any format you can think of (physical or digital). Once the picture is
stored in the application (for physical pictures, only their metadata are
kept in Project Hirtius of course), the Slide record will be
used to document it (using all the fields and metadata supported by the
application). Linking Slides to Events allows you to track
the history of the artefact being discussed.
Slide records can thus represent any physical object from the real
world (buildings, works of art, archeological artefacts, human impact on
the landscape, etc.) and serve as basis for their study. Clearly,
multiple pictures (and hence multiple Slide records) can be
necessary to document a single real world object. When this is the case, one
of the Slides can be identified as the entry-point: a central
record that references all others (through See also) and that most
likely stores a good deal of your research on the topic. Entry points are
identified in the UI by the token
"♠".
Please note that in some cases, a picture can also be treated as a historical
source (as may be the case for inscribed stones, manuscripts, etc.). In a
case like that, I recommend to create two separate objects: one Slide
record for the purpose of tracking the picture, and one Source
record for the purpose of quoting this source while documenting other
objects (via Source references). The second object need only be
created when there is a need to create a Source ref. pointing to
it. The way you split the documentation effort about the source itself
(between the Slide record and the Source record) is up to
you. For the Reading and Translation fields, you can even
link one to the other (see the Sources Edition Page for more information).
For more information about Slide objects, please refer to
the Slides Edition Page and Pictures Management Workflow.
- Tray:
- Trays are containers for Slides. Either physical containers
for physical pictures, such as plastic cartridges for 36mm slides or photo
albums for still photographs, or directory structures on your server for
digital shots. In addition to their ID, Trays can be given names,
so you can also use them to organise your collection by broad categories.
For suggestions on the tray management policy you might want to implement,
please refer to the Pictures Management Workflow.
Please note that Trays are not objects, lesser objects or even
non-object entities (as defined above), as they
can't be referred to using a prefix.
- Source:
- Historical Sources are original documents from the period that
convey some form of historical content. A typical example would be old
manuscripts. It is also customary, in ancient history, to consider as
sources the authors of the period (through modern editions of their texts).
Ancient inscriptions (epigraphy) and even the oral tradition may be
considered as well.
For published sources (such as ancient authors), it is enough to create the
record that references their work (you would typically link it to a
bibliographical reference for the modern edition). But for other
source types, you may wish to also store a picture or scan of the original
document if possible. If this picture is rather large, it would make sense
to treat it as a Slide object rather than just attach it to the
Source object. If you decide to create a Slide object for it,
you should link both objects through the See also feature, and you
may also use the include feature to store the reading and
translation fields only once (see the Sources Edition Page for more details about
this).
Linking Sources to Events allows you to track the history of
the document being discussed.
Creating a Source record is required if you wish to quote it
(through a source reference) from other objects in the
database. To summarise, the Source object plays a similar role to
that of the Book and Article non-object entities, since you
need it simply to create source references. But the Source
itself may also become an object of historical research (for instance
investigating the way it has been handed down to us), which is the reason
why it has been implemented as a fully-fledged object in Project
Hirtius.
- Event:
- As the name implies, the Event objects track historical events.
Events can be recorded in Project Hirtius for their own sake (as
the main focus of your study, managed only at the project level), or as
metadata for other objects (Slides, Sources, Individuals
or Families). In the latter case, the Event help tell the story
of the object in question.
Events can be further grouped in Sequences (see below).
By definition, an Event has a date (even if its value is not known at
present) or a duration (as expressed through a start date and an end date)
and a location. A mechanism has also been provided to date events relatively
to one another (using this information to sort Event objects is work
in progress).
There are two kinds of Events:
- regular event: any event created independently of other objects
by the user. That event could of course later be linked with other objects
manually.
- auto-event: events automatically created during the creation
process of other objects (Individuals or Families) and
automatically linked with them. Such an event has a standard, auto-generated
description, and can't be deleted on its own (the only way to delete it is
to remove the object that created it). Auto-events are identified in
the UI by the token
"Æ". More
information on the way to manage them is available in the Individuals Management Workflow.
Events also have a type, to make it easier to filter them. The
existing types are mostly based on the GEDCOM standard, but a few extra
types have been added, in acknowledgment of the fact that Project Hirtius
is a generic historical research program, and doesn't limit itself to the
biography of individuals.
- Sequence:
- Sequences are a way to group together related Events. As
an example, when researching a war that lasted for several years, you are
likely to create Event objects for each battle, treaty, siege, etc.
All of these can then be grouped together inside a Sequence named
after the war.
An Event can be made member of as many different Sequences
as necessary. Once member of a Sequence, this link can be used to
navigate between all members Events. Events inside a
Sequence are ordered chronologically.
- Individual:
- Individual objects are meant to research a person's life. By
linking Events, you can recreate a detailed biography, and linking
Family objects, you can connect that Individual with his/her
ancestors and descendants. Combine all of this together, and you will
notice that Project Hirtius offers most of the basic features of a
genealogy program.
When creating a new Individual record, two linked Events
are automatically created for you (these are auto-events, see
above):
When researching that person's life, make sure to further edit these two
events to document them as well.
- Family:
- A Family object represents the union between two Individuals
of opposite sex (please don't read this as a moral statement of any kind:
the Family object is first and foremost the database structure used
to link children with their natural parents -- that is all). Future versions
of the program should include a way to track adoptions and other, non
blood-based parental links.
When creating a Family object, a linked Event will be
created automatically for you, representing the creation of the couple. At
present, this event can be of one of the two following types:
- marriage: official civil and/or religious act
- union: informal/unofficial relationship
Of course, even if the creation event identified for that Family
object is of type "Union", nothing prevents you from further linking a
"Marriage" event if it took place at a later date.
For more information on the Individual and Family objects,
please refer to the Individuals Management Workflow.
- Tiddler:
- Contrary to the other structures that have been described above,
Tiddlers do not represent any real-life object that the historian
might wish to research. Tiddlers are simply unorganised, random notes,
grouped inside a project. They are meant to store any data relevant to your
research that doesn't readily fit in any of the other structures. But being
implemented as Project Hirtius fully-fledged objects, they still support
the same metadata as all other objects.
When researching a large subject or when preparing a scholarly work, you can
use Tiddlers to formulate hypothesis, develop the global plan of your
work, list avenues that remain to be explored, follow-up on open questions
or keep records of your field trips and progress meetings (journal entries
are well suited to the latter).
- Project:
- Projects are really the way to bring all of your research
together and make it into a coherent whole. Projects, as a data
structure, are in fact little more than a name and a pointer to a particular
node in the INXtree beneath which your project structure has been slowly
created and all the objects born from your research attached.
For a detailed description of how to use Projects to organise
your research data and then draft your final work, please refer to the
Projects Management Workflow.
The moniker INXtree stands for index tree. It is a hierarchical
structure that you should build for the purpose of organizing your Project
Hirtius objects. Each node of this tree is called a Category, and
it may contain further sub-nodes (or leaves) as long as the maximum depth of
the tree has not been reached. You can then attach your objects (fully-fledged
objects only) at any level in the tree (not only on the nodes furthest down)
-- except at the root, and any given object can be attached to any number of
different nodes in the tree.
You are of course free to devise for your tree any structure you like, but
it may be worthwhile to keep the following principles in mind when designing
it:
- the tree grows from the more generic (all level-1 categories) to the more
specific (the deeper you descend in its branches)
- for standard historical research, your overall scheme is perhaps best
based on a map of human knowledge, a bit similar in principles to what has
been done with the UDC (I don't recommend
you reuse that one in extenso, of course (it's huge) -- you would be
better off building your own, based on the specific needs of your research
subjects). For a general overview of what UDC is, please read the
Wikipedia page on
Universal
Decimal Classification.
- your structure should also include an entry point for your personal
research projects (below this entry point, you will create a new
category for every new project, and beneath these the internal structure
of the project in question). For more details on this topic, please refer
to Projects Management Workflow.
- while the number of nodes the INXtree can contain is in theory
unlimited (each node is a record in a DB table), the way it is designed
limits its breadth (max. number of sub-nodes per node) and depth (length
of the entire path from root to deepest node) in practice. These parameters
should be set when the 'hirtius' database is initially created. For
more technical information on this topic, please refer to the Global Definitions File and
the INSTALL document.
Even though you should take great care when designing the structure of your
INXtree, don't worry: no decision is ever set in stone. It is always possible
to reorganize it later on without losing any info using the Edit,
Copy, Move (also called "Prune and graft") and
Del action commands. All of these are described in the INXtree Browser.
Some recommendations as to this design are also offered in the Pictures Management Workflow and
Projects Management Workflow.
This INXtree will be one of the main entry points into your data, as it
is featured prominently on the Main Application Menu. It's very nature will enable you
to hunt for your data by drilling down, navigating the branches of your
tree. For each node you select on this screen, all attached objects will be
listed in the right-hand frame, including all those attached to the subtree
below. Any duplicate entries (remember: any given object can be linked with
multiple categories, so it can appear multiple times below any given
node) will be automatically removed.
The figure below attempts to visually explain how the INXtree is
built and stored in the database.
INXtree implementation
Please note that the way each node is represented in the figure above is an
approximation. To make it easier to read, I've drawn the nodes as if each only
contained that part of the tag that is specific to their level (e.g.
'0003' for the Egypt node). In fact, the 'tag' column
in the database does contain the entire "path" leading to the node as well.
Meaning that in our example, the value for the 'tag' column of the
Egypt node would indeed contain '000200010003'.
See also:
Project Hirtius, © Les Ateliers du Héron, 2012.
Last updated: Friday, Jul. 31, 2020.