Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

A Provider is a class that collects a particular desired dataset from a data source.

...

Goal

The goal is to write a maven module that supports collection and conversion of a new online data source into activity streams format using Apache Streams interfaces and patterns.

Official Providers reside in the streams-contrib directory of streams-project, are named org.apache.streams:streams-provider-*, and are released with the rest of streams.

Unofficial Providers can be built and published under any groupId but the artifactId should still be named streams-provider-* and the code should be built with Apache Streams interfaces and patterns.

of https://github.com/apache/incubator-streams and are named streams-provider-*

https://git-wip-us.apache.org/repos/asf?p=incubator-streams.git;a=tree;f=streams-contrib;h=0dc5e92783e9aa634b29e11f0bbd4e97fd17d8c0;hb=HEAD

...

Decide where the data will come from.  

For example purposes this guide walks through the process of building a provider for github.com

Collect links to pertinent documentation and resources.

Find .  Find their API documentation and confirm that the entities, events, and relationships available align with the Activity Streams data model.

REST API documentation: https://developer.github.com/v3/

Figure out credentials

If the data source requires credentials, go through the process of getting credentials and document how you got them.

 

...

Create personal token: https://github.com/settings/tokens

Identify Important Entities

Go through the API documentation carefully, and make a list of the most important types of :

...

Entities, as well as at least one way those entities can be collected.

Entities are typically people, places, things, sometimes abstract things such as ideas or concepts.

The API will typically allow the caller to get a list of entities of a specific type.

Top Three GitHub Entity Types:

Identify Important Relationships

Go through the API documentation carefully, and make a list of the most important types of Relationships that associate the important Entity types, as well at least one way those relationships can be collected.

Top Three Relationship Types:

Identify Important Activity Types

Go through the API documentation carefully, and make a list of the most important types of Events that involve the important Entity types, as well as at least one way those events can be collected.

Activities are events

...

involving one or more entities, usually with a timestamp

...

.

Top Ten Event Types:

List of 30 types - https://developer.github.com/v3/activity/events/types/


 

 

 

...

Identify which have a direct and obvious alignment with Activity Streams, and note the corresponding objectType (for entities) and verb (for events / relationships) from the Activity Streams vocabulary.

...