PREFIX ontocrystal: <http://www.theworldavatar.com/kg/ontocrystal/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

ontocrystal:MeasureMatrix a rdfs:Class ;
  rdfs:label "Measure Matrix" ;
  rdfs:comment "Represents an NxM matrix with unit of measurement. In the context of crystallography matrices can be used for transformations and symmetry operations." .

ontocrystal:hasMatrixComponent a rdf:Property ;
  rdfs:label "has Matrix Component" ;
  rdfs:comment "Associates a Matrix with its MatrixComponents. Matrix has multiple components." ;
  rdfs:domain ontocrystal:MeasureMatrix ;
  rdfs:range ontocrystal:MatrixComponent .

ontocrystal:hasUnit a rdf:Property ;
  rdfs:label "has Unit" ;
  rdfs:comment "Indicates that a Vector or Matrix or their components have specific unit of measure, defined in Ontology of Units of Measure (OM-2). Each Component may have individual Unit value. If both Vector and its Component have Units, the latter has priority. Same rules apply to Matrix Components." ;
  rdfs:range <http://www.ontology-of-units-of-measure.org/resource/om-2/Unit> .

ontocrystal:UnitCellLatticeVector a rdfs:Class ;
  rdfs:label "Unit Cell Lattice Vector" ;
  rdfs:comment "A special case of vector: 3 component with uncertainty and with label: \"a\", \"b\", or \"c\"." ;
  rdfs:subClassOf ontocrystal:MeasureVector .

ontocrystal:hasVectorLabel a rdf:Property ;
  rdfs:label "has Vector Label" ;
  rdfs:comment "The Vector label in a VectorSet. In crystallography the label values for the unit cell vectors are one of \"a\", \"b\", \"c\"." ;
  rdfs:domain ontocrystal:UnitCellLatticeVector ;
  rdfs:range xsd:string .

ontocrystal:hasVectorComponent a rdf:Property ;
  rdfs:label "has Vector Component" ;
  rdfs:comment "Associates the Vector with its VectorComponents." ;
  rdfs:domain ontocrystal:MeasureVector ;
  rdfs:range ontocrystal:VectorComponent .

ontocrystal:AtomCartesianPosition a rdfs:Class ;
  rdfs:label "Atom Cartesian Position" ;
  rdfs:comment "The atom-site coordinates specified according to a set of orthogonal Cartesian axes related to the cell axes. Corresponds to _atom_site_fract_ in CIF file." ;
  rdfs:subClassOf ontocrystal:MeasureVector .

ontocrystal:AtomSite a rdfs:Class ;
  rdfs:label "Atom Site" ;
  rdfs:comment "Information of an in individual atom within a crystallographic unit cell. It stores the 3D coordinates, atom type, and possibly other properties of the atom." .

ontocrystal:hasElement a rdf:Property ;
  rdfs:label "has Element" ;
  rdfs:comment "The specific atom site in the crystal lattice is occupied by a particular type of atom or chemical species." ;
  rdfs:domain ontocrystal:AtomSite ;
  rdfs:range <http://www.theworldavatar.com/ontology/ontospecies/OntoSpecies.owl#Species> .

ontocrystal:hasCartesianPosition a rdf:Property ;
  rdfs:label "has Cartesian Position" ;
  rdfs:comment "Similarly, relates an AtomSite with a Vector, but in this case, the position is given in fractional coordinates." ;
  rdfs:domain ontocrystal:AtomSite ;
  rdfs:range ontocrystal:PositionVector .

ontocrystal:hasOccupancy a rdf:Property ;
  rdfs:label "has Atom Site Label" ;
  rdfs:comment "Occupancy of AtomSite in a crystal unit cell." ;
  rdfs:domain ontocrystal:AtomSite ;
  rdfs:range xsd:decimal .

ontocrystal:hasAtomSiteLabel a rdf:Property ;
  rdfs:label "has Atom Site Label" ;
  rdfs:comment "Links the AtomSite in a crystal to its unique identifier, as it is defined in CIF file. A unit cell may contain several atoms corresponding to the same atom site label due to symmetry of the unit cell." ;
  rdfs:domain ontocrystal:AtomSite ;
  rdfs:range xsd:string .

ontocrystal:hasFractionalPosition a rdf:Property ;
  rdfs:label "has Fractional Position" ;
  rdfs:comment "Relates an AtomSite to a Vector representing its position in Cartesian coordinates." ;
  rdfs:domain ontocrystal:AtomSite ;
  rdfs:range ontocrystal:PositionVector .

ontocrystal:CoordinateTransformation a rdfs:Class ;
  rdfs:label "Coordinate Transformation" ;
  rdfs:comment "A class to store all spatial coordinate transformations between fractional and cartesian coordinate systems." .

ontocrystal:hasTransformationMatrixToFractional a rdf:Property ;
  rdfs:label "has Transformation Matrix To Fractional" ;
  rdfs:comment "Connects a CoordinateTransformation to a Matrix representing the transformation from Cartesian coordinates back to the crystal's fractional coordinates." ;
  rdfs:domain ontocrystal:CoordinateTransformation ;
  rdfs:range ontocrystal:TransformationMatrix .

ontocrystal:hasTransformationMatrixToCartesian a rdf:Property ;
  rdfs:label "has Transformation Matrix To Cartesian" ;
  rdfs:comment "Connects a CoordinateTransformation to a Matrix that describes how to transform from the crystal's fractional coordinate to Cartesian." ;
  rdfs:domain ontocrystal:CoordinateTransformation ;
  rdfs:range ontocrystal:TransformationMatrix .

ontocrystal:hasTransformationVectorToFractional a rdf:Property ;
  rdfs:label "has Transformation Vector To Fractional" ;
  rdfs:comment "Connects a CoordinateTransformation to a Vector that indicates the coordinate shift for transformation to fractional coordinates of the crystal." ;
  rdfs:domain ontocrystal:CoordinateTransformation ;
  rdfs:range ontocrystal:TransformationVector .

ontocrystal:hasTransformationVectorToCartesian a rdf:Property ;
  rdfs:label "has Transformation Vector To Cartesian" ;
  rdfs:comment "Connects a CoordinateTransformation with a Vector detailing the transformation to Cartesian coordinates, the translation." ;
  rdfs:domain ontocrystal:CoordinateTransformation ;
  rdfs:range ontocrystal:TransformationVector .

ontocrystal:AtomFractionalPosition a rdfs:Class ;
  rdfs:label "Atom Fractional Position" ;
  rdfs:comment "Atom-site coordinates as fractions of the CellLengths values. Corresponds to _atom_site_fract_ in CIF file." ;
  rdfs:subClassOf ontocrystal:MeasureVector .

ontocrystal:TiledStructure a rdfs:Class ;
  rdfs:label "Tiled Structure" ;
  rdfs:comment "Class contains all information about tile information of the crystal." .

ontocrystal:hasTileNumber a rdf:Property ;
  rdfs:label "has Tile Number" ;
  rdfs:comment "Number of tiles in a crystal unit cell." ;
  rdfs:domain ontocrystal:TiledStructure ;
  rdfs:range ontocrystal:TileNumber .

ontocrystal:hasTransitivity a rdf:Property ;
  rdfs:label "has Transitivity" ;
  rdfs:comment "Link between the TiledStructure and the transitivity vector." ;
  rdfs:domain ontocrystal:TiledStructure ;
  rdfs:range ontocrystal:Transitivity .

ontocrystal:hasTileSignature a rdf:Property ;
  rdfs:label "has Tile Signature" ;
  rdfs:comment "Natural tiling signature. A string of the format 'k1[l1^m1.n1^p1...]+k2[l2^m2...]+...' Each bracket [...] represents a tile, k is the multiplicity of the tile. Values m and p are the numbers of polygons with l and n edges, respectively." ;
  rdfs:range xsd:string .

ontocrystal:hasTile a rdf:Property ;
  rdfs:label "has Tile" ;
  rdfs:comment "Links the TiledStructure to the Tile entity." ;
  rdfs:domain ontocrystal:TiledStructure ;
  rdfs:range ontocrystal:Tile .

ontocrystal:Author a rdfs:Class ;
  rdfs:label "Author" ;
  rdfs:comment "The article author. Derived from foaf:Person class." .

<http://xmlns.com/foaf/0.1/family_name> a rdf:Property ;
  rdfs:domain ontocrystal:Author ;
  rdfs:range xsd:string .

<http://xmlns.com/foaf/0.1/firstName> a rdf:Property ;
  rdfs:domain ontocrystal:Author ;
  rdfs:range xsd:string .

ontocrystal:VectorComponent a rdfs:Class ;
  rdfs:label "Vector Component" ;
  rdfs:comment "Individual components (i.e., x, y, z) of a vector." .

ontocrystal:hasComponentUncertainty a rdf:Property ;
  rdfs:label "has Component Value" ;
  rdfs:comment "Connects a VectorComponent or MatrixComponent to its value, which is a literal (a specific value like a number or a string). This property provides the actual numerical (or string) value of a Component of a Vector or a Matrix." ;
  rdfs:range <https://w3id.org/linkml/Any> .

ontocrystal:hasComponentIndex a rdf:Property ;
  rdfs:label "has Vector Index" ;
  rdfs:comment "This property specifies the index of the VectorComponent in the Vector. This property may be omitted if the hasLabel property is specified." ;
  rdfs:domain ontocrystal:VectorComponent ;
  rdfs:range xsd:integer .

ontocrystal:hasComponentValue a rdf:Property ;
  rdfs:label "has Component Value" ;
  rdfs:comment "Connects a VectorComponent or MatrixComponent to its value, which is a literal (a specific value like a number or a string). This property provides the actual numerical (or string) value of a Component of a Vector or a Matrix." ;
  rdfs:range <https://w3id.org/linkml/Any> .

ontocrystal:hasComponentLabel a rdf:Property ;
  rdfs:label "has Component Label" ;
  rdfs:comment "A unique VectorComponent string idendifier (e.g. \"x\" in vector component \"r_x\"). Optional parameter: it can be omitter if hasComponentIndex is specified. Similarly, it can be an identifyer for MatrixComponent." ;
  rdfs:range xsd:string .

ontocrystal:AtomicStructure a rdfs:Class ;
  rdfs:label "Atomic Structure" ;
  rdfs:comment "A class to store atomic positions of all atoms in the crystal." .

ontocrystal:hasAtomSite a rdf:Property ;
  rdfs:label "has Atom Site" ;
  rdfs:comment "Connects AtomicStructure with individual AtomSites." ;
  rdfs:domain ontocrystal:AtomicStructure ;
  rdfs:range ontocrystal:AtomSite .

ontocrystal:TileVertex a rdfs:Class ;
  rdfs:label "Tile Vertex" ;
  rdfs:comment "Position of the vertex in the unit cell together with its id." .

ontocrystal:hasPosition a rdf:Property ;
  rdfs:label "has Position" ;
  rdfs:comment "Cartesian coordinates of the vertex in the tile face. Collection of all vertices can reproduce the entire tile face in 3D." ;
  rdfs:domain ontocrystal:TileVertex ;
  rdfs:range ontocrystal:MeasureVector .

ontocrystal:PlotXY a rdfs:Class ;
  rdfs:label "PlotXY" ;
  rdfs:comment "A 2D scatter plot to represent data." .

ontocrystal:hasAbscissaData a rdf:Property ;
  rdfs:label "has Abscissa Data" ;
  rdfs:comment "The X axis of the xRD spectrum. In crystallography the axis is 2*theta, and measured in degrees." ;
  rdfs:domain ontocrystal:PlotXY ;
  rdfs:range ontocrystal:AbscissaData .

ontocrystal:hasOrdinateData a rdf:Property ;
  rdfs:label "has Ordinate Data" ;
  rdfs:comment "The Y axis of the XRD spectrum. In crystallography the axis is in arbitrary units. Here in percent of the highest peak (range 0 to 100)." ;
  rdfs:domain ontocrystal:PlotXY ;
  rdfs:range ontocrystal:OrdinateData .

ontocrystal:CharacteristicPeak a rdfs:Class ;
  rdfs:label "Characteristic Peak" ;
  rdfs:comment "A continuous spectrum can be approximated by a set of characteristic peaks, that approximate the spectrum." .

ontocrystal:hasPeakWidth a rdf:Property ;
  rdfs:label "has Peak Width" ;
  rdfs:comment "A floaring point number, the parameter of the" ;
  rdfs:domain ontocrystal:CharacteristicPeak ;
  rdfs:range xsd:decimal .

ontocrystal:hasRelativeIntensity a rdf:Property ;
  rdfs:label "has Relative Intensity" ;
  rdfs:comment "A floating point number between 0 and 100, the height of the peak in range 0 to 100. It is measured in percent of the highest peak in the spectrum." ;
  rdfs:domain ontocrystal:CharacteristicPeak ;
  rdfs:range xsd:decimal .

ontocrystal:isSimulated a rdf:Property ;
  rdfs:label "is Simulated" ;
  rdfs:comment "An flag whether the peak position was computed from atomic structure (True), or from fitting experimental data." ;
  rdfs:domain ontocrystal:CharacteristicPeak ;
  rdfs:range xsd:boolean .

ontocrystal:hasMillerIndices a rdf:Property ;
  rdfs:label "has Miller Indices" ;
  rdfs:comment "Direction of reflection plane, that generated the characteristic peak. Optional parameter, may not be avaiable for experimentally measured spectrum." ;
  rdfs:domain ontocrystal:CharacteristicPeak ;
  rdfs:range ontocrystal:MillerIndices .

ontocrystal:hasTwoThetaPosition a rdf:Property ;
  rdfs:label "has Two Theta Position" ;
  rdfs:comment "Position of peak, in crystallography the x axis is measured in 2*theta." ;
  rdfs:domain ontocrystal:CharacteristicPeak ;
  rdfs:range xsd:decimal .

ontocrystal:PositionVector a rdfs:Class ;
  rdfs:label "Position Vector" ;
  rdfs:comment "AtomPosition is a subclass of VectorWithUncertainty that store the position of atom. The labels are usually \"x\", \"y\", \"z\". The units depend on the type of position (fractional or cartesian)." ;
  rdfs:subClassOf ontocrystal:MeasureVector .

ontocrystal:XRDSpectrum a rdfs:Class ;
  rdfs:label "XRD Spectrum" ;
  rdfs:comment "Information about XRD spectrum of the crystal." .

ontocrystal:hasCharacteristicPeak a rdf:Property ;
  rdfs:label "has Characteristic Peak" ;
  rdfs:comment "Property to link the XRD spectrum and with each of its characteristic peaks" ;
  rdfs:domain ontocrystal:XRDSpectrum ;
  rdfs:range ontocrystal:CharacteristicPeak .

ontocrystal:hasPlotData a rdf:Property ;
  rdfs:label "has Plot" ;
  rdfs:comment "Property to link the XRD spectrum and its 2D plot." ;
  rdfs:domain ontocrystal:XRDSpectrum ;
  rdfs:range ontocrystal:PlotXY .

ontocrystal:AbscissaData a rdfs:Class ;
  rdfs:label "Abscissa Data" ;
  rdfs:comment "A set of data points to be used as Abscissa of a plot. Units of measurement correspond to the quantity on the axis." ;
  rdfs:subClassOf ontocrystal:MeasureVector .

ontocrystal:TransformationVector a rdfs:Class ;
  rdfs:label "Transformation Vector" ;
  rdfs:comment "Coordinate transformation vector from relative to absolute coordinates and vice versa." ;
  rdfs:subClassOf ontocrystal:VectorWithUncertainty .

ontocrystal:Tile a rdfs:Class ;
  rdfs:label "Tile" ;
  rdfs:comment "Class to store information about individual tile" .

ontocrystal:hasTileCode a rdf:Property ;
  rdfs:label "has Tile Code" ;
  rdfs:comment "The signature of a single tile. Different tiles may have the same TileCode." ;
  rdfs:domain ontocrystal:Tile ;
  rdfs:range xsd:string .

ontocrystal:hasNumberOfEdges a rdf:Property ;
  rdfs:label "has Number Of Edges" ;
  rdfs:comment "Total number of edges in given tile, or in given tile face." ;
  rdfs:range xsd:integer .

ontocrystal:hasNumberOfVertices a rdf:Property ;
  rdfs:label "has Number Of Vectices" ;
  rdfs:comment "Total number of vertices in given tile." ;
  rdfs:domain ontocrystal:Tile ;
  rdfs:range xsd:integer .

ontocrystal:hasNumberOfFaces a rdf:Property ;
  rdfs:label "has Number Of Faces" ;
  rdfs:comment "Total number of faces in given tile." ;
  rdfs:domain ontocrystal:Tile ;
  rdfs:range xsd:integer .

ontocrystal:hasTileVertex a rdf:Property ;
  rdfs:label "has Tile Vertex" ;
  rdfs:comment "Information about all vertices of the given Tile Face. In cartesian coordinates." ;
  rdfs:domain ontocrystal:Tile ;
  rdfs:range ontocrystal:TileVertex .

ontocrystal:hasTileFaceNumber a rdf:Property ;
  rdfs:label "has Tile Face Number" ;
  rdfs:comment "Links the tile and the number of faces in that tile." ;
  rdfs:domain ontocrystal:Tile ;
  rdfs:range ontocrystal:TileFaceNumber .

ontocrystal:hasTileFace a rdf:Property ;
  rdfs:label "has Tile Face" ;
  rdfs:comment "Links the Tile to its Faces." ;
  rdfs:domain ontocrystal:Tile ;
  rdfs:range ontocrystal:TileFace .

ontocrystal:UnitCellVectorSet a rdfs:Class ;
  rdfs:label "Unit Cell Vector Set" ;
  rdfs:comment "A set of vectors that define the unit cell in the real space (Cartesian coordinates)." .

ontocrystal:hasUnitCellVector a rdf:Property ;
  rdfs:label "has Vector" ;
  rdfs:comment "Connect a UnitCellVectorSet or ReciprocalUnitCellVectorSet with individual Vectors that make up the set, in the real (Cartesian) space of the unit cell." ;
  rdfs:domain ontocrystal:UnitCellVectorSet ;
  rdfs:range ontocrystal:UnitCellLatticeVector .

ontocrystal:UnitCellAngles a rdfs:Class ;
  rdfs:label "Unit Cell Angles" ;
  rdfs:comment "In crystallography a part of unit cell parameters. Three values \"alpha\", \"beta\", \"gamma\" for the angles between the unit cell edges." ;
  rdfs:subClassOf ontocrystal:MeasureVector .

ontocrystal:TileFace a rdfs:Class ;
  rdfs:label "Tile Face" ;
  rdfs:comment "Class to describe tile face." .

ontocrystal:hasFaceCode a rdf:Property ;
  rdfs:label "has Face Code" ;
  rdfs:comment "The face code of the tile face." ;
  rdfs:domain ontocrystal:TileFace ;
  rdfs:range xsd:string .

ontocrystal:TileNumber a rdfs:Class ;
  rdfs:label "Tile Number" ;
  rdfs:comment "Number of tiles of given tipe in a unit cell" .

ontocrystal:hasValue a rdf:Property ;
  rdfs:label "has Value" ;
  rdfs:comment "An integer value, the number of Tiles or TileFaces, respectively." ;
  rdfs:range xsd:integer .

ontocrystal:isNumberOfTiles a rdf:Property ;
  rdfs:label "is Number Of Tiles" ;
  rdfs:comment "This class stores the numerical value for the number of tiles in the unit cell." ;
  rdfs:domain ontocrystal:TileNumber ;
  rdfs:range ontocrystal:Tile .

ontocrystal:Transitivity a rdfs:Class ;
  rdfs:label "Transitivity" ;
  rdfs:comment "A combination of four values: p - number of kinds of vertices, q - number of kinds of edges, r - number of kinds of edges, s - number of kinds of faces. For more detailes doi:10.1007/s004540010035" ;
  rdfs:subClassOf ontocrystal:MeasureVector .

ontocrystal:MeasureWithUncertainty a rdfs:Class ;
  rdfs:label "Measure With Uncertainty" ;
  rdfs:comment "An object to store the numerucal value with units and uncertainty." ;
  rdfs:subClassOf <http://www.ontology-of-units-of-measure.org/resource/om-2/Measure> .

ontocrystal:hasUncertaintyValue a rdf:Property ;
  rdfs:label "has Uncertainty Value" ;
  rdfs:comment "The value of uncertainty of a Measure. Both value and uncertainty use the same unit of measurement." ;
  rdfs:domain ontocrystal:MeasureWithUncertainty ;
  rdfs:range xsd:string .

ontocrystal:MatrixWithUncertainty a rdfs:Class ;
  rdfs:label "Matrix With Uncertainty" ;
  rdfs:comment "A class to store a 2D array data with uncertainties." ;
  rdfs:subClassOf ontocrystal:MeasureMatrix .

ontocrystal:TileFaceNumber a rdfs:Class ;
  rdfs:label "Tile Face Number" ;
  rdfs:comment "Number of faces in a tile" .

ontocrystal:isNumberOfTileFaces a rdf:Property ;
  rdfs:label "is Number Of Tile Faces" ;
  rdfs:comment "The number of faces in the Tile Face." ;
  rdfs:domain ontocrystal:TileFaceNumber ;
  rdfs:range ontocrystal:TileFace .

ontocrystal:MatrixComponent a rdfs:Class ;
  rdfs:label "Matrix Component" ;
  rdfs:comment "Individual component of the Matrix." .

ontocrystal:hasRowIndex a rdf:Property ;
  rdfs:label "has Row Index" ;
  rdfs:comment "This data property specifies of a MatrixComponent. It specifies in which row of the Matrix the Component is located. This property may be omitted if the hasLabel property is specified." ;
  rdfs:domain ontocrystal:MatrixComponent ;
  rdfs:range xsd:integer .

ontocrystal:hasColumnIndex a rdf:Property ;
  rdfs:label "has Column Index" ;
  rdfs:comment "This data property of a MatrixComponent. It specifies in which column of a matrix this specific component (or element) is found. This property may be omitted if the hasLabel property is specified." ;
  rdfs:domain ontocrystal:MatrixComponent ;
  rdfs:range xsd:integer .

ontocrystal:VectorWithUncertainty a rdfs:Class ;
  rdfs:label "Vector With Uncertainty" ;
  rdfs:comment "A subclass of Vector class, with information about the uncertainty values. Consists of the main Vector with the values and its Uncertainty Vector." ;
  rdfs:subClassOf ontocrystal:MeasureVector .

ontocrystal:Citation a rdfs:Class ;
  rdfs:label "Citation" ;
  rdfs:comment "Citation (article/book/proceeding/etc)" .

<http://purl.org/ontology/bibo/doi> a rdf:Property ;
  rdfs:domain ontocrystal:Citation ;
  rdfs:range xsd:string .

ontocrystal:hasAuthorIndex a rdf:Property ;
  rdfs:label "has Author Index" ;
  rdfs:comment "The link between the publication and the Author." ;
  rdfs:domain ontocrystal:Citation ;
  rdfs:range ontocrystal:AuthorIndex .

ontocrystal:hasAuthor a rdf:Property ;
  rdfs:label "has Author" ;
  rdfs:comment "Links the publication (Citation) and the author. This replaces the standard bibo:author_list" ;
  rdfs:domain ontocrystal:Citation ;
  rdfs:range ontocrystal:Author .

ontocrystal:TransformationMatrix a rdfs:Class ;
  rdfs:label "Transformation Matrix" ;
  rdfs:comment "Coordinate transformation matrix from relative to absolute coordinates and vice versa." ;
  rdfs:subClassOf ontocrystal:MatrixWithUncertainty .

ontocrystal:AuthorIndex a rdfs:Class ;
  rdfs:label "Author Index" ;
  rdfs:comment "The position of the author in the list of authors." .

ontocrystal:isAuthorIndexOf a rdf:Property ;
  rdfs:label "is Author Index Of" ;
  rdfs:comment "The link between the publication and the Author." ;
  rdfs:domain ontocrystal:AuthorIndex ;
  rdfs:range ontocrystal:Author .

ontocrystal:UnitCellLengths a rdfs:Class ;
  rdfs:label "Unit Cell Lengths" ;
  rdfs:comment "In crystallography a part of unit cell parameters. Three values \"a\", \"b\", \"c\" for the lengths of the edges of the unit cell." ;
  rdfs:subClassOf ontocrystal:MeasureVector .

ontocrystal:CrystalInformation a rdfs:Class ;
  rdfs:label "Crystal Information" ;
  rdfs:comment "CrystalInformation is a subset of CIF file, contains data and properties of a crystaline matter." .

ontocrystal:hasXRDSpectrum a rdf:Property ;
  rdfs:label "has XRD Spectrum" ;
  rdfs:comment "The raltion property between a material and the XRDSpectrum of that material." ;
  rdfs:domain ontocrystal:CrystalInformation ;
  rdfs:range ontocrystal:XRDSpectrum .

ontocrystal:hasUnitCell a rdf:Property ;
  rdfs:label "has Unit Cell" ;
  rdfs:comment "Relates a CIF (Crystallographic Information File) to a specific UnitCell class." ;
  rdfs:domain ontocrystal:CrystalInformation ;
  rdfs:range ontocrystal:UnitCell .

ontocrystal:hasTiledStructure a rdf:Property ;
  rdfs:label "has Tiled Structure" ;
  rdfs:comment "Connect the CrystalInformation class to its TileStrcuture." ;
  rdfs:domain ontocrystal:CrystalInformation ;
  rdfs:range ontocrystal:TiledStructure .

ontocrystal:hasAtomicStructure a rdf:Property ;
  rdfs:label "has Atomic Structure" ;
  rdfs:comment "Connects CrystalInformation class with its AtomicStructure, which is information about all containing atoms." ;
  rdfs:domain ontocrystal:CrystalInformation ;
  rdfs:range ontocrystal:AtomicStructure .

ontocrystal:hasCoordinateTransformation a rdf:Property ;
  rdfs:label "has Coordinate Transformation" ;
  rdfs:comment "Links a CIF to the collection of CoordinateTransformation." ;
  rdfs:domain ontocrystal:CrystalInformation ;
  rdfs:range ontocrystal:CoordinateTransformation .

ontocrystal:UnitCellVolume a rdfs:Class ;
  rdfs:label "Unit Cell Volume" ;
  rdfs:comment "Represents the volume of the unit cell of a crystal. Contains value and units of measurement." ;
  rdfs:subClassOf ontocrystal:MeasureWithUncertainty .

<http://www.ontology-of-units-of-measure.org/resource/om-2/Unit> a rdfs:Class ;
  rdfs:label "Unit" ;
  rdfs:comment "Unit of measurement for a Measure class. Intities of this class are defined in OM-2." .

ontocrystal:rdfs:label a rdf:Property ;
  rdfs:label "RDFS label" ;
  rdfs:comment "A relation used in OM-2 ontology to store the human readable names of Units" ;
  rdfs:domain <http://www.ontology-of-units-of-measure.org/resource/om-2/Unit> ;
  rdfs:range xsd:string .

<http://www.theworldavatar.com/ontology/ontospecies/OntoSpecies.owl#Species> a rdfs:Class ;
  rdfs:label "Species" ;
  rdfs:comment "External class for chemical species." .

ontocrystal:MillerIndices a rdfs:Class ;
  rdfs:label "Miller Indices" ;
  rdfs:comment "A set of 3 numbers (h,k,l). In crystallography it represents a direction with respect to the unit cell axes directions." ;
  rdfs:subClassOf ontocrystal:MeasureVector .

ontocrystal:UnitCell a rdfs:Class ;
  rdfs:label "Unit Cell" ;
  rdfs:comment "A class to store all information related to the crystal unit cell." .

ontocrystal:hasUnitCellVectorSet a rdf:Property ;
  rdfs:label "has Unit Cell Vector Set" ;
  rdfs:comment "Connects a UnitCell to a set of vectors (UnitCellVectorSet) that define its axes in real space." ;
  rdfs:domain ontocrystal:UnitCell ;
  rdfs:range ontocrystal:UnitCellVectorSet .

ontocrystal:hasUnitCellAngles a rdf:Property ;
  rdfs:label "has Unit Cell Angles" ;
  rdfs:comment "Connects a UnitCell with a Vector that represents the angles between crystal axes. The vector components typically have labels alpha, beta, and have Unit of measure (usually degree)." ;
  rdfs:domain ontocrystal:UnitCell ;
  rdfs:range ontocrystal:UnitCellAngles .

ontocrystal:hasReciprocalUnitCellAngles a rdf:Property ;
  rdfs:label "has Reciprocal Unit Cell Angles" ;
  rdfs:comment "Connects a UnitCell to a Vector representing the angles between the axes in its reciprocal space. The reciprocal space is a mathematical construct used in crystallography and solid-state physics. The Vector labels are typically alpha*, beta*, gamma*, the Units of measure is degrees." ;
  rdfs:domain ontocrystal:UnitCell ;
  rdfs:range ontocrystal:UnitCellAngles .

ontocrystal:hasReciprocalUnitCellVectorSet a rdf:Property ;
  rdfs:label "has Reciprocal Unit Cell Vector Set" ;
  rdfs:comment "Links a UnitCell to a set of vectors (ReciprocalUnitCellVectorSet) that define the three vectors in reciprocal space." ;
  rdfs:domain ontocrystal:UnitCell ;
  rdfs:range ontocrystal:UnitCellVectorSet .

ontocrystal:hasSpaceGroupHM a rdf:Property ;
  rdfs:label "has Space GroupHM" ;
  rdfs:comment "The symmetry symbol in Hermann-Mauguin notation." ;
  rdfs:domain ontocrystal:UnitCell ;
  rdfs:range xsd:string .

ontocrystal:hasUnitCellVolume a rdf:Property ;
  rdfs:label "has Unit Cell Volume" ;
  rdfs:comment "Links a UnitCell to its Value (of class Measure from the OM-2 ontology). Contains numerical value and unit of measure." ;
  rdfs:domain ontocrystal:UnitCell ;
  rdfs:range ontocrystal:UnitCellVolume .

ontocrystal:hasLatticeSystem a rdf:Property ;
  rdfs:label "has Lattice System" ;
  rdfs:comment "The lattice symmetry family of the crystal." ;
  rdfs:domain ontocrystal:UnitCell ;
  rdfs:range xsd:string .

ontocrystal:hasUnitCellLengths a rdf:Property ;
  rdfs:label "has Unit Cell Lengths" ;
  rdfs:comment "Connects a UnitCell with a Vector that stores the lengths of its axes. These vector labels are a, b, and c, the Unit of measurement is typically angstrom." ;
  rdfs:domain ontocrystal:UnitCell ;
  rdfs:range ontocrystal:UnitCellLengths .

ontocrystal:hasSpaceGroupSymbol a rdf:Property ;
  rdfs:label "has Space Group Symbol" ;
  rdfs:comment "The symmetry space group symbol." ;
  rdfs:domain ontocrystal:UnitCell ;
  rdfs:range xsd:string .

ontocrystal:hasSymmetryNumber a rdf:Property ;
  rdfs:label "has Symmetry Number" ;
  rdfs:comment "The space group code accroding to the International Tables for Crystallography Vol. A (2002). An integer value from 1 to 230." ;
  rdfs:domain ontocrystal:UnitCell ;
  rdfs:range xsd:integer .

ontocrystal:hasReciprocalUnitCellLengths a rdf:Property ;
  rdfs:label "has Reciprocal Unit Cell Lengths" ;
  rdfs:comment "Connects a UnitCell with a Vector that stores the lengths of its axes in the reciprocal space. The Vector labels are typically a*, b*, c*, the Units of measure reciprocalAngstrom." ;
  rdfs:domain ontocrystal:UnitCell ;
  rdfs:range ontocrystal:UnitCellLengths .

ontocrystal:OrdinateData a rdfs:Class ;
  rdfs:label "Ordinate Data" ;
  rdfs:comment "A set of data points to be used as Abscissa of a plot. Units of measurement correspond to the quantity on the axis." ;
  rdfs:subClassOf ontocrystal:MeasureVector .

ontocrystal:isAbscissaOf a rdf:Property ;
  rdfs:label "is Abscissa Of" ;
  rdfs:comment "Correspondance between data sets to construct plot. The sets must have the same length." ;
  rdfs:domain ontocrystal:OrdinateData ;
  rdfs:range ontocrystal:AbscissaData .

<https://w3id.org/linkml/Any> a rdfs:Class ;
  rdfs:comment "An unconstrained type or object" .

ontocrystal:MeasureVector a rdfs:Class ;
  rdfs:label "Measure Vector" ;
  rdfs:comment "Represents an N-dimensional array-like structure with units of measurement." .

<http://www.ontology-of-units-of-measure.org/resource/om-2/Measure> a rdfs:Class ;
  rdfs:label "Measure" ;
  rdfs:comment "An object to store a numerical value together with units of measurement. A class from OM-2 ontology." .

ontocrystal:hasCrystalInformation a rdf:Property ;
  rdfs:label "has Crystal Information" ;
  rdfs:comment "Relation property to specify the Crystallization Information of a material. It should be used by an external ontology." ;
  rdfs:range ontocrystal:CrystalInformation .
