linkml-activitypub/linkml_activitypub/activitypub.yaml

159 lines
3.2 KiB
YAML

id: https://github.com/p2p_ld/linkml-activitypub
name: linkml-activitypub
title: linkml-activitypub
description: |-
Extension of ActivityStreams2 schema to include ActivityPub Actor and other definitions
license: GNU GPL v3.0
see_also:
- https://linkml-activitypub.readthedocs.io
- https://github.com/p2p_ld/linkml-activitypub
imports:
- linkml:types
- activitystreams
prefixes:
ap: http://www.w3.org/ns/activitystreams#
as: http://www.w3.org/ns/activitystreams#
linkml: https://w3id.org/linkml/
owl: http://www.w3.org/2002/07/owl#
rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
xml: http://www.w3.org/XML/1998/namespace
xsd: http://www.w3.org/2001/XMLSchema#
rdfs: http://www.w3.org/2000/01/rdf-schema#
default_prefix: ap
classes:
Object:
is_a: as:Object
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 Activity, IntransitiveActivity, Collection and OrderedCollection.
slots:
- source
- likes
- shares
class_uri: ap:Object
disjoint_with: Link
Actor:
is_a: as:Actor
slots:
- inbox
- outbox
- following
- followers
- liked
- streams
- preferredUsername
- endpoints
Inbox:
description: STUB
Outbox:
description: STUB
Followers:
is_a: Collection
mixins:
- ActorCollectionMixin
Following:
is_a: Collection
mixins:
- ActorCollectionMixin
Likes:
is_a: Collection
slot_usage:
items:
range: as:Like
Shares:
is_a: Collection
slot_usage:
items:
range: as:Announce
Public:
is_a: as:Collection
description: The special "public" collection https://www.w3.org/TR/activitypub/#public-addressing
Source:
slots:
- content
- mediaType
# Static Entities
Endpoint:
slots:
- proxyURL
- oauthAuthorizationEndpoint
- oauthTokenEndpoint
- provideClientKey
- signClientKey
- sharedInbox
# Helper Classes
HTTPMixin:
description: "Mixin for collections that are supposed to behave as HTTP endpoints"
mixin: true
slots:
- http_action # whatever you call "GET/POST/etc."
CollectionMixin:
description: "Additional props that are specified for some of the AP collections"
mixin: true
slots:
- authorization
- deduplication
- filter # mapping between visibility levels and collection of actor
ActorCollectionMixin:
is_a: Collection
mixin: true
slot_usage:
items:
range: as:Actor
slots:
source:
slot_uri: ap:source
range: Source
domain_of:
- Object
inbox:
description: STUB
required: true
outbox:
description: STUB
required: true
endpoints:
description: STUB
multivalued: true
range: Endpoints
liked:
description: STUB
required: false
multivalued: false
domain_of:
- as:Actor
range: Likes
likes:
description: STUB
required: false
multivalued: false
domain_of:
- as:Object
range: Likes
shares:
description: STUB
required: false
domain_of:
- as:Object
range: Shares