regen-docs
  • Regen Ledger
  • DRAFT
    • Users and Organizations
      • Account
      • Group
    • Bank
    • Data
    • Simple Credit
    • Fractional NFT Credit
    • Semantic Data
    • Coin
    • Script
    • Market
    • Chain Schema
    • Basic Types
Powered by GitBook
On this page
  • Schema
  • Datatypes
  • Namespaces
  • Properties
  • Classes
  • Transactions
  • Storing Graph Data
  • Storing Part of a Graph
  • Deleting Data
  • State

Was this helpful?

  1. DRAFT

Semantic Data

WORK IN PROGRESS

Schema

Datatypes

enum Datatype (
  Bool
  Integer
  Decimal
  String
  DateTime
  Date
  Time
  Duration
  QuantityValue(Unit)
  Range(Datatype)
  Geography
  Species
  Chemical
)

Namespaces

tx CreateNamespace(name string) HashURI

Properties

Data Properties

tx CreateDataProperty(
  namespace HashURI,
  name string,
  datatype Datatype,
  arity Arity
)

Object Properties

tx CreateObjectProperty(
  namespace HashURI,
  name string,
  cls HashIRI,
  arity Arity,
  superProperties HashURI*
)

Arity

enum Arity (
  One,
  Ordered,
  Unordered
)

Classes

tx CreateClass(
  namespace HashURI,
  name string,
  requiredProperties HashURI*,
  superClasses HashURI*
)

Transactions

Storing Graph Data

tx StoreGraph(data bytes) HashURI

Storing Part of a Graph

tx StorePartialData(iri HashIRI, proofs ics23.ExistenceProof*)

Deleting Data

// this would allow the person who committed data to remove it from state
// but not from transaction history - maybe no point in even considering this
@experimental tx DeleteData(iri HashIRI)

State

table Namespace {
  iri: HashIRI
  owner: Address
  name: string
  @primary_key(iri)
  @unique(owner, name)
  @index(owner)
}

enum ObjType {
  DataProperty,
  ObjectProperty,
  Class
}

table Object {
  iri: HashIRI
  namespace: HashIRI
  name: string
  type: ObjType
  datatype: Datatype?
  cls: HashIRI?
  arity: Arity?
  super_properties: HashIRI*
  super_classes: HashIRI*
  required_properties: HashIRI*
  @primary_key(iri)
  @unique(namespace, name)
  @index(namespace)
}

table Data {
  iri: HashIRI
  data: bytes?
  partial: ics23.ExistenceProof*
  @primary_key(iri)
}
PreviousFractional NFT CreditNextCoin

Last updated 5 years ago

Was this helpful?