$schema: ../codegen/schema.yaml
name: Object
compactName: Object
uri: "https://www.w3.org/ns/activitystreams#Object"
entity: true
description: |
  Describes an object of any kind. The Object type serves as the base type for
  most of the other kinds of objects defined in the Activity Vocabulary,
  including other Core types such as {@link Activity},
  {@link IntransitiveActivity}, {@link Collection} and
  {@link OrderedCollection}.
defaultContext:
- "https://www.w3.org/ns/activitystreams"
- "https://w3id.org/security/data-integrity/v1"
- fedibird: "http://fedibird.com/ns#"
  sensitive: "as:sensitive"
  emojiReactions:
    "@id": "fedibird:emojiReactions"
    "@type": "@id"

properties:
- pluralName: attachments
  singularName: attachment
  compactName: attachment
  uri: "https://www.w3.org/ns/activitystreams#attachment"
  description: |
    Identifies a resource attached or related to an object that potentially
    requires special handling.  The intent is to provide a model that is at
    least semantically similar to attachments in email.
  range:
  - "https://www.w3.org/ns/activitystreams#Object"
  - "https://www.w3.org/ns/activitystreams#Link"
  - "http://schema.org#PropertyValue"

- pluralName: attributions
  singularName: attribution
  singularAccessor: true
  compactName: attributedTo
  uri: "https://www.w3.org/ns/activitystreams#attributedTo"
  description: |
    Identifies one or more entities to which this object is attributed.
    The attributed entities might not be Actors.  For instance,
    an object might be attributed to the completion of another activity.
  range:
  - "https://www.w3.org/ns/activitystreams#Application"
  - "https://www.w3.org/ns/activitystreams#Group"
  - "https://www.w3.org/ns/activitystreams#Organization"
  - "https://www.w3.org/ns/activitystreams#Person"
  - "https://www.w3.org/ns/activitystreams#Service"

- pluralName: audiences
  singularName: audience
  singularAccessor: true
  compactName: audience
  uri: "https://www.w3.org/ns/activitystreams#audience"
  description: |
    Identifies one or more entities that represent the total population of
    entities for which the object can considered to be relevant.
  range:
  - "https://www.w3.org/ns/activitystreams#Object"

- pluralName: contents
  singularName: content
  singularAccessor: true
  compactName: content
  uri: "https://www.w3.org/ns/activitystreams#content"
  description: |
    The content or textual representation of the Object encoded as a JSON
    string.  By default, the value of `content` is HTML.  The `mediaType`
    property can be used in the object to indicate a different content type.

    The content MAY be expressed using multiple language-tagged values.
  range:
  - "http://www.w3.org/2001/XMLSchema#string"
  - "http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"

- pluralName: contexts
  singularName: context
  uri: "https://www.w3.org/ns/activitystreams#context"
  compactName: context
  description: |
    Identifies the context within which the object exists or an activity was
    performed.

    The notion of "context" used is intentionally vague.  The intended function
    is to serve as a means of grouping objects and activities that share
    a common originating context or purpose.  An example could be all activities
    relating to a common project or event.
  range:
  - "https://www.w3.org/ns/activitystreams#Object"
  - "https://www.w3.org/ns/activitystreams#Link"

- pluralName: names
  singularName: name
  singularAccessor: true
  compactName: name
  uri: "https://www.w3.org/ns/activitystreams#name"
  description: |
    A simple, human-readable, plain-text name for the object. HTML markup MUST
    NOT be included. The name MAY be expressed using multiple language-tagged
    values.
  range:
  - "http://www.w3.org/2001/XMLSchema#string"
  - "http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"

- singularName: endTime
  functional: true
  compactName: endTime
  uri: "https://www.w3.org/ns/activitystreams#endTime"
  description: |
    The date and time describing the actual or expected ending time of
    the object.  When used with an {@link Activity} object, for instance,
    the `endTime`` property specifies the moment the activity concluded
    or is expected to conclude.
  range:
  - "http://www.w3.org/2001/XMLSchema#dateTime"

- pluralName: generators
  singularName: generator
  compactName: generator
  uri: "https://www.w3.org/ns/activitystreams#generator"
  description: |
    Identifies the entity (e.g. an application) that generated the object.
  range:
  - "https://www.w3.org/ns/activitystreams#Object"
  - "https://www.w3.org/ns/activitystreams#Link"

- pluralName: icons
  singularName: icon
  singularAccessor: true
  compactName: icon
  uri: "https://www.w3.org/ns/activitystreams#icon"
  description: |
    Indicates an entity that describes an icon for this object.
    The image should have an aspect ratio of one (horizontal) to one
    (vertical) and should be suitable for presentation at a small size.
  range:
  - "https://www.w3.org/ns/activitystreams#Image"

- pluralName: images
  singularName: image
  singularAccessor: true
  compactName: image
  uri: "https://www.w3.org/ns/activitystreams#image"
  description: |
    Indicates an entity that describes an image for this object.
    Unlike the icon property, there are no aspect ratio or display size
    limitations assumed.
  range:
  - "https://www.w3.org/ns/activitystreams#Image"

- pluralName: replyTargets
  singularName: replyTarget
  singularAccessor: true
  compactName: inReplyTo
  uri: "https://www.w3.org/ns/activitystreams#inReplyTo"
  description: |
    Indicates one or more entities for which this object is considered
    a response.
  range:
  - "https://www.w3.org/ns/activitystreams#Object"
  - "https://www.w3.org/ns/activitystreams#Link"

- pluralName: locations
  singularName: location
  singularAccessor: true
  compactName: location
  uri: "https://www.w3.org/ns/activitystreams#location"
  description: |
    Indicates one or more physical or logical locations associated with
    the object.
  range:
  - "https://www.w3.org/ns/activitystreams#Object"
  - "https://www.w3.org/ns/activitystreams#Link"

- pluralName: previews
  singularName: preview
  singularAccessor: true
  compactName: preview
  uri: "https://www.w3.org/ns/activitystreams#preview"
  description: |
    Identifies an entity that provides a preview of this object.
  range:
  - "https://www.w3.org/ns/activitystreams#Link"
  - "https://www.w3.org/ns/activitystreams#Object"

- singularName: published
  functional: true
  compactName: published
  uri: "https://www.w3.org/ns/activitystreams#published"
  description: The date and time at which the object was published.
  range:
  - "http://www.w3.org/2001/XMLSchema#dateTime"

- singularName: replies
  functional: true
  compactName: replies
  uri: "https://www.w3.org/ns/activitystreams#replies"
  description: |
    Identifies a {@link Collection} containing objects considered to be
    responses to this object.
  range:
  - "https://www.w3.org/ns/activitystreams#Collection"

- singularName: shares
  functional: true
  compactName: shares
  uri: "https://www.w3.org/ns/activitystreams#shares"
  description: |
    Every object *may* have a `shares` collection. This is a list of all
    {@link Announce} activities with this object as the `object` property,
    added as a [side effect]. The `shares` collection *must* be either
    an {@link OrderedCollection} or a {@link Collection} and *may* be filtered
    on privileges of an authenticated user or as appropriate
    when no authentication is given.

    [side effect]: https://www.w3.org/TR/activitypub/#announce-activity-inbox
  range:
  - "https://www.w3.org/ns/activitystreams#Collection"

- singularName: likes
  functional: true
  compactName: likes
  uri: "https://www.w3.org/ns/activitystreams#likes"
  description: |
    Every object *may* have a `likes` collection. This is a list of all
    {@link Like} activities with this object as the `object` property,
    added as a [side effect]. The `likes` collection *must* be either
    an {@link OrderedCollection} or a {@link Collection} and *may* be filtered
    on privileges of an authenticated user or as appropriate
    when no authentication is given.

    [side effect]: https://www.w3.org/TR/activitypub/#announce-activity-inbox
  range:
  - "https://www.w3.org/ns/activitystreams#Collection"

- singularName: emojiReactions
  functional: true
  compactName: emojiReactions
  uri: "http://fedibird.com/ns#emojiReactions"
  description: |
    Identifies a {@link Collection} containing objects considered to be
    emoji reactions to this object.
  range:
  - "https://www.w3.org/ns/activitystreams#Collection"

- singularName: startTime
  functional: true
  compactName: startTime
  uri: "https://www.w3.org/ns/activitystreams#startTime"
  description: |
    The date and time describing the actual or expected starting time of
    the object.  When used with an {@link Activity} object, for instance,
    the `startTime` property specifies the moment the activity began or
    is scheduled to begin.
  range:
  - "http://www.w3.org/2001/XMLSchema#dateTime"

- pluralName: summaries
  singularName: summary
  singularAccessor: true
  compactName: summary
  uri: "https://www.w3.org/ns/activitystreams#summary"
  description: |
    A natural language summarization of the object encoded as HTML.
    Multiple language tagged summaries MAY be provided.
  range:
  - "http://www.w3.org/2001/XMLSchema#string"
  - "http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"

- pluralName: tags
  singularName: tag
  compactName: tag
  uri: "https://www.w3.org/ns/activitystreams#tag"
  description: |
    One or more "tags" that have been associated with an objects.
    A tag can be any kind of Object.  The key difference between `attachment`
    and `tag` is that the former implies association by inclusion,
    while the latter implies associated by reference.
  range:
  - "https://www.w3.org/ns/activitystreams#Object"
  - "https://www.w3.org/ns/activitystreams#Link"

- singularName: updated
  functional: true
  compactName: updated
  uri: "https://www.w3.org/ns/activitystreams#updated"
  description: The date and time at which the object was updated.
  range:
  - "http://www.w3.org/2001/XMLSchema#dateTime"

- pluralName: urls
  singularName: url
  singularAccessor: true
  compactName: url
  uri: "https://www.w3.org/ns/activitystreams#url"
  description: |
    Identifies one or more links to representations of the object.
  range:
  - "http://www.w3.org/2001/XMLSchema#anyURI"
  - "https://www.w3.org/ns/activitystreams#Link"

- pluralName: tos
  singularName: to
  singularAccessor: true
  compactName: to
  uri: "https://www.w3.org/ns/activitystreams#to"
  description: |
    Identifies an entity considered to be part of the public primary audience
    of an Object.
  range:
  - "https://www.w3.org/ns/activitystreams#Object"

- pluralName: btos
  singularName: bto
  singularAccessor: true
  compactName: bto
  uri: "https://www.w3.org/ns/activitystreams#bto"
  description: |
    Identifies an Object that is part of the private primary audience of
    this Object.
  range:
  - "https://www.w3.org/ns/activitystreams#Object"

- pluralName: ccs
  singularName: cc
  singularAccessor: true
  compactName: cc
  uri: "https://www.w3.org/ns/activitystreams#cc"
  description: |
    Identifies an Object that is part of the public secondary audience of
    this Object.
  range:
  - "https://www.w3.org/ns/activitystreams#Object"

- pluralName: bccs
  singularName: bcc
  singularAccessor: true
  compactName: bcc
  uri: "https://www.w3.org/ns/activitystreams#bcc"
  description: |
    Identifies one or more Objects that are part of the private secondary
    audience of this Object.
  range:
  - "https://www.w3.org/ns/activitystreams#Object"

- singularName: mediaType
  functional: true
  compactName: mediaType
  uri: "https://www.w3.org/ns/activitystreams#mediaType"
  description: |
    When used on an {@link Object}, identifies the MIME media type of the value
    of the `content` property.  If not specified, the `content` property is
    assumed to contain `text/html` content.
  range:
  - "http://www.w3.org/2001/XMLSchema#string"

- singularName: duration
  functional: true
  compactName: duration
  uri: "https://www.w3.org/ns/activitystreams#duration"
  description: |
    When the object describes a time-bound resource, such as an audio or video,
    a meeting, etc, the `duration` property indicates the object's approximate
    duration.  The value MUST be expressed as an `xsd:duration` as defined by
    W3C XML Schema Definition Language (XSD) 1.1 Part 2: DataTypes, section
    3.3.6 (e.g. a period of 5 seconds is represented as `PT5S`).
  range:
  - "http://www.w3.org/2001/XMLSchema#duration"

- singularName: sensitive
  functional: true
  compactName: sensitive
  uri: "https://www.w3.org/ns/activitystreams#sensitive"
  description: Whether it contains any sensitive contents.
  range:
  - "http://www.w3.org/2001/XMLSchema#boolean"

- singularName: source
  functional: true
  compactName: source
  uri: "https://www.w3.org/ns/activitystreams#source"
  description: |
    The `source` property is intended to convey some sort of source from which
    the `content` markup was derived, as a form of provenance, or to support
    future editing by clients.  In general, clients do the conversion from
    `source` to `content`, not the other way around. 
  untyped: true
  range:
  - "https://www.w3.org/ns/activitystreams#Source"

- singularName: proof
  pluralName: proofs
  singularAccessor: true
  compactName: proof
  uri: "https://w3id.org/security#proof"
  container: graph
  embedContext:
    compactName: proof
    inherit: true
  description: |
    A cryptographic proof that can be used to verify the integrity of an object.
  range:
  - "https://w3id.org/security#DataIntegrityProof"
