Resource API
V.1 User Documentation
V.1 User Documentation
Class/{parent}/{key}
Define the Taxonomy of your Schema.
A Classification needs only parent and key for unique identification. These are both required fields as any Thing created in Higgs must be a member of a taxonomy.
Name | Type | Description |
---|---|---|
parent
|
Class Path | The parent Classification of the Resource. |
key
|
string |
The key used to access the Resource. |
Name | HTTP Method | Available |
---|---|---|
CREATE | POST | |
READ | GET | |
UPDATE | POST | |
DELETE | DELETE | |
Has Limitations |
Operation | Available |
CREATE | The key and language tag combination must be unique to the Account's set of Classifications. |
DELETE | Currently, a user cannot perform a delete operation if there exists any Thing Data Instances which have the type of the target Classification. This is due to change and a temporary limitation. |
Higgs currently supports both Classification and Class as alternate terms. Class is short for URI command-line convenience but is not to be confused with a Class in Object-Oriented programming.
GET|POST|DELETE /Classification/{parent}/{key} HTTP/1.1
Host: higgs.online
GET|POST|DELETE /Classification{?parent,key} HTTP/1.1
Host: higgs.online
GET|POST|DELETE /Class/{parent}/{key} HTTP/1.1
Host: higgs.online
GET|POST|DELETE /Class{?parent,key} HTTP/1.1
Host: higgs.online
/Relation/{domain}/{key}{?range}
Define and label the data relations of a Classification.
The Domain defines the Classification of a data Subject. The Range defines the type the data Key points to.
Name | Type | Description |
domain
|
Classification | The Subject Classification required for each Instance. |
range
|
Classification | Literal | The Classification or Literal that defines the Object or a Relation. |
Name | HTTP Method | Available |
---|---|---|
Create | POST |
|
Read | GET |
|
Update | POST |
|
Delete | DELETE |
|
Has Limitations |
Operation | Available |
Create | The key and language tag combination must be unique to the Account's set of Relations. |
Delete | Cannot perform a delete operation if there exists any Property Instances which have the type of the target Relation. *Temporary |
Relations support the following 2 different URI templates:
GET|POST|DELETE /Relation/{domain}/{key}{?range} HTTP/1.1
Host: higgs.online
GET|POST|DELETE /Relation{?key,domain,range} HTTP/1.1
Host: higgs.online
/Schema
Manage your Classifications and their Relations as a whole.
A Schema is made of Classification and Relation Resources.
Name | Type | Description |
classifications
|
List of Classification Resources | Classifications to operate on. |
relations
|
List of Relation Resources | Relations to operate on. |
Name | Method | Available |
---|---|---|
CREATE * | POST |
|
READ | GET |
|
UPDATE | POST |
|
DELETE * | DELETE |
|
Has Limitations: See Classification and Relation specifications. |
The CREATE and UPDATE Service requires users to supply a JSON POST Body consisting of the Schema members.
GET|POST|DELETE /Schema HTTP/1.1
Host: higgs.online
{*classifications,*relations}
Classification Schemas can be independently managed using:
GET|POST|DELETE /Schema/{classPath} HTTP/1.1
Host: higgs.online
{*classifications,*relations}
The Response will consist of status and messages from Higgs as well as your current Schema Resource.
/Thing/{type}/{key}
Manage your data within a Subject of Knowledge. Things are instances of Classifications.
Things require a Classification Definition to describe its type.
Name | Type | Description |
---|---|---|
type
|
classPath/classKey
|
The Classification the Thing is an Instance of. |
key
|
string
|
The key used to access the Thing. |
Name | HTTP Method | Available |
---|---|---|
CREATE | POST |
|
READ | GET |
|
UPDATE | POST |
|
DELETE | DELETE |
GET|POST|DELETE /Thing/{type}/{key} HTTP/1.1
Host: higgs.online
POST|DELETE /Thing HTTP/1.1
Host: higgs.online
{classPath,key}
GET|POST /Thing?{type,key} HTTP/1.1
Host: higgs.online
GET Thing/Person/TimBL
POST Thing/Animal/Mammal/HouseCat/Schrödinger
POST Thing?type=Animal/Mammal/HouseCat&key=Schrödinger
/Property/{subject}/{key}{?value}
Link Things to other Things or to Data values. Properties are instances of Relation Definitions.
Properties are represented by a DLG Triple of Subject, Predicate and Object. On Higgs, the Subject is always some Thing, the predicate maps to a defined Relation and the Object is the value of the Property.
Name | Type | Description |
subject
|
Thing | The Subject Thing. |
key
|
Relation Key | The named predicate which maps to an existing Relation |
value
|
Thing | Literal | The Property value. This can be another Thing or a Literal. |
Name | Method | Available |
---|---|---|
CREATE | POST |
|
READ | GET |
|
UPDATE | POST |
|
DELETE | DELETE |
POST /Property/{subject}/{relation}{?value} HTTP/1.1
Host: higgs.online
POST /Property HTTP/1.1
Host: higgs.online
{subject,key,value}
POST /Property?{subject,key,value} HTTP/1.1
Host: higgs.online
GET Property/Person/JasonReinert/name
POST Property/Animal/Mammal/HouseCat/Schrödinger/furColor
POST Property?subject=Animal/HouseCat/Schrödinger&key=locatedAt&value=Location/unknown
DELETE Property/Animal/HouseCat/Schrödinger/name
HTTP/1.1 200 OK
Date: Mon, 1 Mar 2016 11:11:11 GMT
{
"@context": "https://higgs.online/context",
"@id": "higgs:Response/Success",
"hsd:type": "higgs:Response",
"higgs:Response/Success/code": "200",
"higgs:Operation": "POST",
"higgs:Response/Success/message": "Read of Property Resource was was successful.",
"higgs:resource": {
"@id": "higgs:account/public/Property/Person/JasonReinert/{key}",
"@type": "higgs:Relation/Person/{key}",
"key": "{key}",
"subject": "higgs:account/public/Property/Person/JasonReinert",
"value": "Jason",
"dateTimeCreated": "2017-09-15 14:51:09",
"lastModified": "2017-09-15 14:51:21"
}
}
Entity/{thing}
Define the Taxonomy of your Schema.
A Classification needs only parent and key for unique identification. These are both required fields as any Thing created in Higgs must be a member of a taxonomy.
Name | Type | Description |
---|---|---|
thing
|
Resource Path | The resource path to the Thing. |
Name | HTTP Method | Available |
---|---|---|
CREATE | POST |
|
READ | GET |
|
UPDATE | POST |
|
DELETE | DELETE |
GET|POST|DELETE /Entity/{thing} HTTP/1.1
Host: higgs.online
HTTP/1.1 200 OK
Date: Mon, 1 Mar 2016 11:11:11 GMT
{
"@context": "https://higgs.online/context",
"@id": "higgs:Response/{type}/{uuid}",
"hsd:type": "higgs:Response",
"higgs:Response/Success/code": "{code}",
"higgs:Operation": "{GET|POST|DELETE}",
"higgs:Response/Success/message": "{operation} of Property Resource was successful.",
"higgs:resource": {
"@id": "higgs:account/public/Property/Person/{key}",
"@type": "higgs:Relation/Person/{key}",
"{property_key_1}": "{property_1}",
"{property_key_2}": "{property_2}",
"dateTimeCreated": "2017-09-15 14:51:09",
"lastModified": "2017-09-15 14:51:21"
}
}
Higgs Literals are always typed. This is a read-only service which allows users to interact with the Higgs Engine and receive real-time datatype values. Higgs will either enforce your declared type or infer a type if anonymous. Literal values can be created using Properties
Higgs provides automatic Datatype Coercion and Datatype Inference. This allows users to submit untyped Literal values and relying on the Higgs Reasoner to handle the best matched datatype available for the value.
Name | HTTP Method | Available |
---|---|---|
CREATE | -- | -- |
READ | GET |
|
UPDATE | -- | -- |
DELETE | -- | -- |
Name | Description |
---|---|
type
|
The type of the Literal. Enumerated values, see Datatypes below. |
value
|
The value to process |
Template | Description |
---|---|
/string /{value} |
A sequence of character text. |
/integer /{value} |
A number without a fractional component. |
/float /{value} |
A number represented in floating-point notation. |
/date /{value} |
The day, month and year. |
/datetime /{value} |
The day, month, year and time. |
/boolean /{value} |
A True or False value |
/email /{value} |
An email address |
/URI /{value} |
A URI |
/richText /{value} |
Marked-up text string |
Template | Example |
{type}/{value}
Coerce a value to a specified type. |
integer/1981 |
Literal/{value}
Infer a best-matched type on the value. |
Literal/Hello+World
|
Literal{?value,*type}
Infer a best-matched type or coerce to a specified type. |
Literal?type=integer&value=13.81
|