Administative Resources

The Dydra service makes several resources available for users with administrative priviliges to remotely administer a service by monitoring and manipulating its resources. See the examples for more details:

System Monitoring

GET

https://dydra.com/system/status

Returns a system status summary as a single solution.

GET

https://dydra.com/system/status.<type>&accounts=<account names>

Performs a status check on a random subset of the repositories in the account and returns a solution field with their names.

GET

https://dydra.com/system/accounts/<account names>/repositories/<repository-name>/service_description

Returns the reposiory service description.

GET

https://dydra.com/system/accounts/<account names>/repositories/<repository-name>/service_history

Returns a time-series dataset which recounts the performance of queries which targeted the repository.

GET

https://dydra.com/system/accounts/<account names>/repositories/<repository-name>/service_statistics

Returns a statistics which summarizes the performance of queries which targeted the repository.

GET

https://dydra.com/system/accounts/<account names>/repositories/<repository-name>/revisions

Returns a list of the repository revisions.

GET

https://dydra.com/system/accounts/<account names>/repositories/<repository-name>/views

Returns a json document which records the metadata about the repository views.

Account Management

POST

A POST to this abstract account resource creates an account:

https://dydra.com/system/accounts

Headers

Content-Type: application/json

Content

{"account": {"name": "<new account name>"} }

DELETE

A DELETE to the specific resource deletes the respective account

https://dydra.com/system/accounts/<account>

Headers

GET

Information about an account is available through several resources

Returns a solution set with the names of the accounts to which the current user has access.

https://dydra.com/system/accounts

https://dydra.com/system/accounts/<account>

Headers

Content-Type: application/json

Response

{"@type": "account",
 "name": account name,
 "location": account host-specific http api url,
 "identifier": account service metadata resource identifier
 "repositories": an array of account repository metadata
 }

Repository Management

POST

In order to create a repository post to the accounts abstract repository resource:

https://dydra.com/system/accounts/<account>/repositories

Headers

Content-Type: application/json

Content

{"repository": {"name": "<new repository name>"},
 "class": "<repository class>"
 }

The options class specifies the repository’s schematic storage model and acces patterns.

class

schematic model

internal-view-repository

The repository materializes the results of a view applied to a base repository

internal-text-repository | The repository materializes a free text index for
the string terms in the base repository
internal-text-view-repository | The repository materializes the results of a view
applied to a base repository unsing free text
indices

hdt-repository

The repository uses the HDT storage model

lmdb-repository

The repository uses a 6x B-tree storage model to index all quad term combinations

revisioned-lmdb-repository

The repository extends the lmdb-repository storage to incorporate a linear index for revision information

DELETE

In order to delete a repository, delete the specific resource:

https://dydra.com/system/accounts/<account>/repositories/<repository>

Headers

GET

https://dydra.com/system/accounts/<account>/repositories/<repository>

Headers

Content-Type: application/json

Response

Returns a data model which describes the relationships apparent in the repository data and its defined interface views.

{"@type": "repository",
 "name": repository name,
 "location": repository host-specific http api url,
 "identifier": repository service metadata resource identifier
 "getViews": an array of metadata models for defined SELECT views
 "updateViews": an array of metadata models for defined MODIFY
 "postViews": an array of metdata models for defined TARQL views
 "patterns": an array of predicate patterns derived from a formal concept analysis of the repository
 "description": the repository description text
 "predicates": an array of the rpedicates present in the repository
 "paths": an array of the object/subject predicate pairs present in the repository
 }

The service computes the model on demand and caches it for the duration of a processor cycle.

https://dydra.com/system/status/<account>/repositories/<repository>

Headers

Content-Type: application/json

View Management

POST

In order to create a view, post to the abstract account resource:

https://dydra.com/system/accounts

Headers

Content-Type: application/json

Content

{"account": {"name": "<new account name>"} }

DELETE

In order to delete an view, delete the specific resource:

https://dydra.com/system/accounts/<account>/repositories/<repository>/views/<view>

GET

Headers

Content-Type: application/json

Response

{"@type": "view",
 "name": view name,
 "location": view host-specific http api url,
 "identifier": view service metadata resource identifier
 "constructPatterns": an array of construct query predicate patterns,
 "modifyPatterns": an array of update query insertion patterns,
 "wherePatterns": an array of select query insertion patterns,
 "predicates": an array of predicate present in the view,
 "references": {"services": an array of any sevice locations present in the view,
                "views": an array of any view locations present in the view
                },
 "description": view description text
 }