forked from DSpace/RestContract
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request DSpace#252 from the-library-code/DSpace_duplicate_…
…contract Duplicate Detection: REST Contract submission section & item link
- Loading branch information
Showing
7 changed files
with
222 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
# Duplicate detection endpoint | ||
[Back to the list of all defined endpoints](endpoints.md) | ||
|
||
## Main Endpoint | ||
**/api/submission/duplicates** | ||
|
||
Provide access to basic duplicate detection services. These services use Solr and the levenshtein distance operator | ||
to detect potential duplicates of a given item, useful during submission and workflow review. | ||
|
||
See `dspace/config/modules/duplicate-detection.cfg` for configuration properties and examples. | ||
|
||
## Single duplicate | ||
|
||
Not implemented. (a duplicate only makes sense in the context of a search by item) | ||
|
||
## All duplicates | ||
|
||
Not implemented. (a duplicate only makes sense in the context of a search by item) | ||
|
||
## Search | ||
|
||
**GET /api/submission/duplicates/search/findByItem?uuid=<:uuid>** | ||
|
||
Provides a list of items that may be duplicates, if this feature is enabled, given the uuid as a parameter. | ||
|
||
Note that although this appears in the submission category, the item UUID can also be an archived item. | ||
Currently, the only frontend use of this feature is in workspace and workflow, so it is categorised as such. | ||
|
||
Each potential duplicate has the following attributes: | ||
|
||
* title: The item title | ||
* uuid: The item UUID | ||
* owningCollectionName: Name of the owning collection, if present | ||
* workspaceItemId: Integer ID of the workspace item, if present | ||
* workflowItemId: Integer ID of the workflow item, if present | ||
* metadata: A list of metadata values copied from the item, as per configuration | ||
* type: The value is always DUPLICATE. This is the 'type' category used for serialization/deserialization. | ||
|
||
Example | ||
|
||
```json | ||
{ | ||
"potentialDuplicates": [ | ||
{ | ||
"title": "Example Item", | ||
"uuid": "5ca83276-f003-460d-98b6-dd3c30708749", | ||
"owningCollectionName": "Publishers", | ||
"workspaceItemId": null, | ||
"workflowItemId": null, | ||
"metadata": { | ||
"dc.title": [ | ||
{ | ||
"value": "Example Item", | ||
"language": null, | ||
"authority": null, | ||
"confidence": -1, | ||
"place": 0 | ||
} | ||
], | ||
"dspace.entity.type": [ | ||
{ | ||
"value": "Publication", | ||
"language": null, | ||
"authority": null, | ||
"confidence": -1, | ||
"place": 0 | ||
} | ||
] | ||
}, | ||
"type": "DUPLICATE" | ||
}, { | ||
"title": "Example Itom", | ||
"uuid": "32f8f6e4-c79e-4322-aae7-07ee535f70a6", | ||
"owningCollectionName": null, | ||
"workspaceItemId": 51, | ||
"workflowItemId": null, | ||
"metadata": { | ||
"dc.title": [{ | ||
"value": "Example Itom", | ||
"language": null, | ||
"authority": null, | ||
"confidence": -1, | ||
"place": 0 | ||
}] | ||
}, | ||
"type": "DUPLICATE" | ||
}, { | ||
"title": "Exaple Item", | ||
"uuid": "0647ff45-48f5-4c1b-b6d7-f5dbbc160856", | ||
"owningCollectionName": null, | ||
"workspaceItemId": 52, | ||
"workflowItemId": null, | ||
"metadata": { | ||
"dc.title": [{ | ||
"value": "Exaple Item", | ||
"language": null, | ||
"authority": null, | ||
"confidence": -1, | ||
"place": 0 | ||
}] | ||
}, | ||
"type": "DUPLICATE" | ||
}] | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
# WorkspaceItem data of identifiers sectionType | ||
[Back to the definition of the workspaceitems endpoint](workspaceitems.md) | ||
|
||
This section data represent a list of potential duplicates associated for this workspace item. | ||
|
||
It is a JSON object with the following structure (matches the response from the [duplicate search endpoint](duplicates.md)) : | ||
|
||
```json | ||
{ | ||
"potentialDuplicates": [ | ||
{ | ||
"title": "Example Item", | ||
"uuid": "5ca83276-f003-460d-98b6-dd3c30708749", | ||
"owningCollectionName": "Publishers", | ||
"workspaceItemId": null, | ||
"workflowItemId": null, | ||
"metadata": { | ||
"dc.title": [ | ||
{ | ||
"value": "Example Item", | ||
"language": null, | ||
"authority": null, | ||
"confidence": -1, | ||
"place": 0 | ||
} | ||
], | ||
"dspace.entity.type": [ | ||
{ | ||
"value": "Publication", | ||
"language": null, | ||
"authority": null, | ||
"confidence": -1, | ||
"place": 0 | ||
} | ||
] | ||
}, | ||
"type": "DUPLICATE" | ||
}, { | ||
"title": "Example Itom", | ||
"uuid": "32f8f6e4-c79e-4322-aae7-07ee535f70a6", | ||
"owningCollectionName": null, | ||
"workspaceItemId": 51, | ||
"workflowItemId": null, | ||
"metadata": { | ||
"dc.title": [{ | ||
"value": "Example Itom", | ||
"language": null, | ||
"authority": null, | ||
"confidence": -1, | ||
"place": 0 | ||
}] | ||
}, | ||
"type": "DUPLICATE" | ||
}, { | ||
"title": "Exaple Item", | ||
"uuid": "0647ff45-48f5-4c1b-b6d7-f5dbbc160856", | ||
"owningCollectionName": null, | ||
"workspaceItemId": 52, | ||
"workflowItemId": null, | ||
"metadata": { | ||
"dc.title": [{ | ||
"value": "Exaple Item", | ||
"language": null, | ||
"authority": null, | ||
"confidence": -1, | ||
"place": 0 | ||
}] | ||
}, | ||
"type": "DUPLICATE" | ||
}] | ||
} | ||
``` | ||
The potential duplicates listed in the section have all been detected by a special Solr search that compares the | ||
levenshtein edit distance between the in-progress item title and other item titles (normalised). | ||
|
||
Each potential duplicate has the following attributes: | ||
|
||
* title: The item title | ||
* uuid: The item UUID | ||
* owningCollectionName: Name of the owning collection, if present | ||
* workspaceItemId: Integer ID of the workspace item, if present | ||
* workflowItemId: Integer ID of the workflow item, if present | ||
* metadata: A list of metadata values copied from the item, as per configuration | ||
* type: The value is always DUPLICATE. This is the 'type' category used for serialization/deserialization. | ||
|
||
See `dspace/config/modules/duplicate-detection.cfg` for configuration properties. | ||
|
||
## Patch operations | ||
There are no PATCH methods implemented for this section. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters