v1.2.0 Release Notes

See the release and closed tickets on the v1.2.0 milestone on Github.

Required changes to existing data:

1. Project keywords (admin data)

Project keywords need to be transformed into sequences and property changed to projectKeyword (singular).

before:

<http://rdfh.ch/projects/00FF>
        knora-base:projectKeywords "images, collection"^^xsd:string .

after:

<http://rdfh.ch/projects/00FF>
        knora-base:projectKeyword "images"^^xsd:string, "collection"^^xsd:string ;

2. Project descriptions (admin data)

Project descriptions need to be transformed into sequences with language tag.

before:

<http://rdfh.ch/projects/00FF>
        knora-base:projectDescription "A demo project of a collection of images"^^xsd:string .

after:

<http://rdfh.ch/projects/00FF>
        knora-base:projectDescription "A demo project of a collection of images"@en .

3. salsah-gui:guiOrder

The predicate salsah-gui:guiOrder is now attached to cardinalities in class definitions, instead of attaching it to property definitions. This allows the same property to be first in one class and last in another class.

Before:

:title rdf:type owl:ObjectProperty ;
  salsah-gui:guiOrder "1"^^xsd:integer .

After:

:book rdf:type owl:Class ;
      rdfs:subClassOf knora-base:Resource ,
                      [
                         rdf:type owl:Restriction ;
                         owl:onProperty :title ;
                         owl:minCardinality "1"^^xsd:nonNegativeInteger ;
                         salsah-gui:guiOrder "1"^^xsd:nonNegativeInteger
                      ]

Existing project-specific ontologies must be updated. You can use the command-line tool org/knora/webapi/util/TransformOntology.scala to do this automatically. First dump your ontology to a Turtle file. Then at the sbt console, type:

runMain org.knora.webapi.util.TransformOntology -t guiorder INPUT OUTPUT

For INPUT, use the absolute path of the Turtle file representing your existing ontology. For OUTPUT, use the absolute path of the output file to be created.

Note that, because of a limitation of the current version of the RDF4J Turtle generation library, the generated Turtle represents cardinalities as labelled blank nodes, rather than as anonymous blank nodes, which would be more readable (see this pull request).

Then replace the contents of your ontology’s named graph in the triplestore with the contents of the transformed Turtle file, and restart Knora. Be sure to test this on a test installation using a copy of your data and ontologies, before updating the ontology used by a live server.

Also, you have to replace the salsah-gui ontology that you have in the triplestore with the one in salsah-gui.ttl.

New features:

  • General
    • Change: Return differently formatted JSON responses for exception messages, depending on which route (v1, v2` or admin) was accessed.
  • Admin API
    • Change: Project shortcode is required for the creation of new projects
    • Change: Project keywords are now a sequence. Needs change to existing data. Please see example above.
    • Change: Project description has language tag and is returned as array. Needs change to existing data. Please see example above.
    • Change: Remove institution from project (will be added later with the FAIR metadata)
    • Change: Sorting of collections with admin objects (user, group, project)
    • New: Keywords endpoint at /admin/projects/keywords returns all unique keywords (as strings) for all projects in an array
    • New: Keywords endpoint at /admin/projects/keywords/[projectIri] returns all keywords of a single project.
    • New: Lists endpoint at /admin/lists/ allows new lists to be created.
    • New: Lists endpoint at /admin/lists/infos/<listIri> allows to change basic list information.

Bugfixes: