diff --git a/Makefile b/Makefile
index be57b05..215ba04 100644
--- a/Makefile
+++ b/Makefile
@@ -133,7 +133,8 @@ ifneq ($(strip ${GEN_TS_ARGS}),)
$(RUN) gen-typescript ${GEN_TS_ARGS} $(SOURCE_SCHEMA_PATH) >${DEST}/typescript/${SCHEMA_NAME}.ts
endif
-test: test-schema test-python test-examples
+test: test-validate test-examples test-python
+.PHONY: test test-validate test-examples test-python
test-schema:
$(RUN) gen-project ${CONFIG_YAML} -d tmp $(SOURCE_SCHEMA_PATH)
@@ -151,6 +152,9 @@ else
$(info Ok)
endif
+test-validate:
+ $(RUN) linkml-validate -s $(SOURCE_SCHEMA_PATH) src/data/examples/*.yaml
+
convert-examples-to-%:
$(patsubst %, $(RUN) linkml-convert % -s $(SOURCE_SCHEMA_PATH) -C Person, $(shell ${SHELL} find src/data/examples -name "*.yaml"))
@@ -169,7 +173,7 @@ examples/output: src/oscem_schemas/schema/oscem_schemas.yaml
--output-formats json \
--output-formats yaml \
--counter-example-input-directory src/data/examples/invalid \
- --input-directory src/data/examples/valid \
+ --input-directory src/data/examples \
--output-directory $@ \
--schema $< > $@/README.md
diff --git a/README.md b/README.md
index 4534458..7319ac5 100644
--- a/README.md
+++ b/README.md
@@ -32,10 +32,16 @@ Schema for the Open Standards Community for Electron Microscopy (OSC-EM)
## Developer Documentation
-Use the `make` command to generate project artefacts:
+Use the `make` command to generate project artifacts:
+* `make setup`: one-time setup
* `make all`: make everything
* `make deploy`: deploys site
+* `make lint`: check syntax
+* `make test`: run tests
+* `make serve`: run docs locally on http://127.0.0.1:8000/oscem-schemas/
+* `make clean` : remove generated files
+
## Credits
diff --git a/project/excel/oscem_schemas.xlsx b/project/excel/oscem_schemas.xlsx
index da7f3db..7c3a7bf 100644
Binary files a/project/excel/oscem_schemas.xlsx and b/project/excel/oscem_schemas.xlsx differ
diff --git a/project/graphql/oscem_schemas.graphql b/project/graphql/oscem_schemas.graphql
index a6be4a8..121cd1f 100644
--- a/project/graphql/oscem_schemas.graphql
+++ b/project/graphql/oscem_schemas.graphql
@@ -14,7 +14,7 @@ type Acquisition
dosePerMovie: Float!
energyFilter: EnergyFilter
imageSize: ImageSize
- datetime: Datetime!
+ datetime: Any!
exposureTime: Float
cryogen: String
framesPerMovie: Integer
@@ -30,11 +30,15 @@ type Acquisition
gainrefFlipRotate: String
}
+type Any
+ {
+ }
+
type Author
{
firstName: String
workStatus: Boolean
- institution: [Institution]!
+ institution: Institution!
orcid: String!
country: String!
role: String
@@ -54,7 +58,7 @@ type BoundingBox2D
type ChromaticAberrationCorrector
{
used: Boolean!
- type: String!
+ instrumentType: String!
}
type EMDataset
@@ -131,7 +135,7 @@ type Ligand
type Molecule
{
nameMol: String!
- type: String!
+ molecularType: String!
molecularClass: MoleculeClassEnum!
sequence: String!
naturalSource: String!
@@ -143,7 +147,7 @@ type Molecule
type OverallMolecule
{
- type: String!
+ molecularType: String!
nameSample: String!
source: String!
molecularWeight: Float
@@ -161,7 +165,7 @@ type Person
type Phaseplate
{
used: Boolean!
- type: String!
+ instrumentType: String!
}
type QuantityValue
@@ -216,7 +220,7 @@ type Specimen
type SphericalAberrationCorrector
{
used: Boolean!
- type: String!
+ instrumentType: String!
}
type TiltAngle
diff --git a/project/jsonld/oscem_schemas.context.jsonld b/project/jsonld/oscem_schemas.context.jsonld
index f2ffddf..c96f0c2 100644
--- a/project/jsonld/oscem_schemas.context.jsonld
+++ b/project/jsonld/oscem_schemas.context.jsonld
@@ -1,7 +1,7 @@
{
"comments": {
"description": "Auto generated by LinkML jsonld context generator",
- "generation_date": "2024-08-22T23:22:33",
+ "generation_date": "2024-08-23T00:59:03",
"source": "oscem_schemas.yaml"
},
"@context": {
@@ -89,7 +89,7 @@
"@id": "https://w3id.org/osc-em/instrument/cs"
},
"datetime": {
- "@type": "xsd:dateTime",
+ "@type": "@id",
"@id": "acquisition:datetime"
},
"detector": {
@@ -219,8 +219,8 @@
"@type": "@id",
"@id": "instrument"
},
- "type": {
- "@id": "sample:/type"
+ "instrument_type": {
+ "@id": "acquisition:instrument_type"
},
"ligands": {
"@type": "@id",
@@ -261,6 +261,9 @@
},
"@id": "sample:/molecular_class"
},
+ "molecular_type": {
+ "@id": "sample:/molecular_type"
+ },
"molecular_weight": {
"@type": "xsd:float",
"@id": "sample:/molecular_weight"
@@ -442,6 +445,9 @@
"Acquisition": {
"@id": "acquisition:Acquisition"
},
+ "Any": {
+ "@id": "linkml:Any"
+ },
"Author": {
"@id": "https://w3id.org/osc-em/organizational/Author"
},
diff --git a/project/jsonld/oscem_schemas.jsonld b/project/jsonld/oscem_schemas.jsonld
index ace6a48..02a354c 100644
--- a/project/jsonld/oscem_schemas.jsonld
+++ b/project/jsonld/oscem_schemas.jsonld
@@ -676,7 +676,18 @@
"domain_of": [
"Acquisition"
],
- "range": "datetime",
+ "range": "Any",
+ "inlined": true,
+ "any_of": [
+ {
+ "range": "datetime",
+ "@type": "AnonymousSlotExpression"
+ },
+ {
+ "range": "date",
+ "@type": "AnonymousSlotExpression"
+ }
+ ],
"@type": "SlotDefinition"
},
{
@@ -803,8 +814,7 @@
"definition_uri": "https://w3id.org/osc-em/acquisitioninstrument_type",
"description": "Details of a given specialist instrument",
"from_schema": "https://w3id.org/osc-em/acquisition",
- "slot_uri": "https://w3id.org/osc-em/acquisitiontype",
- "alias": "type",
+ "slot_uri": "https://w3id.org/osc-em/acquisitioninstrument_type",
"owner": "ChromaticAberrationCorrector",
"domain_of": [
"Phaseplate",
@@ -1093,7 +1103,7 @@
{
"name": "institution",
"definition_uri": "https://w3id.org/osc-em/organizational/institution",
- "description": "institution",
+ "description": "author's institution",
"from_schema": "https://w3id.org/osc-em/organizational",
"mappings": [
"http://schema.org/Organization"
@@ -1104,7 +1114,6 @@
"Author"
],
"range": "Institution",
- "multivalued": true,
"inlined": true,
"@type": "SlotDefinition"
},
@@ -1285,8 +1294,7 @@
"description": "Description of the overall supramolecular type, i.e., a complex",
"title": "Type",
"from_schema": "https://w3id.org/osc-em/sample",
- "slot_uri": "https://w3id.org/osc-em/sample/type",
- "alias": "type",
+ "slot_uri": "https://w3id.org/osc-em/sample/molecular_type",
"owner": "Molecule",
"domain_of": [
"OverallMolecule",
@@ -2160,8 +2168,19 @@
],
"is_usage_slot": true,
"usage_slot_name": "datetime",
- "range": "datetime",
+ "range": "Any",
"required": true,
+ "inlined": true,
+ "any_of": [
+ {
+ "range": "datetime",
+ "@type": "AnonymousSlotExpression"
+ },
+ {
+ "range": "date",
+ "@type": "AnonymousSlotExpression"
+ }
+ ],
"@type": "SlotDefinition"
},
{
@@ -2266,8 +2285,8 @@
"from_schema": "https://w3id.org/osc-em/acquisition",
"is_a": "instrument_type",
"domain": "Phaseplate",
- "slot_uri": "https://w3id.org/osc-em/acquisitiontype",
- "alias": "type",
+ "slot_uri": "https://w3id.org/osc-em/acquisitioninstrument_type",
+ "alias": "instrument_type",
"owner": "Phaseplate",
"domain_of": [
"Phaseplate"
@@ -2304,8 +2323,8 @@
"from_schema": "https://w3id.org/osc-em/acquisition",
"is_a": "instrument_type",
"domain": "SphericalAberrationCorrector",
- "slot_uri": "https://w3id.org/osc-em/acquisitiontype",
- "alias": "type",
+ "slot_uri": "https://w3id.org/osc-em/acquisitioninstrument_type",
+ "alias": "instrument_type",
"owner": "SphericalAberrationCorrector",
"domain_of": [
"SphericalAberrationCorrector"
@@ -2342,8 +2361,8 @@
"from_schema": "https://w3id.org/osc-em/acquisition",
"is_a": "instrument_type",
"domain": "ChromaticAberrationCorrector",
- "slot_uri": "https://w3id.org/osc-em/acquisitiontype",
- "alias": "type",
+ "slot_uri": "https://w3id.org/osc-em/acquisitioninstrument_type",
+ "alias": "instrument_type",
"owner": "ChromaticAberrationCorrector",
"domain_of": [
"ChromaticAberrationCorrector"
@@ -2558,7 +2577,7 @@
{
"name": "Author_institution",
"definition_uri": "https://w3id.org/osc-em/organizational/institution",
- "description": "institution",
+ "description": "author's institution",
"from_schema": "https://w3id.org/osc-em/organizational",
"mappings": [
"http://schema.org/Organization"
@@ -2575,7 +2594,6 @@
"usage_slot_name": "institution",
"range": "Institution",
"required": true,
- "multivalued": true,
"inlined": true,
"@type": "SlotDefinition"
},
@@ -2627,8 +2645,8 @@
"from_schema": "https://w3id.org/osc-em/sample",
"is_a": "molecular_type",
"domain": "OverallMolecule",
- "slot_uri": "https://w3id.org/osc-em/sample/type",
- "alias": "type",
+ "slot_uri": "https://w3id.org/osc-em/sample/molecular_type",
+ "alias": "molecular_type",
"owner": "OverallMolecule",
"domain_of": [
"OverallMolecule"
@@ -2726,8 +2744,8 @@
"from_schema": "https://w3id.org/osc-em/sample",
"is_a": "molecular_type",
"domain": "Molecule",
- "slot_uri": "https://w3id.org/osc-em/sample/type",
- "alias": "type",
+ "slot_uri": "https://w3id.org/osc-em/sample/molecular_type",
+ "alias": "molecular_type",
"owner": "Molecule",
"domain_of": [
"Molecule"
@@ -3761,6 +3779,18 @@
"class_uri": "https://w3id.org/osc-em/tomography/TiltAngle",
"@type": "ClassDefinition"
},
+ {
+ "name": "Any",
+ "definition_uri": "https://w3id.org/osc-em/types/Any",
+ "description": "Any type, used as the base for type-narrowing.\n\nSee https://linkml.io/linkml/schemas/advanced.html",
+ "from_schema": "https://w3id.org/osc-em/types",
+ "mappings": [
+ "linkml:Any"
+ ],
+ "slot_usage": {},
+ "class_uri": "https://w3id.org/linkml/Any",
+ "@type": "ClassDefinition"
+ },
{
"name": "Range",
"definition_uri": "https://w3id.org/osc-em/types/Range",
@@ -3822,7 +3852,7 @@
"source_file": "oscem_schemas.yaml",
"source_file_date": "2024-08-22T23:20:17",
"source_file_size": 1401,
- "generation_date": "2024-08-22T23:22:33",
+ "generation_date": "2024-08-23T00:59:03",
"@type": "SchemaDefinition",
"@context": [
"project/jsonld/oscem_schemas.context.jsonld",
diff --git a/project/jsonschema/oscem_schemas.schema.json b/project/jsonschema/oscem_schemas.schema.json
index f3e679f..b2926a6 100644
--- a/project/jsonschema/oscem_schemas.schema.json
+++ b/project/jsonschema/oscem_schemas.schema.json
@@ -63,9 +63,18 @@
]
},
"datetime": {
- "description": "Time and date of the data acquisition",
- "format": "date-time",
- "type": "string"
+ "$ref": "#/$defs/Any",
+ "anyOf": [
+ {
+ "format": "date-time",
+ "type": "string"
+ },
+ {
+ "format": "date",
+ "type": "string"
+ }
+ ],
+ "description": "Time and date of the data acquisition"
},
"detector": {
"description": "Make and model of the detector used",
@@ -226,6 +235,18 @@
"title": "Acquisition",
"type": "object"
},
+ "Any": {
+ "additionalProperties": true,
+ "description": "Any type, used as the base for type-narrowing.\n\nSee https://linkml.io/linkml/schemas/advanced.html",
+ "title": "Any",
+ "type": [
+ "null",
+ "boolean",
+ "object",
+ "number",
+ "string"
+ ]
+ },
"Author": {
"additionalProperties": false,
"description": "",
@@ -247,11 +268,8 @@
]
},
"institution": {
- "description": "institution",
- "items": {
- "$ref": "#/$defs/Institution"
- },
- "type": "array"
+ "$ref": "#/$defs/Institution",
+ "description": "author's institution"
},
"name": {
"description": "name",
@@ -331,7 +349,7 @@
"additionalProperties": false,
"description": "",
"properties": {
- "type": {
+ "instrument_type": {
"description": "Details of a given specialist instrument",
"type": "string"
},
@@ -342,7 +360,7 @@
},
"required": [
"used",
- "type"
+ "instrument_type"
],
"title": "ChromaticAberrationCorrector",
"type": "object"
@@ -695,6 +713,10 @@
"$ref": "#/$defs/MoleculeClassEnum",
"description": "Class of the molecule"
},
+ "molecular_type": {
+ "description": "Description of the overall supramolecular type, i.e., a complex",
+ "type": "string"
+ },
"name_mol": {
"description": "Name of an individual molecule (often protein) in the sample",
"type": "string"
@@ -714,15 +736,11 @@
"taxonomy_id_source": {
"description": "Taxonomy ID of the natural source organism",
"type": "string"
- },
- "type": {
- "description": "Description of the overall supramolecular type, i.e., a complex",
- "type": "string"
}
},
"required": [
"name_mol",
- "type",
+ "molecular_type",
"molecular_class",
"sequence",
"natural_source",
@@ -759,6 +777,10 @@
"additionalProperties": false,
"description": "A class representing the overall molecule",
"properties": {
+ "molecular_type": {
+ "description": "Description of the overall supramolecular type, i.e., a complex",
+ "type": "string"
+ },
"molecular_weight": {
"description": "Molecular weight in Da",
"type": [
@@ -773,14 +795,10 @@
"source": {
"description": "Where the sample was taken from, i.e., natural host, recombinantly expressed, etc.",
"type": "string"
- },
- "type": {
- "description": "Description of the overall supramolecular type, i.e., a complex",
- "type": "string"
}
},
"required": [
- "type",
+ "molecular_type",
"name_sample",
"source"
],
@@ -835,7 +853,7 @@
"additionalProperties": false,
"description": "",
"properties": {
- "type": {
+ "instrument_type": {
"description": "Type of phaseplate",
"type": "string"
},
@@ -846,7 +864,7 @@
},
"required": [
"used",
- "type"
+ "instrument_type"
],
"title": "Phaseplate",
"type": "object"
@@ -1087,7 +1105,7 @@
"additionalProperties": false,
"description": "",
"properties": {
- "type": {
+ "instrument_type": {
"description": "Details of a given specialist instrument",
"type": "string"
},
@@ -1098,7 +1116,7 @@
},
"required": [
"used",
- "type"
+ "instrument_type"
],
"title": "SphericalAberrationCorrector",
"type": "object"
diff --git a/project/owl/oscem_schemas.owl.ttl b/project/owl/oscem_schemas.owl.ttl
index dc4fdb0..7979c31 100644
--- a/project/owl/oscem_schemas.owl.ttl
+++ b/project/owl/oscem_schemas.owl.ttl
@@ -17,44 +17,44 @@
linkml:ClassDefinition ;
rdfs:label "EMDataset" ;
rdfs:subClassOf [ a owl:Restriction ;
+ owl:allValuesFrom ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:minCardinality 1 ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
owl:allValuesFrom ;
owl:onProperty ],
[ a owl:Restriction ;
- owl:allValuesFrom ;
- owl:onProperty ],
+ owl:minCardinality 1 ;
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:allValuesFrom ;
- owl:onProperty ],
+ owl:maxCardinality 1 ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:minCardinality 1 ;
+ owl:onProperty ],
[ a owl:Restriction ;
owl:allValuesFrom ;
owl:onProperty ],
[ a owl:Restriction ;
- owl:minCardinality 1 ;
+ owl:allValuesFrom ;
owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
owl:onProperty ],
[ a owl:Restriction ;
- owl:minCardinality 1 ;
- owl:onProperty ],
- [ a owl:Restriction ;
- owl:minCardinality 1 ;
+ owl:maxCardinality 1 ;
owl:onProperty ],
[ a owl:Restriction ;
owl:minCardinality 1 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:allValuesFrom ;
+ owl:onProperty ],
[ a owl:Restriction ;
owl:minCardinality 1 ;
- owl:onProperty ],
- [ a owl:Restriction ;
- owl:allValuesFrom ;
- owl:onProperty ],
- [ a owl:Restriction ;
- owl:maxCardinality 1 ;
- owl:onProperty ] ;
+ owl:onProperty ] ;
skos:definition "OSC-EM Metadata for a dataset" ;
skos:inScheme .
@@ -99,260 +99,255 @@
linkml:ClassDefinition ;
rdfs:label "Acquisition" ;
rdfs:subClassOf [ a owl:Restriction ;
- owl:allValuesFrom ;
- owl:onProperty ],
+ owl:allValuesFrom linkml:String ;
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:minCardinality 0 ;
- owl:onProperty ],
+ owl:allValuesFrom linkml:Float ;
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:minCardinality 1 ;
+ owl:onProperty ],
[ a owl:Restriction ;
owl:minCardinality 0 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
owl:minCardinality 0 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:minCardinality 0 ;
- owl:onProperty ],
+ owl:allValuesFrom linkml:Integer ;
+ owl:onProperty ],
[ a owl:Restriction ;
owl:minCardinality 0 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:allValuesFrom linkml:String ;
owl:onProperty ],
[ a owl:Restriction ;
- owl:allValuesFrom linkml:Float ;
+ owl:minCardinality 0 ;
owl:onProperty ],
[ a owl:Restriction ;
- owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:minCardinality 0 ;
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:allValuesFrom ;
+ owl:minCardinality 0 ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:minCardinality 0 ;
owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:minCardinality 1 ;
+ owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:allValuesFrom ;
- owl:onProperty ],
+ owl:allValuesFrom linkml:Integer ;
+ owl:onProperty ],
[ a owl:Restriction ;
owl:allValuesFrom linkml:Integer ;
owl:onProperty ],
- [ a owl:Restriction ;
- owl:allValuesFrom ;
- owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:allValuesFrom linkml:datetime ;
- owl:onProperty ],
+ owl:minCardinality 0 ;
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:allValuesFrom linkml:Integer ;
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:minCardinality 0 ;
- owl:onProperty ],
+ owl:minCardinality 1 ;
+ owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
owl:minCardinality 0 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:minCardinality 0 ;
- owl:onProperty ],
+ owl:allValuesFrom ;
+ owl:onProperty ],
[ a owl:Restriction ;
owl:allValuesFrom linkml:String ;
owl:onProperty ],
[ a owl:Restriction ;
- owl:allValuesFrom linkml:String ;
- owl:onProperty ],
+ owl:minCardinality 0 ;
+ owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:minCardinality 1 ;
- owl:onProperty ],
+ owl:allValuesFrom linkml:Integer ;
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:allValuesFrom ;
- owl:onProperty ],
+ owl:maxCardinality 1 ;
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:minCardinality 0 ;
- owl:onProperty ],
+ owl:maxCardinality 1 ;
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:minCardinality 0 ;
- owl:onProperty ],
+ owl:allValuesFrom linkml:Float ;
+ owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:allValuesFrom ;
+ owl:maxCardinality 1 ;
owl:onProperty ],
- [ a owl:Restriction ;
- owl:allValuesFrom linkml:Integer ;
- owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ],
- [ a owl:Restriction ;
- owl:minCardinality 0 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
owl:minCardinality 1 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ],
- [ a owl:Restriction ;
- owl:minCardinality 0 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:allValuesFrom ;
+ owl:onProperty ],
[ a owl:Restriction ;
owl:allValuesFrom linkml:String ;
- owl:onProperty ],
- [ a owl:Restriction ;
- owl:allValuesFrom linkml:Integer ;
- owl:onProperty ],
- [ a owl:Restriction ;
- owl:minCardinality 0 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ],
- [ a owl:Restriction ;
- owl:allValuesFrom linkml:Float ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
owl:minCardinality 0 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:allValuesFrom linkml:String ;
- owl:onProperty ],
+ owl:allValuesFrom linkml:Float ;
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:allValuesFrom linkml:Integer ;
- owl:onProperty ],
+ owl:minCardinality 0 ;
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:allValuesFrom linkml:String ;
- owl:onProperty ],
+ owl:allValuesFrom ;
+ owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:minCardinality 0 ;
- owl:onProperty ],
+ owl:allValuesFrom ;
+ owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:allValuesFrom linkml:String ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:minCardinality 1 ;
+ owl:onProperty ],
[ a owl:Restriction ;
owl:minCardinality 0 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ],
- [ a owl:Restriction ;
- owl:allValuesFrom linkml:Float ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
owl:minCardinality 0 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
owl:minCardinality 0 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:minCardinality 0 ;
- owl:onProperty ],
+ owl:allValuesFrom ;
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:minCardinality 1 ;
- owl:onProperty ],
+ owl:maxCardinality 1 ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:allValuesFrom linkml:String ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:minCardinality 0 ;
+ owl:onProperty ],
[ a owl:Restriction ;
owl:allValuesFrom linkml:String ;
owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:allValuesFrom ;
+ owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:maxCardinality 1 ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:allValuesFrom ;
+ owl:onProperty ],
[ a owl:Restriction ;
owl:minCardinality 0 ;
- owl:onProperty ],
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:allValuesFrom ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:allValuesFrom [ owl:intersectionOf ( [ a rdfs:Datatype ;
+ owl:unionOf ( linkml:datetime linkml:Date ) ] ) ] ;
+ owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:allValuesFrom ;
- owl:onProperty ],
+ owl:maxCardinality 1 ;
+ owl:onProperty ],
[ a owl:Restriction ;
owl:minCardinality 0 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
owl:allValuesFrom ;
owl:onProperty ],
[ a owl:Restriction ;
- owl:allValuesFrom linkml:Integer ;
- owl:onProperty ],
+ owl:maxCardinality 1 ;
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:allValuesFrom linkml:Integer ;
- owl:onProperty ],
+ owl:minCardinality 0 ;
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:minCardinality 1 ;
- owl:onProperty ],
+ owl:minCardinality 0 ;
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:allValuesFrom linkml:String ;
- owl:onProperty ],
+ owl:allValuesFrom linkml:Integer ;
+ owl:onProperty ],
[ a owl:Restriction ;
owl:minCardinality 0 ;
owl:onProperty ],
[ a owl:Restriction ;
- owl:allValuesFrom linkml:Float ;
- owl:onProperty ],
- [ a owl:Restriction ;
- owl:minCardinality 1 ;
- owl:onProperty ],
- [ a owl:Restriction ;
- owl:maxCardinality 1 ;
- owl:onProperty ],
- [ a owl:Restriction ;
- owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:minCardinality 0 ;
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:allValuesFrom ;
- owl:onProperty ] ;
+ owl:allValuesFrom linkml:Float ;
+ owl:onProperty ] ;
skos:inScheme .
a owl:Class,
linkml:ClassDefinition ;
rdfs:label "ChromaticAberrationCorrector" ;
rdfs:subClassOf [ a owl:Restriction ;
- owl:allValuesFrom linkml:String ;
- owl:onProperty ],
- [ a owl:Restriction ;
- owl:minCardinality 1 ;
- owl:onProperty ],
- [ a owl:Restriction ;
owl:minCardinality 1 ;
owl:onProperty ],
[ a owl:Restriction ;
@@ -363,13 +358,28 @@
owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ] ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:minCardinality 1 ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:allValuesFrom linkml:String ;
+ owl:onProperty ] ;
skos:inScheme .
a owl:Class,
linkml:ClassDefinition ;
rdfs:label "EnergyFilter" ;
rdfs:subClassOf [ a owl:Restriction ;
+ owl:allValuesFrom linkml:String ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:minCardinality 1 ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:allValuesFrom linkml:Boolean ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
owl:allValuesFrom linkml:Integer ;
owl:onProperty ],
[ a owl:Restriction ;
@@ -377,25 +387,16 @@
owl:onProperty ],
[ a owl:Restriction ;
owl:minCardinality 1 ;
- owl:onProperty ],
- [ a owl:Restriction ;
- owl:maxCardinality 1 ;
- owl:onProperty ],
- [ a owl:Restriction ;
- owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
owl:minCardinality 0 ;
owl:onProperty ],
[ a owl:Restriction ;
- owl:allValuesFrom linkml:String ;
+ owl:maxCardinality 1 ;
owl:onProperty ],
[ a owl:Restriction ;
- owl:allValuesFrom linkml:Boolean ;
- owl:onProperty ],
- [ a owl:Restriction ;
- owl:minCardinality 1 ;
- owl:onProperty ] ;
+ owl:maxCardinality 1 ;
+ owl:onProperty ] ;
skos:inScheme .
a owl:Class,
@@ -403,21 +404,21 @@
rdfs:label "Phaseplate" ;
rdfs:subClassOf [ a owl:Restriction ;
owl:minCardinality 1 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
owl:allValuesFrom linkml:Boolean ;
owl:onProperty ],
[ a owl:Restriction ;
- owl:maxCardinality 1 ;
+ owl:allValuesFrom linkml:String ;
owl:onProperty ],
[ a owl:Restriction ;
- owl:maxCardinality 1 ;
+ owl:minCardinality 1 ;
owl:onProperty ],
[ a owl:Restriction ;
- owl:allValuesFrom linkml:String ;
- owl:onProperty ],
+ owl:maxCardinality 1 ;
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:minCardinality 1 ;
+ owl:maxCardinality 1 ;
owl:onProperty ] ;
skos:inScheme .
@@ -426,30 +427,30 @@
rdfs:label "SpecialistOptics" ;
rdfs:subClassOf [ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ],
- [ a owl:Restriction ;
- owl:allValuesFrom ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
owl:allValuesFrom ;
owl:onProperty ],
- [ a owl:Restriction ;
- owl:allValuesFrom ;
- owl:onProperty ],
[ a owl:Restriction ;
owl:maxCardinality 1 ;
- owl:onProperty ],
+ owl:onProperty ],
[ a owl:Restriction ;
- owl:minCardinality 0 ;
+ owl:allValuesFrom ;
owl:onProperty ],
[ a owl:Restriction ;
owl:minCardinality 0 ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:maxCardinality 1 ;
+ owl:onProperty ],
+ [ a owl:Restriction ;
+ owl:allValuesFrom ;
owl:onProperty ],
[ a owl:Restriction ;
owl:minCardinality 0 ;
- owl:onProperty