Skip to content

Commit 68f19c3

Browse files
fix!: partOf and sequenceOf properties are not marked as isEditable (#2268)
1 parent f2b2584 commit 68f19c3

22 files changed

Lines changed: 5065 additions & 4997 deletions

‎docs/01-introduction/example-project.md‎

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -176,22 +176,16 @@ relationship is expressed using the property `incunabula:partOf`:
176176

177177
The key things to notice here are:
178178

179-
* `rdfs:subPropertyOf knora-base:isPartOf`: The Knora base ontology
180-
provides a generic `isPartOf` property to express part-whole
181-
relationships. Like many properties defined in `knora-base`, a
182-
project cannot use `knora-base:isPartOf` directly, but must make a
183-
subproperty such as `incunabula:partOf`. It is important to note
184-
that `knora-base:isPartOf` is a subproperty of
185-
`knora-base:hasLinkTo`. Any property that points to a
186-
`knora-base:Resource` must be a subproperty of
187-
`knora-base:hasLinkTo`. In Knora terminology, such a property is
188-
called a *link property*.
189-
* `knora-base:objectClassConstraint :book`: The object of this
190-
property must be a member of the class `incunabula:book`, which, as
191-
we will see below, is a subclass of `knora-base:Resource`.
192-
* `salsah-gui:guiElement salsah-gui:Searchbox`: When SALSAH prompts a
193-
user to select the book that a page is part of, it should provide a
194-
search box enabling the user to find the desired book.
179+
* `rdfs:subPropertyOf knora-base:isPartOf`: The `knora-base` ontology provides a generic `isPartOf` property to express
180+
part-whole relationships. A project may use `knora-base:isPartOf` directly, however creating a subproperty such as
181+
`incunabula:partOf` will allow to customize the property further, e.g. by giving it a more descriptive label.
182+
It is important to note that `knora-base:isPartOf` is a subproperty of `knora-base:hasLinkTo`. Any property that
183+
points to a `knora-base:Resource` must be a subproperty of `knora-base:hasLinkTo`. Such a
184+
property is called a *link property*.
185+
* `knora-base:objectClassConstraint :book`: The object of this property must be a member of the class `incunabula:book`,
186+
which, as we will see below, is a subclass of `knora-base:Resource`.
187+
* `salsah-gui:guiElement salsah-gui:Searchbox`: When SALSAH prompts a user to select the book that a page is part of, it
188+
should provide a search box enabling the user to find the desired book.
195189

196190
Because `incunabula:partOf` is a link property, it must always
197191
accompanied by a *link value property*, which enables Knora to store

‎docs/02-knora-ontologies/knora-base.md‎

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -575,34 +575,35 @@ as the `kb:LinkValue`.
575575

576576
#### isPartOf
577577

578-
A special case of linked resources are _part-of related resources_, i.e. a resource consisting of several other resources.
579-
In order to create a part-of relation between two resources, the resource that is part of another resource needs to have
580-
a property that is a subproperty of `kb:isPartOf`. This property needs to point to the resource class it is part of via
581-
its predicate `kb:objectType`.
578+
A special case of linked resources are _part-of related resources_, i.e. a resource consisting of several other
579+
resources. In order to create a part-of relation between two resources, the resource that is part of another resource
580+
needs to have a property that is either `kb:isPartOf` or a subproperty thereof.
582581
`kb:isPartOf` itself is a subproperty of `kb:hasLinkTo`. Same as described above for link properties, a corresponding
583582
part-of value property is created automatically. This value property has the same name as the part-of property with
584583
`Value` appended. For example, if in an ontology `data` a property `data:partOf` was defined, the corresponding value
585584
property would be named `data:partOfValue`. This newly created property `data:partOfValue` is defined as a subproperty
586585
of `kb:isPartOfValue`.
587586

588-
Part-of relations are recommended for resources of type `kb:StillImageRepresentation`. In that case, the resource that is
589-
part of another resource needs to have a property that is a subproperty of `kb:seqnum` with an integer as value.
590-
A client can then use this information to leaf through the parts of the compound resource (p.ex. to leaf through the
591-
pages of a book like in [this](https://docs.dasch.swiss/DSP-API/01-introduction/example-project/#resource-classes) example).
587+
Part-of relations are recommended for resources of type `kb:StillImageRepresentation`. In that case, the resource that
588+
is part of another resource needs to have a property `kb:seqnum` or a subproperty thereof, with an integer as value. A
589+
client can then use this information to leaf through the parts of the compound resource (p.ex. to leaf through the pages
590+
of a book like in [this](https://docs.dasch.swiss/DSP-API/01-introduction/example-project/#resource-classes) example).
592591

593592
#### isSequenceOf
594593

595-
Similar to `kb:isPartOf` for `kb:StillImageRepresentations`, part-whole-relations can be defined for resources that have a time
596-
dimension by using `kb:isSequenceOf`. You can use it for video or audio resources that are subtypes of `kb:MovingImageRepresentation`
597-
and `kb:AudioRepresentation`.
594+
Similar to `kb:isPartOf` for `kb:StillImageRepresentations`, part-whole-relations can be defined for resources that have
595+
a time dimension by using `kb:isSequenceOf`. You can use it for video or audio resources that are subtypes of
596+
`kb:MovingImageRepresentation` and `kb:AudioRepresentation`.
598597

599-
`kb:isSequenceOf` is intended to be used in combination with the property `kb:hasSequenceBounds` which points to a `kb:IntervalValue`.
600-
This defines the start and end point of the subseqence in relation to the entire audio/video resource as an [interval](#intervalvalue).
601-
A dedicated frontend behaviour is planned, if these properties are used in combination.
598+
`kb:isSequenceOf` is intended to be used in combination with the property `kb:hasSequenceBounds` which points to a
599+
`kb:IntervalValue`. This defines the start and end point of the subseqence in relation to the entire audio/video
600+
resource as an [interval](#intervalvalue). When the properties are used in this combination, a dedicated behavior in the
601+
frontend allows to display the sequences alongside the main resource.
602602

603-
There is an important difference between `kb:isSequenceOf` and `kb:isPartOf`: For `kb:isPartOf`, each part *is a* `kb:StillImageRepresentation` and
604-
the whole consists of multiple such parts. In `kb:isSequenceOf` on the other hand, the whole is one `kb:MovingImageRepresentation` or `kb:AudioRepresentation`.
605-
The parts only define which sub-sequence of this representation they are.
603+
There is an important difference between `kb:isSequenceOf` and `kb:isPartOf`: For `kb:isPartOf`, each part *is a*
604+
`kb:StillImageRepresentation` and the whole consists of multiple such parts. In `kb:isSequenceOf` on the other hand, the
605+
whole is one `kb:MovingImageRepresentation` or `kb:AudioRepresentation`. The parts only define which sub-sequence of
606+
this representation they are.
606607

607608
### Text with Standoff Markup
608609

‎knora-ontologies/knora-base.ttl‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -561,6 +561,7 @@
561561
rdfs:comment "Indicates that this resource is part of another resource"@en ;
562562
:subjectClassConstraint :Resource ;
563563
:objectClassConstraint :Resource ;
564+
:isEditable true ;
564565
rdfs:subPropertyOf :hasLinkTo .
565566

566567

@@ -570,6 +571,7 @@
570571
rdf:type owl:ObjectProperty ;
571572
:objectClassConstraint :LinkValue ;
572573
:subjectClassConstraint :Resource ;
574+
:isEditable true ;
573575
rdfs:subPropertyOf :hasLinkToValue .
574576

575577

@@ -584,6 +586,7 @@
584586
rdfs:comment "Indicates that this resource is a sequence of a video or audio resource"@en ;
585587
:subjectClassConstraint :Resource ;
586588
:objectClassConstraint :Resource ;
589+
:isEditable true ;
587590
rdfs:subPropertyOf :hasLinkTo .
588591

589592

@@ -593,6 +596,7 @@
593596
rdf:type owl:ObjectProperty ;
594597
:objectClassConstraint :LinkValue ;
595598
:subjectClassConstraint :Resource ;
599+
:isEditable true ;
596600
rdfs:subPropertyOf :hasLinkToValue .
597601

598602

@@ -641,6 +645,7 @@
641645
:seqnum
642646
rdf:type owl:ObjectProperty ;
643647
:objectClassConstraint :IntValue ;
648+
:isEditable true ;
644649
rdfs:subPropertyOf :hasValue ;
645650
rdfs:label "Sequenznummer"@de,
646651
"Sequence number"@en,
@@ -654,6 +659,7 @@
654659
:hasSequenceBounds
655660
rdf:type owl:ObjectProperty ;
656661
:objectClassConstraint :IntervalValue ;
662+
:isEditable true ;
657663
rdfs:subPropertyOf :hasValue ;
658664
rdfs:label "Sequenz-Grenzen"@de,
659665
"Sequence Bounds"@en;

0 commit comments

Comments
 (0)