Ontologies
An ontology is a formal representation of a set of terms which represent real world objects. Dependencies, attributes and relations of and between the individual components of the set are recorded in a logical, formal language. In contrast to a taxonomy, which defines a mere hierarchical structure within a range of terms, an ontology is much more a network of information of logical dependencies of term elements. Or, in other words, an ontology defines a strict, formal "data model" for real world concepts such as "Person", "Work", "Artist" etc.
An ontology thus has to offer at least two things:
- a set of concepts or terms (called resource classes) that represent concepts of real world objects
- properties describing these resources. These properties are linked either to a final value or may define a relationship to another resource.
Let's assume that we define a resource class called "Person" and two properties called "hasBirthday" and "hasParent". For a specific instance of a "Person", "hasBirthday" will have a final value such as "1960-05-21", whereas "hasParent" will link to another instance of a "Person".
Within DSP, properties may be re-used for different resources. E.g. a property "description" may be used for a resource called "image" as well as "movie". Therefore, the list of properties is separated from the list of resources. The properties are assigned to the resources by defining "cardinalities". A cardinality indicates if a property is mandatory or can be omitted (e.g. if unknown), and if a property may be used several times on the same instance of a resource or not. The cardinality definitions are explained further below.
Example of an ontologies
object:
{
"ontologies": [
{
"name": "seworon",
"label": "Secrets of the World Ontology",
"properties": [
...
],
"resources": [
...
]
},
{
second ontology
},
{
third ontology
}
]
}
Ontologies Object in Detail
The following properties can occur within each object in ontologies
.
Name
(required)
"name": "<string>"
The ontology's (short) name should be in the form of a xsd:NCNAME. This
means a string without blanks or special characters but -
and _
are allowed (although not as first character).
Label
(required)
"label": "<string>"
A string that provides the full name of the ontology.
Properties
(required)
"properties": [<property-definition>, <property-definition>, ...]
A properties
array contains all properties used to describe resources in the ontology. A property has to be of a
certain data type. It is not possible to create a custom data type.
The following fields are mandatory:
name
labels
super
object
gui_element
The following fields are optional:
comments
subject
gui_attributes
A detailed description of properties
can be found below.
Resources
(required)
The resource classes are the primary entities of the data model. They are the actual objects inside a terminology space. A resource class can be seen as a template for the representation of a real object that is represented in the DSP. A resource class defines properties (data fields). For each of these properties a data type as well as the cardinality has to be provided.
"resources": [<resource-definition>, <resource-definition>, ...]
A resource object needs to have the following fields:
name
labels
super
cardinalities
The following field is optional:
comments
A detailed description of resources
can be found below.
Properties Object in Detail
Name
(required)
"name": "<string>"
A name for the property, e.g. "pageOf", "hasBirthdate", "createdBy". It should be in the form of
a xsd:NCNAME. This means a string without blanks or special characters
but -
and _
are allowed (although not as first character).
By convention, property names start with a lower case letter.
Labels
(required)
"labels": {"<language>": "<string>", ...}
Collection of labels
for the property as strings with language tag (currently "en", "de", "fr", "it",
and "rm" are supported).
Comments
(optional)
"comments": { "<lang>": "<comment>", "<lang>": "<comment>", ... }
Comments with language tags. Currently, "de", "en", "fr", "it", and "rm" are supported. The comments
element is optional.
Super
(required)
"super": ["<super-property>", "<super-property>, ...]
A property is always derived from at least one other property. There are three groups of properties that can serve as super-property:
- DSP base properties
- properties defined in external ontologies
- properties defined in the project ontology itself
The syntax how to refer to these different groups of properties is described here.
The following DSP base properties are available:
hasValue
: This is the most general case, to be used in all cases when your property is none of the special cases below.hasLinkTo
: a link to another resourceisPartOf
: A special variant ofhasLinkTo
. It says that an instance of the given resource class is an integral part of another resource class. E.g. a "page" is part of a "book".seqnum
: An integer that is used to define a sequence number in an ordered set of instances, e.g. the ordering of the pages in a book. A resource that has a property derived fromseqnum
must also have a property derived fromisPartOf
.hasColor
: Defines a color value.hasComment
: Defines a standard comment.isSequenceOf
: A special variant ofhasLinkTo
. It says that an instance of the given resource class is a section of an audio/video resource.hasSequenceBounds
: This base property is used together withisSequenceOf
. It denotes a time interval of an audio/ video resource.
Example of a properties
object:
{
"properties": [
{
"name": "id",
"subject": ":School",
"object": "TextValue",
"super": [
"hasValue"
],
"labels": {
"en": "School ID",
"de": "ID der Schule",
"fr": "ID de l'école"
},
"gui_element": "SimpleText",
"gui_attributes": {
"size": 32,
"maxlength": 128
}
},
{
"name": "name",
"subject": ":School",
"object": "TextValue",
"super": [
"hasValue"
],
"labels": {
"en": "Name of the school",
"de": "Name der Schule",
"fr": "Nom de l'école"
},
"gui_element": "SimpleText",
"gui_attributes": {
"size": 32,
"maxlength": 128
}
}
]
}
Subject
(optional)
"subject": "<resource-class>"
The subject
defines the resource class the property can be used on. It has to be provided as prefixed name of the
resource class (see below on how prefixed names are used).
Object / gui_element / gui_attributes
These three are related as follows:
object
(required) is used to define the data type of the value that the property will store.gui_element
(required) depends on the value ofobject
.gui_attributes
(optional) depends on the value ofgui_element
.
Overview
DSP base property (super ) |
object |
gui_element |
---|---|---|
hasValue | BooleanValue | CheckBox |
hasColor | ColorValue | Colorpicker |
hasValue | DateValue | Date |
hasValue | DecimalValue | Slider, SimpleText |
hasValue | GeonameValue | Geonames |
hasValue | IntValue | Spinbox, SimpleText |
hasValue | ListValue | Radio, List |
hasValue | TextValue | SimpleText, Textarea, Richtext |
hasComment | TextValue | SimpleText |
hasValue | TimeValue | TimeStamp |
hasValue | UriValue | SimpleText |
hasLinkTo | (resourceclass) | Searchbox |
hasRepresentation | Representation | Searchbox |
isPartOf | (resourceclass) | Searchbox |
seqnum | IntValue | Spinbox, SimpleText |
isSequenceOf | (AudioRepresentation, MovingImageRepresentation, or subclass) |
Searchbox |
hasSequenceBounds | IntervalValue | Interval |
BooleanValue
"object": "BooleanValue"
Represents a Boolean ("true" or "false"). See the xmlupload documentation for more information.
gui_elements / gui_attributes:
Checkbox
: The only GUI element for boolean values: a box to check or uncheck- gui_attributes: No attributes
Example:
{
"name": "hasBoolean",
"super": [
"hasValue"
],
"object": "BooleanValue",
"labels": {
"en": "Boolean value"
},
"gui_element": "Checkbox"
}
ColorValue
"object": "ColorValue"
A string representation of a color in the hexadecimal form. See the xmlupload documentation for more information.
gui_elements / gui_attributes:
Colorpicker
: The only GUI element for colors. It's used to choose a color.- gui_attributes:
ncolors=integer
(optional): Number of colors the color picker should present.
- gui_attributes:
Example:
{
"name": "hasColor",
"super": [
"hasColor"
],
"object": "ColorValue",
"labels": {
"en": "Color"
},
"gui_element": "Colorpicker"
}
DateValue
object": "DateValue"
Represents a date. It's a string with the format calendar:start:end
. See the
xmlupload documentation for more information.
gui_elements / gui_attributes:
Date
: The only GUI element for DateValue. A date picker GUI.- gui_attributes: No attributes
Example:
{
"name": "hasDate",
"super": [
"hasValue"
],
"object": "DateValue",
"labels": {
"en": "Date"
},
"gui_element": "Date"
}
DecimalValue
"object": "DecimalValue"
A number with decimal point. See the xmlupload documentation for more information.
gui_elements / gui_attributes:
Slider
: Provides a slider to select a decimal value.- gui_attributes:
max=decimal
(mandatory): maximal valuemin=decimal
(mandatory): minimal value
- gui_attributes:
SimpleText
: A simple text entry box (one line only).- gui_attributes:
maxlength=integer
(optional): maximum number of characters acceptedsize=integer
(optional): size of the input field
- gui_attributes:
Example:
{
"name": "hasDecimal",
"super": [
"hasValue"
],
"object": "DecimalValue",
"labels": {
"en": "Decimal number"
},
"gui_element": "SimpleText",
"gui_attributes": {
"maxlength": 255,
"size": 80
}
}
GeonameValue
"object": "GeonameValue"
Represents a location ID of geonames.org. See the xmlupload documentation for more information.
gui_elements / gui_attributes:
Geonames
: The only GUI element for GeonameValue. A dropdown to select a geonames.org location, either by ID if digits are typed in, or by name if letters are typed in.- gui_attributes: No attributes
Example:
{
"name": "hasGeoname",
"super": [
"hasValue"
],
"object": "GeonameValue",
"labels": {
"en": "Geoname"
},
"gui_element": "Geonames"
}
IntValue
"object": "IntValue"
Represents an integer value. See the xmlupload documentation for more information.
gui_elements / gui_attributes:
Spinbox
: A GUI element for IntegerValue. A text field with and an "up" and a "down" button for increment/decrement.- gui_attributes:
max=decimal
(optional): Maximal valuemin=decimal
(optional): Minimal value
- gui_attributes:
SimpleText
: A simple text entry box (one line only).- gui_attributes:
maxlength=integer
(optional): The maximum number of characters acceptedsize=integer
(optional): The size of the input field
- gui_attributes:
Example:
{
"name": "hasInteger",
"super": [
"hasValue"
],
"object": "IntValue",
"labels": {
"en": "Integer"
},
"gui_element": "Spinbox",
"gui_attributes": {
"max": 10.0,
"min": 0.0
}
}
ListValue
"object": "ListValue"
Represents a node of a (possibly hierarchical) list. See the xmlupload documentation for more information.
gui_elements / gui_attributes:
Radio
: A GUI element for ListValue. A set of radio buttons. This works only with flat lists.- gui_attributes:
hlist=<list-name>
(required): The name of a list defined in the "lists" section.
- gui_attributes:
List
: A GUI element for ListValue. A dropdown to select a list node. This GUI element should be chosen for hierarchical lists or flat lists that could be expanded to hierarchical lists in the future.- gui_attributes:
hlist=<list-name>
(required): The name of a list defined in the "lists" section.
- gui_attributes:
Example:
{
"name": "hasListItem",
"super": [
"hasValue"
],
"object": "ListValue",
"labels": {
"en": "List element"
},
"gui_element": "List",
"gui_attributes": {
"hlist": "treelistroot"
}
}
TextValue
"object": "TextValue"
Represents a text that may contain standoff markup. See the xmlupload documentation for more information.
gui_elements / gui_attributes:
SimpleText
: A simple text entry box (one line only)- gui_attributes:
maxlength=integer
(optional): maximal length (number of characters accepted)size=integer
(optional): size (width) of widget
- gui_attributes:
Textarea
: A multiline text entry box- gui_attributes:
cols=integer
(optional): number of columns of the textarearows=integer
(optional): number of rows of the textareawidth=percent
(optional): width of the textarea on the screenwrap=soft|hard
(optional): wrapping of text
- gui_attributes:
Richtext
: A rich-text editor.- gui_attributes: No attributes
Example:
{
"name": "hasPictureTitle",
"super": [
"hasValue"
],
"object": "TextValue",
"labels": {
"en": "Title"
},
"gui_element": "SimpleText",
"gui_attributes": {
"maxlength": 255,
"size": 80
}
}
hasComment property
"object": "TextValue"
This property is actually very similar to a simple text field.
Example:
{
"name": "hasComment",
"super": [
"hasComment"
],
"object": "TextValue",
"labels": {
"de": "Kommentar",
"en": "Comment",
"fr": "Commentaire"
},
"gui_element": "SimpleText"
}
TimeValue
"object": "TimeValue"
A time value represents a precise moment in time in the Gregorian calendar. See the xmlupload documentation for more information.
gui_elements / gui_attributes:
TimeStamp
: A GUI element for TimeValue which contains a date picker and a time picker.- gui_attributes: No attributes
Example:
{
"name": "hasTime",
"super": [
"hasValue"
],
"object": "TimeValue",
"labels": {
"en": "Time"
},
"gui_element": "TimeStamp"
}
UriValue
"object": "UriValue"
Represents an URI. See the xmlupload documentation for more information.
gui_elements / gui_attributes:
SimpleText
: A simple text entry box (one line only).- gui_attributes:
maxlength=integer
(optional): The maximum number of characters acceptedsize=integer
(optional): The size of the input field
- gui_attributes:
Example:
{
"name": "hasUri",
"super": [
"hasValue"
],
"object": "UriValue",
"labels": {
"en": "URI"
},
"gui_element": "SimpleText",
"gui_attributes": {
"maxlength": 255,
"size": 80
}
}
Link-properties
Link properties do not follow the pattern of the previous data types, because they do not connect to a final value but
to an existing resource. Thus, the object
denominates the resource class the link will point to.
hasLinkTo Property
"object": "<resourceclass>"
The most basic kind of link property is the hasLinkTo
property. Its "super" element has to be hasLinkTo
or derived
from hasLinkTo
. There are different groups of resource classes that can be the object:
- project resources: a resource class defined in the present ontology itself
- external resources: a resource class defined in another ontology
- DSP base resources:
Resource
: the most generic one, can point to any resource class, be it a DSP base resource, a project resource, or an external resource.Resource
is at the very top of the inheritance hierarchy.Region
: a region in an imageStillImageRepresentation
,MovingImageRepresentation
,TextRepresentation
,AudioRepresentation
,DDDRepresentation
,DocumentRepresentation
, orArchiveRepresentation
The syntax how to refer to these different groups of resources is described here.
gui_elements/gui_attributes:
Searchbox
: The only GUI element for hasLinkTo. Allows searching resources by entering the target resource name.- gui_attributes:
numprops=integer
(optional): Number of search results to be displayed
- gui_attributes:
Example:
{
"name": "hasOtherThing",
"super": [
"hasLinkTo"
],
"object": ":Thing",
"labels": "Another thing",
"gui_element": "Searchbox"
}
hasRepresentation Property
"object": "Representation"
A property pointing to the DSP base resource class Representation
, which is the parent class of the DSP base resource
classes StillImageRepresentation
, AudioRepresentation
, MovingImageRepresentation
, ... Has to be used in
combination with "super": ["hasRepresentation"]
.
This generic property can point to any type of the aforementioned representations, or to a subclass of them. See the
xmlupload documentation for more information.
gui_elements / gui_attributes:
Searchbox
: Allows searching resources that have super classRepresentation
by entering at least 3 characters into a searchbox.- gui_attributes:
numprops=integer
(optional): While dynamically displaying the search result, the number of properties that should be displayed.
- gui_attributes:
Example:
{
"name": "hasRep",
"super": [
"hasRepresentation"
],
"object": "Representation",
"labels": {
"en": "Represented by"
},
"gui_element": "Searchbox"
}
isPartOf Property
"object": "<resourceclass>"
A special case of linked resources are resources in a part-whole relation, i.e. resources that are composed of
other resources. A isPartOf
property has to be added to the resource that is part of another resource. In case of
resources that are of type StillImageRepresentation
, an additional property derived from seqnum
with object IntValue
is required. When defined, the user is able to leaf through the parts of a compound object, p.ex. to leaf through pages
of a book.
The DSP base properties isPartOf
and seqnum
can be used to derive a custom property from them, or they can be used
directly as cardinalities in a resource. The example belows shows both possibilities.
gui_elements/gui_attributes:
Searchbox
: The only GUI element for isPartOf. Allows searching resources by entering the target resource name.- gui_attributes:
numprops=integer
(optional): Number of search results to be displayed
- gui_attributes:
Example:
"properties": [
{
"name": "partOfBook",
"super": ["isPartOf"],
"object": ":Book",
"labels": {"en": "is part of"},
"gui_element": "Searchbox"
},
{
"name": "hasPageNumber",
"super": ["seqnum"],
"object": "IntValue",
"labels": {"en": "has page number"},
"gui_element": "Spinbox"
}
],
"resources": [
{
"name": "Page",
"labels": {"en": "Page using properties derived from 'isPartOf' and 'seqnum'"},
"super": "StillImageRepresentation",
"cardinalities": [
{
"propname": ":partOfBook",
"cardinality": "1"
},
{
"propname": ":hasPageNumber",
"cardinality": "1"
}
]
},
{
"name": "MinimalisticPage",
"labels": {"en": "Page using 'isPartOf' and 'seqnum' directly"},
"super": "StillImageRepresentation",
"cardinalities": [
{
"propname": "isPartOf",
"cardinality": "1"
},
{
"propname": "seqnum",
"cardinality": "1"
}
]
}
]
seqnum Property
"object": "IntValue"
This property can be attached to a StillImageRepresentation
, together with isPartOf
. The seqnum
is then the page
number of the image inside the compound object. Apart from this, seqnum
is like an integer property. See the
xmlupload documentation for more information.
gui_elements / gui_attributes:
Spinbox
: A GUI element for IntegerValue. A text field with and an "up" and a "down" button for increment/decrement.- gui_attributes:
max=decimal
(optional): Maximal valuemin=decimal
(optional): Minimal value
- gui_attributes:
SimpleText
: A simple text entry box (one line only).- gui_attributes:
maxlength=integer
(optional): The maximum number of characters acceptedsize=integer
(optional): The size of the input field
- gui_attributes:
Example: See the isPartOf Property above.
isSequenceOf Property
"object": <AudioRepresentation/MovingImageRepresentation or a subclass of one of them>
This property can be used, together with a hasSequenceBounds
property, on a resource representing a sequence of an
audio/video resource. The isSequenceOf
would then point to the audio/video resource, and the hasSequenceBounds
would be the time interval of the sequence.
The DSP base properties isSequenceOf
and hasSequenceBounds
can be used to derive a custom property from them, or
they can be used directly as cardinalities in a resource. The example below shows both possibilities.
gui_elements/gui_attributes:
Searchbox
: The only GUI element for isSequenceOf. Allows searching resources by entering the target resource name.- gui_attributes:
numprops=integer
(optional): Number of search results to be displayed
- gui_attributes:
Example:
"properties": [
{
"name": "sequenceOfAudio",
"super": ["isSequenceOf"],
"subject": ":AudioSequence",
"object": ":Audio",
"labels": {"en": "is sequence of"},
"gui_element": "Searchbox"
},
{
"name": "hasBounds",
"super": ["hasSequenceBounds"],
"subject": ":AudioSequence",
"object": "IntervalValue",
"labels": {"en": "Start and end point of a sequence of an audio/video"},
"gui_element": "Interval"
}
],
"resources": [
{
"name": "AudioSequence",
"labels": {"en": "Sequence of audio using properties derived from 'isSequenceOf' and 'hasSequenceBounds'"},
"super": "Resource",
"cardinalities": [
{
"propname": ":sequenceOfAudio",
"cardinality": "1"
},
{
"propname": ":hasBounds",
"cardinality": "1"
}
]
},
{
"name": "MinimalisticAudioSequence",
"labels": {"en": "Sequence of audio using 'isSequenceOf' and 'hasSequenceBounds' directly"},
"super": "Resource",
"cardinalities": [
{
"propname": "isSequenceOf",
"cardinality": "1"
},
{
"propname": "hasSequenceBounds",
"cardinality": "1"
}
]
}
]
hasSequenceBounds Property
"object": "IntervalValue"
This property represents a time interval of an audio or video. It can be used together with an isSequenceOf
property
on a resource that represents the sequence. The isSequenceOf
would then point to the audio/video resource, and the
hasSequenceBounds
would be the time interval of the sequence, represented as two decimal numbers.
See the isSequenceOf
property or the
xmlupload documentation for more information.
gui_elements / gui_attributes:
SimpleText
: A simple text entry box (one line only).- gui_attributes:
maxlength=integer
(optional): The maximum number of characters acceptedsize=integer
(optional): The size of the input field
- gui_attributes:
Interval
: Two Sliders, one for each decimal- gui_attributes: No attributes
Example:
{
"name": "hasBounds",
"super": [
"hasSequenceBounds"
],
"subject": ":AudioSequence",
"object": "IntervalValue",
"labels": {
"en": "Interval defining the start and end point of a sequence of an audio or video file"
},
"gui_element": "Interval"
}
Resources Object in Detail
Name
(required)
"name": "<string>"
A name for the resource, e.g. "Book", "Manuscript", "Person". It should be in the form of
a xsd:NCNAME. This means a string without blanks or special characters
but -
and _
are allowed (although not as first character).
By convention, resource names start with a upper case letter.
Labels
(required)
"labels": {"<language>": "<string>", ...}
Collection of labels
for the resource as strings with language tag (currently "en", "de", "fr", "it",
and "rm" are supported).
Super
(required)
"super": ["<super-resource>", "<super-resource>", ...]
A resource is always derived from at least one other resource. There are three groups of resources that can serve as super-resource:
- DSP base resources
- resources defined in external ontologies
- resources defined in the project ontology itself
The syntax how to refer to these different groups of resources is described here.
The following base resources can be used as super-resource:
Resource
: A generic resource representing an item from the real world. This is the most general case, to be used in all cases when your resource is none of the special cases below.ArchiveRepresentation
: A resource representing an archive file (e.g. ZIP)AudioRepresentation
: A resource representing an audio fileDDDRepresentation
: A resource representing a 3-D representation (not yet implemented)DocumentRepresentation
: A resource representing an opaque document (e.g. a PDF)MovingImageRepresentation
: A resource representing a videoStillImageRepresentation
: A resource representing an imageTextRepresentation
: A resource representing a text
File Extensions: An overview of the supported file types per representation can be found in the xmlupload documentation.
Cardinalities
(required)
"cardinalities": [...]
An array that contains information about the relation between resources and properties. It tells what properties a resource can have as well as how many times the relation is established.
cardinalities
: Array of references to the properties that the resource may hold including the cardinality. A cardinality has the following properties:propname
(1): The name of the property. If it's used in the form:my_propname
, the current ontology is referenced. Otherwise, the prefix of the ontology the property is part of has to be used.gui_order
(0-1): An integer number which will help the GUI to display the properties in the desired order (optional)cardinality
(1): Indicates how often a given property may occur. The possible values are:"1"
: exactly once (mandatory one value and only one)"0-1"
: The value may be omitted, but can occur only once."1-n"
: At least one value must be present, but multiple values may be present."0-n"
: The value may be omitted, but may also occur multiple times.
Comments
(optional)
"comments": { "<lang>": "<comment>", "<lang>": "<comment>", ... }
Comments with language tags. Currently, "de", "en", "fr", "it", and "rm" are supported. The comments
element is optional.
Example for a resource definition:
{
"resources": [
{
"name": "Schule",
"labels": {
"de": "Schule",
"en": "School",
"fr": "Ecole",
"it": "Scuola"
},
"super": "Resource",
"comments": {
"de": "Ein Kommentar",
"en": "A comment",
"fr": "Une commentaire",
"it": "Un commento"
},
"cardinalities": [
{
"propname": ":schulcode",
"gui_order": 1,
"cardinality": "1"
},
{
"propname": ":schulname",
"gui_order": 2,
"cardinality": "1"
},
{
"propname": ":bildungsgang",
"gui_order": 3,
"cardinality": "1"
}
]
}
]
}
Referencing Ontologies
For several fields, such as super
in both resources
and properties
or propname
in cardinalities
it is necessary to reference entities that are defined elsewhere. The following cases are possible:
- DSP API internals: They are referenced as such and do not have a leading colon.
E.g.Resource
,DocumentRepresentation
orhasValue
- An external ontology: The ontology must be defined in the prefixes section.
The prefix can then be used for referencing the ontology.
E.g.foaf:familyName
orsdo:Organization
- The current ontology: Within an ontology definition, references can be made by prepending a colon without a prefix.
E.g.:hasName
Optionally, an explicit prefix can be used. In this case the ontology must be added to the prefixes section and the prefix must be identical to the ontology'sname
. - A different ontology defined in the same file: Within one data model file, multiple ontologies can be defined.
These will be created in the exact order they appear in the
ontologies
array. Once an ontology has been created, it can be referenced by the following ontologies by its name, e.g.first-onto:hasName
. It is not necessary to addfirst-onto
to the prefixes.
DSP base resources / base properties to be used directly in the XML file
There is a number of DSP base resources that must not be subclassed in a project ontology. They are directly available in the XML data file:
Annotation
is an annotation to another resource of any class. It can be used in the XML file with the <annotation> tag. It automatically has the following predefined properties:hasComment
(1-n)isAnnotationOf
(1)
LinkObj
is a resource linking together several other resources of different classes. It can be used in the XML file with the <link> tag. It automatically has the following predefined properties:hasComment
(1-n)hasLinkTo
(1-n)
- A
Region
resource defines a region of interest (ROI) in an image. It can be used in the XML file with the <region> tag. It automatically has the following predefined properties:hasColor
(1)isRegionOf
(1)hasGeometry
(1)hasComment
(1-n)
There are some DSP base properties that are used directly in the above resource classes. Some of them can also be subclassed and used in a resource class.
hasLinkTo
: a link to another resource- can be subclassed (hasLinkTo Property)
- can be used directly in the XML data file in the <link> tag
hasColor
: Defines a color value.- can be subclassed (ColorValue)
- can be used directly in the XML data file in the <region> tag
hasComment
: Defines a standard comment.- can be subclassed (hasComment Property)
- can be used directly in the XML data file in the <region> tag or <link> tag
hasGeometry
: Defines a geometry value (a JSON describing a polygon, circle or rectangle).- must be used directly in the XML data file in the <region> tag
isRegionOf
: A special variant ofhasLinkTo
. It means that the given resource class is a region of interest in an image.- must be used directly in the XML data file in the <region> tag
isAnnotationOf
: A special variant ofhasLinkTo
. It means that the given resource class is an annotation to another resource class.- must be used directly in the XML data file in the <annotation> tag