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

fix: Remove invalid watermark triples (DEV-3418) #3116

Merged
merged 13 commits into from
Mar 14, 2024
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
rdf:type owl:Ontology ;
rdfs:label "The Knora base ontology"@en ;
:attachedToProject knora-admin:SystemProject ;
:ontologyVersion "knora-base v29" .
:ontologyVersion "knora-base v30" .


#################################################################
Expand Down
2 changes: 1 addition & 1 deletion webapi/src/main/scala/org/knora/webapi/package.scala
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* The version of `knora-base` and of the other built-in ontologies that this version of Knora requires.
* Must be the same as the object of `knora-base:ontologyVersion` in the `knora-base` ontology being used.
*/
val KnoraBaseVersion: String = "knora-base v29"
val KnoraBaseVersion: String = "knora-base v30"

Check warning on line 14 in webapi/src/main/scala/org/knora/webapi/package.scala

View check run for this annotation

Codecov / codecov/patch

webapi/src/main/scala/org/knora/webapi/package.scala#L14

Added line #L14 was not covered by tests

/**
* `IRI` is a synonym for `String`, used to improve code readability.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import com.typesafe.scalalogging.Logger

import org.knora.webapi.messages.store.triplestoremessages.RdfDataObject
import org.knora.webapi.store.triplestore.upgrade.plugins.UpgradePluginPR3110
import org.knora.webapi.store.triplestore.upgrade.plugins.*

/**
Expand Down Expand Up @@ -64,6 +65,7 @@
PluginForKnoraBaseVersion(versionNumber = 27, plugin = new MigrateOnlyBuiltInGraphs), // PR 3026
PluginForKnoraBaseVersion(versionNumber = 28, plugin = new MigrateOnlyBuiltInGraphs), // PR 3038
PluginForKnoraBaseVersion(versionNumber = 29, plugin = new UpgradePluginPR3110()),
PluginForKnoraBaseVersion(versionNumber = 30, plugin = new UpgradePluginPR3111()),

Check warning on line 68 in webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/RepositoryUpdatePlan.scala

View check run for this annotation

Codecov / codecov/patch

webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/RepositoryUpdatePlan.scala#L68

Added line #L68 was not covered by tests
// KEEP IT ON THE BOTTOM
// From "versionNumber = 6" don't use prBasedVersionString!
)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/*
* Copyright © 2021 - 2024 Swiss National Data and Service Center for the Humanities and/or DaSCH Service Platform contributors.
* SPDX-License-Identifier: Apache-2.0
*/

package org.knora.webapi.store.triplestore.upgrade.plugins

import org.eclipse.rdf4j.sparqlbuilder.core.SparqlBuilder.`var` as variable
import org.eclipse.rdf4j.sparqlbuilder.core.query.ModifyQuery
import org.eclipse.rdf4j.sparqlbuilder.core.query.*
import org.eclipse.rdf4j.sparqlbuilder.rdf.Rdf

import org.knora.webapi.slice.admin.AdminConstants
import org.knora.webapi.slice.admin.repo.rdf.Vocabulary
import org.knora.webapi.store.triplestore.upgrade.GraphsForMigration
import org.knora.webapi.store.triplestore.upgrade.MigrateSpecificGraphs

/**
* Certain restricted views have a watermark that is not a boolean. This plugin removes the invalid watermark triples.
*/
class UpgradePluginPR3111 extends AbstractSparqlUpdatePlugin {

override def graphsForMigration: GraphsForMigration =
MigrateSpecificGraphs.from(AdminConstants.adminDataNamedGraph)

Check warning on line 24 in webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR3111.scala

View check run for this annotation

Codecov / codecov/patch

webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR3111.scala#L24

Added line #L24 was not covered by tests

private val removeInvalidRestrictedViewWatermarkTriples: ModifyQuery = {
val invalidTriple = variable("s").has(
Vocabulary.KnoraAdmin.projectRestrictedViewWatermark,
Rdf.literalOf("path_to_image"),

Check warning on line 29 in webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR3111.scala

View check run for this annotation

Codecov / codecov/patch

webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR3111.scala#L27-L29

Added lines #L27 - L29 were not covered by tests
)
Queries
.MODIFY()
.prefix(Vocabulary.KnoraAdmin.NS)

Check warning on line 33 in webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR3111.scala

View check run for this annotation

Codecov / codecov/patch

webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR3111.scala#L33

Added line #L33 was not covered by tests
.delete(invalidTriple)
.where(invalidTriple.from(Vocabulary.NamedGraphs.knoraAdminIri))

Check warning on line 35 in webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR3111.scala

View check run for this annotation

Codecov / codecov/patch

webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR3111.scala#L35

Added line #L35 was not covered by tests
}

override def getQueries: List[ModifyQuery] = List(removeInvalidRestrictedViewWatermarkTriples)

Check warning on line 38 in webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR3111.scala

View check run for this annotation

Codecov / codecov/patch

webapi/src/main/scala/org/knora/webapi/store/triplestore/upgrade/plugins/UpgradePluginPR3111.scala#L38

Added line #L38 was not covered by tests
}
Loading