Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integration for Turnitin #253

Open
1 task
jmakowski1123 opened this issue Apr 3, 2023 · 10 comments
Open
1 task

Integration for Turnitin #253

jmakowski1123 opened this issue Apr 3, 2023 · 10 comments
Assignees

Comments

@jmakowski1123
Copy link

jmakowski1123 commented Apr 3, 2023

At-A-Glance

Supported integration point for Turnitin, a third-party plagiarism tool.

More information

Product specs

Design files

Kanban board

Stakeholders

Primary Contributors

  • edunext

Community release milestones

  • Quince:

  • Redwood: Will be released

How to contribute

  • Has a community backlog with work to pick up?
@jmakowski1123 jmakowski1123 converted this from a draft issue Apr 3, 2023
@jmakowski1123 jmakowski1123 added the campus Of Interest to the Campus Working Group label Apr 3, 2023
@github-actions
Copy link

github-actions bot commented Apr 3, 2023

Thanks for your submission, @openedx/open-edx-project-managers will review shortly.

@jmakowski1123 jmakowski1123 added the epic Large unit of work, consisting of multiple tasks label Apr 14, 2023
@jmakowski1123
Copy link
Author

Based on Spanish proposal needs

@felipemontoya
Copy link
Member

felipemontoya commented May 19, 2023

1. Is there an existing issue for this?

  • I have searched the existing issues

2. What new feature or functionality would you like to request?

Create an OpenAssesment step that is extendable via openedx-filters. This in order to connect the ORA open responses with academic integrity tools such as turnitin.
[optional] create an openedx-event after grading to allow developers to extend ORA even further.

3. What product area does this feature affect?

MS, spedifically the ORA2 type questions.

4. Please describe the scope of the feature.

The proposal is to create an openedx-filter that receives the text of the ora response and other context information and passes it to a configurable pipeline of possible implementations.

The response from the filter will contain the grade for the step.

In a separate plugin we would also implement a hook pipeline to send the learner's response to turnitin. This implementation would be completely modular and serve as an example for other to write hooks to connect to other tools and even to grade responses by using LLMs.

5. Please describe why you see a need for this feature.

Open ended questions are very flexible and very useful for evaluation, but many students have used them with cheated responses.
With the availability of LLM tools like chatGPT this could get sensibly worse.

6. Please describe the potential impact and/or value of this feature

- Knowing that answers will be passed to anti plagiarism tools would nudge the learners away from cheating.
- Automatic reviews could be used to give immediate feedback.
- Opens a stable extension point for more innovation in the ORA space.

7. Please provide 2-3 use cases and/or user stories in support of this feature

- Plagiarism and cheating review before the staff review in ORA. (requires a plugin for each third party tool)
- Services like ChatGPT could be use to grade or review the open ended response (this would require a plugin that is not covered in the Spanish Universities requirement)

8. Any additional information you'd like to provide?

This request comes from the Spanish Universities consortium.
Specifically the first requirement from the "Partida 4" section of the tender.

@ProductRyan
Copy link

heads up @Daniel-hershel

@e0d e0d changed the title [Placeholder] Integration for third-party plagiarism tools Integration for third-party plagiarism tools Jul 14, 2023
@e0d e0d moved this from Backlog to In Progress in Open edX Roadmap Jul 21, 2023
@nandodev-net
Copy link

nandodev-net commented Sep 12, 2023

Hello, my name is Fernando Gonzalez, I work with Edunext, here's an integration proposal

Turnitin <-> ORA integration proposal workflow

Prior to describing the workflow as conceived to date, there are some points that should be highlighted:

  • At the moment, it is thought that Turnitin acts on files, more specifically on those with .doc and .docx extensions. This is due to one of the JSON examples in the documentation's responses. There is no reference to file types. Therefore, we are planning based on the assumption that its use case is limited to file uploads.

  • The files have a 100Mb size limit, so their use should not be a problem.

  • Each and every assignment submitted by students must be evaluated by Turnitin.

  • This integration proposal could be subject to modifications.

Turnitin_ Integration Diagram

As shown in the image, the flow for carrying out an individual evaluation from Turnitin towards an ORA deliverable would be conceived through the following stages:

Stage 1: EULA

EULA refers to terms and conditions that will be displayed to both the instructor and the student, and whose acceptance is imperative when using Turnitin's services. To obtain this, Turnitin provides us with an endpoint that returns a URL, which we can link to a notification for users who need to accept these terms and conditions in order to proceed whit the submission.

Interaction with the EULA on the part of the instructor:

  • When the instructor enables the file upload option, a section should be displayed where they are shown a message similar to "To use Turnitin's anti-plagiarism services, please read and accept the EULA," adding the link returned by the service in case they wish to read it.

  • At the moment the instructor accepts, it is assumed that the EULA acceptance endpoint provided by Turnitin must be called, thus recording the instructor's participation.

Interaction with the EULA on the part of the student:

  • When the instructor enables the file upload option, it is presumed that there is no EULA acceptance endpoint intended for student use. This is because within the JSON block for creating Submissions, there is a sub-block aimed at accepting the EULA. Therefore, such acceptance will be implicit in the following stage, as will be shown below.

Stage 2: Submission

In this stage, the student will carry out the upload of their file in a conventional manner, that is:

  • select it
  • add a description
  • press upload to load it into the LMS

At the moment the student presses the Submit button,

It is expected that a subsequent step will appear with the link to the EULA and the respective acceptance text.

Once accepted, proceed to prepare the submission flow to Turnitin using the endpoints provided in the docs. (Suggestion: in the case where more than one file is uploaded, a loop of the following steps should be created, along with a file extension filter).

  1. Create a Submission through the endpoint: Create Submission

    POST https://$TII_API_URL/api/v1/submissions
    

    Note: remember to include the EULA block in the JSON.

  2. Attach the file to the deliverable through the id returned by the previous step, using the endpoint: Upload Submission File Contents

    PUT https://$TII_API_URL/api/v1/submissions/{id}/original
    
  3. Wait for Turnitin's webhook to notify us that the deliverable has been processed and is ready for the next step.

     Note: it was thought that from this step, and until obtaining the Turnitin grade, the student may see a "processing evaluation" display (this should be evaluated as an idea).
    
  4. Once the webhook arrives, the system must automatically request Turnitin to start processing the report, this would be through the following endpoint: Generate Similarity Report

    PUT https://$TII_API_URL/api/v1/submissions/{id}/similaritys
    
  5. Again, we will be waiting for a webhook to notify us when the report is ready. Once this happens, we will have at our disposal a series of actions (generate a PDF report, request the percentage of matches, generate a report viewer), for now, the one to be taken is to obtain the match percentage through the endpoint: Obtain Information from the Similarity Report

     GET https://$TII_API_URL/api/v1/submissions/{id}/similarity
    

With this, the workflow for a student to submit a file to Turnitin and receive a similarity grade is defined, which is what is currently being sought.

@juancamilom juancamilom moved this from Todo to In Progress in Open Response Assessment (ORA) Sep 15, 2023
@jmakowski1123 jmakowski1123 changed the title Integration for third-party plagiarism tools Integration for Turnitin Sep 22, 2023
@jmakowski1123 jmakowski1123 added redwood author/instructor and removed epic Large unit of work, consisting of multiple tasks labels Sep 22, 2023
@jmakowski1123 jmakowski1123 moved this to Enhancements in Product Review Tracking Sep 22, 2023
@jmakowski1123 jmakowski1123 moved this from Enhancements to Integrations in Product Review Tracking Sep 22, 2023
@jmakowski1123 jmakowski1123 moved this from In Progress to Integrations - In Progress in Open edX Roadmap Sep 25, 2023
@juancamilom
Copy link

juancamilom commented Sep 27, 2023

Here is a quick recap / update on this issue to make sure that the conversation stays alive.
The edunext / unidigital team is very mottivated and committed to make this contribution and We are already collaborating with Turnitin officials and technical teams to overcome the tecnical challenges for an integration.

We are ultimately interested in enabling an integration beetween open edX (ORA-2 in particular) and turnitin that would allow these things to happen:

A) That open edx holds the turnitin Core API credentials either as a setting inside the ORA component or as a setting in the course.

B) that the files submitted by a learner to the ORA problem can be made available to be sent to turnitin

C) that said file(s) are sent to turnitin for review and any immediate response from the turintin API is handled appropriately. for example if the credentials are not correct, there is a timeout, the file is rejected, etc.

D) that when the request is accepted by turnitin, and while turnitin has not provided a similarity reports, an indication is shown to learners and instructors in the open edX side

E) that when turnitin provides a response, the link to the viewer of the corresponding similarity report can be seen in the open edX UI for learners and instructors.

We are initially focusing the effort in making sure all the interactions facing turintin work as required, and building this code into an open edx plugin, with the idea that it could potentially be leveraged in places other than ORA (SGA, or a different xblock for example).

However, in order to reduce the uncertainty on the ORA´s side of things, we´d like to ask and validate the following:

  1. what would it take for ORA to make the file(s) submitted by a learner available for the turnitin use case (ideally via an open edX event)?
  2. can we propose an extension point (an open edX filter) to be added to ORA that would allow us to display the response we get from turnitin to the learner and the instructor?
  3. does is make sense to build this extension point into the legacy experience, or to wait a bit and aim to contribute this as part of a Re-imagined Learner UX for ORA ?

In case (3) lands in the legacy interface, we imagine something like this for the learner:
image

and something like this for the instructor:
image

@e0d, @Daniel-hershel and @mattcarter your feedback and thoughts on questions 1, 2 and 3 is highly appreciated as always.

@e0d
Copy link

e0d commented Sep 28, 2023

Hi @juancamilom I think that the original ORA design entertained extension via customization of and addition to the workflow concept that is used for grading submission. So, while I love events and filters, it may be easier and more natural to add a workflow step that supports integration with TurnItIn. There are a couple examples in branches that may be useful:

https://github.com/openedx/edx-ora2/blob/efischer/credo_replay/openassessment/assessment/api/ai_worker.py
https://github.com/openedx/edx-ora2/blob/will/ai-cache-classifiers/openassessment/assessment/api/ai_worker.py

I would assume this style of machine assessment integration would have natural methods for access the complete submission, including uploaded files, but this is an assumption at this point.

Adding that leveraging the event bus rather than celery would probably be preferable.

@juancamilom
Copy link

Thank you very much @e0d .
We initially thought that the natural way of integrating turnitin was via an additional assessment step, but we started looking in other directions once we learned that the response turnitin provides is not a quantitative assessment of the submission, but instead a qualitative report that diagnoses the writing in the file against internet sources. It is true that this qualitative result also has a similarity score, but it may not be the case that this criteria will fit into the ORAs rubric. It is also true that you can create rubrics in turnitin and have the teachers provide a staff assessment score in turnitin instead of providing it in ORA, but it seems to be an unnecessary burden.
The use case the spanish consortium is after is more directed towards having the similarity report be a tool to help learners reflect on their own work through the lens of similarity and to give instructors additional input they may or may not use when deciding the staff assessment based on the problems rubric.

However, now that you bring our attention back to the assessment steps, I'm wondering whether all assessment steps need to be linked to an score. The training step seems to be one that is not really linked to a score, but to a true or false scenario. We can perhaps explore this route in order to model the turnitin step as an unskippable step, without scoring and where success means that a similarity report was indeed received from turnitin. I´ll make sure the team explores this path and keep you posted.

@e0d
Copy link

e0d commented Sep 29, 2023

@juancamilom yes, what you say about the training step seems correct to me. I does feel like the other work that's being reviewed to adjust the weighting of grading steps could provide the ability to have a grading step with 0 weight for the final grade as well.

@juancamilom
Copy link

Quick update about this ongoing work.
We have finished the implementation of all the pieces facing towards turinitin.

  • the learner is presented with an EULA to accept
  • the files are submitted and processed.
  • the similarity report is made available.

This provisionally lives inside an independent Xblock and can be explored here: eduNEXT/platform-plugin-turnitin#4

Our next goal is to dive deep into the challenges of adding an additional ORA step, that is:

  • Optional (can be turned on an off as with the other steps)
  • Configurable (it receives the turintin integration credentials info)
  • Not graded (it produces the similarity report as information)

I've published the project in confluence as well following the product working group guidelines, here: https://openedx.atlassian.net/wiki/spaces/COMM/pages/3891855361/Assessment+step+with+external+tools+-+Turnitin

as always, your feedback is much appreciates @e0d , @Daniel-hershel , @mattcarter , @jmakowski1123

@jmakowski1123 jmakowski1123 moved this from Integrations - In Progress to In Progress in Open edX Roadmap Mar 7, 2024
@jmakowski1123 jmakowski1123 moved this from Being Developed to [Prod Proposals] In Review in Open edX Roadmap Mar 28, 2024
@jmakowski1123 jmakowski1123 removed the campus Of Interest to the Campus Working Group label Mar 28, 2024
@jmakowski1123 jmakowski1123 moved this from [Prod Proposals] In Review to Backlog in Open edX Roadmap Apr 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Progress
Status: Backlog - Is resourced
Development

No branches or pull requests

6 participants