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)
}
Last updated