The Sync Vocabulary
Abstract
The Sync vocabulary provides useful terms for syncing
descriptions of R·D·F resources between servers.
1. Introduction
1.1 Purpose and Scope
The aim of this vocabulary is to provide a general mechanism for
publishing a series of fairly simple changes to the R·D·F
descriptions of one or more objects, as well as enabling the
discovery of new objects via the same mechanism.
The intent is to create a stream of Activities which
can be replayed to reconstruct an equivalent graph on a different
service.
It has the following features :—
-
Ordered serialization of timestamped events through Ordered
Collection Pages of Sync
Activities with end times,
enabling consumers to only read back events since the last time
they checked.
-
Easy identification of the resource descriptions being changed by
requiring each Sync Activity to contain
Statements with only one
subject, implied by the object of
the Activity.
-
Recommendations for associating Activities with
labels and comments.
The namespace for the Sync vocabulary is
https://ns.1024.gdn/Sync/#
.
1.2 Relationship to Other Vocabularies
Sync is built upon the framework provided by
ActivityStreams and the Activity
vocabulary, although broader ActivityStreams support is not expected
or required.
It follows the general model and approach of I·I·I·F Change
Discovery and similar uses of ActivityStreams
for change tracking.
It operates on a similar principle to the earlier
Changeset vocabulary, but does not
reference its terms.
Prov‐O is used as a (light) ontological
dependency; in particular, its generated and
invalidated properties.
In this document, the following prefixes are used to represent the
following strings :—
1.3 Term Status
Terms in this document are categorized according to one the five
following term statuses :—
- stable (✅)
-
The term has widely‐accepted usage.
- testing (🔬)
-
The term is currently being used in some applications, but its exact
meaning has not yet settled.
- dependency (📥)
-
The term is not currently being used directly, but its definition
informs the usage of a stable or testing term.
(This value is not a part of the original term status
definition.)
- unstable (🚧)
-
The term is not currently being used in a widespread fashion, but
experiments into its utility are taking place.
Its usage may change significantly in the future.
- archaic (🦖)
-
The term was once widely‐used, but such usage is considered outdated
and is discouraged.
1.4 Definitions for Computers
There is an Owl ontology available in a
J·son‐L·D format suitable for viewing with, e·g
Protégé.
The term definitions seen on this page are derived from the Owl
definitions.
There also exists a J·son‐L·D context for use when
referencing this vocabulary’s terms.
Generally, only stable and testing terms will be included in the
J·son‐L·D context.
If you need to use an unstable term, you will need to define it
yourself.
1.5 Using this Vocabulary
It is recommended that changes to a system be provided via a paginated
Ordered Collection, pointed to via the
outbox property.
The items in this collection should all be Sync
Activities with the system provided as their
context.
Per ActivityStreams, at least a J·son‐L·D representation
should be available, ideally one which is compact under the
Sync J·son‐L·D context to enable its
use by non–Linked Data‐aware processors.
Be aware that even compacted J·son‐L·D carries different semantics than
ordinary J·son—particularly with respect to its interpretation of
arrays.
2. Dictionary of Terms
2.1 Class Definitions
2.1.5 📥 Collection Page (as:CollectionPage
)
- I·R·I
-
https://www.w3.org/ns/activitystreams#CollectionPage
- Subclass Of
-
as:Collection
- Is Defined By
-
https://www.w3.org/TR/activitystreams-vocabulary
- Term Status
-
dependency
A Collection which is a subset of a larger
Collection.
2.2 Object Property Definitions
2.3 Data Property Definitions
2.4 Annotation Property Definitions