💻 JSON Code Examples
1️⃣ Defining Classes
Extract of file: files/sub_HPC_classes.json
[
{
"id": "ComputeNode",
"parent_class": "HPCResource",
"pref_label": {
"en": "Node",
"fr": "Noeud"
},
"comment": {
"en": "A physical or virtual server that executes computational jobs within a partition.",
"fr": "Un serveur physique ou virtuel qui exécute des tâches de calcul au sein d'une partition."
}
"link_html": "https://wiki.external.link",
"equivalent": "https://link.to.ontology#Concept",
}
}
]
2️⃣ Defining Properties
File: files/properties_HPC.json
[
{
"id": "hasDieSize",
"property_type": "ObjectProperty",
"domain": "Processor",
"range": "DieSize",
"pref_label": {
"en": "has die size",
"fr": "a taille de puce"
}
"comment": {
"en": "Relates a processor to its die size measurement."
}
}
]
3️⃣ Adding Restrictions
Some classes (i.e. physical characteristic) have Units and Values. Add hasUnit and hasValue restrictions to those classes. File to be updated: files/add_restrictions_hasValue_hasUnit.json
Example of a class (DieSize) that hasUnit (either mm2 or cm2 -> give a list with possible values with
enumeration) and hasValue (a decimal, if all values possibles, then use
all_values_from).
[
{
"class_name": "DieSize",
"restrictions":[
{
"property_name": "hasUnit",
"enumeration": ["mm2","cm2"],
"comment":{
"en": "Allowed units for die size",
"fr": "Unités autorisées pour la taille de puce"
}
},
{
"property_name": "hasValue",
"all_values_from": "xsd:decimal",
"comment":{
"en": "Numeric value of the die size",
"fr": "Valeur numérique de la taille de puce"
}
}
]
}
]
4️⃣ Creating Instances
File: files/instances_***.json
[
{
"instance_name": "diesize_a100",
"class_type": "DieSize",
"pref_label": {
"en": "Diesize A100"
},
"properties": {
"hasValue": "826",
"hasUnit": "mm2",
}
"pref_label": {
"en": "Die size for A100 GPU"
}
},
{
"instance_name": "nvidia_a100",
"class_type": "GPU",
"pref_label": {
"en": "NVIDIA A100"
},
"properties": {
"hasDieSize": "diesize_a100"
}
"pref_label": {
"en": "GPU NVIDIA A100"
}
}
]