Use Cases

Schema and Data Management

Higgs allows users to manage their data API-first and in Rich JSON-LD structures. Higgs features dynamic Schema templating, so you can freely and easily manage your Schema in real-time and separately from your data. Schema configurations will be applied to Resource Requests or automatically created for you.

1. *Create your Schema:

POST /account/MyCompany/Schema HTTP/1.1
Host: higgs.online
{
  "relations": [
    "Relation/Furniture/label?range=string",
    "Relation/Furniture/category?range=string",
    "Relation/Furniture/price?range=currency"
  ]
}

*Optional as Higgs will fallback to automatically create a Schema.

2. Upload your Data:

POST /account/MyCompany/Entity/Furniture/BlackDiningChair/call/upload-csv HTTP/1.1
Host: higgs.online

"label", "category", "price"
"Brown Leather Recliner", "home", "299.95USD"
"Black Dining Chair", "Home", "195.95USD"
...

3. Your data is then Integration-ready through your Account CRUD API:

GET /account/MyCompany/Thing/Furniture/BlackDiningChair
GET /account/MyCompany/Thing/Furniture/BlackDiningChair?props=[label,price]
POST /Property/Furniture/BlackDiningChair/price?value=150.00USD

Feel free to make live Schema updates at any time:

POST /Class/Furniture/Chair
POST /Thing/Furniture/BlackDiningChair?type=Furniture/Chair

Knowledge Search

Search will ask Higgs to find your Schema and Data Instances using the criteria your provide. Search provides paginated live lookups of your backend Resources.

POST /account/jay/search/entity?page=2 HTTP/1.1
{
  "@context": "https://higgs.online/context",
  "types": ["Person/Human", "Person/Human/Author"],
  "keys": ["Jason"]
}

Response

HTTP/1.1 200 OK
Date: Mon, 1 Mar 2016 11:11:11 GMT
WWW-Authenticate: Bearer realm="Restricted"
{
  "@context": "https://higgs.online/context",
  "@id": "higgs:Response/Success",
  "hsd:type": "higgs:Response",
  "higgs:Operation": "READ",
  "higgs:Status/Success/message": "Your search returned 1337 results. This is page 2 of 10 items per page."
  "resource": {
    "hsd:id": "this-account/search/entity?page=2,
    "hsd:type": "hsd:EntityList",
    "items": [
      "this-account:Thing/Person/Human/Author/JasonReinert",
      "higgs:account/sProvider/Thing/Person/Human/JasonSmith",
      "this-account"Thing/Person/Human/JasonSmith",
        ...
    ]
  }
}

Version Control and Collaboration

Higgs saves Resources with version control properties to use in Functions such as: Branch , Merge , Merge-Request , and Merge-Accept.

You can ask Higgs to branch any Definition or Data Instance into your own Account, and optionally, request a merge back to the origin:

POST /account/wwwstem/Class/Animal/HouseCat/call/branch?account=PetStore
POST /Relation/Animal/HouseCat/isFictional?range=boolean
POST /Relation/Animal/HouseCat/isFictional/call/merge-request

As a Resource owner, you can manage your contributions:

GET /merge-request/index
...
{ "resource": [
  {
    "@id": "Class/Animal/HouseCat/merge-request/1d64264a-cfb8-4a1f-8a14-4b203943dea9",
    "hsd:operation": "CREATE",
    "isFictional": {
        "rdf:type": "hsd:Relation",
        "rdfs:range": "boolean"
    }
  },
  ...
]}
POST /call/merge-accept?request=1d64264a-cfb8-4a1f-8a14-4b203943dea9

Knowledge Extraction

Higgs Resources all have a knowledge structure and semantic annotations (SA). No data can pass Higgs without a pre-defined Schema or relying on Higgs' Ontology learning (OL). Every Resource consists of rich Metadata which can present Taxonomical and Ontological relationships embedded into it's data structure.

GET /account/jay/Entity/Person/JasonReinert

Response:


{
  "@context": "https://higgs.online/context",
  "rdf:ID": "this-account:Entity/Person/JasonReinert",
  "rdf:type": {
      "rdf:ID": "this-account:Classification/Person",
      "rdf:type": "rdfs:Class",
      "rdf:subClassOf": "this-account:Classification/Thing"
  },
  "firstName": {
      "rdf:type": "owl:DatatypeProperty",
      "rdfs:range": "literal:string",
      "rdf:value": "Jason"
  },
  "age": {
      "rdf:type": "owl:DatatypeProperty",
      "rdfs:range": "literal:integer",
      "rdf:value": 35
  },
  "knows": {
      "rdf:type": "owl:ObjectProperty",
      "rdfs:range": "this-account:Person",
      "rdf:ID": {
        "rdf:ID": "this-account:Person/FelixDubé",
        "knows": "Person/RyanWeinstein"}
  }
}
GET /account/jay/Graph/JasonReinert

{
  "@context": "https://higgs.online/context",
  "rdf:ID": "this-account:Entity/Person/JasonReinert",
  "@graph": [
    {
      "rdf:type": "this-account:Classification/Person/JasonReinert",
      "firstName": "Jason",
      "age": 35,
      "knows": "Person/FelixDubé"
    },
    {
      "rdf:type": "this-account:Classification/Person/FelixDubé",
      "firstName": "Jason",
      "age": 35,
      "knows": "Person/RyanWeinstein",
      "favoriteBook": "Publication/Book/Pull"
    }
  ]
}

Data Transformation

Higgs can easily map from data model to another.

Consider the following Product:

GET /account/Amazon/Entity/Product/AmazonEcho

Response:

{
  "@id": "this-account:Entity/Product/AmazonEcho",
  "@type": "this-account:Class/Product",
  "label": "Amazon Echo Charcoal Fabric",
  "comment": "Room filling sound with six fabrics or finishes",
  "msrp": "99.99USD",
  "href": "https://www.amazon.com/dp/B07456BG8N",
  "store": "higgs:account/Amazon/Entity/Store/us"
}

Product/AmazonEcho can easily be transformed into another model using the import Function:

POST /account/MyCompany/Entity/ElectronicDevice/AmazonEcho/call/import
{
  "export": "higgs:account/Amazon//Entity/Product/AmazonEcho",
  "map": {
    "msrp": "retailPrice",
    "label": "title",
    "comment": "subtitle",
    "href": "officialSite"
  }
}

The data will be transformed into an instance of ElectronicDevice and CRUD API-ready:

GET /account/MyCompany/Entity/ElectronicDevice/AmazonEcho/call/import
{
  "@id": "this-account:Entity/ElectronicDevice/AmazonEcho",
  "@type": "this-account:Class/ElectronicDevice",
  "retailPrice": "99.99",
  "title": "Amazon Echo Charcoal Fabric",
  "subtitle": "Room filling sound with six fabrics or finishes",
  "officialSite": "https://www.amazon.com/dp/B07456BG8N"
}

Higgs will be sure to coerce the values against the ElectronicDevice Schema

Data Governance

Higgs offers simple API management enabling Accounts to become Service Providers to other Accounts:

POST   /account/Tesla/client/JasonReinert?ops=read,update

Higgs will add Account JasonReinert to Tesla Clients with READ and UPDATE permisssions.

From there, you can further manage and track your client's usage:

POST   /account/Tesla/client/FelixDube?ops=read
DELETE /account/Tesla/client/FelixDube
GET    /account/Tesla/client/JasonReinert
{
  "@context": "https://higgs.online/context",
  "@id": "higgs:Response/Success",
  "hsd:type": "higgs:Response",
  "higgs:Operation": "READ",
  "higgs:Status/Success/message": "Here is the Client you requested."
  "resource": {
  "hsd:id": "this-account/search/entity?page=2,
  "hsd:type": "hsd:EntityList",
  "resource": {
    "@id": account/Tesla/client/JasonReinert,
    "usage": {
        "apiCalls": 1337,
        "bytesTransfered": 20121221,
        "storedMB": 22000
    },
    "allowsOperations":
    "allowsOperations": [
        "READ",
        "UPDATE"
    ]
  }
}