By: Team SE-EDU
Since: Jun 2016
Licence: MIT
- 1. Introduction
- 2. Quick Start
- 3. Modes
- 4. Features
- 4.1. Source Manager Commands
- 4.1.1. Viewing help :
help
- 4.1.2. Selecting a Source :
select
- 4.1.3. Adding a source:
add
- 4.1.4. Deleting a source :
delete
- 4.1.5. Editing a source :
edit
- 4.1.6. Searching a source:
search
- 4.1.7. Listing all sources :
list
- 4.1.8. Organisational Tools :
order
andpin
- 4.1.9. Unpinning sources :
unpin
- 4.1.10. Reordering sources to your liking :
order
- 4.1.11. Generating a bibliography entry :
biblio
- 4.1.1. Viewing help :
- 4.2. Editing a bibliography related field (bibliofield):
biblioEdit
- 4.2.1. Listing entered commands :
history
- 4.2.2. Command aliases :
alias
- 4.2.3. Counting total number of sources:
count
- 4.2.4. Undoing previous command :
undo
- 4.2.5. Redoing the previously undone command :
redo
- 4.2.6. Enabling panic mode :
panic
- 4.2.7. Disabling panic mode :
unpanic
- 4.2.8. Clearing all entries :
clear
- 4.2.9. Exiting the program :
exit
- 4.2.10. Saving the data
- 4.2.11. Encrypting data files
[coming in v2.0]
- 4.2.1. Listing entered commands :
- 4.3. Recycle Bin Commands
- 4.3.1. Listing a deleted source :
recycle-bin
- 4.3.2. Deleting a source :
delete
- 4.3.3. Restoring a source :
restore
- 4.3.4. Clears the Recycle Bin :
empty-bin
- 4.3.5. Exits the Recycle Bin :
exit-bin
- 4.3.6. Counting total number of sources:
count
- 4.3.7. Undoing previous command :
undo
- 4.3.8. Redoing the previously undone command :
redo
- 4.3.9. Viewing help :
help
- 4.3.10. Selecting a Source :
select
- 4.3.1. Listing a deleted source :
- 4.1. Source Manager Commands
- 5. FAQ
- 6. Command Summary
1. Introduction
"To understand matters rightly we should understand their details; and as that knowledge is almost infinite, our knowledge is always superficial and imperfect." - Francois de La Rochefoucauld
The knowledge in the universe is infinite and there exists many things that are still beyond our comprehension. However, that does not mean that the process of learning what we have discovered should be a difficult one.
Introducing the Infinity Machine, an application for efficient storing and retrieving of textual information on research material by allowing users to apply to it custom made tags and type for easy search and retrieval. Intended for tech-savvy university students who are able to use CLI and wish to organize and tag research information or any other data that they may wish to store.
No longer will you miss out on important sources or developments in your field of interest. No longer will you forget where you read something and struggle to find it again.
2. Quick Start
-
Ensure you have Java version
9
or later installed in your Computer. -
Download the latest
infinitymachine.jar
here. -
Copy the file to the folder you want to use as the home folder for your Infinity Machine.
-
Double-click the file to start the app. The GUI should appear in a few seconds.
-
Type the command in the command box and press Enter to execute it.
e.g. typinghelp
and pressing Enter will open the help window. -
Some example commands you can try:
-
list
: lists all sources currently in the Infinity Machine -
add
i/Algorithms Wikipedia y/Website d/Basic definitions and history of algorithms t/Algorithms t/Computer Science
: adds a source namedWikipedia Algorithms
to the Infinity Machine. -
delete
3
: deletes the 3rd source shown in the current list -
exit
: exits the the Infinity Machine
-
-
Refer to Section 4, “Features” for details of each command.
3. Modes
3.1. Source Manager
The default mode that you will start with. This mode allows you to perform the main interactions with the Infinity Machine such as managing your research data through the adding of sources, adding of a bibliography to a source as well as removing of sources.
3.2. Recycle Bin
Worried about accidentally deleting important data? Rest assured, we have created a mode call the Recycle Bin where you can recover your deleted sources.
4. Features
Command Format
-
Words in
UPPER_CASE
are the parameters to be supplied by the user e.g. inadd i/TITLE
,TITLE
is a parameter which can be used asadd i/Wikipedia Algorithms
. -
Items in square brackets are optional e.g
i/TITLE [t/TAG]
can be used asi/Wikipedia Algorithms t/Wikipedia
or asi/Wikipedia Algorithms
. -
Items with
…
after them can be used multiple times including zero times e.g[t/TAG]…
can be used ast/Computer Science
,t/Computer Science t/Algorithms
etc. -
Parameters can be in any order e.g. if the command specifies
i/TITLE y/TYPE
,y/TYPE i/TITLE
is also acceptable.
4.1. Source Manager Commands
4.1.2. Selecting a Source : select
Format: select INDEX
Displays the source selected.
4.1.3. Adding a source: add
Adds a new source to the list of sources
Format: add i/TITLE y/TYPE a/AUTHOR d/DETAILS [t/TAG]…
The entry fields for the various source information have the following limitations:
The created source comes with an empty set of biblio fields, used for storing information for creating a bibliography entry. Refer to |
You cannot add a source with the same i/TITLE and d/DETAILS as another source in the database.
|
Examples:
-
add i/Algorithms Wikipedia y/Website a/Jason Mills d/Basic definitions and history of algorithms t/Algorithm t/Wikipedia
-
add i/Artificial Intelligence IEEE y/Journal Article a/Yueyang d/introductory facts on artificial intelligence t/Science Journal t/AI
4.1.4. Deleting a source : delete
Deletes the specified source.
Format: delete INDEX
Examples:
-
list
delete 2
Deletes the 2nd source in the database. -
search i/algorithms
delete 1
Deletes the 1st source in the results of thesearch
command. -
add i/Wikipedia Algorithms y/Website a/Tom Show d/Basic definitions of algorithms t/Algorithms t/Introduction
delete 1
add i/Wikipedia Algorithms y/Website a/Tom Show d/Basic definitions of algorithms t/Algorithms t/Introduction
delete 1
Permanently deletes the 1st source that is exactly the same source as the source that was previously deleted.
4.1.5. Editing a source : edit
Edits an existing source in the database.
Format: edit INDEX [i/TITLE] [y/TYPE] [a/AUTHOR] [d/DETAILS] [t/TAG]…
The maximum possible index that will be processed by the system is limited to the largest positive value for a 32-bit signed binary integer. Any number larger than 2,147,483,647 will not be parsed as an integer and will be rejected. |
The entry fields for the various source information have the following limitations:
|
You cannot edit a source to have the same i/TITLE and d/DETAILS as another source in the database.
|
Examples:
-
edit 2 i/Photosynthesis Wikipedia t/Photosynthesis t/Biology
Edits the 2nd source, changing the title and tags of the source to bePhotosynthesis Wikipedia
andPhotosynthesis, Biology
respectively. -
edit 3 y/Journal a/Gerard DuGalle
Edits the 3rd source, changing the type and author of the source to beJournal
andGerard DuGalle
respectively. -
edit 5 t/
Edits the 5th source and clears all its existing tags.
4.1.6. Searching a source: search
Searches for entries amongst the list of sources.
Able to search by title, type, detail and tags as specified by the CLI prefixes [author field not included].
Able to perform substring matching. Able to implement autocorrect by searching for 'similar' strings,
where similarity is defined by a pre-set Levenshtein distance as against the entire field value (and not substring)
Finds all entries with a (case insensitive) field value that contains the value as specified by the user.
Searches with multiple arguments are taken as conjunction searches, i.e all those sources
that satisfy all the keyword values are shown (logical and
operation).
Enables substring matching for a more powerful retrieval of sources. Also able
to take in multiple arguments of each prefix and search
in conjunction such as all those fields are matched with the corresponding fields of the resulting sources.
Similar fields are also shown, allowing for room should the user have made a typing mistake, or the user meant something
else, or the user just wants to see other related sources with similar field values.
If any seemingly unwanted results are displayed after a search command is executed, it should not be seen as a bug and this is
the intended behaviour because of the reasons and rationale explained above or in the Developer Guide.
Rest assured, the intended results will never be missed out.
Format: search [i/TITLE] [y/TYPE] [d/DETAILS] [t/TAG]…
Examples:
-
search i/Algorithms
Returns the source(s) with the titlealgorithms
-
search i/wiki y/web d/intelligence t/ML
Returns any source(s) having tagsML
and having the wordintelligence
somewhere in their content (detail) and having a type ofwebsite
orweb series
. -
search i/data i/algo
Returns the source(s) with both substrings 'data' and 'algo' included in them. -
search y/wesbite
Returns the source(s) of type 'website' [and other similar strings, if any]
4.1.7. Listing all sources : list
Displays a list of sources currently in the database, filtering by number and position depending on the [optional] parameters passed.
Takes 1 or 2 optional argument which are used to list only the top/bottom N sources or the sources between N and M (included) indices respectively.
With one parameter passed, a positive N lists top N sources from the top, a negative N lists top N sources from the bottom [bottom N sources].
With two parameters, the range must have both N and M as positive indices and N must not be smaller than M.
None of the values can ever be 0. The listing feature is always relative to the original list of the entire database.
Format: list [N] [M]
where argument N and M in [ ] are optional [either enter none, N, or (N and M)]
The four main formats and their usages are described below:
list: (no arguments)
When no arguments are passed to list
, it works same way as in the original AB4 logic, listing all the sources in the entire database with all their title, type, author, detail and tag values.
The sources are unfiltered and listed in entirety, with indexes 1, 2.. so on.
Example: list
Lists all the sources indexed from 1 onwards with all their details.
list N: (one positive argument)
When one positive integer is passed to list
, it lists the first N sources from the top, again listing all their title, type, author, detail and tag values.
Top N sources are listed with respect to the original source database list with indexes 1, 2 … till N.
Example: list 5
Lists top 5 sources from the entire database indexed from 1, 2 .. 5 with all their details.
list -N: (one negative argument)
When one negative integer is passed to list
, it lists the last N resources from the top or first N sources from the bottom, again listing all their title, type, author, detail and tag values.
Bottom N sources are listed with respect to the original source database list with indexes 1, 2 … till N.
Example: list -5
Lists the last 5 sources from the entire database indexed from 1, 2 .. 5 with all their details.
list N, M: (two positive arguments)
When two positive integers are passed to list
, it lists the sources between N and M (included) from the top, again listing all their title, type, author, detail and tag values.
N to M sources are listed with respect to the original source database list with indexes 1, 2 … till (M-N+1).
Example: list 6, 9
Lists the 4 sources from index 6 to 9 from the entire database list, indexed from 1, 2 .. till 4 with all their details.
The maximum possible index that will be processed by the system is limited to the largest positive value for a 32-bit signed binary integer. Any number larger than 2,147,483,647 will not be parsed as an integer and will be rejected. |
4.1.8. Organisational Tools : order
and pin
The Infinity Machine offers users functionality that allows them to customise the way their sources are ordered and displayed to their liking.
Pinned sources are saved between sessions, allowing users to retain whatever edits they have made.
Pinning important sources : pin
Marks a source as pinned and moves it to the top of the list where it will remain.
Format: pin INDEX
The maximum possible index that will be processed by the system is limited to the largest positive value for a 32-bit signed binary integer. Any number larger than 2,147,483,647 will not be parsed as an integer and will be rejected. |
You can delete a pinned source with no issue by entering the However, do note that deleting a pinned source will remove the source from the list. |
The maximum number of pinned sources you can have at a single time is 5. |
Examples:
-
pin 4
Marks source number 4 as pinned and moves it to the top of the list.
4.1.9. Unpinning sources : unpin
Reverts a pinned source back to its unpinned state, moving the source down to the first position of an unpinned source in the event there are pinned sources after the source to be unpinned.
Format: unpin INDEX
The maximum possible index that will be processed by the system is limited to the largest positive value for a 32-bit signed binary integer. Any number larger than 2,147,483,647 will not be parsed as an integer and will be rejected. |
Pinning and unpinning a source is not considered an undoable command and therefore will not be undone or redone with the undo or redo commands respectively.
|
Examples:
-
unpin 4
Reverts source 4, which was originally pinned, to its unpinned state and moves it down to the first unpinned source’s position.
4.1.10. Reordering sources to your liking : order
Moves the specified source from one position to another as defined by the user.
Format: order ORIGINAL_INDEX NEW_INDEX
The maximum possible index that will be processed by the system is limited to the largest positive value for a 32-bit signed binary integer. Any number larger than 2,147,483,647 will not be parsed as an integer and will be rejected. |
You cannot swap a source that is pinned or swap a source to the location of a pinned source. |
Examples:
-
order 1 4
Moves the source located at index 1 to index 4. -
order 1 6
If there are only 6 sources in the database, the command moves the source located at index 1 to last position in the list.
4.1.11. Generating a bibliography entry : biblio
Generates an bibliographical entry from the source at the specified.
Format: biblio INDEX FORMAT
Currently, only source types of "Book", "Journal Article" and "Website" are supported.
If any suggested fields for a given source type are not populated, they will be reflected to the user when biblio
is used.
Examples:
-
biblio 1 APA
Generates an APA style bibliography entry for the first source. -
biblio 2 MLA
Generates an MLA style bibliography entry for the second source.
4.2. Editing a bibliography related field (bibliofield): biblioEdit
Replaces the information stored under the indicated header in the indicated source.
Format: biblioEdit INDEX HEADER BODY
To ensure the accuracy of the bibliography generated, please ensure the accuracy of entered BODY
.
The <i></i> braces indicate that the text between should be italicized.
Examples:
-
biblioEdit 1 City London
Replaces the "City" bibliofield in the first source with "London". -
biblioEdit 2 Publisher Penguin
Replaces the "Publisher" bibliofield in the second source with "Penguin".
4.2.1. Listing entered commands : history
Lists all the commands that you have entered in reverse chronological order.
Format: history
4.2.2. Command aliases : alias
Note: Aliases do not work in recycle-bin mode.
Creating an alias: alias
Allows the user to create aliases create aliases for commands.
Format: alias COMMAND ALIAS
Examples:
-
alias count c
(c
is now a valid pseudo-command that works exactly likecount
) -
alias invalid i
(this doesn’t work becauseinvalid
is not a valid command)
As the above examples demonstrate, aliases may only be created for valid commands.
If the user attempts to add an alias that has already been added, the old one will be overwritten. For example:
-
alias count c
-
alias invalid c
c
is now an alias for the invalid command invalid
.
The command may not be another alias. The alias may not be a command.
-
alias count ct
(ct
is now an alias forcount
) -
alias ct c
(this is invalid becausect
is another alias) -
alias count list
(this is invalid becauselist
is a command)
The alias must be syntatically valid. A valid syntax may only contain alphabets.
-
alias list l
(valid) -
alias count ct
(valid) -
alias clear $
(invalid)
Removing an alias: alias-rm
Allows the user to remove previously-defined aliases.
Format: alias-rm ALIAS
Examples:
-
alias count c
(c
is now an alias forcount
) -
alias-rm c
(c
is no longer an alias forcount
)
If the user attempts to remove a non-existent alias, nothing happens.
alias-rm
only guarantees that after it is performed, the alias argument does not exist.
Listing all aliases: alias-ls
Lists all defined aliases and their associated commands.
Format: alias-ls
Clearing all aliases: alias-clear
Clears all defined aliases and their associaetd commands.
Format: alias-clear
Alias persistence
Aliases are persistent across usage sessions. When an alias is created or removed, this is recorded to disk. No action is required on the user’s part.
4.2.3. Counting total number of sources: count
Counts and returns the total number of source entries retrieved from Source Manager.
Format: count
Examples:
-
count
Result:Total number of source(s): 6
Counts the total number of sources retrieved from Source Manager.
4.2.4. Undoing previous command : undo
Allows the user to reverse the last performed undoable action.
Format: undo
Undoable commands: those commands that modify the source’s content ( |
Examples:
-
delete Algorithms
list
undo
(reverses thedelete Algorithms
command) -
select 1
list
undo
Theundo
command fails as there are no undoable commands executed previously. -
delete 1
clear
undo
(reverses theclear
command)
undo
(reverses thedelete 1
command)
4.2.5. Redoing the previously undone command : redo
Allows user to redo the last performed action.
Format: redo
Examples:
-
delete 1
undo
(reverses thedelete 1
command)
redo
(reapplies thedelete 1
command) -
delete 1
redo
Theredo
command fails as there are noundo
commands executed previously. -
delete 1
clear
undo
(reverses theclear
command)
undo
(reverses thedelete 1
command)
redo
(reapplies thedelete 1
command)
redo
(reapplies theclear
command)
4.2.6. Enabling panic mode : panic
Allows the user to temporarily hide data.
Format: panic
Research data may be sensitive. Panic mode is a privacy-focused feature that swaps out the user’s data store with an empty dummy data store.
When it is enabled, the application window replaces the original list of sources with an empty list. This change is reflected on disk too; the JSON file of sources is replaced by an empty dummy file that tracks the dummy data store. The original data store exists only in memory, until panic mode is disabled. This feature protects user data against spying, both from shoulder-surfing and more sophisticated spyware that may be monitoring the user’s disk.
In panic mode, the dummy data store behaves exactly like a real one. Therefore, all commands (e.g. add, remove, etc.) operate on the dummy data store (and the dummy JSON file), without affecting the actual data store. After exiting panic mode, all data created while in panic mode will be purged permanently. Therefore, dummy data created in panic mode will not persist between panic mode sessions.
If the user exits the application in panic mode (using the However, if the application is closed directly while in panic mode, permanent data loss will occur. |
4.2.7. Disabling panic mode : unpanic
Restores the user’s original data.
Format: unpanic
This reverses the effect of panic mode by restoring the user’s original data. The restorated is reflected on the disk too; the JSON file is reset to its original state and will now track the original data store.
4.2.8. Clearing all entries : clear
Clears all entries from the source manager.
Format: clear
4.2.9. Exiting the program : exit
Exits the program.
Format: exit
4.2.10. Saving the data
Source Manager data are saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.
4.2.11. Encrypting data files [coming in v2.0]
Research materials can be very sensitive and private especially for high profile researchers. The Infinity Machine hopes to be able to help researchers by encrypting their data for only authorised viewers to access.
Will allow users to generate simple encryption keys which will help keep their research materials secure.
4.3. Recycle Bin Commands
Note that Recycle Bin only support the following commands necessary to manage the deletion and restoration of a source.
4.3.1. Listing a deleted source : recycle-bin
Switches to Recycle Bin mode and lists all the sources deleted in Source Manager.
Format: recycle-bin
Examples:
-
Test switching to Recycle Bin with deleted source:
-
Delete 1st source in the source manager database
delete 1
-
use recycle-bin to switch to Recycle Bin mode
recycle-bin
-
Deleted source is listed.
-
-
Test using the command in Recycle Bin mode:
-
Lists all deleted sources
recycle-bin
-
4.3.2. Deleting a source : delete
Deletes the specified source permanently.
Format: delete INDEX
Examples:
-
list
delete 2
Deletes the 2nd source in the database. -
search algorithms
delete 1
Deletes the 1st source in the results of thesearch
command. -
add i/Wikipedia Algorithms y/Website a/Tom Show d/Basic definitions of algorithms t/Algorithms t/Introduction
delete 1
add i/Wikipedia Algorithms y/Website a/Tom Show d/Basic definitions of algorithms t/Algorithms t/Introduction
delete 1
Permanently deletes the 1st source that is exactly the same source as the source that was previously deleted.
4.3.3. Restoring a source : restore
Restores the specified source from Recycle Bin back to Source Manager.
Format: restore INDEX
Examples:
-
Test restoring sources:
-
Delete 1st source in the source manager database
delete 1
-
use recycle-bin to switch to Recycle Bin mode
recycle-bin
-
restores the 2nd source in the recycle bin database.
restore 1
-
-
Test restoring duplicate sources:
-
Add a source
add i/Wikipedia Algorithms y/Website a/Tom Show d/Basic definitions of algorithms t/Algorithms t/Introduction
-
Delete the source
delete 1
-
Add the same source
add i/Wikipedia Algorithms y/Website a/Tom Show d/Basic definitions of algorithms t/Algorithms t/Introduction
-
Switch to Recycle Bin
recycle-bin
-
Restore the deleted source
restore 1
-
An error message is thrown advising the removing of the source since it already exists in the source manager database.
-
4.3.4. Clears the Recycle Bin : empty-bin
Clears all sources in Recycle Bin.
Format: empty-bin
4.3.5. Exits the Recycle Bin : exit-bin
Switches modes from Recycle Bin to Source Manager. Lists all sources in Source Manager+
Format: exit-bin
4.3.6. Counting total number of sources: count
Counts and returns the total number of deleted sources in the Recycle Bin.
Format: count
Examples:
-
count
Result:Total number of source(s): 6
Counts the total number of sources retrieved from Recycle Bin.
4.3.7. Undoing previous command : undo
Allows the user to reverse the last performed undoable action.
Format: undo
Undoable commands: those commands that modify the source’s content ( |
Examples:
-
delete Algorithms
list
undo
(reverses thedelete Algorithms
command) -
select 1
list
undo
Theundo
command fails as there are no undoable commands executed previously. -
delete 1
clear
undo
(reverses theclear
command)
undo
(reverses thedelete 1
command)
4.3.8. Redoing the previously undone command : redo
Allows user to redo the last performed action.
Format: redo
Examples:
-
delete 1
undo
(reverses thedelete 1
command)
redo
(reapplies thedelete 1
command) -
delete 1
redo
Theredo
command fails as there are noundo
commands executed previously. -
delete 1
empty-bin
undo
(reverses theempty-bin
command)
undo
(reverses thedelete 1
command)
redo
(reapplies thedelete 1
command)
redo
(reapplies theempty-bin
command)
5. FAQ
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Infinity Machine folder.
Q: What is a duplicate source?
A: A duplicate source is a source that has the exact same title, author and details as another existing source in the database.
This is because if a research data has the exact same title, author and details it would mean that it is the exact same research data.
6. Command Summary
-
Add
add i/TITLE y/TYPE d/DETAILS [t/TAG]…
e.g.add i/Artificial Intelligence IEEE y/Journal Article a/Hugh Johnson d/Landmark paper on perils of artificial intelligence t/Science Journal t/AI
-
Clear :
clear
-
Edit :
edit INDEX i/TITLE y/TYPE d/DETAILS [t/TAG]…
e.g.edit 2 i/Photosynthesis Wikipedia t/Photosynthesis t/Biology
-
Search :
search [i/TITLE] [y/TYPE] [d/DETAILS] [t/TAG]…
e.g.search i/algorithm y/journal
-
List :
list [N] [M]
N M non 0 and M>=N if both passed. -
Pin :
pin INDEX
e.g.pin 3
-
Unpin :
unpin INDEX
e.g.unpin 3
-
Custom Order :
order ORIGINAL_INDEX NEW_INDEX
e.g.order 3 5
-
Help :
help
-
Select :
select
-
Count :
count
-
Biblio :
biblio INDEX FORMAT
e.g.biblio 1 APA
-
Biblio :
biblioEdit INDEX HEADER BODY
e.g.biblioEdit 1 City London
-
History :
history
-
Adding an alias :
alias COMMAND ALIAS
e.g.alias list ls
-
Removing an alias :
alias-rm ALIAS
e.g.alias-rm ls
-
Listing all aliases :
alias-ls
-
Clearing all aliases :
alias-clear
-
Undo :
undo
-
Redo :
redo
-
Panic :
panic
-
Unpanic :
unpanic
-
Delete :
delete INDEX
e.g.delete 3
-
Restore :
restore INDEX
e.g.restore 3
-
Recycle Bin :
recycle-bin
-
Empty Bin :
empty-bin
-
Exit Bin :
exit-bin