Project

General

Profile

Feature #5989

Updated by Matt Jones over 5 years ago

Currently the only usage stats we have in Metacat are the raw logs. This new service would provide several statistical reports in machine-readable format intended for efficient use on clients for building user interface displays that show those statistics.

The service should include the following response statistics, and be extensible to add other tracked statistics as needed:

# Number of views (defined as number of times the metadata has been viewed on the web)
# Number of package downloads (needs definition)
# Size in bytes of package downloads
# Number of citations (implement in a second phase)

For each of these statistics, calling apps should be able to constrain the results to only include certain records pertaining to:

# a PID or list of PIDs
# a user or list of users (DN, or ORCID, or some amalgam -- to be discussed)
# a time range
# a spatial range

For each of these statistics, calling apps should be able to request the statistic aggregated by several specific facets, including the following (in order of importance):

# PID
# User (DN, or ORCID, or some amalgam -- to be discussed)
# Time range, aggregated to requested unit (day, week, month, year)
# Spatial range, aggregated to requested unit (to be discussed)

Intersections of these aggregated facets should also be possible, but are a lower priority than the facets alone. For example, when finished, one should be able to request the following reports, among others:

# Number of downloads by pid
# Number of downloads by user (aggregates across pids)
# Number of downloads by month (aggregates across pids)
# Number of downloads by spatial location (aggregates across pids)
# Number of downloads by pid by month
# Number of downloads by user by month
# etc.

The download format (JSON?, XML?) should allow for an extended set of response variables, and an extendable set of aggregating facets. Need to discuss.

The REST API for this service should be developed in the DataONE space, with intention of it being implementable by both other MNs and CNs in DataONE.

Back