From 72af1270100a43e662bf9d4835f704eb2034c112 Mon Sep 17 00:00:00 2001 From: allanaaa Date: Tue, 5 Jan 2021 16:46:02 -0500 Subject: [PATCH] Updates to wikidata --- docs/docs/manual/wikidata.md | 75 +++++++++++++++------------- docs/static/img/wikidata-terms.png | Bin 0 -> 24677 bytes docs/static/img/wikidata-terms2.png | Bin 0 -> 7336 bytes 3 files changed, 41 insertions(+), 34 deletions(-) create mode 100644 docs/static/img/wikidata-terms.png create mode 100644 docs/static/img/wikidata-terms2.png diff --git a/docs/docs/manual/wikidata.md b/docs/docs/manual/wikidata.md index 76c6d75e0..2061a65fc 100644 --- a/docs/docs/manual/wikidata.md +++ b/docs/docs/manual/wikidata.md @@ -8,11 +8,13 @@ sidebar_label: Wikidata OpenRefine provides powerful ways to both pull data from Wikidata and add data to it. -OpenRefine’s connections to Wikidata were formerly an optional extension, but are now installed automatically with the downloadable package. The Wikidata extension can be removed manually by navigating to your OpenRefine installation folder, and then looking inside `webapp/extensions/` and deleting the `wikidata` folder inside. - You do not need a Wikidata account to reconcile your local OpenRefine project to Wikidata. If you wish to [upload your cleaned dataset to Wikidata](#editing-wikidata-with-openrefine), you will need an [autoconfirmed](https://www.wikidata.org/wiki/Wikidata:Autoconfirmed_users) account, and you must [authorize OpenRefine with that account](#manage-wikidata-account). -The best source for information about how OpenRefine works with Wikidata is [on Wikidata itself, under Tools](https://www.wikidata.org/wiki/Wikidata:Tools/OpenRefine). This section has tutorials, guidelines on editing, and spaces for discussion and help. The following text reviews the basics and can help you get set up, but the Wikidata help page is more regularly updated when technology or policies change. +:::info +The best source for information about how OpenRefine works with Wikidata is [on Wikidata itself, under Tools](https://www.wikidata.org/wiki/Wikidata:Tools/OpenRefine). That page has tutorials, guidelines on editing, and spaces for discussion and help. The following text on this page reviews the basics and can help you get set up, but the Wikidata help page is more regularly updated when technology or policies change. Links to the Wikidata help page are included throughout this page. +::: + +OpenRefine’s connections to Wikidata were formerly an optional extension, but are now included automatically with installation. The Wikidata extension can be removed manually by navigating to your OpenRefine installation folder, and then looking inside `webapp/extensions/` and deleting the `wikidata` folder found there. ## Reconciling with Wikidata @@ -24,23 +26,23 @@ The Wikidata [reconciliation service](reconciling) for OpenRefine [supports](htt You can find documentation and further resources on the reconciliation API [here](https://wikidata.reconci.link/). -For the most part, Wikidata reconciliation behaves the same way other reconciliation processes do, but there are a few processes and features specific to Wikidata. +For the most part, Wikidata reconciliation behaves the same way other reconciliation services do, but there are a few processes and features specific to Wikidata. ### Language settings -You can install a version of the Wikidata reconciliation service that uses your language. First, you need the language code: this is the [two-letter code found on this list](https://en.wikipedia.org/wiki/List_of_Wikipedias), or in the domain name of the desired Wikipedia (for instance, “fr” if your Wikipedia is [https://fr.wikipedia.org/wiki/](https://fr.wikipedia.org/wiki/)). +You can install a version of the Wikidata reconciliation service that uses your language. First, you need the language code: this is the [two-letter code found on this list](https://en.wikipedia.org/wiki/List_of_Wikipedias), or in the domain name of the desired Wikipedia/Wikidata (for instance, “fr” if your Wikipedia is https://fr.wikipedia.org/wiki/). -Then, open the reconciliation window (under ReconcileStart reconciling...) and click Add Standard Service. The URL is `https://openrefine-wikidata.toolforge.org/fr/api` where “fr” is your desired language code. +Then, open the reconciliation window (under ReconcileStart reconciling...) and click Add Standard Service. The URL to enter is `https://openrefine-wikidata.toolforge.org/fr/api`, where “fr” is your desired language code. -When reconciling using this interface, items and properties will be displayed in your language if a translation is available. The matching score of the reconciliation is not influenced by your choice of language: items are matched by considering all labels and keeping the best possible match. So the language of your dataset is irrelevant to the choice of the language for the reconciliation interface. +When reconciling using this interface, items and properties will be displayed in your chosen language if the label is available. The matching score of the reconciliation is not influenced by your choice of language for the service: items are matched by considering all labels and returning the best possible match. The language of your dataset is also irrelevant to your choice of language for the reconciliation service; it simply determines which language labels to return based on the entity chosen. ### Restricting matches by type In Wikidata, types are items themselves. For instance, the [university of Ljubljana (Q1377)](https://www.wikidata.org/wiki/Q1377) has the type [public university (Q875538)](https://www.wikidata.org/wiki/Q875538), using the [instance of (P31)](https://www.wikidata.org/wiki/Property:P31) property. Types can be subclasses of other types, using the [subclass of (P279)](https://www.wikidata.org/wiki/Property:P279) property. For instance, [public university (Q875538)](https://www.wikidata.org/wiki/Q875538) is a subclass of [university (Q3918)](https://www.wikidata.org/wiki/Q3918). You can visualize these structures with the [Wikidata Graph Builder](https://angryloki.github.io/wikidata-graph-builder/). -When you select or enter a type for reconciliation, OpenRefine will include that type and all of its subtypes. For instance, if you select [university (Q3918)](https://www.wikidata.org/wiki/Q3918), then [university of Ljubljana (Q1377)](https://www.wikidata.org/wiki/Q1377) will be a possible match, though that item isn't directly linked to Q3918. +When you select or enter a type for reconciliation, OpenRefine will include that type and all of its subtypes. For instance, if you select [university (Q3918)](https://www.wikidata.org/wiki/Q3918), then [university of Ljubljana (Q1377)](https://www.wikidata.org/wiki/Q1377) will be a possible match, though that item isn't directly linked to Q3918 - because it is directly linked to Q875538, the subclass of Q3918. -Some items may not yet be set as an instance of anything, because Wikidata is crowdsourced. If you restrict reconciliation to a type, these items will not appear in the results, except as a fallback, and will have a lower score. +Some items and types may not yet be set as an instance or subclass of anything (because Wikidata is crowdsourced). If you restrict reconciliation to a type, items without the chosen type will not appear in the results, except as a fallback, and will have a lower score. ### Reconciling via unique identifiers @@ -52,7 +54,7 @@ If the identifier you submit is assigned to multiple Wikidata items (because Wik Wikidata's hierarchical property structure can be called by using property paths (using |, /, and . symbols). Labels, aliases, descriptions, and sitelinks can also be accessed. You can also match values against subfields, such as latitude and longitude subfields of a geographical coordinate. -For information on how to do this, read the documentation and further resources [here](https://wikidata.reconci.link/#documentation). +For information on how to do this, read the [documentation and further resources here](https://wikidata.reconci.link/#documentation). ## Editing Wikidata with OpenRefine @@ -62,9 +64,11 @@ As a user-maintained data source, Wikidata can be edited by anyone. OpenRefine m Wikidata is built by creating entities (such as people, organizations, or places, identified with unique numbers starting with Q), defining properties (unique numbers starting with P), and using properties to define relationships between entities (a Q has a property P, with a value of another Q). -For example, you may wish to create entities for local authors and the books they've set in your community. Each writer will be an entity with the occupation [author (Q482980)](https://www.wikidata.org/wiki/Q482980), each book will be an entity with [literary work (Q7725634)](https://www.wikidata.org/wiki/Q7725634), and books will be related to authors through a property [author (P50)](https://www.wikidata.org/wiki/Property:P50). Books can have places where they are set, with [setting (Q617332)](https://www.wikidata.org/wiki/Q617332). In OpenRefine, you'll need a column of publication titles that you have reconciled (and create new items where needed); each publication will have one or more locations in a “setting” column, which is also reconciled to municipalities or regions where they exist (and create new items where needed). Then you can add those new relationships to each book, and create new entities for both books and places. +For example, you may wish to create entities for local authors and the books they've set in your community. Each writer will be an entity with the occupation [author (Q482980)](https://www.wikidata.org/wiki/Q482980), each book will be an entity with the property “instance of” ([P31](https://www.wikidata.org/wiki/Property:P31)) linking it to a class such as [literary work (Q7725634)](https://www.wikidata.org/wiki/Q7725634), and books will be related to authors through a property [author (P50)](https://www.wikidata.org/wiki/Property:P50). Books can have places where they are set, with the property [narrative location (P840)](https://www.wikidata.org/wiki/Property:P840). -There is a list of [tutorials and walkthroughs on Wikidata](https://www.wikidata.org/wiki/Wikidata:Tools/OpenRefine/Editing) that will allow you to see the full process. You can save your schemas and drafts in OpenRefine, and your progress stays in draft until you are sure you’re ready to upload it to Wikidata. You can also find information on [how to design a schema](https://www.wikidata.org/wiki/Wikidata:Tools/OpenRefine/Editing/Schema_alignment) and [how OpenRefine evaluates your proposed edits for issues](https://www.wikidata.org/wiki/Wikidata:Tools/OpenRefine/Editing/Quality_assurance). +To do this with OpenRefine, you'll need a column of publication titles that you have reconciled (and create new items where needed); each publication will have one or more locations in a “setting” column, which is also reconciled to municipalities or regions where they exist (and create new items where needed). Then you can add those new relationships, and create new entities for authors, books, and places where needed. You do not need columns for properties; those are defined later, in the creation of your [schema](#edit-wikidata-schema). + +There is a list of [tutorials and walkthroughs on Wikidata](https://www.wikidata.org/wiki/Wikidata:Tools/OpenRefine/Editing) that will allow you to see the full process. You can save your schemas and drafts in OpenRefine, and your progress stays in draft until you are ready to upload it to Wikidata. You can also find information on [how to design a schema](https://www.wikidata.org/wiki/Wikidata:Tools/OpenRefine/Editing/Schema_alignment) and [how OpenRefine evaluates your proposed edits for issues](https://www.wikidata.org/wiki/Wikidata:Tools/OpenRefine/Editing/Quality_assurance). Batches of edits to Wikidata that are created with OpenRefine can be undone. You can test out the uploading process by reconciling to several “sandbox” entities created specifically for drafting edits and learning about Wikidata: * https://www.wikidata.org/wiki/Q4115189 @@ -80,15 +84,15 @@ You can use OpenRefine's reconciliation preview to look at the target Wikidata e The best resource is the [Schema alignment page](https://www.wikidata.org/wiki/Wikidata:Tools/OpenRefine/Editing/Schema_alignment) on Wikidata. -A [schema](https://en.wikipedia.org/wiki/Database_schema) is the plan for how to structure information in a database. In OpenRefine, the schema operates as a template for how Wikidata edits should be applied: how to translate your tabular data into statements. With a schema, you can: +A [schema](https://en.wikipedia.org/wiki/Database_schema) is a plan for how to structure information in a database. In OpenRefine, the schema operates as a template for how Wikidata edits should be applied: how to translate your tabular data into statements. With a schema, you can: * preview the Wikidata edits and inspect them manually; -* analyze and fix any issues raised automatically by the tool; +* analyze and fix any issues highlighted by OpenRefine; * upload your changes to Wikidata by logging in with your own account; * export the changes to the QuickStatements v1 format. For example, if your dataset has columns for authors, publication titles, and publication years, your schema can be conceptualized as: [publication title] has the author [author], and was published in [publication year]. To establish these facts, you need to establish one or more columns as “items,” for which you will make “statements” that relate them to other columns. -You can export any schema you create, and import an existing schema for use with a new dataset. This can help you work in batches on a large amount of data with a minimum of redundant labor. +You can export any schema you create, and import an existing schema for use with a new dataset. This can help you work in batches on a large amount of data while minimizing redundant labor. Once you select Edit Wikidata schema under the Extensions dropdown menu, your project interface will change. You’ll see new tabs added to the right of “X rows/records" in the grid header: “Schema,” “Issues,” and “Preview.” You can now switch between the tabular grid format of your dataset and the screens that allow you to prepare data for uploading. @@ -96,15 +100,19 @@ OpenRefine presents you with an easy visual way to map out the relationships in ![A screenshot of the schema construction window in OpenRefine.](/img/wikidata-schema.png) -There is [a Wikidata tutorial on how OpenRefine handles Wikidata schema](https://www.wikidata.org/wiki/Wikidata:Tools/OpenRefine/Editing/Tutorials/Basic_editing). +You may wish to refer to [this Wikidata tutorial on how OpenRefine handles Wikidata schema](https://www.wikidata.org/wiki/Wikidata:Tools/OpenRefine/Editing/Tutorials/Basic_editing). #### Editing terms with your schema -You may wish to include edits to terms (labels, aliases, descriptions, or sitelinks) as well as establishing relationships between entities. +With OpenRefine, you can edit the terms (labels, aliases, descriptions, or sitelinks) of Wikidata entities as well as establish relationships between entities. For example, you may wish to upload pseudonyms, pen names, maiden names, or married names for authors. -For example, you may wish to upload pseudonyms, pen names, maiden or married names for historical authors. You can do so by putting the preferred names in one column of your dataset and alternative names in another column. In the schema interface, add an item for the preferred values, then click “Add term” on the right-hand side of the screen. Select “Alias” from the dropdown, enter in “English” in the language field, and drop your alternative names column into the space. +![An author with a number of aliases indicating pseudonyms.](/img/wikidata-terms.png) -Terms must always have a language selected. You cannot edit multiple languages at once, unless you drop a suitable column into the “language” field. For example, if you had translated publication titles, with data in the format +You can do so by putting the preferred names in one column of your dataset and alternative names in another column. In the schema interface, add an item for the preferred values, then click “Add term” on the right-hand side of the screen. Select “Alias” from the dropdown, enter in “English” in the language field, and drop your alternative names column into the space. For this example, you should also consider adding those alternative names to the authors' entries using the property [pseudonym (P742)](https://www.wikidata.org/wiki/Property:P742). The "description" and "label" terms can only contain one value, so there is an option to override existing values if needed. Aliases can be potentially infinite. + +![The schema window showing a term being edited.](/img/wikidata-terms2.png) + +Terms must always have an associated language. You can select the term's language by typing in the “lang” field, which will auto-complete for you. You cannot edit multiple languages at once, unless you supply a suitable column instead. For example, suppose you had translated publication titles, with data in the following format: |English title|Translated title|Translation language| |---|---|---| @@ -115,19 +123,19 @@ Terms must always have a language selected. You cannot edit multiple languages a |Wolf Hall|En la corte del lobo|Spanish| ||ウルフ・ホール|Japanese| -You could upload translated titles to “Label” with the language from “Translation language.” You may wish to fetch the two-letter language code and use that instead for better language matches. +You could upload the “Translated titles” to “Label” with the language specified by “Translation language.” You may wish to fetch the two-letter language code and use that instead for better language matches. ![Constructing a schema with aliases and languages.](/img/wikidata-translated.png) ### Manage Wikidata account -To edit Wikidata directly from OpenRefine, you must have a Wikidata account and log into it in OpenRefine. OpenRefine can only upload edits with Wikidata user accounts that are “[autoconfirmed](https://www.wikidata.org/wiki/Wikidata:Autoconfirmed_users)” - at this time, that means accounts that have more than 50 edits and have existed for longer than four days. +To edit Wikidata directly from OpenRefine, you must log in with a Wikidata account. OpenRefine can only upload edits with Wikidata user accounts that are “[autoconfirmed](https://www.wikidata.org/wiki/Wikidata:Autoconfirmed_users)” - at this time, that means accounts that have more than 50 edits and have existed for longer than four days. -Use the Extensions menu to select Manage Wikidata account and you will be presented with the following window: +Use the Extensions menu to select Manage Wikidata account and you will be presented with the following window: ![The Wikidata authorization window in OpenRefine.](/img/wikidata-login.png) -For security reasons, it is suggested that you not use your main account authorization with OpenRefine. Wikidata allows you to set special passwords to access your account through software. You can find this setting for your account at [https://www.wikidata.org/wiki/Special:BotPasswords](https://www.wikidata.org/wiki/Special:BotPasswords) once logged in. Creating bot access will prompt you for a unique name, and allow you to enable the following required settings: +For security reasons, you should not use your main account authorization with OpenRefine. Wikidata allows you to set special passwords to access your account through software. You can find [this setting for your account here](https://www.wikidata.org/wiki/Special:BotPasswords) once logged in. Creating bot access will prompt you for a unique name. You should then enable the following required settings: * High-volume editing * Edit existing pages * Create, edit, and move pages @@ -136,13 +144,13 @@ It will then generate a username (in the form of “yourwikidatausername@yourbot If your account or your bot is not properly authorized, OpenRefine will not display a warning or error when you try to upload your edits. -You may also wish to store your unencrypted username and password in OpenRefine, saved locally to your computer. For security reasons, you may wish to leave this box unchecked. You can save your OpenRefine-specific bot password in your browser or with a password management tool. +You can store your unencrypted username and password in OpenRefine, saved locally to your computer and available for future use. For security reasons, you may wish to leave this box unchecked. You can also save your OpenRefine-specific bot password in your browser or with a password management tool. ### Import and export schema You can save time on repetitive processes by defining a schema on one project, then exporting it and importing for use on new datasets in the future. Or you and your colleagues can share a schema with each other to coordinate your work. -You can export a schema from a project using ExportWikidata schema, or by using ExtensionsExport schema. OpenRefine will generate a JSON file for you to save and share. You may experience issues with pop-up windows in your browser: consider allowing pop-ups for the OpenRefine URL (`127.0.0.1`) from now on. +You can export a schema from a project using ExportWikidata schema, or by using ExtensionsExport schema. OpenRefine will generate a JSON file for you to save and share. You may experience issues with pop-up windows in your browser: consider allowing pop-ups from the OpenRefine URL (`127.0.0.1`) from now on. You can import a schema using ExtensionsImport schema. You can upload a JSON file, or paste JSON statements directly into a field in the window. An imported schema will look for columns with the same names, and you will see an error message if your project doesn't contain matching columns. @@ -150,26 +158,25 @@ You can import a schema using ExtensionsExport you will see Wikidata edits... and under Extensions you will see Upload edits to Wikidata. Both will bring up the same window for you to [log in with your Wikidata account](#manage-wikidata-account). +There are two menu options in OpenRefine for applying your edits to Wikidata. Under Export you will see Wikidata edits... and under Extensions you will see Upload edits to Wikidata. Both will bring up the same window for you to [log in with a Wikidata account](#manage-wikidata-account). Once you are authorized, you will see a window with any outstanding issues. You can ignore these issues, but we recommend you resolve them. If you are ready to upload your edits, you can provide an “Edit summary” - a short message describing the batch of edits you are making. It can be helpful to leave notes for yourself, such as “batch 1: authors A-G” or other indicators of your workflow progress. OpenRefine will show the progress of the upload as it is happening, but does not show a confirmaton window. -If you have made edits successfully, you will see them on [your Wikidata user contributions page](https://www.wikidata.org/wiki/Special:Contributions/), and on the [Edit groups page](https://editgroups.toolforge.org/). - -All edits can be undone from this interface. +If your edits have been successful, you will see them listed on [your Wikidata user contributions page](https://www.wikidata.org/wiki/Special:Contributions/), and on the [Edit groups page](https://editgroups.toolforge.org/). All edits can be undone from this second interface. ### QuickStatements export -Your OpenRefine data can be exported in a format recognized by [QuickStatements](https://www.wikidata.org/wiki/Help:QuickStatements), a tool that creates Wikidata edits using text commands. OpenRefine generates “version 1” QuickStatements commands. In order to use QuickStatements, you must authorize it with a Wikidata account that is [autoconfirmed](https://www.wikidata.org/wiki/Wikidata:Autoconfirmed_users) (it may appear as “MediaWiki” when you authorize). - -Any dataset can be converted into QuickStatements text commands. You can follow the steps listed on [this page](https://www.wikidata.org/wiki/Help:QuickStatements#Running_QuickStatements). - -Under the Export menu, look for QuickStatements file; under Extensions look for Export to QuickStatements. Exporting your schema from OpenRefine will generated a text file called `statements.txt` by default. Paste the contents of the text file into a new QuickStatements batch using version 1. You can find version 1 of the tool (no longer maintained) [here](https://wikidata-todo.toolforge.org/quick_statements.php). The text commands will be processed into Wikidata edits and previewed for you to review before submitting. +Your OpenRefine data can be exported in a format recognized by [QuickStatements](https://www.wikidata.org/wiki/Help:QuickStatements), a tool that creates Wikidata edits using text commands. OpenRefine generates “version 1” QuickStatements commands. There are advantages to using QuickStatements rather than uploading your edits directly to Wikidata, including the way QuickStatements resolves duplicates and redundancies. You can learn more on QuickStatements' [Help page](https://www.wikidata.org/wiki/Help:QuickStatements), and on OpenRefine's [Uploading page](https://www.wikidata.org/wiki/Wikidata:Tools/OpenRefine/Editing/Uploading). +In order to use QuickStatements, you must authorize it with a Wikidata account that is [autoconfirmed](https://www.wikidata.org/wiki/Wikidata:Autoconfirmed_users) (it may appear as “MediaWiki” when you authorize). + +Follow the [steps listed on this page](https://www.wikidata.org/wiki/Help:QuickStatements#Running_QuickStatements). +To prepare your OpenRefine data into QuickStatements, select ExportQuickStatements file, or ExtensionsExport to QuickStatements. Exporting your schema from OpenRefine will generate a text file called `statements.txt` by default. Paste the contents of the text file into a new QuickStatements batch using version 1. You can find [version 1 of the tool (no longer maintained) here](https://wikidata-todo.toolforge.org/quick_statements.php). The text commands will be processed into Wikidata edits and previewed for you to review before submitting. + ### Schema alignment The best resource is the [Schema alignment page](https://www.wikidata.org/wiki/Wikidata:Tools/OpenRefine/Editing/Schema_alignment) on Wikidata. diff --git a/docs/static/img/wikidata-terms.png b/docs/static/img/wikidata-terms.png new file mode 100644 index 0000000000000000000000000000000000000000..8327242ae7e0663f8b81b5447885bc749ef1fdbc GIT binary patch literal 24677 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 G;lBU{TV+K6 literal 0 HcmV?d00001 diff --git a/docs/static/img/wikidata-terms2.png b/docs/static/img/wikidata-terms2.png new file mode 100644 index 0000000000000000000000000000000000000000..fbe7d3286e10fdd66b0dcda3be3791d72401ea92 GIT binary patch literal 7336 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