Skip to main content

semantha® SDK

The semantha SDK is a high-level REST client to access the semantha API. The SDK is still under development. An overview of the current progress (i.e. implemented and tested resources and endpoints) may be found at the end of this document (State of Development). The semantha SDK is compatible with python >= 3.8.

Disclaimer

IMPORTANT: The SDK is under development and interfaces may change at any time without notice. Use with caution and on own risk.

Update Note

Version 4.5.0 comes with a major restructuring of the SDK. All sub-resources are directly accessible (instead of invoking getters). That also means that (except for a few) all functions are plain get/post/delete/put/patch. For example, in Versions < 4.5.0 a domain resource was fetched using semantha_sdk.domains.get_one("domain_name"). Starting with 4.5.0 it is semantha_sdk.domains("domain_name"). That also means that get/post/put/patch functions return semantha model objects (and never resources), which makes usage more consistent.

Access

To access semantha's API you will need an API and a server url. Both can be requested via this contact form.

Basic Usage

Import

import semantha_sdk

Authentication

semantha = semantha_sdk.login(url="<semantha platform server URL>", key="<your key>")
# or
semantha = semantha_sdk.login(url="<semantha platform server URL>", key_file="<path to your key file (json format)>")

End-point (Resource) Access

# end-points (resp. resources) can be used like objects
current_user = semantha.currentuser
my_domain = semantha.domains("my_domain")

# they may have sub-resources, which can be retrieved as objects as well
reference_documents = my_domain.referencedocuments

CRUD on End-points

# CRUD operations are functions
domain_settings = my_domain.settings.get()
my_domain.referencedocuments.delete() (deletes ALL reference document/library entries)

Function Return Types & semantha Data Model

# some functions only return None, e.g.
my_domain.referencedocuments.delete() # returns NoneType

# others return built in types, e.g
roles_list = currentuser.roles.get() # returns list[str]

# but most return objects of the semantha Data Model
# (all returned objects are instances of frozen dataclasses)
settings = my_domain.settings.get() # returns instance of DomainSettings
# attributes can be accessed as properties, e.g.
settings.enable_tagging # returns true or false
# Data Model objects may be complex
document = my_domain.references.post(file=a, referencedocument=b) # returns instance of Document
# the following returns the similarity value of the first references of the first sentence of the
# the first paragraph on the first page of the document (if a reference was found for this sentence)
similarity = pages[0].contents[0].paragraphs[0].references[0].similarity # returns float

State of Development

The following resources and end-points are fully functional and (partially) tested:

  • login -> API
    • .currentuser -> CurrentUser
      • get -> UserData(SemanthaModelEntity)
      • roles -> CurrentUserRoles
        • get -> list[str]
    • .diff -> Diff
      • post -> list[Diff(SemanthaModelEntity)]
    • .info -> VersionInfo
      • get -> VersionInfo
    • .languages -> list[str]
    • .domains -> Domains
      • get -> list[Domain(SemanthaModelEntity)]
    • .domains("domain_name") -> Domain
      • .documentannotations -> DocumentAnnotations
        • post -> not yet implemented
      • .documentclasses -> DocumentClasses
        • get -> list[DocumentClass(SemanthaModelEntity)]
        • post -> DocumentClass(SemanthaModelEntity)
        • delete -> None
      • .documentclasses("id") -> DocumentClass
        • get -> DocumentClass(SemanthaModelEntity)
        • delete -> None
        • put -> DocumentClass(SemanthaModelEntity)
        • documentclasses -> InnerDocumentClasses
          • get -> list[DocumentClass(SemanthaModelEntity)]
          • post -> DocumentClass(SemanthaModelEntity)
        • referencedocuments -> InnerReferenceDocuments
          • get -> list[Document(SemanthaModelEntity)]
          • patch -> None
          • delete -> None
      • .documentcomparisons -> DocumentComparisons
        • post -> not yet implemented
        • .documents -> Documents
          • post -> list[Document(SemanthaModelEntity)]
      • .modelinstances -> ModelInstance
      • .modelclasses -> ModelClass
      • .referencedocuments -> ReferenceDocuments
        • get -> ReferenceDocuments(SemanthaModelEntity)
        • delete -> None
        • post -> list[DocumentInformation(SemanthaModelEntity)]
        • .clusters -> DocumentCluster
          • get -> DocumentCluster(SemanthaModelEntity)
        • .statistic -> Statistics
          • get -> Statistic(SemanthaModelEntity)
        • .namedentities -> NamedEntities
          • get -> Optional[NamedEntities(SemanthaModelEntity)]
      • .referencedocuments("id") -> ReferenceDocument
        • get -> Document(SemanthaModelEntity)
        • delete -> None
        • patch -> DocumentInformation(SemanthaModelEntity)
        • .paragraphs("id") -> ReferenceDocumentParagraph
          • get -> Paragraph(SemanthaModelEntity)
          • patch -> Paragraph(SemanthaModelEntity)
          • delete -> None
        • .sentences("id") -> ReferenceDocumentSentence
          • get -> Sentence(SemanthaModelEntity)
      • .references -> References
        • post -> Document(SemanthaModelEntity)
      • .settings -> DomainSettings
        • get -> DomainSettings(SemanthaModelEntity)
        • patch -> DomainSettings(SemanthaModelEntity)
      • .similaritymatrix -> List[MatrixRow]
        • .clusters -> List[MatrixRow]
      • .tags -> DomainTags
        • get -> list[str]
        • .("tag").referencedocuments
          • get
          • delete
      • .validation -> SemanticModel
    • .model
      • .domains("domain_name")
        • .boostwords -> Boostwords
          • get -> list[Boostword(SemanthaModelEntity)]
          • delete -> None
          • post_word -> Boostword(SemanthaModelEntity)
          • post_regex -> Boostword(SemanthaModelEntity)
        • .boostwords("id") -> Boostword
          • get -> Boostword(SemanthaModelEntity)
          • delete -> None
          • put_word -> Boostword(SemanthaModelEntity)
          • put_regex -> Boostword(SemanthaModelEntity)
        • .synonyms -> Synonyms
          • get -> list[Synonym(SemanthaModelEntity)]
          • delete -> None
          • post_word -> Synonym(SemanthaModelEntity)
          • post_regex -> Synonym(SemanthaModelEntity)
        • .synonyms("id") -> Synonym
          • get -> Synonym(SemanthaModelEntity)
          • delete -> None
          • put_word -> Synonym(SemanthaModelEntity)
          • put_regex -> Synonym(SemanthaModelEntity)
        • .datatypes -> list[str]

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

semantha_sdk-4.7.0.tar.gz (29.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

semantha_sdk-4.7.0-py3-none-any.whl (52.4 kB view details)

Uploaded Python 3

File details

Details for the file semantha_sdk-4.7.0.tar.gz.

File metadata

  • Download URL: semantha_sdk-4.7.0.tar.gz
  • Upload date:
  • Size: 29.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.8.10 Linux/5.4.72-microsoft-standard-WSL2

File hashes

Hashes for semantha_sdk-4.7.0.tar.gz
Algorithm Hash digest
SHA256 f63b7a5abeaa4927a7f44990e186cb7c95b9e4da92fe8e2e36bc377de2651b5b
MD5 d2e2a55f99fd3cbe4a7bcf228b2b6f4e
BLAKE2b-256 42457f1b9bee1eabc0034bc1297451949bb6e325d7c2348f70c1d9a063d60ef8

See more details on using hashes here.

File details

Details for the file semantha_sdk-4.7.0-py3-none-any.whl.

File metadata

  • Download URL: semantha_sdk-4.7.0-py3-none-any.whl
  • Upload date:
  • Size: 52.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.8.10 Linux/5.4.72-microsoft-standard-WSL2

File hashes

Hashes for semantha_sdk-4.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 143fb183fd78008422fcd5d5b5dedfd7da63e1ebe68680a2d64d59e8cd5ed839
MD5 908e835bf113362bb676ebd55e48f322
BLAKE2b-256 eee4dbda57122fe9e7e9cef84ae3412a080e1b22886920d67455af435078b00a

See more details on using hashes here.

Release history Release notifications | RSS feed

11.9.0

2 files

11.8.0

2 files

11.7.0

2 files

11.6.0

2 files

11.5.0

2 files

11.4.0

2 files

11.3.0

2 files

11.2.1

2 files

11.2.0

2 files

11.1.0

2 files

10.10.0

2 files

10.9.0

2 files

10.6.0

2 files

10.5.0

2 files

10.4.0

2 files

10.1.0

2 files

10.0.0

2 files

9.1.0

2 files

9.0.0

2 files

8.12.0

2 files

8.10.0

2 files

8.9.0

2 files

8.8.2

2 files

8.8.1

2 files

8.8.0

2 files

8.6.0

2 files

8.5.1

2 files

8.5.0

2 files

8.3.0

2 files

8.2.0

2 files

8.1.0

2 files

7.13.0

2 files

7.11.0

2 files

7.10.0

2 files

7.9.0

2 files

7.8.0

2 files

7.5.0

2 files

7.3.0

2 files

7.1.1

2 files

7.1.0

2 files

7.0.0

2 files

6.11.2

2 files

6.11.1

2 files

6.11.0

2 files

6.10.0

2 files

6.9.0

2 files

6.8.0

2 files

6.7.0

2 files

6.6.0

2 files

6.5.0

2 files

6.4.0

2 files

6.3.0

2 files

6.2.1

2 files

6.2.0

2 files

6.1.0

2 files

6.0.1

2 files

6.0.0

2 files

5.11.1

2 files

5.11.0

2 files

5.10.0

2 files

5.9.0

2 files

5.8.0

2 files

5.7.2

2 files

5.7.1

2 files

5.7.0

2 files

5.6.2

2 files

5.6.1

2 files

5.6.0

2 files

5.5.0

2 files

5.4.1

2 files

5.4.0

2 files

5.3.2

2 files

5.3.1

2 files

5.3.0

2 files

5.2.0

2 files

4.8.1

2 files

4.8.0

2 files

This release

4.7.0 This release

2 files

4.6.0

2 files

4.5.3

2 files

4.5.2

2 files

4.5.1

2 files

4.5.0

2 files

4.3.1

2 files

4.3.0

2 files

4.2.1

2 files

4.2.0

2 files

4.1.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page