Ice Blue Digital

API

ICBLD API

Access Key

To use the API, sign up for an account to get an access key.

Include the key as basic authentication in each request, i.e. add a "Authorization" header to each request.

The header should look like: Authorization: Basic {your-access-key-here}

Client Libraries

Client libraries are coming soon for .NET and TypeScript/JavaScript.

Services


Account


[GET] https://www.icbld.com/api/account/credit

Gets the current number of API credits remaining

Result

  • number (Count of remaining credits)

Jobs


[GET] https://www.icbld.com/api/job

Gets all lodged jobs.

Result

[GET] https://www.icbld.com/api/job/{id}/status

Parameters

Result

  • "not found" Job was not found
  • "not started" Job is scheduled for processing
  • "in progress" Job processing has started
  • "complete" Processing complete

[DELETE] https://www.icbld.com/api/job/{id}

Deletes a job.

Parameters


Tokenisation


[POST] https://www.icbld.com/api/job/tokenise

Creates a new tokenise job.

Parameters

  • {posted content} utf-8 encoded string (The text to tokenise)

Result

[GET] https://www.icbld.com/api/job/tokenise/{id}

Gets the tokenisation output.

Parameters

Result


Parts of Speech


[POST] https://www.icbld.com/api/job/pos

Creates a new parts of speech job.

Parameters

  • {posted content} utf-8 encoded string (The text to parse)

Result

[GET] https://www.icbld.com/api/job/pos/{id}

Gets the parts of speech output.

Parameters

Result


Syntax Analysis


[POST] https://www.icbld.com/api/job/syntax

Creates a new syntax analysis job.

Parameters

  • {posted content} utf-8 encoded string (The text to parse)

Result

[GET] https://www.icbld.com/api/job/syntax/{id}

Gets the syntax analysis output.

Parameters

Result


Sentiment Analysis


[POST] https://www.icbld.com/api/job/sentiment

Creates a new sentiment analysis job.

Parameters

  • {posted content} utf-8 encoded string (The text to parse)

Result

[GET] https://www.icbld.com/api/job/sentiment/{id}

Gets the sentiment analysis output.

Parameters

Result


Topic Detection


[POST] https://www.icbld.com/api/job/topicdetection

Creates a new topic detection job.

Parameters

  • {posted content} utf-8 encoded string (The text to parse)

Result

[GET] https://www.icbld.com/api/job/topicdetection/{id}

Gets the output from the topic detection analysis.

Parameters

Result


Wordnet


[GET] https://www.icbld.com/api/wordnet/search?q={query}

Search WordNet for the given query.

Parameters

  • query string (Search Term)

Result

[GET] https://www.icbld.com/api/wordnet/get/{sid}

Gets a Wordnet sense index.

Parameters

Result

[GET] https://www.icbld.com/api/wordnet/expanded/{sid}

Gets an expanded Wordnet sense index.

Parameters

Result


Word Embeddings


[POST] https://www.icbld.com/api/job/embedding

Creates a new word embedding job.

Parameters

  • {posted content} utf-8 encoded string (The text to construct an embedding space)

Result

[GET] https://www.icbld.com/api/job/embedding/{id}

Gets the word embedding output.

Parameters

Result


Topics


[GET] https://www.icbld.com/api/topic?q={query}

Search for a topic. If the topic is not found near matches are returned.

Parameters

  • query string

Result

[GET] https://www.icbld.com/api/topic/{id}

Returns information about a topic.

Parameters

Result

[GET] https://www.icbld.com/api/topic/sense/{sid}

Returns the topics associated with the given sense index.

Parameters

Result

[GET] https://www.icbld.com/api/topic/category?c={category}

Returns the topics associated with the given category.

Parameters

  • category string (The category name)

Result


Enums

JobType

The type of job

const enum JobType {
    tokenise                       = 0,                   // Tokenisation
    wordEmbedding                  = 1,                   // Word embedding
    partsOfSpeech                  = 2,                   // Parts of speech
    syntaxAnalysis                 = 3,                   // Syntax analysis
    sentimentAnalysis              = 4,                   // Sentiment analysis
    topicDetection                 = 5,                   // Topic detection
}

PartOfSpeech

Part of speech tag

const enum PartOfSpeech {
    unknown                        = 0,                   // Not known
    word                           = 1,                   // A word
    punctuation                    = 2,                   // A punctuation character
    number                         = 3,                   // A number
    name                           = 4,                   // A given name
    interjection                   = 5,                   // Uh, huh etc
    symbol                         = 6,                   // A symbol
    article                        = 7,                   // An article (the, a, etc)
    conjunction                    = 8,                   // A conjunction(and, or, etc)
    preposition                    = 9,                   // A preposition (for, to, etc)
    pronoun                        = 10,                  // A pronoun (he, she, etc)
    noun                           = 11,                  // A noun
    verb                           = 12,                  // A verb
    adjective                      = 13,                  // An adjective
    adverb                         = 14,                  // An adverb
    possessiveNoun                 = 15,                  // A possessive noun (the dog's, a rabbit's, etc)
    possessivePronoun              = 16,                  // A posssessive pronoun (her, his, etc)
    possessiveName                 = 17,                  // A possessive name (John's, Julia's, etc)
    possessiveMarker               = 18,                  // A possessive marker (')
    max                            = 19,                  // Maximum value for POS
}

PointerType

Wordnet sense pointer type

const enum PointerType {
    unknown                        = 0,                   // Not known
    antonym                        = 1,                   // Antonym
    hypernym                       = 2,                   // A more generic term
    instanceHypernym               = 3,                   // A specific instance of a more generic term
    memberHolonym                  = 4,                   // Holonym ("a part of") by member
    substanceHolonym               = 5,                   // Holonym ("a part of") by substance
    partHolonym                    = 6,                   // Holonym ("a part of")
    memberMeronym                  = 7,                   // Meronym ("is a part of") by member
    substanceMeronym               = 8,                   // Meronym ("is a part of") by substance
    partMeronym                    = 9,                   // Meronym ("is a part of")
    attribute                      = 10,                  // A noun for which adjectives express values. The noun weight is an attribute, for which the adjectives light and heavy express values.
    derivationallyRelatedForm      = 11,                  // Terms in different syntactic categories that have the same root form and are semantically related.
    domainOfSynset_category        = 12,                  // Related by category
    domainOfSynset_region          = 13,                  // Related by region
    domainOfSynset_usage           = 14,                  // Related by usage
    memberOfDomain_category        = 15,                  // Related by category
    memberOfDomain_region          = 16,                  // Related by region
    memberOfDomain_usage           = 17,                  // Related by usage
    entailment                     = 18,                  // A verb X entails Y if X cannot be done unless Y is, or has been, done.
    cause                          = 19,                  // Verb causation
    alsoSee                        = 20,                  // Also see
    verbGroup                      = 21,                  // Verb group
    similiarTo                     = 22,                  // Similiar to
    participleOfVerb               = 23,                  // Participle Of Verb
    relatedTo                      = 24,                  // Hyponym - a "type of" relationship
    instanceRelatedTo              = 25,                  // Hyponym ("type of") relationship based on a specific instance
    derivedFromAdjective           = 26,                  // Derived from adjective
    pertainym                      = 27,                  // A relational adjective. Adjectives that are pertainyms are usually defined by such phrases as "of or pertaining to" and do not have antonyms. A pertainym can point to a noun or another pertainym.
    max                            = 28,                  // Maximum index
}

TokenType

The type of a token

const enum TokenType {
    none                           = 0,                   // Nothing special
    url                            = 1,                   // A url
    email                          = 2,                   // An email address
    date                           = 3,                   // A date
    time                           = 4,                   // A time
    currency                       = 5,                   // A currency symbol
    number                         = 6,                   // A number
    punctuation                    = 7,                   // Punctuation characters
    numericPhrase                  = 8,                   // A numeric phrase
    weight                         = 9,                   // A weight (e.g. 5kgs)
    length                         = 10,                  // A length (e.g. 2km)
    temperature                    = 11,                  // A temperature (e.g. 5c)
    speed                          = 12,                  // A speed (e.g. 100kmh)
    volume                         = 13,                  // A volume
    area                           = 14,                  // An area
    person                         = 15,                  // A person
    malePerson                     = 16,                  // A male person
    femalePerson                   = 17,                  // A female person
    group                          = 18,                  // An organisation or group
    location                       = 19,                  // A location
    noun                           = 20,                  // A noun
    nounPhrase                     = 21,                  // A noun phrase
    prepositionPhrase              = 22,                  // A preposition phrase
    subject                        = 23,                  // A verb phrase subject
    object                         = 24,                  // A verb phrase object
    verb                           = 25,                  // A verb
    presentSimple                  = 26,                  // A present tense verb phrase
    presentContinuous              = 27,                  // A present continuous tense verb phrase
    presentPerfect                 = 28,                  // A present perfect tense verb phrase
    presentPerfectContinuous       = 29,                  // A present perfect continuous tense verb phrase
    pastSimple                     = 30,                  // A past tense verb phrase
    pastContinuous                 = 31,                  // A past continuous tense verb phrase
    pastPerfect                    = 32,                  // A past perfect tense verb phrase
    pastPerfectContinuous          = 33,                  // A past perfect continuous tense verb phrase
    futureSimple                   = 34,                  // A future tense verb phrase
    futureContinuous               = 35,                  // A future continuous tense verb phrase
    futurePerfect                  = 36,                  // A future perfect tense verb phrase
    futurePerfectContinuous        = 37,                  // A future perfect continuous tense verb phrase
    futureInPast                   = 38,                  // A future in past tense verb phrase
    usedTo                         = 39,                  // A "used to" verb phrase
    wouldAlways                    = 40,                  // A "would always" verb phrase
    infinitive                     = 41,                  // Infinitive verb phrase
}

WordnetPartOfSpeech

Part of speech for WordNet sense indices

const enum WordnetPartOfSpeech {
    unknown                        = 0,                   // Not knowne
    noun                           = 1,                   // Noun
    verb                           = 2,                   // Verb
    adjective                      = 3,                   // Adjective
    adjectiveSatellite             = 4,                   // Adjective satellite. See https://wordnet.princeton.edu/wordnet/man/wngloss.7WN.html
    adverb                         = 5,                   // Adverb
    punctuation                    = 6,                   // Punctuation
}

Interfaces

ExpandedSenseIndex

A sense index whose sense pointers have been expanded to include the sense indices they refer to

interface ExpandedSenseIndex {
        expandedPointer:               ExpandedSensePointer[],// List of expanded sense pointers
}

ExpandedSensePointer

A sense pointer that has been expanded to include the sense index it points to

interface ExpandedSensePointer {
        type:                          PointerType,         // Pointer type
        source:                        Number,              // Source word index (0 for all words)
        target:                        Number,              // Target word index (0 for all words)
}

GlossWord

A word within a sense index's definition

interface GlossWord {
        text:                          String,              // Word text
        pos:                           PartOfSpeech,        // Part of speech
        semanticIndex?:                Number,              // (Optional) sense index id
        hasLeadingSpace:               Boolean,             // True if the word has a leading space
}

JobInfo

Information about a lodged job

interface JobInfo {
        id:                            Number,              // Job id
        type:                          JobType,             // Job type
        status:                        String,              // Job completion status
        date:                          Date,                // Job lodgement date
        hasCompleted:                  Boolean,             // True if the job has completed
        inputSize:                     Number,              // Size in characters of the job input
        outputSize:                    Number,              // Size in bytes of the job's output
        cost:                          Number,              // Cost in credits to execute the job
}

RankedWord

A ranked word

interface RankedWord {
        word:                          String,              // The word text
        score:                         Number,              // The word's score
}

SenseIndex

WordNet sense index

interface SenseIndex {
        partOfSpeech:                  WordnetPartOfSpeech, // Part of speech
        name:                          String[],            // List of words in the sense index's name
        classification:                String[],            // List of words that specify the sense index domain (optional)
        definition:                    GlossWord[],         // List of words in the definition
        example:                       String[],            // List of example sentences (optional)
        pointer:                       SensePointer[],      // List of pointers to related sense indices
        verbFrame:                     VerbFrame[],         // List of verb frames (optional)
        uniqueId:                      String,              // Unique id
        id:                            Number,              // Sense index id
}

SensePointer

Pointer to a sense index

interface SensePointer {
        id:                            Number,              // Sense index id
        type:                          PointerType,         // Type of pointer
        source:                        Number,              // Source word index (0 for all words)
        target:                        Number,              // Target word index (0 for all words)
}

Sentence

Parsed sentence

interface Sentence {
        words:                         Word[],              // List of words
}

SimpleToken

Simple tokenisation token

interface SimpleToken {
        type:                          TokenType,           // Token type
        text:                          String,              // Token text
        lemma:                         String,              // Token lemma (optional)
}

Token

A recursive token within a parse tree

interface Token {
        type:                          TokenType,           // Token type
        pos:                           PartOfSpeech,        // Token part of speech
        text:                          String,              // Token text
        lemma:                         String,              // Base form of word (optional)
        offset:                        Number,              // Equivalent to an ordered id - the offset of the token within the text
        isCapitalised:                 Boolean,             // True if the token is capitalised
        isPlural:                      Boolean,             // True if the token is a plural noun
        isPassive:                     Boolean,             // True if the token is a passive verb
        topicId?:                      Number,              // Topic id (if any) associated with the token
        children:                      Token[],             // List of the token's children (optional)
}

TopicDetectionResults

Topic detection results

interface TopicDetectionResults {
        category:                      String[],            // List of ranked likely topic domains
        topic:                         TopicInfo[],         // List of topics found in the text
}

TopicInfo

Topic information

interface TopicInfo {
        topicId:                       Number,              // Topic id
        title:                         String,              // Name of the topic
        sense:                         Number[],            // Related sense indices
        category:                      String[],            // List of the topic's categories
}

VerbFrame

A verb frame

interface VerbFrame {
        index:                         Number,              // Verb frame index. See https://wordnet.princeton.edu/man/wninput.5WN.html#toc4
        wordIndex:                     Number,              // Word index that the frame refers to (0 for all words)
}

Word

A parsed word

interface Word {
        text:                          String,              // Word text
        lemma:                         String,              // Base form of word (optional)
        pos:                           PartOfSpeech,        // Word part of speech
        sentimentStrength:             Number,              // The strength of sentiment - from 0 (low) to 1 (high)
        sentimentPolarity:             Number,              // The type of sentiment expressed - from 0 (negative) to 1 (positive)
}

WordEmbeddingResults

Results from executing a word embedding query

interface WordEmbeddingResults {
        word:                          RankedWord[],        // List of related words
        vector:                        Single[],            // Word embedding vector
}

WordnetSearchResults

Wordnet search results

interface WordnetSearchResults {
        suggestion:                    String[],            // List of suggested words if nothing was found
        sense:                         SenseIndex[],        // List of matching sense indices
}