Schema for characterizing relationships with roles
This schema provides the most basic classes and slots to qualify
relationships between two things. The connection to the
thing-schema is the qualified_relations
slot, which can be used to qualify relations between things via any number
of Relationship
declarations.
Each Relationship
links one object (Thing
) to a subject (Thing
) and
associates one or more roles (Role
) with this relationship via the
had_roles
slot.
A Role
is itself a Thing
, and can be annotated with (inline)
attributes as needed. However, typically it should be sufficient
to reference a role by a URI.
The schema definition is available as
URI: https://concepts.datalad.org/s/roles/unreleased
Name: roles-schema
Schema Diagram
erDiagram
Role {
uriorcurie id
uriorcurie schema_type
uriorcurie type
}
Relationship {
}
ThingMixin {
uriorcurie schema_type
uriorcurie type
}
ValueSpecificationMixin {
uriorcurie range
string value
}
AttributeSpecification {
uriorcurie schema_type
uriorcurie type
uriorcurie range
string value
}
Property {
uriorcurie id
uriorcurie schema_type
uriorcurie type
}
Statement {
}
Thing {
uriorcurie id
uriorcurie schema_type
uriorcurie type
}
ValueSpecification {
uriorcurie range
string value
uriorcurie id
uriorcurie schema_type
uriorcurie type
}
Role ||--}o Thing : "relations"
Role ||--}o AttributeSpecification : "has_attributes"
Role ||--}o Statement : "is_characterized_by"
Relationship ||--|| Thing : "object"
Relationship ||--}| Role : "had_roles"
ThingMixin ||--}o AttributeSpecification : "has_attributes"
ThingMixin ||--}o Statement : "is_characterized_by"
AttributeSpecification ||--|| Property : "predicate"
AttributeSpecification ||--}o AttributeSpecification : "has_attributes"
AttributeSpecification ||--}o Statement : "is_characterized_by"
Property ||--}o Thing : "relations"
Property ||--}o AttributeSpecification : "has_attributes"
Property ||--}o Statement : "is_characterized_by"
Statement ||--|| Thing : "object"
Statement ||--|| Property : "predicate"
Thing ||--}o Thing : "relations"
Thing ||--}o AttributeSpecification : "has_attributes"
Thing ||--}o Statement : "is_characterized_by"
ValueSpecification ||--}o Thing : "relations"
ValueSpecification ||--}o AttributeSpecification : "has_attributes"
ValueSpecification ||--}o Statement : "is_characterized_by"
Classes
Class | Description |
---|---|
AttributeSpecification | An attribute is conceptually a thing, but it requires no dedicated identifier (id ). Instead, it is linked to a Thing via its has_attributes slot and declares a predicate on the nature of the relationship. |
Relationship | An association class for characterizing the relation between two things with the role(s) the object had with respect to the subject. A relationship is always between two things only, but can be annotated with multiple roles (for example, a person having both an author role with respect to a dataset, and also being the person who is legally responsible contact for it). |
Statement | An RDF statement that links a predicate (a Property ) with an object (a Thing ) to the subject to form a triple. A Statement is used to qualify a relation to a Thing referenced by its identifier. For specifying a qualified relation to an attribute that has no dedicated identifier, use an AttributeSpecification . |
Thing | The most basic, identifiable item. In addition to the slots that are common between a Thing and an AttributeSpecification (see ThingMixin ), two additional slots are provided. The id slot takes the required identifier for a Thing . The relation slot allows for the inline specification of other Thing instances. Such a relation is unqualified (and symmetric), and should be further characterized via a Statement (see is_characterized_by ). From a schema perspective, the relation slots allows for building self-contained, structured documents (e.g., a JSON object) with arbitrarily complex information on a Thing . |
Property | An RDF property, a Thing used to define a predicate , for example in a Statement . |
Role | A role is the function of a resource or agent with respect to another resource, in the context of resource attribution or resource relationships. |
ValueSpecification | A Thing that is a value of some kind. This class can be used to describe an outcome of a measurement, a factual value or constant, or other qualitative or quantitative information with an associated identifier. If no identifier is available, an AttributeSpecification can be used within the context of an associated Thing (has_attributes ). |
ThingMixin | Mix-in with the common interface of Thing and AttributeSpecification . This interface enables type specifications (rdf:type ) for things and attributes. This is complemented by the schema_type slot (also rdf:type ) that serves as a type designator for specialized schema classes, to enable targeted validation and data transformation. A thing or attribute can be further describe with statements on qualified relations to other things (is_characterized_by ), or inline attributes (has_attributes ). |
ValueSpecificationMixin | Mix-in for a (structured) value specification. Two slots are provided to define a (literal) value (value ) and its type (range ). |
Slots
Slot | Description |
---|---|
had_roles | The function of an entity or agent with respect to another entity or resource |
has_attributes | Declares a relation that associates a Thing (or another attribute) with an ... |
id | Globally unique identifier of a metadata object, such as a Thing |
is_characterized_by | Qualifies relationships between a subject Thing and an object Thing with ... |
object | Reference to a Thing within a Statement |
predicate | Reference to a Property within a Statement |
qualified_relations | Characterizes the relationship or role of an entity with respect to the subje... |
range | Declares that the value of a Thing or AttributeSpecification are instance... |
relations | Declares an unqualified relation of the subject Thing to another Thing |
schema_type | Type designator of a schema element for validation and schema structure handl... |
type | State that the subject is an instance of a particular RDF class |
value | Value of a thing |
Enumerations
Enumeration | Description |
---|---|
Types
Type | Description |
---|---|
Boolean | A binary (true or false) value |
Curie | a compact URI |
Date | a date (year, month and day) in an idealized calendar |
DateOrDatetime | Either a date or a datetime |
Datetime | The combination of a date and time |
Decimal | A real number with arbitrary precision that conforms to the xsd:decimal speci... |
Double | A real number that conforms to the xsd:double specification |
Float | A real number that conforms to the xsd:float specification |
Integer | An integer |
Jsonpath | A string encoding a JSON Path |
Jsonpointer | A string encoding a JSON Pointer |
Ncname | Prefix part of CURIE |
Nodeidentifier | A URI, CURIE or BNODE that represents a node in a model |
Objectidentifier | A URI or CURIE that represents an object in the model |
Sparqlpath | A string encoding a SPARQL Property Path |
String | A character string |
Time | A time object represents a (local) time of day, independent of any particular... |
Uri | a complete URI |
Uriorcurie | a URI or a CURIE |
Subsets
Subset | Description |
---|---|