Go to file
Lu Liu 7d4e182c75
Extend Wikidata extension to support arbitrary Wikibase instances (#2810)
Closes #1640. All Wikibase-dependent parameters, which were previously hard-coded for Wikidata, are now described in a JSON manifest. The manifest is currently constructed by hand, but, in the future, will hopefully be published by each Wikibase instance at a standard location.

* setup the manifest framework

* add dependency mechanism to scrutinizers & update tests

* add json creators to constraint entities

* adapt the backend (units tests are to be updated)

* remove the call to prepareDependencies() in the constructor

* update code according to review feedback

* update scrutinizers tests

* fix typo & update ConstraintsV1

* log if a scrutinizer is skipped

* update versioning handling in the backend

* correct the order of "actual" and "expected" for assertEquals method

* use regex to check manifest versions

* 1. add wikibase-manager.js, wikibase-dialog.js, etc.
2. move dialog/schema-alignment-dialog.js -> schema-alignment.js
3. remove unused schema-alignment-dialog.html
4. change most mentions of "Wikidata" to "Wikibase"

* support saving cookies for different Wikibases & fix LoginCommandTest

* fix schema related tests

* removed unused WikibaseCredentials

* include MediaWiki API endpoint in the schema

* fetch language codes for different Wikibases

* fix lgtm-bot alerts

* keep a connection map (MediaWiki API endpoint => Connection) in ConnectionManager

* simplify the constraint configurations of the manifest and remove lots of unnecessary code.

* add slash to the end of mediawiki.root

* add manifest schema and use ajv to validate the manifest

* remove JSONP support (Wikibase manifest host should support CORS)

* save manifests on manifest update

* add unit tests for Manifest

* include the exception in logger.error() method to make it easier to debug

* include the message of ManifestException when calling respondError

* test multiple connections

* test no manifest & test invalid manifest

* adapt manage-account-dialog.js to support multiple Wikibase connections

* update instance/subclass of related translations

* beautify import-schema-dialog.html

* use "${lang}" variable in the reconciliation service endpoint of the manifest

* adapt schema-alignment.js after introducing "${lang}" variable in the reconciliation service endpoint

* use WikibaseManager.getSelectedWikibaseApi() in SchemaAlignment._getPropertyType

* replace more mentions of "Wikidata" to "Wikibase"

* use WikibaseManager.getSelectedWikibaseApi() in previewrenderer.js

* support fetching language codes of different Wikibases in the frontend

* skip EditInspector if missing 'property_constraint_pid' in the manifest

* improve unit tests for fetching lang codes

* skip scrutinizers depending on fetcher if 'property_constraint_pid' is missing in the manifest

* make sure the schema alignment panel is set up before rendering

* fix preview bug

* add getters of "instance of" and "subclass of" to the Manifest interface and use them in NewItemScrutinizer

* fix hardcode for Wikidata in WbItemVariable

* rename 'entity_prefix' to 'site_iri' and move it from 'manifest.wikibase.properties' to 'manifest.wikibase'

* include oauth configurations in the manifest & support logging in with owner-only consumer for Wikibases with the OAuth extension

* correct schema fallback logic

* select default wikibase according to the saved schema

* include maxlag in the manifest

* [backend] move maxlag setting from preferences to request parameter

* support setting maxlag when uploading edits

* rename "Manage Wikibase" to "Select Wikibase instance" and localize it

* fix manifest updating bug

* include EditGroups in the manifest

* add the reconciliation service from the manifest to standard services if it's not present yet when adding a new manifest

* update according to review feedback

1. use inherited color variable
2. rename 'gridwroks' to 'openrefine'
3. remove unnecessary 'async: true'
4. add 'format: url' validation to urls to the schema

* rename 'wikibasePrefix' to 'siteIri'
2020-08-22 11:58:56 -04:00
.github More bug template tweaks (#2946) 2020-07-15 21:48:08 +02:00
benchmark Bump jmh.version from 1.24 to 1.25 (#3077) 2020-08-14 10:36:45 +02:00
conf Issue 630: Change branding from Google Refine to OpenRefine 2012-10-18 19:40:31 -04:00
docs Bump prismjs from 1.20.0 to 1.21.0 in /docs 2020-08-08 00:09:20 +00:00
extensions Extend Wikidata extension to support arbitrary Wikibase instances (#2810) 2020-08-22 11:58:56 -04:00
graphics Update logo for README.md 2018-02-09 22:38:44 +08:00
IDEs/eclipse Cleanup most Eclipse config files 2018-09-18 14:51:27 +01:00
licenses Remove JSON license. OpenRefine can now be used for Evil. 2018-11-30 19:38:52 +09:00
main Fix i18n key typo - fixes #3093 (#3094) 2020-08-17 22:45:50 +02:00
packaging Try xstream 1.4.12 instead 2020-07-13 13:53:54 -04:00
server Bump maven-resources-plugin from 3.1.0 to 3.2.0 2020-08-12 08:15:08 +00:00
.gitattributes fix the launch4j issue 2018-07-16 19:36:59 -04:00
.gitignore Add .factorypath and others to .gitignore 2020-08-07 09:22:22 -05:00
.travis.yml Tweak CI build settings - refs #2861 (#2894) 2020-07-07 21:41:55 +02:00
appveyor.yml Attempt to fix surefire on Appveyor 2019-08-28 10:08:22 +01:00
AUTHORS.md Update AUTHORS.md 2018-11-19 20:22:00 -05:00
CHANGES.txt Fix some typos in documentation 2019-04-02 17:38:47 +02:00
CODE_OF_CONDUCT.md Update code of conduct committee members 2020-07-21 08:43:50 +02:00
CONTRIBUTING.md Fix grammer and links 2020-03-05 08:26:26 -06:00
GOVERNANCE.md Fix some typos in documentation 2019-04-02 17:38:47 +02:00
lgtm.yml Merge .lgtm.yml and lgtm.yml 2020-06-20 21:16:35 -04:00
LICENSE.txt Update LICENSE.txt 2018-02-24 15:24:45 -05:00
pom.xml Bump maven-resources-plugin from 3.1.0 to 3.2.0 2020-08-12 08:15:08 +00:00
README.md Fix Coveralls badge 2020-06-20 15:13:03 -04:00
refine Fix FAQ URL (#2938) 2020-07-14 20:51:53 +02:00
refine.bat support refine-dev.ini for development (#2497) 2020-04-06 10:53:49 +02:00
refine.ini support refine-dev.ini for development (#2497) 2020-04-06 10:53:49 +02:00
settings.xml Windows package with embedded JRE (#2486) 2020-04-11 11:10:04 +02:00
start.sh Revert "data package metadata (#1398)" 2018-11-30 19:35:31 +09:00
stop.sh Revert "data package metadata (#1398)" 2018-11-30 19:35:31 +09:00
WeLoveOurBackers.md Add Chan Zuckerberg Initiaive to our backers file (#2852) 2020-07-01 08:08:11 +02:00

OpenRefine

Join the chat at https://gitter.im/OpenRefine/OpenRefine Build Status Coverage Status Translation progress Total alerts

OpenRefine is a Java-based power tool that allows you to load data, understand it, clean it up, reconcile it, and augment it with data coming from the web. All from a web browser and the comfort and privacy of your own computer.

Download

Run from source

If you have cloned this repository to your computer, you can run OpenRefine with:

  • ./refine on Mac OS and Linux
  • refine.bat on Windows

This requires JDK 8 and Apache Maven.

Documentation and Videos

Contributing to the project

Contact us

OpenRefine is open source software and is licensed under the BSD license located in the LICENSE.txt. See the folder licenses for information on open source libraries that OpenRefine depends on.

Credits

This software was created by Metaweb Technologies, Inc. and originally written and conceived by David Huynh dfhuynh@google.com. Metaweb Technologies, Inc. was acquired by Google, Inc. in July 2010 and the product was renamed Google Refine. In October 2012, it was renamed OpenRefine as it transitioned to a community-supported product.

See AUTHORS.md for the list of OpenRefine contributors and CONTRIBUTING.md for instructions on how to contribute yourself.