Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
feat(ontology)!: make knora-base:lastModificationDate required proper…
…ty (#2018)

* make lastModificationDate required

* add upgrade plugin + test

* revert knora-base cardinality change

* add lastModificationDate validation before leaded to cache

* add knora-base:lastModificationDate to project ontologies

* add knora-base:lastModificationDate to more ontologies

* add knora-base:lastModificationDate to even more ontologies

* fix ontology test data creation

* update ontology test data

* force application stop in case of bad ontology loaded to cache

* update plugin test and test data

* update plugin

* bump up knora-base version

* activate plugin

* update plugin, test and test data

* update plugin + cleanup

* fix plugin test

* minor fixes

* update docs

* update knora-base and plugin version

* minor code improvements

* fix typo
  • Loading branch information
mpro7 committed Mar 30, 2022
1 parent 6bbb3fe commit 64cdce9
Show file tree
Hide file tree
Showing 135 changed files with 8,757 additions and 7,402 deletions.
4 changes: 2 additions & 2 deletions docs/02-knora-ontologies/knora-base.md
Expand Up @@ -49,8 +49,8 @@ the `kb:isInProject` property, as described in

### Ontologies

Each user-created ontology must be defined as an `owl:Ontology` with the properties `rdfs:label`
and `kb:attachedToProject`.
Each user-created ontology must be defined as an `owl:Ontology` with the properties `rdfs:label` and `kb:attachedToProject`.
Since [DSP-API v19](https://github.com/dasch-swiss/dsp-api/releases/tag/v19.0.0) `kb:lastModificationDate` property is also required.

### Resources

Expand Down
187 changes: 145 additions & 42 deletions docs/03-apis/api-v2/ontology-information.md
Expand Up @@ -40,54 +40,157 @@ The response is in the complex API v2 schema. Sample response:

```json
{
"@graph" : [ {
"@id" : "http://0.0.0.0:3333/ontology/00FF/images/v2",
"@type" : "owl:Ontology",
"knora-api:attachedToProject" : {
"@id" : "http://rdfh.ch/projects/00FF"
"@graph": [
{
"knora-api:lastModificationDate": {
"@value": "2017-12-19T15:23:42.166Z",
"@type": "xsd:dateTimeStamp"
},
"rdfs:label": "The anything ontology",
"knora-api:attachedToProject": {
"@id": "http://rdfh.ch/projects/0001"
},
"@type": "owl:Ontology",
"@id": "http://0.0.0.0:3333/ontology/0001/anything/v2"
},
"rdfs:label" : "The images demo ontology"
}, {
"@id" : "http://0.0.0.0:3333/ontology/0801/beol/v2",
"@type" : "owl:Ontology",
"knora-api:attachedToProject" : {
"@id" : "http://rdfh.ch/projects/yTerZGyxjZVqFMNNKXCDPF"
{
"knora-api:lastModificationDate": {
"@value": "2022-03-23T07:14:17.445208Z",
"@type": "xsd:dateTimeStamp"
},
"rdfs:label": "The something ontology",
"knora-api:attachedToProject": {
"@id": "http://rdfh.ch/projects/0001"
},
"@type": "owl:Ontology",
"@id": "http://0.0.0.0:3333/ontology/0001/something/v2"
},
"rdfs:label" : "The BEOL ontology"
}, {
"@id" : "http://0.0.0.0:3333/ontology/0804/dokubib/v2",
"@type" : "owl:Ontology",
"knora-api:attachedToProject" : {
"@id" : "http://rdfh.ch/projects/0804"
{
"knora-api:lastModificationDate": {
"@value": "2022-03-23T07:14:17.445208Z",
"@type": "xsd:dateTimeStamp"
},
"rdfs:label": "The images demo ontology",
"knora-api:attachedToProject": {
"@id": "http://rdfh.ch/projects/00FF"
},
"@type": "owl:Ontology",
"@id": "http://0.0.0.0:3333/ontology/00FF/images/v2"
},
"rdfs:label" : "The dokubib ontology"
}, {
"@id" : "http://api.knora.org/ontology/salsah-gui/v2",
"@type" : "owl:Ontology",
"knora-api:attachedToProject" : {
"@id" : "http://www.knora.org/ontology/knora-base#SystemProject"
{
"knora-api:lastModificationDate": {
"@value": "2022-03-23T07:14:17.445208Z",
"@type": "xsd:dateTimeStamp"
},
"rdfs:label": "The BEOL ontology",
"knora-api:attachedToProject": {
"@id": "http://rdfh.ch/projects/yTerZGyxjZVqFMNNKXCDPF"
},
"@type": "owl:Ontology",
"@id": "http://0.0.0.0:3333/ontology/0801/beol/v2"
},
"rdfs:label" : "The salsah-gui ontology"
}, {
"@id" : "http://api.knora.org/ontology/standoff/v2",
"@type" : "owl:Ontology",
"knora-api:attachedToProject" : {
"@id" : "http://www.knora.org/ontology/knora-base#SystemProject"
{
"knora-api:lastModificationDate": {
"@value": "2022-03-23T07:14:17.445208Z",
"@type": "xsd:dateTimeStamp"
},
"rdfs:label": "The Biblio ontology",
"knora-api:attachedToProject": {
"@id": "http://rdfh.ch/projects/yTerZGyxjZVqFMNNKXCDPF"
},
"@type": "owl:Ontology",
"@id": "http://0.0.0.0:3333/ontology/0801/biblio/v2"
},
"rdfs:label" : "The standoff ontology"
}, {
"@id": "http://knora.unil.ch/ontology/0001/anything/v2",
"@type": "owl:Ontology",
"knora-api:attachedToProject": {
"@id": "http://rdfh.ch/projects/0001"
{
"knora-api:lastModificationDate": {
"@value": "2022-03-23T07:14:17.445208Z",
"@type": "xsd:dateTimeStamp"
},
"rdfs:label": "The Newton-Project ontology",
"knora-api:attachedToProject": {
"@id": "http://rdfh.ch/projects/yTerZGyxjZVqFMNNKXCDPF"
},
"@type": "owl:Ontology",
"@id": "http://0.0.0.0:3333/ontology/0801/newton/v2"
},
"knora-api:lastModificationDate": "2017-12-19T15:23:42.166Z",
"rdfs:label": "The anything ontology"
} ],
"@context" : {
"knora-api" : "http://api.knora.org/ontology/knora-api/v2#",
"rdfs" : "http://www.w3.org/2000/01/rdf-schema#",
"owl" : "http://www.w3.org/2002/07/owl#"
{
"knora-api:lastModificationDate": {
"@value": "2022-03-23T07:14:17.445208Z",
"@type": "xsd:dateTimeStamp"
},
"rdfs:label": "The incunabula ontology",
"knora-api:attachedToProject": {
"@id": "http://rdfh.ch/projects/0803"
},
"@type": "owl:Ontology",
"@id": "http://0.0.0.0:3333/ontology/0803/incunabula/v2"
},
{
"knora-api:lastModificationDate": {
"@value": "2022-03-23T07:14:17.445208Z",
"@type": "xsd:dateTimeStamp"
},
"rdfs:label": "The dokubib ontology",
"knora-api:attachedToProject": {
"@id": "http://rdfh.ch/projects/0804"
},
"@type": "owl:Ontology",
"@id": "http://0.0.0.0:3333/ontology/0804/dokubib/v2"
},
{
"knora-api:lastModificationDate": {
"@value": "2022-03-23T07:14:17.445208Z",
"@type": "xsd:dateTimeStamp"
},
"rdfs:label": "The Anton Webern project ontology",
"knora-api:attachedToProject": {
"@id": "http://rdfh.ch/projects/08AE"
},
"@type": "owl:Ontology",
"@id": "http://0.0.0.0:3333/ontology/08AE/webern/v2"
},
{
"rdfs:label": "The Knora admin ontology",
"knora-api:attachedToProject": {
"@id": "http://www.knora.org/ontology/knora-admin#SystemProject"
},
"knora-api:isBuiltIn": true,
"@type": "owl:Ontology",
"@id": "http://api.knora.org/ontology/knora-admin/v2"
},
{
"rdfs:label": "The knora-api ontology in the complex schema",
"knora-api:attachedToProject": {
"@id": "http://www.knora.org/ontology/knora-admin#SystemProject"
},
"knora-api:isBuiltIn": true,
"@type": "owl:Ontology",
"@id": "http://api.knora.org/ontology/knora-api/v2"
},
{
"rdfs:label": "The salsah-gui ontology",
"knora-api:attachedToProject": {
"@id": "http://www.knora.org/ontology/knora-admin#SystemProject"
},
"knora-api:isBuiltIn": true,
"@type": "owl:Ontology",
"@id": "http://api.knora.org/ontology/salsah-gui/v2"
},
{
"rdfs:label": "The standoff ontology",
"knora-api:attachedToProject": {
"@id": "http://www.knora.org/ontology/knora-admin#SystemProject"
},
"knora-api:isBuiltIn": true,
"@type": "owl:Ontology",
"@id": "http://api.knora.org/ontology/standoff/v2"
}
],
"@context": {
"knora-api": "http://api.knora.org/ontology/knora-api/v2#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
"owl": "http://www.w3.org/2002/07/owl#"
}
}
```
Expand Down
2 changes: 1 addition & 1 deletion knora-ontologies/knora-base.ttl
Expand Up @@ -21,7 +21,7 @@

:attachedToProject knora-admin:SystemProject ;

:ontologyVersion "knora-base v14" .
:ontologyVersion "knora-base v20" .



Expand Down
Expand Up @@ -9,7 +9,8 @@

<http://www.knora.org/ontology/0666/gravsearchtest1> a owl:Ontology ;
rdfs:label "Test ontology" ;
knora-base:attachedToProject <http://rdfh.ch/projects/0666> .
knora-base:attachedToProject <http://rdfh.ch/projects/0666> ;
knora-base:lastModificationDate "2012-12-12T12:12:12.12Z"^^xsd:dateTime .

gravsearchtest1:isInProjectValue rdf:type owl:ObjectProperty ;
rdfs:subPropertyOf knora-base:hasLinkToValue ;
Expand Down
3 changes: 2 additions & 1 deletion test_data/ontologies/beol-onto.ttl
Expand Up @@ -15,7 +15,8 @@

<http://www.knora.org/ontology/0801/beol> rdf:type owl:Ontology ;
rdfs:label "The BEOL ontology" ;
knora-base:attachedToProject <http://rdfh.ch/projects/yTerZGyxjZVqFMNNKXCDPF> .
knora-base:attachedToProject <http://rdfh.ch/projects/yTerZGyxjZVqFMNNKXCDPF> ;
knora-base:lastModificationDate "2012-12-12T12:12:12.12Z"^^xsd:dateTime .

##########################################################
#
Expand Down
3 changes: 2 additions & 1 deletion test_data/ontologies/biblio-onto.ttl
Expand Up @@ -16,7 +16,8 @@

<http://www.knora.org/ontology/0801/biblio> rdf:type owl:Ontology ;
rdfs:label "The Biblio ontology" ;
knora-base:attachedToProject <http://rdfh.ch/projects/yTerZGyxjZVqFMNNKXCDPF> .
knora-base:attachedToProject <http://rdfh.ch/projects/yTerZGyxjZVqFMNNKXCDPF> ;
knora-base:lastModificationDate "2012-12-12T12:12:12.12Z"^^xsd:dateTime .


#################################################################
Expand Down
3 changes: 2 additions & 1 deletion test_data/ontologies/dokubib-onto.ttl
Expand Up @@ -14,7 +14,8 @@

<http://www.knora.org/ontology/0804/dokubib> rdf:type owl:Ontology ;
rdfs:label "The dokubib ontology" ;
knora-base:attachedToProject <http://rdfh.ch/projects/0804> .
knora-base:attachedToProject <http://rdfh.ch/projects/0804> ;
knora-base:lastModificationDate "2012-12-12T12:12:12.12Z"^^xsd:dateTime .

##########################################################
#
Expand Down
3 changes: 2 additions & 1 deletion test_data/ontologies/empty-thing-onto.ttl
Expand Up @@ -16,7 +16,8 @@
@prefix : <http://www.knora.org/ontology/0001/empty-thing#> .
<http://www.knora.org/ontology/0001/empty-thing> rdf:type owl:Ontology ;
rdfs:label "The empty thing ontology" ;
knora-base:attachedToProject <http://rdfh.ch/projects/0001> .
knora-base:attachedToProject <http://rdfh.ch/projects/0001> ;
knora-base:lastModificationDate "2012-12-12T12:12:12.12Z"^^xsd:dateTime .

:EmptyThing rdf:type owl:Class ;

Expand Down
3 changes: 2 additions & 1 deletion test_data/ontologies/images-onto.ttl
Expand Up @@ -14,7 +14,8 @@

<http://www.knora.org/ontology/00FF/images> rdf:type owl:Ontology ;
rdfs:label "The images demo ontology" ;
knora-base:attachedToProject <http://rdfh.ch/projects/00FF> .
knora-base:attachedToProject <http://rdfh.ch/projects/00FF> ;
knora-base:lastModificationDate "2012-12-12T12:12:12.12Z"^^xsd:dateTime .

##########################################################
#
Expand Down
3 changes: 2 additions & 1 deletion test_data/ontologies/incunabula-onto.ttl
Expand Up @@ -13,7 +13,8 @@

<http://www.knora.org/ontology/0803/incunabula> rdf:type owl:Ontology ;
rdfs:label "The incunabula ontology"@en ;
knora-base:attachedToProject <http://rdfh.ch/projects/0803> .
knora-base:attachedToProject <http://rdfh.ch/projects/0803> ;
knora-base:lastModificationDate "2012-12-12T12:12:12.12Z"^^xsd:dateTime .

##########################################################
#
Expand Down
3 changes: 2 additions & 1 deletion test_data/ontologies/leibniz-onto.ttl
Expand Up @@ -17,7 +17,8 @@

<http://www.knora.org/ontology/0801/leibniz> rdf:type owl:Ontology ;
rdfs:label "The Briefportal Leibniz ontology" ;
knora-base:attachedToProject <http://rdfh.ch/projects/yTerZGyxjZVqFMNNKXCDPF> .
knora-base:attachedToProject <http://rdfh.ch/projects/yTerZGyxjZVqFMNNKXCDPF> ;
knora-base:lastModificationDate "2012-12-12T12:12:12.12Z"^^xsd:dateTime .

##########################################################
#
Expand Down
3 changes: 2 additions & 1 deletion test_data/ontologies/newton-onto.ttl
Expand Up @@ -17,7 +17,8 @@

<http://www.knora.org/ontology/0801/newton> rdf:type owl:Ontology ;
rdfs:label "The Newton-Project ontology" ;
knora-base:attachedToProject <http://rdfh.ch/projects/yTerZGyxjZVqFMNNKXCDPF> .
knora-base:attachedToProject <http://rdfh.ch/projects/yTerZGyxjZVqFMNNKXCDPF> ;
knora-base:lastModificationDate "2012-12-12T12:12:12.12Z"^^xsd:dateTime .

##########################################################
#
Expand Down
3 changes: 2 additions & 1 deletion test_data/ontologies/something-onto.ttl
Expand Up @@ -16,7 +16,8 @@
@prefix : <http://www.knora.org/ontology/0001/something#> .
<http://www.knora.org/ontology/0001/something> rdf:type owl:Ontology ;
rdfs:label "The something ontology" ;
knora-base:attachedToProject <http://rdfh.ch/projects/0001> .
knora-base:attachedToProject <http://rdfh.ch/projects/0001> ;
knora-base:lastModificationDate "2012-12-12T12:12:12.12Z"^^xsd:dateTime .

:Something rdf:type owl:Class ;

Expand Down
3 changes: 2 additions & 1 deletion test_data/ontologies/webern-onto.ttl
Expand Up @@ -12,7 +12,8 @@

<http://www.knora.org/ontology/0806/webern> rdf:type owl:Ontology ;
rdfs:label "The Anton Webern project ontology" ;
knora-base:attachedToProject <http://rdfh.ch/projects/0806> .
knora-base:attachedToProject <http://rdfh.ch/projects/0806> ;
knora-base:lastModificationDate "2012-12-12T12:12:12.12Z"^^xsd:dateTime .

##########################################################
#
Expand Down

0 comments on commit 64cdce9

Please sign in to comment.