Relative Address

Relative Address

Why use an address?

A relative address is NOT what you use to find Uncle Bob’s house, at least not in computer terms.

Let’s face it. One of the main things we use computers for is to store things. We use them to store pictures, recipes, mail, spreadsheets, games, and yes, our ancestors.

If you are like me, you store a lot of things. I store enough things that it would be difficult to find any one thing if I had everything stored in one place. On the other hand, I can’t afford one computer for pictures, one for recipes, one for mail, one for spreadsheets, one for games, and one for ancestors. That’s absurd! Yet the concept of “Divide and Conquer” is a good approach to finding one thing that is buried in a large group of various things. So let’s talk about storage devices and directory structures. Most desktop and laptop computers have at least one hard drive and a provision for attaching other storage devices. The way a computer approaches the “Divide and Conquer” concept is with a hierarchical directory structure. That means that each storage device (or drive) is like a container which can hold other containers, which can hold other containers, which can….

For convenience, we give each container a name. The hard drive is one container, and a flash drive is another. We use the name to let the computer know which container to look into.

Some Geek Stuff

Drive Names

There are two main divisions of operating systems that you are likely to encounter. One is the Windows (Microsoft) type, and the other is the UNIX type, including Macintosh. The way these two systems approach directory structures for storage devices is similar. They both use the name of the device as the first container name, followed by a separator character, followed by either a file name or a container name. If it was followed by a container name, that must be followed by a separator character, followed by a file name or a container name. If it was followed by a container name, that must be followed by a separator character, followed by a file name or a container name. If it was followed by….

This creates a nested, or hierarchic structure. The device name is the top of the structure. Since it is a container name, it is followed by a separator character. If that is followed by any container names, those names would be on the next level down in the structure, and there can be more than one container inside any container.

Microsoft chose to let the operating system assign the name of the top level container. In their infinite wisdom, they reserved the names A: and B: for floppy disk drives. They reserved the name C: for an internal HDD (hard disk drive). Floppy disks are now very difficult to find, because they are so limited in capacity and speed that nobody is willing to even produce a computer with those devices. The A: specification has been altered to also accept devices which read and write various memory cards. The C: specification also accepts SSD (solid state drive) type drives.

The UNIX type operating systems allow the user to choose the name for the device, and typically drive letters are not chosen. UNIX has its own convention for commonly used containers.

At start-up time, the Windows operating system checks to see what storage devices are attached. After A:, B: and C: drives are accounted for, it begins assigning drive letters (followed by a colon) to the devices it finds, alphabetically within device type. Other hard drives will be assigned a letter next. After hard drives, optical devices will be assigned a letter, and then other devices. In the case of removable devices, Windows seems to maintain a table of device serial numbers and drive letters. When a removable device is encountered, even long after start-up time, the operating system goes to the table to see if this device has been attached to this computer before. If it has, it checks to see what drive letter was last used by this device. If that device letter is currently available, it is assigned to this device, otherwise it assigns the next (alphabetically) available drive letter, and that letter is stored in the table. There are reasons for doing this, and one of the reasons has something to do with relative addresses.

Separator Characters

Before Bill Gates ever purchased the operating system which he would later change into MS DOS, the UNIX operating systems were already using the forward slash / character as the separator character in Path names. Bill, being a somewhat proprietary type guy, chose to use the backslash \ character instead. This created potential problems for the C programming language and the Python scripting language (among others) which use the backslash to indicate that the character following the \ is to be treated as an “escape character” which we will not discuss here.

Since Ancestral Quest runs on the Windows operating system, this discussion will ignore the forward slash and escape character problems. We will use the backslash character exclusively. Just be aware that if you are running AQ on a Macintosh, you may want to research relative addressing under UNIX.

Nuts & Bolts

When dealing with Relative Addresses, there are two important concepts: Current Directory and Parent Directory. The default (starting) Current Directory is the top level of the directory structure, or the device name.

01 G 01

In this case the Current Directory is G:\. Any of these directories could become the Current Directory. In the general computing world, outside of Ancestral Quest, there are several ways to change the Current Directory. One common way, and the one used in Ancestral Quest, is to open a file. Programs typically have a default directory where they expect to read and write files. This could be a directory created by the installation process for the program, or it could be the Documents folder. When the program opens a file, the user often is given the opportunity to change the location where the program is to look for the desired file. When the user selects a folder other than the default folder, the program is likely to change the Current Directory to the one selected by the user.

02 G

This example shows what would happen of I used Open Office’s Database program to open the database I use to catalog my library. The Current Directory would be set to Books, and the Parent Directory of Books is Database.

03 G

If I were taking roll in my Ancestral Quest class, the Current Directory would be AQ Class, and its Parent Directory would be Spread. In the Path statement, the Current Directory is written as .\ or \ and it is placed first in the string of directories. If my Current Directory had been set to Open Office, and I wanted to reference a file in the MPG directory, the notation for the relative path would be .\Spread\MPG or .\Spread\MPG\ or \Spread\MPG or \Spread\MPG\. The closing \ is also optional.

04 G
If I were in the Things folder and I wanted to access the MyFriends.odb file in the Contacts folder, the Relative Address would be ..\..\..\Open Office\Database\Contacts\MyFriends.odb. Relative Addresses can not cross from one device to another.

There are places in Ancestral Quest where Paths are used. The first is the Tools -> Preferences -> Files and Folders screen.

05 Preferences

This is an example of Absolute Addressing. Each Path shows the device name and the complete path to the desired folder. Four of these folders are on the C: drive. The Backup folder is NOT on the C: drive. The purpose of a Backup is to provide a backup of the data which will not be lost if the device holding the file is lost or damaged. This should always be on a removable drive or an external drive.

98 Preferences

These (except the Backup folder) are Relative Addresses. Notice that the Database folder is listed relative to the G:\ folder. The others are listed relative to the G:\AQ Data folder. That is because the first thing you do when you start Ancestral Quest, is open a file. That action resets the Current Directory to .\AQ Data\. From then on, all references are relative to that directory.

Another place where a Path is used in AQ is when you browse for a picture for your scrapbook. Click on the Scrapbook icon (camera). That brings up the Scrapbook Collection screen.

06 Scrapbook Collection

Now click on the Add button.

07 Add Scrapbook

Next click the Browse button.

08 Open Photo

Select the picture you want and click the Open button. To understand what happens next review the Path posting.  Since the Images folder is inside the Current Directory, which was set when you opened your .aq or .paf file, AQ doesn’t need the drive letter to find the picture.

Ancestral Quest is a Portable App. That means that you can copy your Ancestral Quest 14 folder from the C:\Program Files (x86)\Incline software\ folder or the C:\Program files\Incline software\ folder, depending on your operating system, to your flash drive. You can then execute the ancquest.exe program from the flash drive. If you create a structure on your flash drive where the AQ Data folder contains a folder named Images, just like your hard drive, you can view your images in AQ on a computer that doesn’t even have Ancestral Quest installed. Just copy everything from your Images folder on your hard drive to the same folder on the flash drive.

Suggestions/Questions about AQ Will Do or Subjects discussed here? Leave a Comment Below. I would like to hear from you!

3 Comments

  1. William

    This looks like a great article. Wish I understood it. For individuals like me you need to provide coloring book level info. What I want to know is how I can make my jpg pics visible when I on put AQ on Removable Media (as per https://www.ancquest.com/t_t1.htm ). I have my pics in a folder on my desktop called Ancestor pics . How do I make a relative address for those pics? Thank you for any assistance.

    • William, I’m not sure I understand your question. You asked it over 4 years ago and I haven’t been looking at my comments. Please forgive me. If you still have a question, please rephrase it and try again. It will not be 4 years before I answer.

  2. Thanks Dale, most Useful- Essential reading for any AQ user 🙂

I would like to hear from you!