Every time I want to make a copy of a file, I have to lookup the documentation. DT has its own idiosyncratic terminology for something that is very well understood in the computer world: COPY and ALIAS.
Here are the definitions of DUPLICATE and REPLICATE in the Mac OS X English Dictionary:
Maybe there should be an on/off option in the Preferences labeled: “Computer Literate Terminology”
p.s.: sorry for the pissed-off tone. That’s just me lacking tact.
Um, would that be a “shallow copy” or a “deep copy”? A “hard link” or a “soft link”? Or are your aliasing problems having to do with a conversion to a bitmap image, or perhaps an interpolation problem in an audio wave table?
Seriously: I could look up “duplicate” and “replicant” in the dictionary for you if you need their definitions…
The key word here is “context”. Are you designing an object-oriented piece or software? No, you are dealing with an unstructured database. Are you manipulating a file system using UNIX commands? No, you are dealing with an unstructured database. Are you trying to soften a blocky JPEG picture? No, you are dealing with an unstructured database. Are you working on signal processing algorithms? No, you are dealing with an unstructured database.
You think you would be confused with the usage of the terms “copy” and “alias” while manipulating files within an unstructured database on the Mac platform? Exactly. You wouldn’t even have to think twice about the behavior of those functions.
That would take too long. Wouldn’t it be more efficient to use a common terminology? On the Mac, the “copy” and “alias” terminology are in use and well understood.
Again, my suggestion would be to offer an option in the Preferences so that people like me who are computer literate and thus understand what copying a file is within the context of file operations in an unstructured database wouldn’t have to lookup the documentation to figured out what the semantic of duplication and replication is for DEVONthink.
OK, “copy” and “alias” might be well understood terms, but do they reflect what’s going on here?
Let’s take the Duplicate/Copy issue: this refers to the objects you store in the database: a PDF file for example. You can create an exact copy through a keystroke in DTPO, which creates a new content record in the database, and these are two separate database records. The notion of “duplicate” in DTPO however, AFAIK, is based on a word comparison between the two documents, not a record linkage. So for example, you could take a typewritten sheet and scan/OCR it twice into DTPO, and it would be recognized as a “duplicate” even though the two scans wouldn’t be binary copies of one another.
Now let’s take Replicant. You want to use the word “alias,” but that really refers to a “stand in” item in a folder hierarchy that links to a file object. In DTPO, there are file objects (as above) and record pointers that connect file objects with metadata. When you make a replicant, you’re duplicating an existing file pointer to a file object, not creating the file pointer (ie “alias,” if you wish) to begin with. File pointers to objects always exist in DTPO, aliases don’t always exist in the file system.
Or put more simply, what do you call making a lot of “aliases” to a file? Don’t you “replicate” them? You’re certainly not “aliasing” them. “Aliasing” is equivalent to the process of making the file pointer in the first place, which is done automatically when you import an object into a DTPO database.
So I think that the DEVONtechnologists are justified in using terms other than the ones you’re trying to enforce here, because DTPO doesn’t really work the way a naive understanding of “copy” and “alias” does. As I pointed out in my previous post, these words are (perhaps too) overloaded, so a useful strategy is to use different words.
Operational differences between ‘alias’ and ‘replicate’:
When I create an alias of a file in the Finder, the original file continues to exist, and there’s a new alias file that points to it. If I delete the alias, the original file isn’t affected. If I delete the original file, the alias has lost functionality.
When in DEVONthink I replicate a document, I’ve now got two instances of that document. If I make some change to one of the replicants, both are changed. If I delete one of them (it doesn’t make any difference which one I pick to delete) the other instance reverts to a ‘normal’ document, without other instances.
This means in the context of DT, a binary copy is a duplicate and an instance with the exact same textual content is a duplicate. A Duplicate is then many things.
Now… A Duplicate is not the same as Duplicating! I still believe the function of creating a Duplicate of a record should be called “Copying”. A copy is a duplicate, but a special case of a duplicate: the content is an exact copy. I don’t care about the metadata: this is something else.
The terminology is thus flawed.
I find the line between an alias (Finder-semantic) and a replicant (DT-semantic) to be so close as to not warrant a new terminology usage. I mean, it could simply be mentioned in the documentation “hey, take note that when you make an alias, any representation of the file object points to the same record. Said otherwise, there is no ‘original record’ and ‘alias to the original record’”. Yeah, I wouldn’t phrase it that way, but you get the picture.
I would agree 100% on that.
So, with that insight, a Duplicate should be called a Duplicate. The act of creating a Duplicate by making a copy of a record should be called “Copying”. A Replicant could still be called a Replicant (because everybody would understand what “Copying” entails), but it could also be called a Link or an Alias. The act of creating a Replicant or a Link or an Alias could be called “Linking” or “Aliasing” instead of “Replicating”.
Dictionary: Lookup what the definitions are in the dictionary being distributed with Mac OS X. They are both referring to the concept of a copy!
Anyway, I realize this is not very important ; I just find it too bad such idiosyncratic terminology is being used.
Try this little experiment: create a new text file in DTPO and label it “foo.txt.” In the document window, type “foo” and a carriage return. Now, create another text file, again label it “foo.txt”, and again type “foo” and a CR into its document window. You’ll see DTPO immediately classify the two files you’ve made as duplicates.
Now, in one of the text files, type a space and “bar” after the word “foo.” You’ll see they’re no longer classified as duplicates.
So DTPO looks at the world from the point of view of classification: it’s how content relates to each other, not how content is manipulated. Classification is an agent, as if you were running cmp on your files all the time (or something).
I used the phrase ‘operational differences’ in comparing the experience most users have gained in the Finder with creating and working with an alias and the file to which it points, to the experience of replicating a document in DEVONthink and working with the instances.
From that perspective, I don’t think the difference is merely semantic and that there is a practical reason for using the term ‘replicant’ — although replicants are ‘aliases’ (all instances point to the same now-invisible ‘real’ document). The terminology differentiation is designed to avoid the baggage of expectations based on experience in working with files and aliases in the Finder, such as ‘Which one is the real document?’ or ‘Which one can I delete without losing the document?’
Replicate a document to another group. The document is now filed into two locations. Now delete one of them — it doesn’t matter which one. The ‘real’ document will now be found in the other group. That’s not the expectation most users would carry over from working with files and aliases in the Finder.
Operationally, a DEVONthink replicant is one of multiple instances of a document or group, but a Finder alias is not an instance of a file or folder, it is a pointer to a file or folder.