From 80a98546ebb9de9637ad40ef598ad2afc0945607 Mon Sep 17 00:00:00 2001 From: allanaaa Date: Mon, 20 Jul 2020 11:49:15 -0400 Subject: [PATCH 01/18] Update starting.md I am not at all clear on how well GitHub for Windows will handle multiple PRs pointing to the same work directory, but let's see what happens. --- docs/docs/manual/starting.md | 40 +++++++++++++++--------------------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/docs/docs/manual/starting.md b/docs/docs/manual/starting.md index 02ac27ccf..abada4c4e 100644 --- a/docs/docs/manual/starting.md +++ b/docs/docs/manual/starting.md @@ -1,33 +1,23 @@ --- - id: starting - title: Starting a project - sidebar_label: Starting a project - --- - ## Overview OpenRefine doesn’t allow you to create a dataset from nothing - you can only start a project by importing in some existing data. - - -No matter where you pull in data from, OpenRefine doesn’t modify your original data source. It copies all the information from your input, creates its own project file, and stores it in your [workspace directory](installing.md#whereisdatastored). +No matter where your data comes from, OpenRefine doesn’t modify your original data source. It copies all the information from your input, creates its own project file, and stores it in your [workspace directory](installing.md#set-where-data-is-stored). The data and all of your edits are automatically saved inside the project file. When you’re finished modifying the data, you can export it back out into the file format of your choice. You can also receive and open other people’s projects, or send them yours, by exporting a project archive and importing it. - ## Create project by importing data When you start OpenRefine, you’ll be taken to the `Create Project` screen. You’ll see on the left side of the screen that your options are to: - - * import data from a file on your computer * import data from a link to the web * import data by pasting in text from your clipboard @@ -36,8 +26,6 @@ When you start OpenRefine, you’ll be taken to the `Create Project` screen. You From these sources, you can load any of the following file formats: - - * comma-separated values (CSV) or text-separated values (TSV) * Text files * Fixed-width columns @@ -52,26 +40,34 @@ From these sources, you can load any of the following file formats: More formats can be imported by [adding extensions that provide that functionality](https://openrefine.org/download.html). +If you supply two or more files for one project, the files’ rows will be loaded in order that you specify, and OpenRefine will create a column at the beginning of the dataset with the source URL or file name in it to help you identify where each row came from. If the files have matching columns, the data will load in each column; if not, the successive files will append all of their new columns to the end of the dataset: + +|File|Fruit|Quantity|Berry|Berry source| +|---|---|---|---|---| +|fruits.csv|Orange|4| +|fruits.csv|Apple|6| +|berries.csv||9|Mulberry|Greece| +|berries.csv||2|Blueberry|Canada| + + For whichever method you choose, when you click `Next >>` you will be given a preview and a chance to configure the way OpenRefine interprets the file. - ### Methods to import data - #### Get data from this computer Click on `Browse…` and select a file on your hard drive. All files will be shown, not just compatible ones. If you import an archive file (something with the extension `.zip`, `.tar.gz`, `.tgz`, `.tar.bz2`, `.gz`, or `.bz2`), OpenRefine detects the most common file extension in it and loads all files with that extension into a single project. - #### Web Addresses (URLs) -Type or paste the URL to the data file into the field provided. You can add as many fields as you want. OpenRefine will _____(something I haven’t quite figured out yet)______________________. +Type or paste the URL to the data file into the field provided. You can add as many fields as you want. OpenRefine will download the file and preview it for you. + +If you supply two or more file URLs, OpenRefine will identify each one and ask you to choose which (or all) to load. Do not use this form to load a Google Sheet by its link; use the Google Data form instead. - #### Clipboard You can copy and paste in data from anywhere. OpenRefine will recognize comma-separated, tab-separated, or table-formatted information copied from sources such as word-processing documents, spreadsheets, and tables in PDFs. You can also just paste in a list of items that you want to turn into multi-column rows. OpenRefine recognizes each new text line as a row. @@ -80,24 +76,22 @@ This can be useful if you want to pre-select a specific number of rows from your This can also be useful if you would like to paste in a list of URLs, which you can use later to fetch the data online and build columns with. - #### Database (SQL) You may want to pull the latest dataset directly from an online database. This could include an online catalogue, a Wordpress or similar content management system, or a [digital repository or collection management system](https://bits.ashleyblewer.com/blog/2017/08/09/collection-management-system-collection/). OpenRefine can connect to PostgreSQL, MySQL, MariaDB, and SQLite database systems. It will automatically populate the “Port” field based on which of these you choose, but you can manually edit this if needed. +If you have a downloaded database (`.db`) file, you can supply the path to the file on your computer directly in the “Database” field at the bottom of the form. You can leave the rest of the fields blank. + To import data directly from a database online, you will need to do two things: - - * Add OpenRefine (running from your computer) to an account authorized to access your database * Set up OpenRefine to access that database using that account ![A screenshot of connecting to a database](img/databaseconnect.jpg "A screenshot of connecting to a database.") - -Log in to your hosting provider. Get the database type (such as MySQL), database name, and the URL (either an IP address, such as `127.0.0.1`, or the domain that uses the database, such as _https://openrefine.org/category/blog.html_). Then look at the accounts authorized for access. You may wish to create a new account just for OpenRefine, or add OpenRefine to an existing account. +Log in to your hosting provider. Get the database type (such as MySQL), database name, and the URL (either an IP address, such as `127.0.0.1`, or the domain that uses the database). Then look at the accounts authorized for access. You may wish to create a new account just for OpenRefine, or add OpenRefine to an existing account. Each host will have a slightly different method, but generally speaking: look for “accounts with access” to the database you wish to authorize, and within the settings for that account, look for “allowable hosts” or “access hosts.” From 40b2c4bc4d6541786c7dbf774589af5d3cbd149b Mon Sep 17 00:00:00 2001 From: allanaaa Date: Tue, 21 Jul 2020 11:53:56 -0400 Subject: [PATCH 02/18] Update starting.md --- docs/docs/manual/starting.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/docs/manual/starting.md b/docs/docs/manual/starting.md index abada4c4e..013e8fa43 100644 --- a/docs/docs/manual/starting.md +++ b/docs/docs/manual/starting.md @@ -164,9 +164,6 @@ You should create a project name at this stage. You can also supply tags to keep ## Import a project - -### Overview - Because OpenRefine only runs locally on your computer, you can’t have a project accessible to more than one person at the same time. The best way to collaborate with another person is to export and import projects that save all your changes, so that you can pick up where someone else left off. You can also [export projects](export.md) and import them to new computers of your own, such as for working on the same project from the office and from home. From 1a2c6ee16ab5827071a4e42bee1d3f1734fb681b Mon Sep 17 00:00:00 2001 From: allanaaa Date: Tue, 21 Jul 2020 17:11:49 -0400 Subject: [PATCH 03/18] Simplifying the database instructions And, because drafting is never done, tweaks to the installation section. --- docs/docs/manual/installing.md | 8 +++++--- docs/docs/manual/starting.md | 35 ++++++++-------------------------- 2 files changed, 13 insertions(+), 30 deletions(-) diff --git a/docs/docs/manual/installing.md b/docs/docs/manual/installing.md index e3d6a1553..c121c09de 100644 --- a/docs/docs/manual/installing.md +++ b/docs/docs/manual/installing.md @@ -166,7 +166,7 @@ It should show the path you set above. --- -### Install or upgrade +### Install or upgrade OpenRefine If you are upgrading an existing OpenRefine installation, you can delete the old program files and install the new files into the same space. Do not overwrite the files as some obsolete files may be left over unnecessarily. @@ -187,7 +187,7 @@ If you have extensions installed, do not delete the `webapp\extensions` folder w -Once you have downloaded the `.zip` file, and uncompress it into a folder where you wish to store program files (such as `D:\Program Files\OpenRefine`). +Once you have downloaded the `.zip` file, extract it into a folder where you wish to store program files (such as `D:\Program Files\OpenRefine`). You can right-click on `openrefine.exe` or `refine.bat` and pin one of those programs to your Start Menu or create shortcuts for easier access. @@ -367,11 +367,13 @@ You can access OpenRefine server logs from the terminal on Mac: * Ctrl+Click on "JavaAppLauncher" * Choose 'Open With' from menu, and select "Terminal" +--- + ---- + ## Increasing memory allocation diff --git a/docs/docs/manual/starting.md b/docs/docs/manual/starting.md index 013e8fa43..72e3b747d 100644 --- a/docs/docs/manual/starting.md +++ b/docs/docs/manual/starting.md @@ -78,42 +78,23 @@ This can also be useful if you would like to paste in a list of URLs, which you #### Database (SQL) -You may want to pull the latest dataset directly from an online database. This could include an online catalogue, a Wordpress or similar content management system, or a [digital repository or collection management system](https://bits.ashleyblewer.com/blog/2017/08/09/collection-management-system-collection/). +If you are an administrator or have SQL access to a database of information, you may want to pull the latest dataset directly from there. This could include an online catalogue, a content management system, or a digital repository or collection management system. + +There are some publicly-accessible databases that you may want to query, such as [one provided by Rfam ](https://docs.rfam.org/en/latest/database.html). The instructions provided by Rfam can help you understand how to connect to and query from any database. OpenRefine can connect to PostgreSQL, MySQL, MariaDB, and SQLite database systems. It will automatically populate the “Port” field based on which of these you choose, but you can manually edit this if needed. -If you have a downloaded database (`.db`) file, you can supply the path to the file on your computer directly in the “Database” field at the bottom of the form. You can leave the rest of the fields blank. +If you have a downloaded database (`.db`) file from an SQLite database, you can supply the path to the file on your computer directly in the “Database” field at the bottom of the form. You can leave the rest of the fields blank. To import data directly from a database online, you will need to do two things: - -* Add OpenRefine (running from your computer) to an account authorized to access your database -* Set up OpenRefine to access that database using that account +* Add OpenRefine (running from your computer’s IP address) to an account authorized to access your database +* Set up OpenRefine to access that database using that authorized account ![A screenshot of connecting to a database](img/databaseconnect.jpg "A screenshot of connecting to a database.") -Log in to your hosting provider. Get the database type (such as MySQL), database name, and the URL (either an IP address, such as `127.0.0.1`, or the domain that uses the database). Then look at the accounts authorized for access. You may wish to create a new account just for OpenRefine, or add OpenRefine to an existing account. - -Each host will have a slightly different method, but generally speaking: look for “accounts with access” to the database you wish to authorize, and within the settings for that account, look for “allowable hosts” or “access hosts.” - -In that list, add the IP address of your own computer, because that is where the OpenRefine access request will be coming from. You can find this easily, by clicking “Test” within OpenRefine once the rest of the information is filled out: OpenRefine will give you an error that looks like - -``` error:Access denied for user 'yourusername'@'123-45-67-89.yourISP.com' ``` - -Take your IP address from this error message and put that, with periods instead of hyphens, into the “allowable hosts” field on the account you’re trying to use. Add a wildcard to the end of your IP address (“123.45.67.89%”). Save that setting, and then test the connection again with OpenRefine. - -You can either connect just once and gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. - -If you’d like to save the connection, name your connection in a way you will recognize later. Click “Save” and it will appear in the “Saved Connections” list on the left. Now, click on the “...” ellipsis to the right of the connection you’ve saved, and click “Connect.” - -If your connection is successful, you will see a Query Editor. From here you can write an [SQL query](https://www.w3schools.com/sql/) to pull the specific data you need. - -If you need help, you may be able to find instructions from your hosting provider. Here are the guides from: - - - -* [Dreamhost](https://help.dreamhost.com/hc/en-us/articles/214883058-How-do-I-connect-to-my-database-using-a-third-party-program-) -* [GoDaddy](https://ca.godaddy.com/help/connect-remotely-to-a-mysql-database-in-my-linux-hosting-account-16103) +You can either connect just once and gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. To save it, name your connection in a way you will recognize later. Click “Save” and it will appear in the “Saved Connections” list on the left. Now, you can click on the “...” ellipsis to the right of the connection you’ve saved, and click “Connect.” +If your connection is successful, you will see a Query Editor. From here you can write an [SQL query](https://www.w3schools.com/sql/) to pull the specific data you need. OpenRefine will give you an error if you write a statement that tries to modify the source database in any way. #### Google Data From ec9c3bb2792c9c3ad0a9f6d0ffd7c178923e9e27 Mon Sep 17 00:00:00 2001 From: allanaaa Date: Tue, 21 Jul 2020 17:24:53 -0400 Subject: [PATCH 04/18] Update starting.md --- docs/docs/manual/starting.md | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/docs/docs/manual/starting.md b/docs/docs/manual/starting.md index 72e3b747d..b893f2278 100644 --- a/docs/docs/manual/starting.md +++ b/docs/docs/manual/starting.md @@ -8,7 +8,7 @@ sidebar_label: Starting a project OpenRefine doesn’t allow you to create a dataset from nothing - you can only start a project by importing in some existing data. -No matter where your data comes from, OpenRefine doesn’t modify your original data source. It copies all the information from your input, creates its own project file, and stores it in your [workspace directory](installing.md#set-where-data-is-stored). +No matter where your data comes from, OpenRefine doesn’t modify your original data source. It copies all the information from your input, creates its own project file, and stores it in your [workspace directory](installing#set-where-data-is-stored). The data and all of your edits are automatically saved inside the project file. When you’re finished modifying the data, you can export it back out into the file format of your choice. @@ -66,7 +66,7 @@ Type or paste the URL to the data file into the field provided. You can add as m If you supply two or more file URLs, OpenRefine will identify each one and ask you to choose which (or all) to load. -Do not use this form to load a Google Sheet by its link; use the Google Data form instead. +Do not use this form to load a Google Sheet by its link; use [the Google Data form instead](#google-data). #### Clipboard @@ -99,9 +99,6 @@ If your connection is successful, you will see a Query Editor. From here you can #### Google Data You have two ways to load in data from Google Sheets: - - - * A link to an accessible Google Sheet (that is, one with link-sharing turned on) * Selecting a Google Sheet in your Google Drive @@ -110,7 +107,7 @@ You have two ways to load in data from Google Sheets: You can import data from any Google Sheet that has link-sharing turned on. Paste in a URL that looks something like -```https://docs.google.com/spreadsheets/……….../edit?usp=sharing``` +```https://docs.google.com/spreadsheets/………/edit?usp=sharing``` This will only work with Sheets, not with any other Google Drive file that might have an available link. @@ -149,7 +146,7 @@ Because OpenRefine only runs locally on your computer, you can’t have a projec The best way to collaborate with another person is to export and import projects that save all your changes, so that you can pick up where someone else left off. You can also [export projects](export.md) and import them to new computers of your own, such as for working on the same project from the office and from home. -An exported project will include all of the [history](interface/projectscreen.md#history), so you can see (and undo) all the changes from the previous user. It is essentially a point-in-time snapshot of their work. OpenRefine only exports projects as `.tar.gz` files at this time. +An exported project will include all of the [history](running#history-undoredo), so you can see (and undo) all the changes from the previous user. It is essentially a point-in-time snapshot of their work. OpenRefine only exports projects as `.tar.gz` files at this time. ### Instructions @@ -195,8 +192,6 @@ You can only save and share facets and filters, not any other type of view. To s You can delete projects, which will erase the project files from the work directory on your computer. This is immediate and cannot be undone. - - Go to “Open Project” and find the project you want to delete. Click on the X to the left of the project name. There will be a confirmation dialog. @@ -204,4 +199,4 @@ Go to “Open Project” and find the project you want to delete. Click on the X You can find all of your raw project files in your work directory. They will be named according to the unique Project ID that OpenRefine has assigned them, which you can find on the “Open Project” screen, under the “About” button for each project. -You can point OpenRefine to use another work directory using [Preferences](running.md#preferences). +You can point OpenRefine to use another work directory using [Preferences](running#preferences). From e32c10be2e4092ec15743bf6eecf65409c838cea Mon Sep 17 00:00:00 2001 From: allanaaa Date: Wed, 22 Jul 2020 12:03:27 -0400 Subject: [PATCH 05/18] Removing images They're not useful. --- docs/docs/manual/starting.md | 11 ++--------- docs/static/img/databaseconnect.jpg | Bin 30632 -> 0 bytes docs/static/img/import.jpg | Bin 27021 -> 0 bytes 3 files changed, 2 insertions(+), 9 deletions(-) delete mode 100644 docs/static/img/databaseconnect.jpg delete mode 100644 docs/static/img/import.jpg diff --git a/docs/docs/manual/starting.md b/docs/docs/manual/starting.md index b893f2278..25419b6d7 100644 --- a/docs/docs/manual/starting.md +++ b/docs/docs/manual/starting.md @@ -80,7 +80,7 @@ This can also be useful if you would like to paste in a list of URLs, which you If you are an administrator or have SQL access to a database of information, you may want to pull the latest dataset directly from there. This could include an online catalogue, a content management system, or a digital repository or collection management system. -There are some publicly-accessible databases that you may want to query, such as [one provided by Rfam ](https://docs.rfam.org/en/latest/database.html). The instructions provided by Rfam can help you understand how to connect to and query from any database. +There are some publicly-accessible databases that you may want to query, such as [one provided by Rfam](https://docs.rfam.org/en/latest/database.html). The instructions provided by Rfam can help you understand how to connect to and query from any database. OpenRefine can connect to PostgreSQL, MySQL, MariaDB, and SQLite database systems. It will automatically populate the “Port” field based on which of these you choose, but you can manually edit this if needed. @@ -90,8 +90,6 @@ To import data directly from a database online, you will need to do two things: * Add OpenRefine (running from your computer’s IP address) to an account authorized to access your database * Set up OpenRefine to access that database using that authorized account -![A screenshot of connecting to a database](img/databaseconnect.jpg "A screenshot of connecting to a database.") - You can either connect just once and gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. To save it, name your connection in a way you will recognize later. Click “Save” and it will appear in the “Saved Connections” list on the left. Now, you can click on the “...” ellipsis to the right of the connection you’ve saved, and click “Connect.” If your connection is successful, you will see a Query Editor. From here you can write an [SQL query](https://www.w3schools.com/sql/) to pull the specific data you need. OpenRefine will give you an error if you write a statement that tries to modify the source database in any way. @@ -153,12 +151,7 @@ An exported project will include all of the [history](running#history-undoredo), Once someone has sent you a project archive file from their computer, you can save it anywhere, including your Downloads folder. -In the left-hand menu of the home screen, click “Import Project.” You will see the following screen: - -![A screenshot of the Import screen](img/import.jpg "A screenshot of the Import screen.") - - -Click “Browse…” and navigate to wherever you saved the file you were sent (for example, your Downloads folder). +In the left-hand menu of the home screen, click “Import Project.” Click “Browse…” and navigate to wherever you saved the file you were sent (for example, your Downloads folder). You can rename the project if you’d like - we recommend adding your name, a date, or a version number, if you’re planning to continue collaborating with another person (or working from multiple computers). diff --git a/docs/static/img/databaseconnect.jpg b/docs/static/img/databaseconnect.jpg deleted file mode 100644 index 0f776b316a828c80d8240c88565973caf76a597b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30632 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 diff --git a/docs/static/img/import.jpg b/docs/static/img/import.jpg deleted file mode 100644 index cf50e0d3d6ef44539b6807c8eb49ca0ac4e711e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27021 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%0AdIp(YT%u8%= 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 L|CO}Q!}R|HA7pHn From 3e5d75acaf9410652f04fcc9c3c1e66159bc2161 Mon Sep 17 00:00:00 2001 From: allanaaa Date: Wed, 22 Jul 2020 15:18:14 -0400 Subject: [PATCH 06/18] More database rephrasing Minor formatting, typos, language tweaks --- docs/docs/manual/starting.md | 46 ++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/docs/docs/manual/starting.md b/docs/docs/manual/starting.md index 25419b6d7..8c042c2a6 100644 --- a/docs/docs/manual/starting.md +++ b/docs/docs/manual/starting.md @@ -6,9 +6,9 @@ sidebar_label: Starting a project ## Overview -OpenRefine doesn’t allow you to create a dataset from nothing - you can only start a project by importing in some existing data. +An OpenRefine project is started by importing in some existing data - OpenRefine doesn’t allow you to create a dataset from nothing. -No matter where your data comes from, OpenRefine doesn’t modify your original data source. It copies all the information from your input, creates its own project file, and stores it in your [workspace directory](installing#set-where-data-is-stored). +No matter where your data comes from, OpenRefine doesn’t modify your original data source. It copies all the information from your input, creates its own project file, and stores it in your [workspace directory](installing#set-where-data-is-stored). The data and all of your edits are automatically saved inside the project file. When you’re finished modifying the data, you can export it back out into the file format of your choice. @@ -16,7 +16,7 @@ You can also receive and open other people’s projects, or send them yours, by ## Create project by importing data -When you start OpenRefine, you’ll be taken to the `Create Project` screen. You’ll see on the left side of the screen that your options are to: +When you start OpenRefine, you’ll be taken to the "Create Project" screen. You’ll see on the left side of the screen that your options are to: * import data from a file on your computer * import data from a link to the web @@ -31,16 +31,16 @@ From these sources, you can load any of the following file formats: * Fixed-width columns * JSON * XML -* ODF spreadsheet (ODS) -* Excel (XLS or XLSX) -* PC-Axis +* OpenDocument spreadsheet (ODS) +* Excel spreadsheet (XLS or XLSX) +* PC-Axis (PX) * MARC * RDF data (JSON-LD, N3, N-Triples, Turtle, RDF/XML) * Wikitext -More formats can be imported by [adding extensions that provide that functionality](https://openrefine.org/download.html). +More formats can be imported by [adding extensions to provide that functionality](https://openrefine.org/download.html). -If you supply two or more files for one project, the files’ rows will be loaded in order that you specify, and OpenRefine will create a column at the beginning of the dataset with the source URL or file name in it to help you identify where each row came from. If the files have matching columns, the data will load in each column; if not, the successive files will append all of their new columns to the end of the dataset: +If you supply two or more files for one project, the files’ rows will be loaded in the order that you specify, and OpenRefine will create a column at the beginning of the dataset with the source URL or file name in it to help you identify where each row came from. If the files have matching columns, the data will load in each column; if not, the successive files will append all of their new columns to the end of the dataset: |File|Fruit|Quantity|Berry|Berry source| |---|---|---|---|---| @@ -50,15 +50,15 @@ If you supply two or more files for one project, the files’ rows will be loade |berries.csv||2|Blueberry|Canada| -For whichever method you choose, when you click `Next >>` you will be given a preview and a chance to configure the way OpenRefine interprets the file. +For whichever method you choose, when you click "Next >>" you will be given a preview and a chance to configure the way OpenRefine interprets the file. ### Methods to import data #### Get data from this computer -Click on `Browse…` and select a file on your hard drive. All files will be shown, not just compatible ones. +Click on "Browse…" and select a file on your hard drive. All files will be shown, not just compatible ones. -If you import an archive file (something with the extension `.zip`, `.tar.gz`, `.tgz`, `.tar.bz2`, `.gz`, or `.bz2`), OpenRefine detects the most common file extension in it and loads all files with that extension into a single project. +If you import an archive file (something with the extension `.zip`, `.tar.gz`, `.tgz`, `.tar.bz2`, `.gz`, or `.bz2`), OpenRefine detects the files inside it, shows you a preview screen, and allows you to select which ones to load. This does not work with `.rar` files. #### Web Addresses (URLs) @@ -78,19 +78,19 @@ This can also be useful if you would like to paste in a list of URLs, which you #### Database (SQL) -If you are an administrator or have SQL access to a database of information, you may want to pull the latest dataset directly from there. This could include an online catalogue, a content management system, or a digital repository or collection management system. +If you are an administrator or have SQL access to a database of information, you may want to pull the latest dataset directly from there. This could include an online catalogue, a content management system, or a digital repository or collection management system. You can also load a `.db` file saved locally. -There are some publicly-accessible databases that you may want to query, such as [one provided by Rfam](https://docs.rfam.org/en/latest/database.html). The instructions provided by Rfam can help you understand how to connect to and query from any database. +There are some publicly-accessible databases you can query, such as [one provided by Rfam](https://docs.rfam.org/en/latest/database.html). The instructions provided by Rfam can help you understand how to connect to and query from any database. OpenRefine can connect to PostgreSQL, MySQL, MariaDB, and SQLite database systems. It will automatically populate the “Port” field based on which of these you choose, but you can manually edit this if needed. If you have a downloaded database (`.db`) file from an SQLite database, you can supply the path to the file on your computer directly in the “Database” field at the bottom of the form. You can leave the rest of the fields blank. -To import data directly from a database online, you will need to do two things: -* Add OpenRefine (running from your computer’s IP address) to an account authorized to access your database -* Set up OpenRefine to access that database using that authorized account +To import data directly from a database online, you will need the database type (such as MySQL), database name, and the hostname (either an IP address, such as `127.0.0.1`, or the domain that uses the database) and the port on the host. You will need an account authorized for access, and you may need to add OpenRefine (connecting from your computer’s IP) to the “allowable hosts” for that account. -You can either connect just once and gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. To save it, name your connection in a way you will recognize later. Click “Save” and it will appear in the “Saved Connections” list on the left. Now, you can click on the “...” ellipsis to the right of the connection you’ve saved, and click “Connect.” +You can either connect just once and gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. + +If you’d like to save the connection, name your connection in a way you will recognize later. Click “Save” and it will appear in the “Saved Connections” list on the left. From now on, you can click on the “...” ellipsis to the right of the connection you’ve saved, and click “Connect.” If your connection is successful, you will see a Query Editor. From here you can write an [SQL query](https://www.w3schools.com/sql/) to pull the specific data you need. OpenRefine will give you an error if you write a statement that tries to modify the source database in any way. @@ -107,8 +107,7 @@ You can import data from any Google Sheet that has link-sharing turned on. Paste ```https://docs.google.com/spreadsheets/………/edit?usp=sharing``` -This will only work with Sheets, not with any other Google Drive file that might have an available link. - +This will only work with Sheets, not with any other Google Drive file that might have an available link, including `.xls` and other valid files that are hosted in Google Drive. These links will also not work [by URL](#web-addresses-urls), so you need to download the files to your computer. ##### Google Sheet from Drive @@ -127,7 +126,7 @@ Once OpenRefine is ready to import the data, you will see a screen with “Confi At the bottom of the screen you will find options for telling OpenRefine how to process what it has found. You can tell it which row(s) to parse as column headers, as well as to ignore any number of rows at the top. You can also select a specific range of rows to work with, by discarding some rows at the top (excluding the header) and limiting the total number of rows it loads. -OpenRefine tries to guess how to parse your data based on the file extension. For example, .xml files are going to be parsed as though they are formatted in XML. An unknown file extension (or your clipboard copy-paste) is assumed to be either tab-separated or comma-separated. OpenRefine looks for a tab character; if one is found, it assumes you have imported tab-separated data. +OpenRefine tries to guess how to parse your data based on the file extension. For example, `.xml` files are going to be parsed as though they are formatted in XML. An unknown file extension (or your clipboard copy-paste) is assumed to be either tab-separated or comma-separated. OpenRefine looks for a tab character; if one is found, it assumes you have imported tab-separated data. If Google isn’t certain what format you imported, it will provide a list of possibilities under “Parse data as” and some settings. You can specify a custom separator now, or split columns later on in the project interface. @@ -142,11 +141,10 @@ You should create a project name at this stage. You can also supply tags to keep Because OpenRefine only runs locally on your computer, you can’t have a project accessible to more than one person at the same time. -The best way to collaborate with another person is to export and import projects that save all your changes, so that you can pick up where someone else left off. You can also [export projects](export.md) and import them to new computers of your own, such as for working on the same project from the office and from home. +The best way to collaborate with another person is to export and import projects that save all your changes, so that you can pick up where someone else left off. You can also [export projects](exporting.md) and import them to new computers of your own, such as for working on the same project from the office and from home. An exported project will include all of the [history](running#history-undoredo), so you can see (and undo) all the changes from the previous user. It is essentially a point-in-time snapshot of their work. OpenRefine only exports projects as `.tar.gz` files at this time. - ### Instructions Once someone has sent you a project archive file from their computer, you can save it anywhere, including your Downloads folder. @@ -185,11 +183,9 @@ You can only save and share facets and filters, not any other type of view. To s You can delete projects, which will erase the project files from the work directory on your computer. This is immediate and cannot be undone. -Go to “Open Project” and find the project you want to delete. Click on the X to the left of the project name. There will be a confirmation dialog. +Go to “Open Project” and find the project you want to delete. Click on the "X" to the left of the project name. There will be a confirmation dialog. ### Project files You can find all of your raw project files in your work directory. They will be named according to the unique Project ID that OpenRefine has assigned them, which you can find on the “Open Project” screen, under the “About” button for each project. - -You can point OpenRefine to use another work directory using [Preferences](running#preferences). From 49682f9c978a1776a588b2d234cd8cde1a48537e Mon Sep 17 00:00:00 2001 From: allanaaa Date: Mon, 27 Jul 2020 16:15:39 -0400 Subject: [PATCH 07/18] Update starting.md --- docs/docs/manual/starting.md | 37 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/docs/docs/manual/starting.md b/docs/docs/manual/starting.md index 8c042c2a6..d32061ce1 100644 --- a/docs/docs/manual/starting.md +++ b/docs/docs/manual/starting.md @@ -4,8 +4,6 @@ title: Starting a project sidebar_label: Starting a project --- -## Overview - An OpenRefine project is started by importing in some existing data - OpenRefine doesn’t allow you to create a dataset from nothing. No matter where your data comes from, OpenRefine doesn’t modify your original data source. It copies all the information from your input, creates its own project file, and stores it in your [workspace directory](installing#set-where-data-is-stored). @@ -16,7 +14,7 @@ You can also receive and open other people’s projects, or send them yours, by ## Create project by importing data -When you start OpenRefine, you’ll be taken to the "Create Project" screen. You’ll see on the left side of the screen that your options are to: +When you start OpenRefine, you’ll be taken to the “Create Project” screen. You’ll see on the left side of the screen that your options are to: * import data from a file on your computer * import data from a link to the web @@ -52,15 +50,15 @@ If you supply two or more files for one project, the files’ rows will be loade For whichever method you choose, when you click "Next >>" you will be given a preview and a chance to configure the way OpenRefine interprets the file. -### Methods to import data +## Methods to import data -#### Get data from this computer +### Get data from this computer Click on "Browse…" and select a file on your hard drive. All files will be shown, not just compatible ones. If you import an archive file (something with the extension `.zip`, `.tar.gz`, `.tgz`, `.tar.bz2`, `.gz`, or `.bz2`), OpenRefine detects the files inside it, shows you a preview screen, and allows you to select which ones to load. This does not work with `.rar` files. -#### Web Addresses (URLs) +### Web Addresses (URLs) Type or paste the URL to the data file into the field provided. You can add as many fields as you want. OpenRefine will download the file and preview it for you. @@ -68,7 +66,7 @@ If you supply two or more file URLs, OpenRefine will identify each one and ask y Do not use this form to load a Google Sheet by its link; use [the Google Data form instead](#google-data). -#### Clipboard +### Clipboard You can copy and paste in data from anywhere. OpenRefine will recognize comma-separated, tab-separated, or table-formatted information copied from sources such as word-processing documents, spreadsheets, and tables in PDFs. You can also just paste in a list of items that you want to turn into multi-column rows. OpenRefine recognizes each new text line as a row. @@ -76,9 +74,9 @@ This can be useful if you want to pre-select a specific number of rows from your This can also be useful if you would like to paste in a list of URLs, which you can use later to fetch the data online and build columns with. -#### Database (SQL) +### Database (SQL) -If you are an administrator or have SQL access to a database of information, you may want to pull the latest dataset directly from there. This could include an online catalogue, a content management system, or a digital repository or collection management system. You can also load a `.db` file saved locally. +If you are an administrator or have SQL access to a database of information, you may want to pull the latest dataset directly from there. This could include an online catalogue, a content management system, or a digital repository or collection management system. You can also load a `.db` file saved locally. You will need to use an SQL query to import your intended data. There are some publicly-accessible databases you can query, such as [one provided by Rfam](https://docs.rfam.org/en/latest/database.html). The instructions provided by Rfam can help you understand how to connect to and query from any database. @@ -86,22 +84,22 @@ OpenRefine can connect to PostgreSQL, MySQL, MariaDB, and SQLite database system If you have a downloaded database (`.db`) file from an SQLite database, you can supply the path to the file on your computer directly in the “Database” field at the bottom of the form. You can leave the rest of the fields blank. -To import data directly from a database online, you will need the database type (such as MySQL), database name, and the hostname (either an IP address, such as `127.0.0.1`, or the domain that uses the database) and the port on the host. You will need an account authorized for access, and you may need to add OpenRefine (connecting from your computer’s IP) to the “allowable hosts” for that account. +To import data directly from a database, you will need the database type (such as MySQL), database name, the hostname (either an IP address or the domain that hosts the database), and the port on the host. You will need an account authorized for access, and you may need to add OpenRefine's IP address or host to the “allowable hosts” for that account. You can find that information by pressing “Test” and getting the IP from the error message that results. -You can either connect just once and gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. +You can either connect just once to gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. If you’d like to save the connection, name your connection in a way you will recognize later. Click “Save” and it will appear in the “Saved Connections” list on the left. From now on, you can click on the “...” ellipsis to the right of the connection you’ve saved, and click “Connect.” If your connection is successful, you will see a Query Editor. From here you can write an [SQL query](https://www.w3schools.com/sql/) to pull the specific data you need. OpenRefine will give you an error if you write a statement that tries to modify the source database in any way. -#### Google Data +### Google Data You have two ways to load in data from Google Sheets: * A link to an accessible Google Sheet (that is, one with link-sharing turned on) * Selecting a Google Sheet in your Google Drive -##### Google Sheet by URL +#### Google Sheet by URL You can import data from any Google Sheet that has link-sharing turned on. Paste in a URL that looks something like @@ -109,7 +107,7 @@ You can import data from any Google Sheet that has link-sharing turned on. Paste This will only work with Sheets, not with any other Google Drive file that might have an available link, including `.xls` and other valid files that are hosted in Google Drive. These links will also not work [by URL](#web-addresses-urls), so you need to download the files to your computer. -##### Google Sheet from Drive +#### Google Sheet from Drive You can authorize OpenRefine to access your Google Drive data and import data from any Google Sheet it finds there. This will include Sheets that belong to you and Sheets that are shared with you, as well as Sheets that are in your trash. @@ -120,7 +118,7 @@ OpenRefine will generate a list of all Sheets it finds, with the most recently m When you click “Preview” the Sheet will open in a new browser tab. When you click the Sheet title, OpenRefine will begin to process the data. -### Previewing the project +## Project preview Once OpenRefine is ready to import the data, you will see a screen with “Configure Parsing Options” at the top. You’ll see a preview of the first 100 rows and all identified columns. @@ -128,7 +126,7 @@ At the bottom of the screen you will find options for telling OpenRefine how to OpenRefine tries to guess how to parse your data based on the file extension. For example, `.xml` files are going to be parsed as though they are formatted in XML. An unknown file extension (or your clipboard copy-paste) is assumed to be either tab-separated or comma-separated. OpenRefine looks for a tab character; if one is found, it assumes you have imported tab-separated data. -If Google isn’t certain what format you imported, it will provide a list of possibilities under “Parse data as” and some settings. You can specify a custom separator now, or split columns later on in the project interface. +If OpenRefine isn’t certain what format you imported, it will provide a list of possibilities under “Parse data as” and some settings. You can specify a custom separator now, or split columns later on in the project interface. If you imported a spreadsheet with multiple worksheets, they will be listed along with the number of rows they contain. You can only select data from one worksheet. @@ -169,7 +167,6 @@ You may have multiple projects from the same dataset, or multiple versions from You can name a project when you create it or import it, and you can rename a project by opening it and clicking on the project name at the top of the screen. - ### Autosaving OpenRefine saves all of your actions (everything you can see in the Undo/Redo panel). That includes flagging and starring rows. @@ -178,14 +175,12 @@ It doesn’t, however, save your facets, filters, or any kind of “view” you You can only save and share facets and filters, not any other type of view. To save current facets and filters, click “Permalink.” The project will reload with a different URL, which you can then copy and save elsewhere. This permalink will save both the facets and filters you’ve set, and the settings for each one (such as sorting by count rather than by name). - ### Deleting projects You can delete projects, which will erase the project files from the work directory on your computer. This is immediate and cannot be undone. -Go to “Open Project” and find the project you want to delete. Click on the "X" to the left of the project name. There will be a confirmation dialog. - +Go to “Open Project” and find the project you want to delete. Click on the “X” to the left of the project name. There will be a confirmation dialog. ### Project files -You can find all of your raw project files in your work directory. They will be named according to the unique Project ID that OpenRefine has assigned them, which you can find on the “Open Project” screen, under the “About” button for each project. +You can find all of your raw project files in your work directory. They will be named according to the unique Project ID that OpenRefine has assigned them, which you can find on the “Open Project” screen, under the “About” button for each project. \ No newline at end of file From 573744f6fe504c6653c0ff72203d65ab6959482d Mon Sep 17 00:00:00 2001 From: allanaaa Date: Mon, 20 Jul 2020 11:49:15 -0400 Subject: [PATCH 08/18] Update starting.md I am not at all clear on how well GitHub for Windows will handle multiple PRs pointing to the same work directory, but let's see what happens. --- docs/docs/manual/starting.md | 119 ++++++++++++++++++++++++----------- 1 file changed, 81 insertions(+), 38 deletions(-) diff --git a/docs/docs/manual/starting.md b/docs/docs/manual/starting.md index d32061ce1..abada4c4e 100644 --- a/docs/docs/manual/starting.md +++ b/docs/docs/manual/starting.md @@ -4,9 +4,11 @@ title: Starting a project sidebar_label: Starting a project --- -An OpenRefine project is started by importing in some existing data - OpenRefine doesn’t allow you to create a dataset from nothing. +## Overview -No matter where your data comes from, OpenRefine doesn’t modify your original data source. It copies all the information from your input, creates its own project file, and stores it in your [workspace directory](installing#set-where-data-is-stored). +OpenRefine doesn’t allow you to create a dataset from nothing - you can only start a project by importing in some existing data. + +No matter where your data comes from, OpenRefine doesn’t modify your original data source. It copies all the information from your input, creates its own project file, and stores it in your [workspace directory](installing.md#set-where-data-is-stored). The data and all of your edits are automatically saved inside the project file. When you’re finished modifying the data, you can export it back out into the file format of your choice. @@ -14,7 +16,7 @@ You can also receive and open other people’s projects, or send them yours, by ## Create project by importing data -When you start OpenRefine, you’ll be taken to the “Create Project” screen. You’ll see on the left side of the screen that your options are to: +When you start OpenRefine, you’ll be taken to the `Create Project` screen. You’ll see on the left side of the screen that your options are to: * import data from a file on your computer * import data from a link to the web @@ -29,16 +31,16 @@ From these sources, you can load any of the following file formats: * Fixed-width columns * JSON * XML -* OpenDocument spreadsheet (ODS) -* Excel spreadsheet (XLS or XLSX) -* PC-Axis (PX) +* ODF spreadsheet (ODS) +* Excel (XLS or XLSX) +* PC-Axis * MARC * RDF data (JSON-LD, N3, N-Triples, Turtle, RDF/XML) * Wikitext -More formats can be imported by [adding extensions to provide that functionality](https://openrefine.org/download.html). +More formats can be imported by [adding extensions that provide that functionality](https://openrefine.org/download.html). -If you supply two or more files for one project, the files’ rows will be loaded in the order that you specify, and OpenRefine will create a column at the beginning of the dataset with the source URL or file name in it to help you identify where each row came from. If the files have matching columns, the data will load in each column; if not, the successive files will append all of their new columns to the end of the dataset: +If you supply two or more files for one project, the files’ rows will be loaded in order that you specify, and OpenRefine will create a column at the beginning of the dataset with the source URL or file name in it to help you identify where each row came from. If the files have matching columns, the data will load in each column; if not, the successive files will append all of their new columns to the end of the dataset: |File|Fruit|Quantity|Berry|Berry source| |---|---|---|---|---| @@ -48,25 +50,25 @@ If you supply two or more files for one project, the files’ rows will be loade |berries.csv||2|Blueberry|Canada| -For whichever method you choose, when you click "Next >>" you will be given a preview and a chance to configure the way OpenRefine interprets the file. +For whichever method you choose, when you click `Next >>` you will be given a preview and a chance to configure the way OpenRefine interprets the file. -## Methods to import data +### Methods to import data -### Get data from this computer +#### Get data from this computer -Click on "Browse…" and select a file on your hard drive. All files will be shown, not just compatible ones. +Click on `Browse…` and select a file on your hard drive. All files will be shown, not just compatible ones. -If you import an archive file (something with the extension `.zip`, `.tar.gz`, `.tgz`, `.tar.bz2`, `.gz`, or `.bz2`), OpenRefine detects the files inside it, shows you a preview screen, and allows you to select which ones to load. This does not work with `.rar` files. +If you import an archive file (something with the extension `.zip`, `.tar.gz`, `.tgz`, `.tar.bz2`, `.gz`, or `.bz2`), OpenRefine detects the most common file extension in it and loads all files with that extension into a single project. -### Web Addresses (URLs) +#### Web Addresses (URLs) Type or paste the URL to the data file into the field provided. You can add as many fields as you want. OpenRefine will download the file and preview it for you. If you supply two or more file URLs, OpenRefine will identify each one and ask you to choose which (or all) to load. -Do not use this form to load a Google Sheet by its link; use [the Google Data form instead](#google-data). +Do not use this form to load a Google Sheet by its link; use the Google Data form instead. -### Clipboard +#### Clipboard You can copy and paste in data from anywhere. OpenRefine will recognize comma-separated, tab-separated, or table-formatted information copied from sources such as word-processing documents, spreadsheets, and tables in PDFs. You can also just paste in a list of items that you want to turn into multi-column rows. OpenRefine recognizes each new text line as a row. @@ -74,40 +76,65 @@ This can be useful if you want to pre-select a specific number of rows from your This can also be useful if you would like to paste in a list of URLs, which you can use later to fetch the data online and build columns with. -### Database (SQL) +#### Database (SQL) -If you are an administrator or have SQL access to a database of information, you may want to pull the latest dataset directly from there. This could include an online catalogue, a content management system, or a digital repository or collection management system. You can also load a `.db` file saved locally. You will need to use an SQL query to import your intended data. - -There are some publicly-accessible databases you can query, such as [one provided by Rfam](https://docs.rfam.org/en/latest/database.html). The instructions provided by Rfam can help you understand how to connect to and query from any database. +You may want to pull the latest dataset directly from an online database. This could include an online catalogue, a Wordpress or similar content management system, or a [digital repository or collection management system](https://bits.ashleyblewer.com/blog/2017/08/09/collection-management-system-collection/). OpenRefine can connect to PostgreSQL, MySQL, MariaDB, and SQLite database systems. It will automatically populate the “Port” field based on which of these you choose, but you can manually edit this if needed. -If you have a downloaded database (`.db`) file from an SQLite database, you can supply the path to the file on your computer directly in the “Database” field at the bottom of the form. You can leave the rest of the fields blank. +If you have a downloaded database (`.db`) file, you can supply the path to the file on your computer directly in the “Database” field at the bottom of the form. You can leave the rest of the fields blank. -To import data directly from a database, you will need the database type (such as MySQL), database name, the hostname (either an IP address or the domain that hosts the database), and the port on the host. You will need an account authorized for access, and you may need to add OpenRefine's IP address or host to the “allowable hosts” for that account. You can find that information by pressing “Test” and getting the IP from the error message that results. +To import data directly from a database online, you will need to do two things: -You can either connect just once to gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. +* Add OpenRefine (running from your computer) to an account authorized to access your database +* Set up OpenRefine to access that database using that account -If you’d like to save the connection, name your connection in a way you will recognize later. Click “Save” and it will appear in the “Saved Connections” list on the left. From now on, you can click on the “...” ellipsis to the right of the connection you’ve saved, and click “Connect.” +![A screenshot of connecting to a database](img/databaseconnect.jpg "A screenshot of connecting to a database.") -If your connection is successful, you will see a Query Editor. From here you can write an [SQL query](https://www.w3schools.com/sql/) to pull the specific data you need. OpenRefine will give you an error if you write a statement that tries to modify the source database in any way. +Log in to your hosting provider. Get the database type (such as MySQL), database name, and the URL (either an IP address, such as `127.0.0.1`, or the domain that uses the database). Then look at the accounts authorized for access. You may wish to create a new account just for OpenRefine, or add OpenRefine to an existing account. -### Google Data +Each host will have a slightly different method, but generally speaking: look for “accounts with access” to the database you wish to authorize, and within the settings for that account, look for “allowable hosts” or “access hosts.” + +In that list, add the IP address of your own computer, because that is where the OpenRefine access request will be coming from. You can find this easily, by clicking “Test” within OpenRefine once the rest of the information is filled out: OpenRefine will give you an error that looks like + +``` error:Access denied for user 'yourusername'@'123-45-67-89.yourISP.com' ``` + +Take your IP address from this error message and put that, with periods instead of hyphens, into the “allowable hosts” field on the account you’re trying to use. Add a wildcard to the end of your IP address (“123.45.67.89%”). Save that setting, and then test the connection again with OpenRefine. + +You can either connect just once and gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. + +If you’d like to save the connection, name your connection in a way you will recognize later. Click “Save” and it will appear in the “Saved Connections” list on the left. Now, click on the “...” ellipsis to the right of the connection you’ve saved, and click “Connect.” + +If your connection is successful, you will see a Query Editor. From here you can write an [SQL query](https://www.w3schools.com/sql/) to pull the specific data you need. + +If you need help, you may be able to find instructions from your hosting provider. Here are the guides from: + + + +* [Dreamhost](https://help.dreamhost.com/hc/en-us/articles/214883058-How-do-I-connect-to-my-database-using-a-third-party-program-) +* [GoDaddy](https://ca.godaddy.com/help/connect-remotely-to-a-mysql-database-in-my-linux-hosting-account-16103) + + +#### Google Data You have two ways to load in data from Google Sheets: + + + * A link to an accessible Google Sheet (that is, one with link-sharing turned on) * Selecting a Google Sheet in your Google Drive -#### Google Sheet by URL +##### Google Sheet by URL You can import data from any Google Sheet that has link-sharing turned on. Paste in a URL that looks something like -```https://docs.google.com/spreadsheets/………/edit?usp=sharing``` +```https://docs.google.com/spreadsheets/……….../edit?usp=sharing``` -This will only work with Sheets, not with any other Google Drive file that might have an available link, including `.xls` and other valid files that are hosted in Google Drive. These links will also not work [by URL](#web-addresses-urls), so you need to download the files to your computer. +This will only work with Sheets, not with any other Google Drive file that might have an available link. -#### Google Sheet from Drive + +##### Google Sheet from Drive You can authorize OpenRefine to access your Google Drive data and import data from any Google Sheet it finds there. This will include Sheets that belong to you and Sheets that are shared with you, as well as Sheets that are in your trash. @@ -118,15 +145,15 @@ OpenRefine will generate a list of all Sheets it finds, with the most recently m When you click “Preview” the Sheet will open in a new browser tab. When you click the Sheet title, OpenRefine will begin to process the data. -## Project preview +### Previewing the project Once OpenRefine is ready to import the data, you will see a screen with “Configure Parsing Options” at the top. You’ll see a preview of the first 100 rows and all identified columns. At the bottom of the screen you will find options for telling OpenRefine how to process what it has found. You can tell it which row(s) to parse as column headers, as well as to ignore any number of rows at the top. You can also select a specific range of rows to work with, by discarding some rows at the top (excluding the header) and limiting the total number of rows it loads. -OpenRefine tries to guess how to parse your data based on the file extension. For example, `.xml` files are going to be parsed as though they are formatted in XML. An unknown file extension (or your clipboard copy-paste) is assumed to be either tab-separated or comma-separated. OpenRefine looks for a tab character; if one is found, it assumes you have imported tab-separated data. +OpenRefine tries to guess how to parse your data based on the file extension. For example, .xml files are going to be parsed as though they are formatted in XML. An unknown file extension (or your clipboard copy-paste) is assumed to be either tab-separated or comma-separated. OpenRefine looks for a tab character; if one is found, it assumes you have imported tab-separated data. -If OpenRefine isn’t certain what format you imported, it will provide a list of possibilities under “Parse data as” and some settings. You can specify a custom separator now, or split columns later on in the project interface. +If Google isn’t certain what format you imported, it will provide a list of possibilities under “Parse data as” and some settings. You can specify a custom separator now, or split columns later on in the project interface. If you imported a spreadsheet with multiple worksheets, they will be listed along with the number of rows they contain. You can only select data from one worksheet. @@ -137,17 +164,26 @@ You should create a project name at this stage. You can also supply tags to keep ## Import a project + +### Overview + Because OpenRefine only runs locally on your computer, you can’t have a project accessible to more than one person at the same time. -The best way to collaborate with another person is to export and import projects that save all your changes, so that you can pick up where someone else left off. You can also [export projects](exporting.md) and import them to new computers of your own, such as for working on the same project from the office and from home. +The best way to collaborate with another person is to export and import projects that save all your changes, so that you can pick up where someone else left off. You can also [export projects](export.md) and import them to new computers of your own, such as for working on the same project from the office and from home. + +An exported project will include all of the [history](interface/projectscreen.md#history), so you can see (and undo) all the changes from the previous user. It is essentially a point-in-time snapshot of their work. OpenRefine only exports projects as `.tar.gz` files at this time. -An exported project will include all of the [history](running#history-undoredo), so you can see (and undo) all the changes from the previous user. It is essentially a point-in-time snapshot of their work. OpenRefine only exports projects as `.tar.gz` files at this time. ### Instructions Once someone has sent you a project archive file from their computer, you can save it anywhere, including your Downloads folder. -In the left-hand menu of the home screen, click “Import Project.” Click “Browse…” and navigate to wherever you saved the file you were sent (for example, your Downloads folder). +In the left-hand menu of the home screen, click “Import Project.” You will see the following screen: + +![A screenshot of the Import screen](img/import.jpg "A screenshot of the Import screen.") + + +Click “Browse…” and navigate to wherever you saved the file you were sent (for example, your Downloads folder). You can rename the project if you’d like - we recommend adding your name, a date, or a version number, if you’re planning to continue collaborating with another person (or working from multiple computers). @@ -167,6 +203,7 @@ You may have multiple projects from the same dataset, or multiple versions from You can name a project when you create it or import it, and you can rename a project by opening it and clicking on the project name at the top of the screen. + ### Autosaving OpenRefine saves all of your actions (everything you can see in the Undo/Redo panel). That includes flagging and starring rows. @@ -175,12 +212,18 @@ It doesn’t, however, save your facets, filters, or any kind of “view” you You can only save and share facets and filters, not any other type of view. To save current facets and filters, click “Permalink.” The project will reload with a different URL, which you can then copy and save elsewhere. This permalink will save both the facets and filters you’ve set, and the settings for each one (such as sorting by count rather than by name). + ### Deleting projects You can delete projects, which will erase the project files from the work directory on your computer. This is immediate and cannot be undone. -Go to “Open Project” and find the project you want to delete. Click on the “X” to the left of the project name. There will be a confirmation dialog. + + +Go to “Open Project” and find the project you want to delete. Click on the X to the left of the project name. There will be a confirmation dialog. + ### Project files -You can find all of your raw project files in your work directory. They will be named according to the unique Project ID that OpenRefine has assigned them, which you can find on the “Open Project” screen, under the “About” button for each project. \ No newline at end of file +You can find all of your raw project files in your work directory. They will be named according to the unique Project ID that OpenRefine has assigned them, which you can find on the “Open Project” screen, under the “About” button for each project. + +You can point OpenRefine to use another work directory using [Preferences](running.md#preferences). From cebf1380d8d079f2f1a3a4590178d74300e88a6f Mon Sep 17 00:00:00 2001 From: allanaaa Date: Tue, 21 Jul 2020 11:53:56 -0400 Subject: [PATCH 09/18] Update starting.md --- docs/docs/manual/starting.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/docs/manual/starting.md b/docs/docs/manual/starting.md index abada4c4e..013e8fa43 100644 --- a/docs/docs/manual/starting.md +++ b/docs/docs/manual/starting.md @@ -164,9 +164,6 @@ You should create a project name at this stage. You can also supply tags to keep ## Import a project - -### Overview - Because OpenRefine only runs locally on your computer, you can’t have a project accessible to more than one person at the same time. The best way to collaborate with another person is to export and import projects that save all your changes, so that you can pick up where someone else left off. You can also [export projects](export.md) and import them to new computers of your own, such as for working on the same project from the office and from home. From 476a8f7d8deb9f3d22f21cfd7a32a6e4469ea227 Mon Sep 17 00:00:00 2001 From: allanaaa Date: Tue, 21 Jul 2020 17:11:49 -0400 Subject: [PATCH 10/18] Simplifying the database instructions And, because drafting is never done, tweaks to the installation section. --- docs/docs/manual/starting.md | 35 ++++++++--------------------------- 1 file changed, 8 insertions(+), 27 deletions(-) diff --git a/docs/docs/manual/starting.md b/docs/docs/manual/starting.md index 013e8fa43..72e3b747d 100644 --- a/docs/docs/manual/starting.md +++ b/docs/docs/manual/starting.md @@ -78,42 +78,23 @@ This can also be useful if you would like to paste in a list of URLs, which you #### Database (SQL) -You may want to pull the latest dataset directly from an online database. This could include an online catalogue, a Wordpress or similar content management system, or a [digital repository or collection management system](https://bits.ashleyblewer.com/blog/2017/08/09/collection-management-system-collection/). +If you are an administrator or have SQL access to a database of information, you may want to pull the latest dataset directly from there. This could include an online catalogue, a content management system, or a digital repository or collection management system. + +There are some publicly-accessible databases that you may want to query, such as [one provided by Rfam ](https://docs.rfam.org/en/latest/database.html). The instructions provided by Rfam can help you understand how to connect to and query from any database. OpenRefine can connect to PostgreSQL, MySQL, MariaDB, and SQLite database systems. It will automatically populate the “Port” field based on which of these you choose, but you can manually edit this if needed. -If you have a downloaded database (`.db`) file, you can supply the path to the file on your computer directly in the “Database” field at the bottom of the form. You can leave the rest of the fields blank. +If you have a downloaded database (`.db`) file from an SQLite database, you can supply the path to the file on your computer directly in the “Database” field at the bottom of the form. You can leave the rest of the fields blank. To import data directly from a database online, you will need to do two things: - -* Add OpenRefine (running from your computer) to an account authorized to access your database -* Set up OpenRefine to access that database using that account +* Add OpenRefine (running from your computer’s IP address) to an account authorized to access your database +* Set up OpenRefine to access that database using that authorized account ![A screenshot of connecting to a database](img/databaseconnect.jpg "A screenshot of connecting to a database.") -Log in to your hosting provider. Get the database type (such as MySQL), database name, and the URL (either an IP address, such as `127.0.0.1`, or the domain that uses the database). Then look at the accounts authorized for access. You may wish to create a new account just for OpenRefine, or add OpenRefine to an existing account. - -Each host will have a slightly different method, but generally speaking: look for “accounts with access” to the database you wish to authorize, and within the settings for that account, look for “allowable hosts” or “access hosts.” - -In that list, add the IP address of your own computer, because that is where the OpenRefine access request will be coming from. You can find this easily, by clicking “Test” within OpenRefine once the rest of the information is filled out: OpenRefine will give you an error that looks like - -``` error:Access denied for user 'yourusername'@'123-45-67-89.yourISP.com' ``` - -Take your IP address from this error message and put that, with periods instead of hyphens, into the “allowable hosts” field on the account you’re trying to use. Add a wildcard to the end of your IP address (“123.45.67.89%”). Save that setting, and then test the connection again with OpenRefine. - -You can either connect just once and gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. - -If you’d like to save the connection, name your connection in a way you will recognize later. Click “Save” and it will appear in the “Saved Connections” list on the left. Now, click on the “...” ellipsis to the right of the connection you’ve saved, and click “Connect.” - -If your connection is successful, you will see a Query Editor. From here you can write an [SQL query](https://www.w3schools.com/sql/) to pull the specific data you need. - -If you need help, you may be able to find instructions from your hosting provider. Here are the guides from: - - - -* [Dreamhost](https://help.dreamhost.com/hc/en-us/articles/214883058-How-do-I-connect-to-my-database-using-a-third-party-program-) -* [GoDaddy](https://ca.godaddy.com/help/connect-remotely-to-a-mysql-database-in-my-linux-hosting-account-16103) +You can either connect just once and gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. To save it, name your connection in a way you will recognize later. Click “Save” and it will appear in the “Saved Connections” list on the left. Now, you can click on the “...” ellipsis to the right of the connection you’ve saved, and click “Connect.” +If your connection is successful, you will see a Query Editor. From here you can write an [SQL query](https://www.w3schools.com/sql/) to pull the specific data you need. OpenRefine will give you an error if you write a statement that tries to modify the source database in any way. #### Google Data From ce722b557eaa67aa6b44ed6a53e4c31a1e0aa83c Mon Sep 17 00:00:00 2001 From: allanaaa Date: Mon, 20 Jul 2020 11:49:15 -0400 Subject: [PATCH 11/18] Update starting.md I am not at all clear on how well GitHub for Windows will handle multiple PRs pointing to the same work directory, but let's see what happens. --- docs/docs/manual/starting.md | 38 ++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/docs/docs/manual/starting.md b/docs/docs/manual/starting.md index 72e3b747d..abada4c4e 100644 --- a/docs/docs/manual/starting.md +++ b/docs/docs/manual/starting.md @@ -78,23 +78,42 @@ This can also be useful if you would like to paste in a list of URLs, which you #### Database (SQL) -If you are an administrator or have SQL access to a database of information, you may want to pull the latest dataset directly from there. This could include an online catalogue, a content management system, or a digital repository or collection management system. - -There are some publicly-accessible databases that you may want to query, such as [one provided by Rfam ](https://docs.rfam.org/en/latest/database.html). The instructions provided by Rfam can help you understand how to connect to and query from any database. +You may want to pull the latest dataset directly from an online database. This could include an online catalogue, a Wordpress or similar content management system, or a [digital repository or collection management system](https://bits.ashleyblewer.com/blog/2017/08/09/collection-management-system-collection/). OpenRefine can connect to PostgreSQL, MySQL, MariaDB, and SQLite database systems. It will automatically populate the “Port” field based on which of these you choose, but you can manually edit this if needed. -If you have a downloaded database (`.db`) file from an SQLite database, you can supply the path to the file on your computer directly in the “Database” field at the bottom of the form. You can leave the rest of the fields blank. +If you have a downloaded database (`.db`) file, you can supply the path to the file on your computer directly in the “Database” field at the bottom of the form. You can leave the rest of the fields blank. To import data directly from a database online, you will need to do two things: -* Add OpenRefine (running from your computer’s IP address) to an account authorized to access your database -* Set up OpenRefine to access that database using that authorized account + +* Add OpenRefine (running from your computer) to an account authorized to access your database +* Set up OpenRefine to access that database using that account ![A screenshot of connecting to a database](img/databaseconnect.jpg "A screenshot of connecting to a database.") -You can either connect just once and gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. To save it, name your connection in a way you will recognize later. Click “Save” and it will appear in the “Saved Connections” list on the left. Now, you can click on the “...” ellipsis to the right of the connection you’ve saved, and click “Connect.” +Log in to your hosting provider. Get the database type (such as MySQL), database name, and the URL (either an IP address, such as `127.0.0.1`, or the domain that uses the database). Then look at the accounts authorized for access. You may wish to create a new account just for OpenRefine, or add OpenRefine to an existing account. + +Each host will have a slightly different method, but generally speaking: look for “accounts with access” to the database you wish to authorize, and within the settings for that account, look for “allowable hosts” or “access hosts.” + +In that list, add the IP address of your own computer, because that is where the OpenRefine access request will be coming from. You can find this easily, by clicking “Test” within OpenRefine once the rest of the information is filled out: OpenRefine will give you an error that looks like + +``` error:Access denied for user 'yourusername'@'123-45-67-89.yourISP.com' ``` + +Take your IP address from this error message and put that, with periods instead of hyphens, into the “allowable hosts” field on the account you’re trying to use. Add a wildcard to the end of your IP address (“123.45.67.89%”). Save that setting, and then test the connection again with OpenRefine. + +You can either connect just once and gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. + +If you’d like to save the connection, name your connection in a way you will recognize later. Click “Save” and it will appear in the “Saved Connections” list on the left. Now, click on the “...” ellipsis to the right of the connection you’ve saved, and click “Connect.” + +If your connection is successful, you will see a Query Editor. From here you can write an [SQL query](https://www.w3schools.com/sql/) to pull the specific data you need. + +If you need help, you may be able to find instructions from your hosting provider. Here are the guides from: + + + +* [Dreamhost](https://help.dreamhost.com/hc/en-us/articles/214883058-How-do-I-connect-to-my-database-using-a-third-party-program-) +* [GoDaddy](https://ca.godaddy.com/help/connect-remotely-to-a-mysql-database-in-my-linux-hosting-account-16103) -If your connection is successful, you will see a Query Editor. From here you can write an [SQL query](https://www.w3schools.com/sql/) to pull the specific data you need. OpenRefine will give you an error if you write a statement that tries to modify the source database in any way. #### Google Data @@ -145,6 +164,9 @@ You should create a project name at this stage. You can also supply tags to keep ## Import a project + +### Overview + Because OpenRefine only runs locally on your computer, you can’t have a project accessible to more than one person at the same time. The best way to collaborate with another person is to export and import projects that save all your changes, so that you can pick up where someone else left off. You can also [export projects](export.md) and import them to new computers of your own, such as for working on the same project from the office and from home. From 8a57b4c0ee4a27b4424869e98da20f2d51ce276a Mon Sep 17 00:00:00 2001 From: allanaaa Date: Tue, 21 Jul 2020 11:53:56 -0400 Subject: [PATCH 12/18] Update starting.md --- docs/docs/manual/starting.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/docs/manual/starting.md b/docs/docs/manual/starting.md index abada4c4e..013e8fa43 100644 --- a/docs/docs/manual/starting.md +++ b/docs/docs/manual/starting.md @@ -164,9 +164,6 @@ You should create a project name at this stage. You can also supply tags to keep ## Import a project - -### Overview - Because OpenRefine only runs locally on your computer, you can’t have a project accessible to more than one person at the same time. The best way to collaborate with another person is to export and import projects that save all your changes, so that you can pick up where someone else left off. You can also [export projects](export.md) and import them to new computers of your own, such as for working on the same project from the office and from home. From 019c067706648c393fe0f3cc9e5ba40322438c67 Mon Sep 17 00:00:00 2001 From: allanaaa Date: Tue, 21 Jul 2020 17:24:53 -0400 Subject: [PATCH 13/18] Update starting.md --- docs/docs/manual/starting.md | 50 ++++++++++-------------------------- 1 file changed, 13 insertions(+), 37 deletions(-) diff --git a/docs/docs/manual/starting.md b/docs/docs/manual/starting.md index 013e8fa43..b893f2278 100644 --- a/docs/docs/manual/starting.md +++ b/docs/docs/manual/starting.md @@ -8,7 +8,7 @@ sidebar_label: Starting a project OpenRefine doesn’t allow you to create a dataset from nothing - you can only start a project by importing in some existing data. -No matter where your data comes from, OpenRefine doesn’t modify your original data source. It copies all the information from your input, creates its own project file, and stores it in your [workspace directory](installing.md#set-where-data-is-stored). +No matter where your data comes from, OpenRefine doesn’t modify your original data source. It copies all the information from your input, creates its own project file, and stores it in your [workspace directory](installing#set-where-data-is-stored). The data and all of your edits are automatically saved inside the project file. When you’re finished modifying the data, you can export it back out into the file format of your choice. @@ -66,7 +66,7 @@ Type or paste the URL to the data file into the field provided. You can add as m If you supply two or more file URLs, OpenRefine will identify each one and ask you to choose which (or all) to load. -Do not use this form to load a Google Sheet by its link; use the Google Data form instead. +Do not use this form to load a Google Sheet by its link; use [the Google Data form instead](#google-data). #### Clipboard @@ -78,49 +78,27 @@ This can also be useful if you would like to paste in a list of URLs, which you #### Database (SQL) -You may want to pull the latest dataset directly from an online database. This could include an online catalogue, a Wordpress or similar content management system, or a [digital repository or collection management system](https://bits.ashleyblewer.com/blog/2017/08/09/collection-management-system-collection/). +If you are an administrator or have SQL access to a database of information, you may want to pull the latest dataset directly from there. This could include an online catalogue, a content management system, or a digital repository or collection management system. + +There are some publicly-accessible databases that you may want to query, such as [one provided by Rfam ](https://docs.rfam.org/en/latest/database.html). The instructions provided by Rfam can help you understand how to connect to and query from any database. OpenRefine can connect to PostgreSQL, MySQL, MariaDB, and SQLite database systems. It will automatically populate the “Port” field based on which of these you choose, but you can manually edit this if needed. -If you have a downloaded database (`.db`) file, you can supply the path to the file on your computer directly in the “Database” field at the bottom of the form. You can leave the rest of the fields blank. +If you have a downloaded database (`.db`) file from an SQLite database, you can supply the path to the file on your computer directly in the “Database” field at the bottom of the form. You can leave the rest of the fields blank. To import data directly from a database online, you will need to do two things: - -* Add OpenRefine (running from your computer) to an account authorized to access your database -* Set up OpenRefine to access that database using that account +* Add OpenRefine (running from your computer’s IP address) to an account authorized to access your database +* Set up OpenRefine to access that database using that authorized account ![A screenshot of connecting to a database](img/databaseconnect.jpg "A screenshot of connecting to a database.") -Log in to your hosting provider. Get the database type (such as MySQL), database name, and the URL (either an IP address, such as `127.0.0.1`, or the domain that uses the database). Then look at the accounts authorized for access. You may wish to create a new account just for OpenRefine, or add OpenRefine to an existing account. - -Each host will have a slightly different method, but generally speaking: look for “accounts with access” to the database you wish to authorize, and within the settings for that account, look for “allowable hosts” or “access hosts.” - -In that list, add the IP address of your own computer, because that is where the OpenRefine access request will be coming from. You can find this easily, by clicking “Test” within OpenRefine once the rest of the information is filled out: OpenRefine will give you an error that looks like - -``` error:Access denied for user 'yourusername'@'123-45-67-89.yourISP.com' ``` - -Take your IP address from this error message and put that, with periods instead of hyphens, into the “allowable hosts” field on the account you’re trying to use. Add a wildcard to the end of your IP address (“123.45.67.89%”). Save that setting, and then test the connection again with OpenRefine. - -You can either connect just once and gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. - -If you’d like to save the connection, name your connection in a way you will recognize later. Click “Save” and it will appear in the “Saved Connections” list on the left. Now, click on the “...” ellipsis to the right of the connection you’ve saved, and click “Connect.” - -If your connection is successful, you will see a Query Editor. From here you can write an [SQL query](https://www.w3schools.com/sql/) to pull the specific data you need. - -If you need help, you may be able to find instructions from your hosting provider. Here are the guides from: - - - -* [Dreamhost](https://help.dreamhost.com/hc/en-us/articles/214883058-How-do-I-connect-to-my-database-using-a-third-party-program-) -* [GoDaddy](https://ca.godaddy.com/help/connect-remotely-to-a-mysql-database-in-my-linux-hosting-account-16103) +You can either connect just once and gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. To save it, name your connection in a way you will recognize later. Click “Save” and it will appear in the “Saved Connections” list on the left. Now, you can click on the “...” ellipsis to the right of the connection you’ve saved, and click “Connect.” +If your connection is successful, you will see a Query Editor. From here you can write an [SQL query](https://www.w3schools.com/sql/) to pull the specific data you need. OpenRefine will give you an error if you write a statement that tries to modify the source database in any way. #### Google Data You have two ways to load in data from Google Sheets: - - - * A link to an accessible Google Sheet (that is, one with link-sharing turned on) * Selecting a Google Sheet in your Google Drive @@ -129,7 +107,7 @@ You have two ways to load in data from Google Sheets: You can import data from any Google Sheet that has link-sharing turned on. Paste in a URL that looks something like -```https://docs.google.com/spreadsheets/……….../edit?usp=sharing``` +```https://docs.google.com/spreadsheets/………/edit?usp=sharing``` This will only work with Sheets, not with any other Google Drive file that might have an available link. @@ -168,7 +146,7 @@ Because OpenRefine only runs locally on your computer, you can’t have a projec The best way to collaborate with another person is to export and import projects that save all your changes, so that you can pick up where someone else left off. You can also [export projects](export.md) and import them to new computers of your own, such as for working on the same project from the office and from home. -An exported project will include all of the [history](interface/projectscreen.md#history), so you can see (and undo) all the changes from the previous user. It is essentially a point-in-time snapshot of their work. OpenRefine only exports projects as `.tar.gz` files at this time. +An exported project will include all of the [history](running#history-undoredo), so you can see (and undo) all the changes from the previous user. It is essentially a point-in-time snapshot of their work. OpenRefine only exports projects as `.tar.gz` files at this time. ### Instructions @@ -214,8 +192,6 @@ You can only save and share facets and filters, not any other type of view. To s You can delete projects, which will erase the project files from the work directory on your computer. This is immediate and cannot be undone. - - Go to “Open Project” and find the project you want to delete. Click on the X to the left of the project name. There will be a confirmation dialog. @@ -223,4 +199,4 @@ Go to “Open Project” and find the project you want to delete. Click on the X You can find all of your raw project files in your work directory. They will be named according to the unique Project ID that OpenRefine has assigned them, which you can find on the “Open Project” screen, under the “About” button for each project. -You can point OpenRefine to use another work directory using [Preferences](running.md#preferences). +You can point OpenRefine to use another work directory using [Preferences](running#preferences). From bb728972305a37a0b1a9b8f8ebded1b2139d9af4 Mon Sep 17 00:00:00 2001 From: allanaaa Date: Wed, 22 Jul 2020 12:03:27 -0400 Subject: [PATCH 14/18] Removing images They're not useful. --- docs/docs/manual/starting.md | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/docs/docs/manual/starting.md b/docs/docs/manual/starting.md index b893f2278..25419b6d7 100644 --- a/docs/docs/manual/starting.md +++ b/docs/docs/manual/starting.md @@ -80,7 +80,7 @@ This can also be useful if you would like to paste in a list of URLs, which you If you are an administrator or have SQL access to a database of information, you may want to pull the latest dataset directly from there. This could include an online catalogue, a content management system, or a digital repository or collection management system. -There are some publicly-accessible databases that you may want to query, such as [one provided by Rfam ](https://docs.rfam.org/en/latest/database.html). The instructions provided by Rfam can help you understand how to connect to and query from any database. +There are some publicly-accessible databases that you may want to query, such as [one provided by Rfam](https://docs.rfam.org/en/latest/database.html). The instructions provided by Rfam can help you understand how to connect to and query from any database. OpenRefine can connect to PostgreSQL, MySQL, MariaDB, and SQLite database systems. It will automatically populate the “Port” field based on which of these you choose, but you can manually edit this if needed. @@ -90,8 +90,6 @@ To import data directly from a database online, you will need to do two things: * Add OpenRefine (running from your computer’s IP address) to an account authorized to access your database * Set up OpenRefine to access that database using that authorized account -![A screenshot of connecting to a database](img/databaseconnect.jpg "A screenshot of connecting to a database.") - You can either connect just once and gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. To save it, name your connection in a way you will recognize later. Click “Save” and it will appear in the “Saved Connections” list on the left. Now, you can click on the “...” ellipsis to the right of the connection you’ve saved, and click “Connect.” If your connection is successful, you will see a Query Editor. From here you can write an [SQL query](https://www.w3schools.com/sql/) to pull the specific data you need. OpenRefine will give you an error if you write a statement that tries to modify the source database in any way. @@ -153,12 +151,7 @@ An exported project will include all of the [history](running#history-undoredo), Once someone has sent you a project archive file from their computer, you can save it anywhere, including your Downloads folder. -In the left-hand menu of the home screen, click “Import Project.” You will see the following screen: - -![A screenshot of the Import screen](img/import.jpg "A screenshot of the Import screen.") - - -Click “Browse…” and navigate to wherever you saved the file you were sent (for example, your Downloads folder). +In the left-hand menu of the home screen, click “Import Project.” Click “Browse…” and navigate to wherever you saved the file you were sent (for example, your Downloads folder). You can rename the project if you’d like - we recommend adding your name, a date, or a version number, if you’re planning to continue collaborating with another person (or working from multiple computers). From 50db04781b3b978293d2c46032f2e196f35376f5 Mon Sep 17 00:00:00 2001 From: allanaaa Date: Wed, 22 Jul 2020 15:18:14 -0400 Subject: [PATCH 15/18] More database rephrasing Minor formatting, typos, language tweaks --- docs/docs/manual/starting.md | 46 ++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/docs/docs/manual/starting.md b/docs/docs/manual/starting.md index 25419b6d7..8c042c2a6 100644 --- a/docs/docs/manual/starting.md +++ b/docs/docs/manual/starting.md @@ -6,9 +6,9 @@ sidebar_label: Starting a project ## Overview -OpenRefine doesn’t allow you to create a dataset from nothing - you can only start a project by importing in some existing data. +An OpenRefine project is started by importing in some existing data - OpenRefine doesn’t allow you to create a dataset from nothing. -No matter where your data comes from, OpenRefine doesn’t modify your original data source. It copies all the information from your input, creates its own project file, and stores it in your [workspace directory](installing#set-where-data-is-stored). +No matter where your data comes from, OpenRefine doesn’t modify your original data source. It copies all the information from your input, creates its own project file, and stores it in your [workspace directory](installing#set-where-data-is-stored). The data and all of your edits are automatically saved inside the project file. When you’re finished modifying the data, you can export it back out into the file format of your choice. @@ -16,7 +16,7 @@ You can also receive and open other people’s projects, or send them yours, by ## Create project by importing data -When you start OpenRefine, you’ll be taken to the `Create Project` screen. You’ll see on the left side of the screen that your options are to: +When you start OpenRefine, you’ll be taken to the "Create Project" screen. You’ll see on the left side of the screen that your options are to: * import data from a file on your computer * import data from a link to the web @@ -31,16 +31,16 @@ From these sources, you can load any of the following file formats: * Fixed-width columns * JSON * XML -* ODF spreadsheet (ODS) -* Excel (XLS or XLSX) -* PC-Axis +* OpenDocument spreadsheet (ODS) +* Excel spreadsheet (XLS or XLSX) +* PC-Axis (PX) * MARC * RDF data (JSON-LD, N3, N-Triples, Turtle, RDF/XML) * Wikitext -More formats can be imported by [adding extensions that provide that functionality](https://openrefine.org/download.html). +More formats can be imported by [adding extensions to provide that functionality](https://openrefine.org/download.html). -If you supply two or more files for one project, the files’ rows will be loaded in order that you specify, and OpenRefine will create a column at the beginning of the dataset with the source URL or file name in it to help you identify where each row came from. If the files have matching columns, the data will load in each column; if not, the successive files will append all of their new columns to the end of the dataset: +If you supply two or more files for one project, the files’ rows will be loaded in the order that you specify, and OpenRefine will create a column at the beginning of the dataset with the source URL or file name in it to help you identify where each row came from. If the files have matching columns, the data will load in each column; if not, the successive files will append all of their new columns to the end of the dataset: |File|Fruit|Quantity|Berry|Berry source| |---|---|---|---|---| @@ -50,15 +50,15 @@ If you supply two or more files for one project, the files’ rows will be loade |berries.csv||2|Blueberry|Canada| -For whichever method you choose, when you click `Next >>` you will be given a preview and a chance to configure the way OpenRefine interprets the file. +For whichever method you choose, when you click "Next >>" you will be given a preview and a chance to configure the way OpenRefine interprets the file. ### Methods to import data #### Get data from this computer -Click on `Browse…` and select a file on your hard drive. All files will be shown, not just compatible ones. +Click on "Browse…" and select a file on your hard drive. All files will be shown, not just compatible ones. -If you import an archive file (something with the extension `.zip`, `.tar.gz`, `.tgz`, `.tar.bz2`, `.gz`, or `.bz2`), OpenRefine detects the most common file extension in it and loads all files with that extension into a single project. +If you import an archive file (something with the extension `.zip`, `.tar.gz`, `.tgz`, `.tar.bz2`, `.gz`, or `.bz2`), OpenRefine detects the files inside it, shows you a preview screen, and allows you to select which ones to load. This does not work with `.rar` files. #### Web Addresses (URLs) @@ -78,19 +78,19 @@ This can also be useful if you would like to paste in a list of URLs, which you #### Database (SQL) -If you are an administrator or have SQL access to a database of information, you may want to pull the latest dataset directly from there. This could include an online catalogue, a content management system, or a digital repository or collection management system. +If you are an administrator or have SQL access to a database of information, you may want to pull the latest dataset directly from there. This could include an online catalogue, a content management system, or a digital repository or collection management system. You can also load a `.db` file saved locally. -There are some publicly-accessible databases that you may want to query, such as [one provided by Rfam](https://docs.rfam.org/en/latest/database.html). The instructions provided by Rfam can help you understand how to connect to and query from any database. +There are some publicly-accessible databases you can query, such as [one provided by Rfam](https://docs.rfam.org/en/latest/database.html). The instructions provided by Rfam can help you understand how to connect to and query from any database. OpenRefine can connect to PostgreSQL, MySQL, MariaDB, and SQLite database systems. It will automatically populate the “Port” field based on which of these you choose, but you can manually edit this if needed. If you have a downloaded database (`.db`) file from an SQLite database, you can supply the path to the file on your computer directly in the “Database” field at the bottom of the form. You can leave the rest of the fields blank. -To import data directly from a database online, you will need to do two things: -* Add OpenRefine (running from your computer’s IP address) to an account authorized to access your database -* Set up OpenRefine to access that database using that authorized account +To import data directly from a database online, you will need the database type (such as MySQL), database name, and the hostname (either an IP address, such as `127.0.0.1`, or the domain that uses the database) and the port on the host. You will need an account authorized for access, and you may need to add OpenRefine (connecting from your computer’s IP) to the “allowable hosts” for that account. -You can either connect just once and gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. To save it, name your connection in a way you will recognize later. Click “Save” and it will appear in the “Saved Connections” list on the left. Now, you can click on the “...” ellipsis to the right of the connection you’ve saved, and click “Connect.” +You can either connect just once and gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. + +If you’d like to save the connection, name your connection in a way you will recognize later. Click “Save” and it will appear in the “Saved Connections” list on the left. From now on, you can click on the “...” ellipsis to the right of the connection you’ve saved, and click “Connect.” If your connection is successful, you will see a Query Editor. From here you can write an [SQL query](https://www.w3schools.com/sql/) to pull the specific data you need. OpenRefine will give you an error if you write a statement that tries to modify the source database in any way. @@ -107,8 +107,7 @@ You can import data from any Google Sheet that has link-sharing turned on. Paste ```https://docs.google.com/spreadsheets/………/edit?usp=sharing``` -This will only work with Sheets, not with any other Google Drive file that might have an available link. - +This will only work with Sheets, not with any other Google Drive file that might have an available link, including `.xls` and other valid files that are hosted in Google Drive. These links will also not work [by URL](#web-addresses-urls), so you need to download the files to your computer. ##### Google Sheet from Drive @@ -127,7 +126,7 @@ Once OpenRefine is ready to import the data, you will see a screen with “Confi At the bottom of the screen you will find options for telling OpenRefine how to process what it has found. You can tell it which row(s) to parse as column headers, as well as to ignore any number of rows at the top. You can also select a specific range of rows to work with, by discarding some rows at the top (excluding the header) and limiting the total number of rows it loads. -OpenRefine tries to guess how to parse your data based on the file extension. For example, .xml files are going to be parsed as though they are formatted in XML. An unknown file extension (or your clipboard copy-paste) is assumed to be either tab-separated or comma-separated. OpenRefine looks for a tab character; if one is found, it assumes you have imported tab-separated data. +OpenRefine tries to guess how to parse your data based on the file extension. For example, `.xml` files are going to be parsed as though they are formatted in XML. An unknown file extension (or your clipboard copy-paste) is assumed to be either tab-separated or comma-separated. OpenRefine looks for a tab character; if one is found, it assumes you have imported tab-separated data. If Google isn’t certain what format you imported, it will provide a list of possibilities under “Parse data as” and some settings. You can specify a custom separator now, or split columns later on in the project interface. @@ -142,11 +141,10 @@ You should create a project name at this stage. You can also supply tags to keep Because OpenRefine only runs locally on your computer, you can’t have a project accessible to more than one person at the same time. -The best way to collaborate with another person is to export and import projects that save all your changes, so that you can pick up where someone else left off. You can also [export projects](export.md) and import them to new computers of your own, such as for working on the same project from the office and from home. +The best way to collaborate with another person is to export and import projects that save all your changes, so that you can pick up where someone else left off. You can also [export projects](exporting.md) and import them to new computers of your own, such as for working on the same project from the office and from home. An exported project will include all of the [history](running#history-undoredo), so you can see (and undo) all the changes from the previous user. It is essentially a point-in-time snapshot of their work. OpenRefine only exports projects as `.tar.gz` files at this time. - ### Instructions Once someone has sent you a project archive file from their computer, you can save it anywhere, including your Downloads folder. @@ -185,11 +183,9 @@ You can only save and share facets and filters, not any other type of view. To s You can delete projects, which will erase the project files from the work directory on your computer. This is immediate and cannot be undone. -Go to “Open Project” and find the project you want to delete. Click on the X to the left of the project name. There will be a confirmation dialog. +Go to “Open Project” and find the project you want to delete. Click on the "X" to the left of the project name. There will be a confirmation dialog. ### Project files You can find all of your raw project files in your work directory. They will be named according to the unique Project ID that OpenRefine has assigned them, which you can find on the “Open Project” screen, under the “About” button for each project. - -You can point OpenRefine to use another work directory using [Preferences](running#preferences). From a14650b12f0602fd47869190b53582cd4d05b602 Mon Sep 17 00:00:00 2001 From: allanaaa Date: Mon, 27 Jul 2020 16:27:52 -0400 Subject: [PATCH 16/18] Tweaking headers --- docs/docs/manual/starting.md | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/docs/docs/manual/starting.md b/docs/docs/manual/starting.md index 8c042c2a6..0e8218798 100644 --- a/docs/docs/manual/starting.md +++ b/docs/docs/manual/starting.md @@ -16,7 +16,7 @@ You can also receive and open other people’s projects, or send them yours, by ## Create project by importing data -When you start OpenRefine, you’ll be taken to the "Create Project" screen. You’ll see on the left side of the screen that your options are to: +When you start OpenRefine, you’ll be taken to the “Create Project” screen. You’ll see on the left side of the screen that your options are to: * import data from a file on your computer * import data from a link to the web @@ -52,15 +52,13 @@ If you supply two or more files for one project, the files’ rows will be loade For whichever method you choose, when you click "Next >>" you will be given a preview and a chance to configure the way OpenRefine interprets the file. -### Methods to import data - -#### Get data from this computer +### Get data from this computer Click on "Browse…" and select a file on your hard drive. All files will be shown, not just compatible ones. If you import an archive file (something with the extension `.zip`, `.tar.gz`, `.tgz`, `.tar.bz2`, `.gz`, or `.bz2`), OpenRefine detects the files inside it, shows you a preview screen, and allows you to select which ones to load. This does not work with `.rar` files. -#### Web Addresses (URLs) +### Web Addresses (URLs) Type or paste the URL to the data file into the field provided. You can add as many fields as you want. OpenRefine will download the file and preview it for you. @@ -68,7 +66,7 @@ If you supply two or more file URLs, OpenRefine will identify each one and ask y Do not use this form to load a Google Sheet by its link; use [the Google Data form instead](#google-data). -#### Clipboard +### Clipboard You can copy and paste in data from anywhere. OpenRefine will recognize comma-separated, tab-separated, or table-formatted information copied from sources such as word-processing documents, spreadsheets, and tables in PDFs. You can also just paste in a list of items that you want to turn into multi-column rows. OpenRefine recognizes each new text line as a row. @@ -76,9 +74,9 @@ This can be useful if you want to pre-select a specific number of rows from your This can also be useful if you would like to paste in a list of URLs, which you can use later to fetch the data online and build columns with. -#### Database (SQL) +### Database (SQL) -If you are an administrator or have SQL access to a database of information, you may want to pull the latest dataset directly from there. This could include an online catalogue, a content management system, or a digital repository or collection management system. You can also load a `.db` file saved locally. +If you are an administrator or have SQL access to a database of information, you may want to pull the latest dataset directly from there. This could include an online catalogue, a content management system, or a digital repository or collection management system. You can also load a `.db` file saved locally. You will need to use an SQL query to import your intended data. There are some publicly-accessible databases you can query, such as [one provided by Rfam](https://docs.rfam.org/en/latest/database.html). The instructions provided by Rfam can help you understand how to connect to and query from any database. @@ -86,22 +84,22 @@ OpenRefine can connect to PostgreSQL, MySQL, MariaDB, and SQLite database system If you have a downloaded database (`.db`) file from an SQLite database, you can supply the path to the file on your computer directly in the “Database” field at the bottom of the form. You can leave the rest of the fields blank. -To import data directly from a database online, you will need the database type (such as MySQL), database name, and the hostname (either an IP address, such as `127.0.0.1`, or the domain that uses the database) and the port on the host. You will need an account authorized for access, and you may need to add OpenRefine (connecting from your computer’s IP) to the “allowable hosts” for that account. +To import data directly from a database, you will need the database type (such as MySQL), database name, the hostname (either an IP address or the domain that hosts the database), and the port on the host. You will need an account authorized for access, and you may need to add OpenRefine's IP address or host to the “allowable hosts” for that account. You can find that information by pressing “Test” and getting the IP from the error message that results. -You can either connect just once and gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. +You can either connect just once to gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. If you’d like to save the connection, name your connection in a way you will recognize later. Click “Save” and it will appear in the “Saved Connections” list on the left. From now on, you can click on the “...” ellipsis to the right of the connection you’ve saved, and click “Connect.” If your connection is successful, you will see a Query Editor. From here you can write an [SQL query](https://www.w3schools.com/sql/) to pull the specific data you need. OpenRefine will give you an error if you write a statement that tries to modify the source database in any way. -#### Google Data +### Google Data You have two ways to load in data from Google Sheets: * A link to an accessible Google Sheet (that is, one with link-sharing turned on) * Selecting a Google Sheet in your Google Drive -##### Google Sheet by URL +#### Google Sheet by URL You can import data from any Google Sheet that has link-sharing turned on. Paste in a URL that looks something like @@ -109,7 +107,7 @@ You can import data from any Google Sheet that has link-sharing turned on. Paste This will only work with Sheets, not with any other Google Drive file that might have an available link, including `.xls` and other valid files that are hosted in Google Drive. These links will also not work [by URL](#web-addresses-urls), so you need to download the files to your computer. -##### Google Sheet from Drive +#### Google Sheet from Drive You can authorize OpenRefine to access your Google Drive data and import data from any Google Sheet it finds there. This will include Sheets that belong to you and Sheets that are shared with you, as well as Sheets that are in your trash. @@ -120,7 +118,7 @@ OpenRefine will generate a list of all Sheets it finds, with the most recently m When you click “Preview” the Sheet will open in a new browser tab. When you click the Sheet title, OpenRefine will begin to process the data. -### Previewing the project +## Project preview Once OpenRefine is ready to import the data, you will see a screen with “Configure Parsing Options” at the top. You’ll see a preview of the first 100 rows and all identified columns. @@ -128,7 +126,7 @@ At the bottom of the screen you will find options for telling OpenRefine how to OpenRefine tries to guess how to parse your data based on the file extension. For example, `.xml` files are going to be parsed as though they are formatted in XML. An unknown file extension (or your clipboard copy-paste) is assumed to be either tab-separated or comma-separated. OpenRefine looks for a tab character; if one is found, it assumes you have imported tab-separated data. -If Google isn’t certain what format you imported, it will provide a list of possibilities under “Parse data as” and some settings. You can specify a custom separator now, or split columns later on in the project interface. +If OpenRefine isn’t certain what format you imported, it will provide a list of possibilities under “Parse data as” and some settings. You can specify a custom separator now, or split columns later on in the project interface. If you imported a spreadsheet with multiple worksheets, they will be listed along with the number of rows they contain. You can only select data from one worksheet. @@ -169,7 +167,6 @@ You may have multiple projects from the same dataset, or multiple versions from You can name a project when you create it or import it, and you can rename a project by opening it and clicking on the project name at the top of the screen. - ### Autosaving OpenRefine saves all of your actions (everything you can see in the Undo/Redo panel). That includes flagging and starring rows. @@ -178,14 +175,12 @@ It doesn’t, however, save your facets, filters, or any kind of “view” you You can only save and share facets and filters, not any other type of view. To save current facets and filters, click “Permalink.” The project will reload with a different URL, which you can then copy and save elsewhere. This permalink will save both the facets and filters you’ve set, and the settings for each one (such as sorting by count rather than by name). - ### Deleting projects You can delete projects, which will erase the project files from the work directory on your computer. This is immediate and cannot be undone. -Go to “Open Project” and find the project you want to delete. Click on the "X" to the left of the project name. There will be a confirmation dialog. - +Go to “Open Project” and find the project you want to delete. Click on the “X” to the left of the project name. There will be a confirmation dialog. ### Project files -You can find all of your raw project files in your work directory. They will be named according to the unique Project ID that OpenRefine has assigned them, which you can find on the “Open Project” screen, under the “About” button for each project. +You can find all of your raw project files in your work directory. They will be named according to the unique Project ID that OpenRefine has assigned them, which you can find on the “Open Project” screen, under the “About” button for each project. \ No newline at end of file From 5eb8ecf69fab06e4419ea53eba689806d554d516 Mon Sep 17 00:00:00 2001 From: allanaaa Date: Tue, 28 Jul 2020 16:35:40 -0400 Subject: [PATCH 17/18] Some cleanup and minor typos --- docs/docs/manual/starting.md | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/docs/docs/manual/starting.md b/docs/docs/manual/starting.md index 0e8218798..06e7a6ffc 100644 --- a/docs/docs/manual/starting.md +++ b/docs/docs/manual/starting.md @@ -76,21 +76,19 @@ This can also be useful if you would like to paste in a list of URLs, which you ### Database (SQL) -If you are an administrator or have SQL access to a database of information, you may want to pull the latest dataset directly from there. This could include an online catalogue, a content management system, or a digital repository or collection management system. You can also load a `.db` file saved locally. You will need to use an SQL query to import your intended data. +If you are an administrator or have SQL access to a database of information, you may want to pull the latest dataset directly from there. This could include an online catalogue, a content management system, or a digital repository or collection management system. You can also load a database (`.db`) file saved locally. You will need to use an [SQL query](https://www.w3schools.com/sql/) to import your intended data. -There are some publicly-accessible databases you can query, such as [one provided by Rfam](https://docs.rfam.org/en/latest/database.html). The instructions provided by Rfam can help you understand how to connect to and query from any database. +There are some publicly-accessible databases you can query, such as [one provided by Rfam](https://docs.rfam.org/en/latest/database.html). The instructions provided by Rfam can help you understand how to connect to and query from any database. OpenRefine can connect to PostgreSQL, MySQL, MariaDB, and SQLite database systems. It will automatically populate the “Port” field based on which of these you choose, but you can manually edit this if needed. -If you have a downloaded database (`.db`) file from an SQLite database, you can supply the path to the file on your computer directly in the “Database” field at the bottom of the form. You can leave the rest of the fields blank. +If you have a `.db` file, you can supply the path to the file on your computer directly in the “Database” field at the bottom of the form. You can leave the rest of the fields blank. To import data directly from a database, you will need the database type (such as MySQL), database name, the hostname (either an IP address or the domain that hosts the database), and the port on the host. You will need an account authorized for access, and you may need to add OpenRefine's IP address or host to the “allowable hosts” for that account. You can find that information by pressing “Test” and getting the IP from the error message that results. -You can either connect just once to gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. +You can either connect just once to gather data, or save the connection to use it again later. If you press “Connect” without saving, OpenRefine will forget all the information you just entered. If you’d like to save the connection, name your connection in a way you will recognize later. Click “Save” and it will appear in the “Saved Connections” list on the left. From now on, you can click on the “...” ellipsis to the right of the connection you’ve saved, and click “Connect.” -If you’d like to save the connection, name your connection in a way you will recognize later. Click “Save” and it will appear in the “Saved Connections” list on the left. From now on, you can click on the “...” ellipsis to the right of the connection you’ve saved, and click “Connect.” - -If your connection is successful, you will see a Query Editor. From here you can write an [SQL query](https://www.w3schools.com/sql/) to pull the specific data you need. OpenRefine will give you an error if you write a statement that tries to modify the source database in any way. +If your connection is successful, you will see a Query Editor where you can run your SQL query. OpenRefine will give you an error if you write a statement that tries to modify the source database in any way. ### Google Data @@ -139,7 +137,7 @@ You should create a project name at this stage. You can also supply tags to keep Because OpenRefine only runs locally on your computer, you can’t have a project accessible to more than one person at the same time. -The best way to collaborate with another person is to export and import projects that save all your changes, so that you can pick up where someone else left off. You can also [export projects](exporting.md) and import them to new computers of your own, such as for working on the same project from the office and from home. +The best way to collaborate with another person is to export and import projects that save all your changes, so that you can pick up where someone else left off. You can also [export projects](exporting) and import them to new computers of your own, such as for working on the same project from the office and from home. An exported project will include all of the [history](running#history-undoredo), so you can see (and undo) all the changes from the previous user. It is essentially a point-in-time snapshot of their work. OpenRefine only exports projects as `.tar.gz` files at this time. @@ -158,7 +156,7 @@ OpenRefine will store the project in its own workspace directory, so you can now ## Project management -You can access all of your created projects by clicking on “Open Project.” Your project list can be organized by modification date, title, row count, and other metadata you can supply (such as subject, descripton, tags, or creator). To edit the fields you see here, click “About” to the left of each project. There you can Edit a number of available fields. You can also see the project ID that corresponds to the name of the folder in your work directory. +You can access all of your created projects by clicking on “Open Project.” Your project list can be organized by modification date, title, row count, and other metadata you can supply (such as subject, descripton, tags, or creator). To edit the fields you see here, click “About” to the left of each project. There you can edit a number of available fields. You can also see the project ID that corresponds to the name of the folder in your work directory. ### Naming projects @@ -169,7 +167,7 @@ You can name a project when you create it or import it, and you can rename a pro ### Autosaving -OpenRefine saves all of your actions (everything you can see in the Undo/Redo panel). That includes flagging and starring rows. +OpenRefine saves all of your actions (everything you can see in the Undo/Redo panel). That includes flagging and starring rows. It doesn’t, however, save your facets, filters, or any kind of “view” you may have in place while you work. This includes the number of rows showing, whether you are showing your data as rows or records, and any sorting or column collapsing you may have done. A good rule of thumb is: if it’s not showing in Undo/Redo, you will lose it when you leave the project workspace. From 8ece41309fc6587f1c03457b21c2a5a1589e0646 Mon Sep 17 00:00:00 2001 From: allanaaa Date: Tue, 28 Jul 2020 17:13:13 -0400 Subject: [PATCH 18/18] More typos and formatting --- docs/docs/manual/starting.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/docs/manual/starting.md b/docs/docs/manual/starting.md index 06e7a6ffc..10304524e 100644 --- a/docs/docs/manual/starting.md +++ b/docs/docs/manual/starting.md @@ -50,11 +50,11 @@ If you supply two or more files for one project, the files’ rows will be loade |berries.csv||2|Blueberry|Canada| -For whichever method you choose, when you click "Next >>" you will be given a preview and a chance to configure the way OpenRefine interprets the file. +For whichever method you choose, when you click “Next >>” you will be given a preview and a chance to configure the way OpenRefine interprets the file. ### Get data from this computer -Click on "Browse…" and select a file on your hard drive. All files will be shown, not just compatible ones. +Click on “Browse…” and select a file on your hard drive. All files will be shown, not just compatible ones. If you import an archive file (something with the extension `.zip`, `.tar.gz`, `.tgz`, `.tar.bz2`, `.gz`, or `.bz2`), OpenRefine detects the files inside it, shows you a preview screen, and allows you to select which ones to load. This does not work with `.rar` files. @@ -76,7 +76,7 @@ This can also be useful if you would like to paste in a list of URLs, which you ### Database (SQL) -If you are an administrator or have SQL access to a database of information, you may want to pull the latest dataset directly from there. This could include an online catalogue, a content management system, or a digital repository or collection management system. You can also load a database (`.db`) file saved locally. You will need to use an [SQL query](https://www.w3schools.com/sql/) to import your intended data. +If you are an administrator or have SQL access to a database of information, you may want to pull the latest dataset directly from there. This could include an online catalogue, a content management system, or a digital repository or collection management system. You can also load a database (`.db`) file saved locally. You will need to use an [SQL query](https://www.w3schools.com/sql/) to import your intended data. There are some publicly-accessible databases you can query, such as [one provided by Rfam](https://docs.rfam.org/en/latest/database.html). The instructions provided by Rfam can help you understand how to connect to and query from any database.