@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#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix coords: <http://qudt.org/vocab/coords/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix vaem: <http://www.linkedmodel.org/schema/vaem#> .
@prefix voag: <http://voag.linkedmodel.org/schema/voag#> .

<http://qudt.org/3.2.1/schema/shacl/coordinateSystems>
  a owl:Ontology ;
  owl:imports <http://www.linkedmodel.org/schema/dtype> ;
  owl:imports <http://www.linkedmodel.org/schema/vaem> ;
  owl:imports <http://www.w3.org/2004/02/skos/core> ;
  owl:imports sh: ;
  rdfs:label "QUDT SHACL SCHEMA Coordinate Systems Version 3.2.1" ;
  vaem:hasCatalogEntry voag:QUDT-SchemaCatalogEntry ;
  vaem:hasGraphMetadata vaem:GMD_SCHEMA-SHACL-COORDINATES ;
  vaem:hasGraphRole vaem:SchemaGraph ;
  vaem:intent "This ontology is to be used by other ontologies that need to reference type definitions." ;
  vaem:specificity 1 ;
  vaem:url "http://qudt.org/3.2.1/schema/dtype"^^xsd:anyURI .

qudt:AerospaceCoordinateSystem
  a rdfs:Class, sh:NodeShape ;
  dcterms:description "A sub-type of 'Coordinate system'." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Aerospace Coordinate system" ;
  rdfs:subClassOf qudt:CoordinateSystem .

qudt:AxialOrientationType
  a rdfs:Class, sh:NodeShape ;
  dcterms:description "The axial orientation of a coordinate system frame axis." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Axial Orientation Type" ;
  rdfs:subClassOf qudt:EnumeratedValue ;
  sh:in ( coords:PositiveZ coords:PositiveY coords:NegativeY coords:NegativeZ coords:PositiveX
    coords:NegativeX ) .

qudt:CartesianCoordinates
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  A set of  variables which fix a geometric object.
  If the coordinates are distances measured along perpendicular axes, they are known as Cartesian coordinates.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Cartesian Coordinate Type" ;
  rdfs:subClassOf qudt:Coordinates .

qudt:CartesianCoordinatesType
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  <p>A set of  variables which fix a geometric object.
  If the coordinates are distances measured along perpendicular axes, they are known as Cartesian coordinates.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Cartesian Coordinate Type" ;
  rdfs:subClassOf qudt:CompositeDatatype .

qudt:CoordinateCenterKind
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  <p>An enumeration of coordinate centers for coordinate systems, such as:
   "Earth centered", "Mars centered", "Moon centered", "Sun centered",  and "Vehicle centered".
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Coordinate Center Kind" ;
  rdfs:subClassOf qudt:EnumeratedValue ;
  rdfs:subClassOf qudt:NominalScale ;
  sh:in ( coords:CCT_MarsCentered coords:CCT_EarthCentered coords:CCT_MoonCentered
    coords:CCT_VehicleCentered coords:CCT_SunCentered ) .

qudt:CoordinateMember
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  <p>A <em>Coordinate Member</em> is a data type that defines the properties of a coordinate in a coordinate system.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Coordinate Member" ;
  rdfs:subClassOf qudt:TupleMember .

qudt:CoordinateSystem
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  <p>A <em>Coordinate System</em> is a mathematical structure for assigning a unique n-tuple of numbers or scalars to each point in an n-dimensional space. 
  A Coordinate System Type is a data type that defines the properties of data structures that represent coordinate systems.
  </p>
  <p>In geometry, a coordinate system is a system which uses one or more numbers, or coordinates,
   to uniquely determine the position of a point or other geometric element on a manifold such as Euclidean space. 
  The order of the coordinates is significant.
  They are sometimes identified by their position in an ordered tuple and sometimes by a letter, as in 'the x-coordinate'. 
  </p>
  <p>In elementary mathematics the coordinates are taken to be real numbers, but may be complex numbers or elements of a more abstract system such as a commutative ring. 
  The use of a coordinate system allows problems in geometry to be translated into problems about numbers and vice versa; this is the basis of analytic geometry. 
  </p>
  <p>In astronomy, a celestial coordinate system is a system for specifying positions of celestial objects: satellites, planets, stars, galaxies, and so on. 
  Coordinate systems can specify a position in 3-dimensional space, or merely the direction of the object on the celestial sphere, if its distance is not known or not important.
  </p>
  <p>The coordinate systems are implemented in either spherical coordinates or rectangular coordinates. 
  Spherical coordinates, projected on the celestial sphere, are analogous to the geographic coordinate system used on the surface of the Earth.
  These differ in their choice of fundamental plane, which divides the celestial sphere into two equal hemispheres along a great circle.
  </p>
  <p>Rectangular coordinates, in appropriate units, are simply the cartesian equivalent of the spherical coordinates, with the same fundamental (x,y) plane and primary (x-axis) direction. 
  Each coordinate system is named for its choice of fundamental plane.
  </p>"""^^rdf:HTML ;
  qudt:dbpediaMatch <http://dbpedia.org/resource/Coordinate_system> ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Coordinate system" ;
  rdfs:seeAlso <http://en.wikipedia.org/wiki/Astronomical_coordinate_systems> ;
  rdfs:seeAlso <http://en.wikipedia.org/wiki/Coordinate_system> ;
  rdfs:seeAlso <http://mathworld.wolfram.com/CoordinateSystem.html> ;
  rdfs:seeAlso <http://mathworld.wolfram.com/Coordinates.html> ;
  rdfs:subClassOf qudt:Concept ;
  rdfs:subClassOf skos:Concept ;
  sh:property qudt:CoordinateSystem-abbreviation ;
  sh:property qudt:CoordinateSystem-acronym ;
  sh:property qudt:CoordinateSystem-coordinateCenter ;
  sh:property qudt:CoordinateSystem-originDefinition ;
  sh:property qudt:CoordinateSystem-referenceFrame .

qudt:Coordinates
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  <p>A coordinate system is a mathematical structure for assigning a unique n-tuple of numbers or scalars to each point in an n-dimensional space. 
  A Coordinate System Type is a data type that defines the properties of data structures that represent coordinate systems.
  </p>
  <p>The primary attributes of any coordinate system are the coordinate frame or orientation of the axes of the coordinate system and the coordinate center or origin of the coordinate system.
  The coordinate center is the easier of the two attributes to define and in trajectory-related coordinate systems is often taken to be the center of mass of natural solar system bodies such as the Earth, the Moon, or Mars.
  Precise definition of the coordinate frame, however, usually takes much more effort. 
  As a result, the primary purpose is to provide a detailed description of a number of different coordinate frames commonly used in mission analysis.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Coordinates" ;
  rdfs:subClassOf qudt:Tuple ;
  sh:property qudt:Coordinates-elementType .

qudt:Coordinates-2D
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  <p>A 2D coordinate system is a system for assigning a two-tuple of numbers or scalars to each point in an 2-dimensional space. 
  A corresponding 2D Coordinate Type is a data type that defines the data type for each coordinate (tuple member) in a 2D coordinate system.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "2D Coordinate Type" ;
  rdfs:subClassOf qudt:CartesianCoordinates ;
  rdfs:subClassOf qudt:TwoTuple .

qudt:Coordinates-2D-DoublePrecision
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  <p>A 2D coordinates in double floating point precision for locating a point in physical space.
  </p>"""^^rdf:HTML ;
  qudt:elementTypeCount 2 ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Coordinates-2D-Double precision" ;
  rdfs:subClassOf qudt:Coordinates-2D ;
  sh:property qudt:Coordinates-2D-DoublePrecision-double_X ;
  sh:property qudt:Coordinates-2D-DoublePrecision-double_Y .

qudt:Coordinates-2D-SinglePrecision
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  <p>A 2D coordinates in single floating point precision for locating a point in physical space.
  </p>"""^^rdf:HTML ;
  qudt:elementTypeCount 2 ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Cartesian Coordinates 2D Single Precision" ;
  rdfs:subClassOf qudt:Coordinates-2D ;
  sh:property qudt:Coordinates-2D-DoublePrecision-double_X ;
  sh:property qudt:Coordinates-2D-DoublePrecision-double_Y .

qudt:Coordinates-3D
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  <p>A 3D coordinate system is a system for assigning a three-tuple of numbers or scalars to each point in an 3-dimensional space.
  A corresponding 3D Coordinate Type is a data type that defines the data type for each coordinate (tuple member) in a 3D coordinate system.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "3D Coordinate Type" ;
  rdfs:subClassOf qudt:CartesianCoordinates ;
  rdfs:subClassOf qudt:ThreeTuple .

qudt:Coordinates-3D-DoublePrecision
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  <p>A 3D coordinates in double floating point precision for locating a point in physical space.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "3D Coordinates (Double Precision)" ;
  rdfs:subClassOf qudt:Coordinates-3D ;
  sh:property qudt:Coordinates-3D-DoublePrecision-double_X ;
  sh:property qudt:Coordinates-3D-DoublePrecision-double_Y ;
  sh:property qudt:Coordinates-3D-DoublePrecision-double_Z .

qudt:Coordinates-3D-SinglePrecision
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  <p>A 3D coordinates in single floating point precision for locating a point in physical space.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "3D Coordinates (Single Precision)" ;
  rdfs:subClassOf qudt:Coordinates-3D ;
  sh:property qudt:Coordinates-3D-SinglePrecision-float_X ;
  sh:property qudt:Coordinates-3D-SinglePrecision-float_Y ;
  sh:property qudt:Coordinates-3D-SinglePrecision-float_Z .

qudt:Coordinates-3D-Type
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  <p>A 3D coordinate system is a system for assigning a three-tuple of numbers or scalars to each point in an 3-dimensional space. 
  A corresponding 3D Coordinate Type is a data type that defines the data type for each coordinate (tuple member) in a 3D coordinate system.
  </p>"""^^rdf:HTML ;
  rdfs:label "3D Coordinate Type" ;
  rdfs:subClassOf qudt:CartesianCoordinatesType ;
  rdfs:subClassOf qudt:ThreeTuple .

qudt:EarthCoordinateSystem
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  <p>A "Trajectory Coordinate System" for all earth-centered coordinates, such as:
  </p>
  <ul>
  <li>Earth mean equator and prime meridian coordinate system;;</li>
  <li>Earth true equator and prime meridian of epoch coordinate system;</li> 
  <li>International celestial reference system;</li>
  <li>International terrestrial reference system;</li>
  <li>Sun centered international celestial reference system;</li>
  <li>Vehicle centered international celestial reference system.</li>
  </ul>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Earth Coordinate System Type" ;
  rdfs:subClassOf qudt:TrajectoryCoordinateSystem ;
  sh:property qudt:EarthCoordinateSystem-coordinateCenter .

qudt:FrameType
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  <p>A <em>Frame Type</em> specifies the intertial type of a coordinate frame as either inertial, rotating, or non-rotating.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Frame Type" ;
  rdfs:subClassOf qudt:EnumeratedValue ;
  sh:in ( coords:FT_ROTATING coords:FT_NON-ROTATING coords:FT_INERTIAL ) .

qudt:GroundCoordinateSystem
  a rdfs:Class, sh:NodeShape ;
  dcterms:description "A sub-type of 'Aerospace coordinate system'." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Ground coordinate system" ;
  rdfs:subClassOf qudt:AerospaceCoordinateSystem .

qudt:InertialCoordinateFrame
  a rdfs:Class, sh:NodeShape ;
  dcterms:description "A \"Coordinate Frame\"." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Inertial Coordinate Frame" ;
  rdfs:seeAlso qudt:NonRotatingInertialFrame ;
  rdfs:subClassOf qudt:InertialReferenceFrame ;
  sh:property qudt:InertialCoordinateFrame-frameType .

qudt:InertialReferenceFrame
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  A sub-type of 'Reference Frame'.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Inertial reference frame" ;
  rdfs:subClassOf qudt:ReferenceFrame .

qudt:LocalCoordinateSystem
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  A "Trajectory Coordinate System" with the following instance(s):
   "Local vertical curvilinear coordinate system",
   "Local vertical local horizontal coordinate system",
   "Vehicle centered local vertical curvilinear coordinate system".
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Local Coordinate System" ;
  rdfs:subClassOf qudt:TrajectoryCoordinateSystem .

qudt:LunarCoordinateSystem
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  Two slightly different coordinate frames are commonly used to define the orientation of the axes of a lunar body-fixed coordinate system:
   a mean Earth/rotation frame and a principal axis coordinate frame. 
  The mean Earth/rotation frame (sometimes called the "Mean Earth/polar axis" frame) is a lunar body-fixed coordinate frame.
  This has the X-axis aligned with the mean direction from the Moon to the Earth and the Z-axis aligned with the mean axis of rotation of the Moon. 
  The principal axis frame is a lunar body-fixed coordinate frame aligned with the principal axes of the Moon. 
  Due to the fact that the Moon is synchronously rotating but is not exactly symmetric, the principal axes and the mean Earth/rotation axes of the Moon do not coincide.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Lunar Coordinate System" ;
  rdfs:subClassOf qudt:TrajectoryCoordinateSystem ;
  sh:property qudt:LunarCoordinateSystem-coordinateCenter ;
  sh:property qudt:LunarCoordinateSystem-realization ;
  sh:property qudt:LunarCoordinateSystem-xAxisDefinition ;
  sh:property qudt:LunarCoordinateSystem-yAxisDefinition ;
  sh:property qudt:LunarCoordinateSystem-zAxisDefinition .

qudt:MarsCoordinateSystem
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  A "Trajectory Coordinate System" with the following instance(s): "Mars mean equator and IAU-Node of epoch", "Mars mean equator and prime meridian body-fixed".
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Mars Coordinate System Type" ;
  rdfs:subClassOf qudt:TrajectoryCoordinateSystem ;
  sh:property qudt:MarsCoordinateSystem-coordinateCenter .

qudt:NonRotatingInertialFrame
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  <p>The non-rotating (or "inertial") coordinate frames are defined by taking a "snapshot" of the orientation of a particular set of right-handed, orthogonal axes at a specific epoch or time. 
  In other words, the non-rotating coordinate frame, however it is defined, is frozen or fixed at a specific time - for all time. 
  These non-rotating coordinate frames are referred to as "of Epoch" coordinate frames.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Non Rotating Coordinate Frame" ;
  rdfs:seeAlso qudt:InertialCoordinateFrame ;
  rdfs:subClassOf qudt:InertialReferenceFrame ;
  sh:property qudt:NonRotatingInertialFrame-frameType .

qudt:PolarCoordinates
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  <p>A set of  variables which fix a geometric object. 
  If the coordinates of a point P are determined by the distance from P to the origin and the angle subtended by the radial vector at P and a fixed axis,
   they are known as polar coordinates. 
  Typically, the angle is measured with respect to the x-axis. ;
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Polar Coordinate System" ;
  rdfs:subClassOf qudt:Coordinates .

qudt:PolarCoordinatesType
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  <p>A set of  variables which fix a geometric object. 
  If the coordinates of a point <em>P</em> are determined by the distance from <em>P</em> to the origin and the angle subtended by the radial vector at <em>P</em> and a fixed axis,
   they are known as polar coordinates. 
  Typically, the angle is measured with respect to the x-axis. ;
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Polar Coordinate System Type" ;
  rdfs:subClassOf qudt:CoordinateSystem .

qudt:ReferenceDatatype
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  <p>A reference is an object containing information which refers to data stored elsewhere, as opposed to containing the data itself. 
  A reference data type is a data type that specifies how a reference is represented and stored in memory,
   as well as the operations that can be performed on reference values. 
  The most common example of a reference data type is a pointer.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Reference Data Type" ;
  rdfs:subClassOf qudt:StructuredDatatype .

qudt:ReferenceFrame
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  <p> A <em>Reference Frame</em> (or "frame of reference") in physics, may refer to a coordinate system or set of axes.
The frame serves as the datum to measure the position, orientation, and other properties of objects in it.
Reference frame may refer to an observational reference frame tied to the state of motion of an observer. 
Reference frame may also refer to both an observational reference frame and an attached coordinate system as a unit.
</p>
"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Reference Frame" ;
  rdfs:subClassOf qudt:Concept ;
  sh:property qudt:ReferenceFrame-comment ;
  sh:property qudt:ReferenceFrame-description ;
  sh:property qudt:ReferenceFrame-frameType ;
  sh:property qudt:ReferenceFrame-informativeReference ;
  sh:property qudt:ReferenceFrame-realization ;
  sh:property qudt:ReferenceFrame-xAxisDefinition ;
  sh:property qudt:ReferenceFrame-xCoordinateDefinition ;
  sh:property qudt:ReferenceFrame-yAxisDefinition ;
  sh:property qudt:ReferenceFrame-yCoordinateDefinition ;
  sh:property qudt:ReferenceFrame-zAxisDefinition ;
  sh:property qudt:ReferenceFrame-zCoordinateDefinition .

qudt:RotatingReferenceFrame
  a rdfs:Class, sh:NodeShape ;
  dcterms:description "A sub-type of 'Reference Frame'." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Rotating reference frame" ;
  rdfs:subClassOf qudt:ReferenceFrame .

qudt:StateSpaceVector
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  A state vector in general control systems describes the observed states of an object in state space.
  For example in variables of the degrees of freedom for motion. 
  As data types, state vector types are used to specify the structure of state vectors, such as how the observed state is encoded.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "State Space Vector Type" ;
  rdfs:subClassOf qudt:Vector ;
  sh:property qudt:StateSpaceVector-coordinateSystem .

qudt:ThreeBodyRotatingCoordinateSystem
  a rdfs:Class, sh:NodeShape ;
  dcterms:description """
  <p>A <em>Three Body Rotating Coordinate System</em> is one that is associated with two different three-body systems.
  For example, the Sun-Earth-spacecraft system and the Earth-Moon-spacecraft system.
  </p>
  <p>The lunar coordinate systems are primarily used when operating in close proximity to the Moon. 
  There are, however, a few additional coordinate systems that are also useful when analyzing (and depicting) trajectories in the vicinity of the Earth-Moon system.  
  The Sun-Earth and Earth-Moon rotating coordinate frames are defined as follows: 
  </p>
  <p>The pole vector or Z-axis of the coordinate frame is set equal to the instantaneous orbit normal of the secondary (smaller) body about the primary (larger) body.
  The X-axis is set equal to the vector from the primary body center of mass (CM) to the secondary body CM. 
  The X-axis rotates at a rate equal to the instantaneous rotation rate of the secondary body about the primary body.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Three Body Rotating Coordinate System Type" ;
  rdfs:subClassOf qudt:AerospaceCoordinateSystem .

qudt:TrajectoryCoordinateSystem
  a rdfs:Class, sh:NodeShape ;
  dcterms:description "A \"Coordinate System\"." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Trajectory Coordinate System" ;
  rdfs:subClassOf qudt:AerospaceCoordinateSystem .

qudt:VehicleCoordinateSystem
  a rdfs:Class, sh:NodeShape ;
  dcterms:description "A sub-type of 'Aerospace coordinate system'." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Vehicle coordinate system" ;
  rdfs:subClassOf qudt:AerospaceCoordinateSystem ;
  sh:property qudt:VehicleCoordinateSystem-pitchRotationDefinition ;
  sh:property qudt:VehicleCoordinateSystem-rollRotationDefinition ;
  sh:property qudt:VehicleCoordinateSystem-yawRotationDefinition .

dcterms:contributor
  a rdf:Property ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "contributor" .

dcterms:creator
  a rdf:Property ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "creator" .

dcterms:description
  a rdf:Property ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "description" .

dcterms:rights
  a rdf:Property ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "rights" .

dcterms:subject
  a rdf:Property ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "subject" .

dcterms:title
  a rdf:Property ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "title" .

qudt:coordinateCenter
  a rdf:Property ;
  rdfs:domain qudt:CoordinateSystem ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "coordinate center" ;
  skos:prefLabel "coordinate center" .

qudt:coordinateSystem
  a rdf:Property ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "coordinate system" .

qudt:coordinateSystemFrame
  a rdf:Property ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "coordinate system frame" .

qudt:float_X
  a rdf:Property ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "float X" .

qudt:float_Y
  a rdf:Property ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "float Y" .

qudt:float_Z
  a rdf:Property ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "float Z" .

qudt:pitchRotationDefinition
  a rdf:Property ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "pitch rotation definition" ;
  rdfs:subPropertyOf qudt:rotationDefinition .

qudt:referenceFrame
  a rdf:Property ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "reference frame" ;
  rdfs:subPropertyOf qudt:coordinateSystemFrame .

qudt:referenceFrameType
  a rdf:Property ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "reference frame type" .

qudt:rollRotationDefinition
  a rdf:Property ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "roll rotation definition" ;
  rdfs:subPropertyOf qudt:rotationDefinition .

qudt:rotationDefinition
  a rdf:Property ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "rotation definition" .

qudt:xAxisDefinition
  a rdf:Property ;
  dcterms:description """
  The definition of the X-Axis could be an intersection, cross-product or other function of a  meridian or orbit. 
  It could also mention any aspects of rotation, for example, the rotation equator of the Earth, Sun, Moon or other celestial body. 
  An epoch might also be given.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "X-Axis Definition" .

qudt:xCoordinateDefinition
  a rdf:Property ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "X-Coordinate definition" .

qudt:yAxisDefinition
  a rdf:Property ;
  dcterms:description """
  The definition of the Y-Axis could be an intersection, cross-product or other function of a meridian or orbit. 
  It could also mention any aspects of rotation, for example, the rotation equator of the Earth, Sun, Moon or other celestial body. 
  An epoch might also be given.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Y-Axis definition" .

qudt:yCoordinateDefinition
  a rdf:Property ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Y-Coordinate definition" .

qudt:yawRotationDefinition
  a rdf:Property ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Yaw rotation definition" ;
  rdfs:subPropertyOf qudt:rotationDefinition .

qudt:zAxisDefinition
  a rdf:Property ;
  dcterms:description """
  The definition of the Y-Axis could be an intersection, croos-product or other function of a meridian or orbit. 
  It could also mention any aspects of rotation, for example, the rotation equator of the Earth, Sun, Moon or other celestial body. 
  An epoch might also be given.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Z-Axis definition" .

qudt:zCoordinateDefinition
  a rdf:Property ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "Z-Coordinate definition" .

qudt:CoordinateSystem-abbreviation
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:maxCount 1 ;
  sh:path qudt:abbreviation .

qudt:CoordinateSystem-acronym
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:maxCount 1 ;
  sh:path vaem:acronym .

qudt:CoordinateSystem-coordinateCenter
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:class qudt:CoordinateCenterKind ;
  sh:maxCount 1 ;
  sh:path qudt:coordinateCenter .

qudt:CoordinateSystem-originDefinition
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:datatype xsd:string ;
  sh:maxCount 1 ;
  sh:path qudt:originDefinition .

qudt:CoordinateSystem-referenceFrame
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:class qudt:ReferenceFrame ;
  sh:maxCount 1 ;
  sh:path qudt:referenceFrame .

qudt:Coordinates-2D-DoublePrecision-double_X
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:datatype xsd:double ;
  sh:maxCount 1 ;
  sh:minCount 1 ;
  sh:path qudt:double_X .

qudt:Coordinates-2D-DoublePrecision-double_Y
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:datatype xsd:double ;
  sh:maxCount 1 ;
  sh:minCount 1 ;
  sh:path qudt:double_Y .

qudt:Coordinates-2D-SinglePrecision-float_X
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:datatype xsd:float ;
  sh:maxCount 1 ;
  sh:minCount 1 ;
  sh:path qudt:float_X .

qudt:Coordinates-2D-SinglePrecision-float_Y
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:datatype xsd:float ;
  sh:maxCount 1 ;
  sh:minCount 1 ;
  sh:path qudt:float_Y .

qudt:Coordinates-3D-DoublePrecision-double_X
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:datatype xsd:double ;
  sh:maxCount 1 ;
  sh:minCount 1 ;
  sh:path qudt:double_X .

qudt:Coordinates-3D-DoublePrecision-double_Y
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:datatype xsd:double ;
  sh:maxCount 1 ;
  sh:minCount 1 ;
  sh:path qudt:double_Y .

qudt:Coordinates-3D-DoublePrecision-double_Z
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:datatype xsd:double ;
  sh:maxCount 1 ;
  sh:minCount 1 ;
  sh:path qudt:double_Z .

qudt:Coordinates-3D-SinglePrecision-float_X
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:datatype xsd:float ;
  sh:maxCount 1 ;
  sh:minCount 1 ;
  sh:path qudt:float_X .

qudt:Coordinates-3D-SinglePrecision-float_Y
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:datatype xsd:float ;
  sh:maxCount 1 ;
  sh:minCount 1 ;
  sh:path qudt:float_Y .

qudt:Coordinates-3D-SinglePrecision-float_Z
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:datatype xsd:float ;
  sh:maxCount 1 ;
  sh:minCount 1 ;
  sh:path qudt:float_Z .

qudt:Coordinates-elementType
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:class qudt:CoordinateMember ;
  sh:path qudt:elementDatatype .

qudt:EarthCoordinateSystem-coordinateCenter
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:class qudt:CoordinateCenterKind ;
  sh:hasValue coords:CCT_EarthCentered ;
  sh:path qudt:coordinateCenter .

qudt:InertialCoordinateFrame-frameType
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:hasValue coords:FT_NON-ROTATING ;
  sh:path qudt:frameType .

qudt:LunarCoordinateSystem-coordinateCenter
  a sh:PropertyShape ;
  sh:class qudt:CoordinateCenterKind ;
  sh:hasValue coords:CCT_MoonCentered ;
  sh:path qudt:coordinateCenter .

qudt:LunarCoordinateSystem-realization
  a sh:PropertyShape ;
  sh:datatype xsd:string ;
  sh:maxCount 1 ;
  sh:path qudt:realization .

qudt:LunarCoordinateSystem-xAxisDefinition
  a sh:PropertyShape ;
  sh:datatype xsd:string ;
  sh:maxCount 1 ;
  sh:path qudt:xAxisDefinition .

qudt:LunarCoordinateSystem-yAxisDefinition
  a sh:PropertyShape ;
  sh:datatype xsd:string ;
  sh:maxCount 1 ;
  sh:path qudt:yAxisDefinition .

qudt:LunarCoordinateSystem-zAxisDefinition
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:datatype xsd:string ;
  sh:maxCount 1 ;
  sh:path qudt:zAxisDefinition .

qudt:MarsCoordinateSystem-coordinateCenter
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:class qudt:CoordinateCenterKind ;
  sh:hasValue coords:CCT_MarsCentered ;
  sh:path qudt:coordinateCenter .

qudt:NonRotatingInertialFrame-frameType
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:hasValue coords:FT_NON-ROTATING ;
  sh:path qudt:frameType .

qudt:ReferenceFrame-comment
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:maxCount 1 ;
  sh:path vaem:comment .

qudt:ReferenceFrame-description
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:maxCount 1 ;
  sh:path dcterms:description .

qudt:ReferenceFrame-frameType
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:class qudt:FrameType ;
  sh:path qudt:frameType .

qudt:ReferenceFrame-informativeReference
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:maxCount 1 ;
  sh:path qudt:informativeReference .

qudt:ReferenceFrame-realization
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:datatype xsd:string ;
  sh:maxCount 1 ;
  sh:path qudt:realization .

qudt:ReferenceFrame-xAxisDefinition
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:datatype xsd:string ;
  sh:maxCount 1 ;
  sh:path qudt:xAxisDefinition .

qudt:ReferenceFrame-xCoordinateDefinition
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:datatype xsd:string ;
  sh:maxCount 1 ;
  sh:path qudt:xCoordinateDefinition .

qudt:ReferenceFrame-yAxisDefinition
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:datatype xsd:string ;
  sh:maxCount 1 ;
  sh:path qudt:yAxisDefinition .

qudt:ReferenceFrame-yCoordinateDefinition
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:datatype xsd:string ;
  sh:maxCount 1 ;
  sh:path qudt:yCoordinateDefinition .

qudt:ReferenceFrame-zAxisDefinition
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:datatype xsd:string ;
  sh:maxCount 1 ;
  sh:path qudt:zAxisDefinition .

qudt:ReferenceFrame-zCoordinateDefinition
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:datatype xsd:string ;
  sh:maxCount 1 ;
  sh:path qudt:zCoordinateDefinition .

qudt:StateSpaceVector-coordinateSystem
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:class qudt:CoordinateSystem ;
  sh:maxCount 1 ;
  sh:path qudt:coordinateSystem .

qudt:VehicleCoordinateSystem-pitchRotationDefinition
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:class qudt:AxialOrientationType ;
  sh:maxCount 1 ;
  sh:path qudt:pitchRotationDefinition .

qudt:VehicleCoordinateSystem-rollRotationDefinition
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:class qudt:AxialOrientationType ;
  sh:maxCount 1 ;
  sh:minCount 0 ;
  sh:path qudt:rollRotationDefinition .

qudt:VehicleCoordinateSystem-yawRotationDefinition
  a sh:PropertyShape ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  sh:class qudt:AxialOrientationType ;
  sh:maxCount 1 ;
  sh:minCount 0 ;
  sh:path qudt:yawRotationDefinition .

vaem:GMD_SCHEMA-SHACL-COORDINATES
  a vaem:GraphMetaData ;
  dcterms:description """
  <p>The QUDT coordinate systems schema specifies coordinate-system, reference-frame,
  coordinate-type, and related supporting concepts used across the QUDT ontologies.
  </p>
  """^^rdf:HTML ;
  dcterms:modified "2025-04-02T10:54:24-05:00"^^xsd:dateTime ;
  dcterms:rights """
  <p>The QUDT Ontologies are issued under a Creative Commons Attribution 4.0 International License (CC BY 4.0), available  <a href="https://creativecommons.org/licenses/by/4.0/">here</a>. 
  Attribution should be made to <a href="https://www.qudt.org">QUDT.org</a>.
  </p>"""^^rdf:HTML ;
  dcterms:subject "Coordinate Systems" ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  rdfs:label "QUDT SHACL Schema for Coordinate Systems - Version 3.2.1" ;
  vaem:graphTitle "QUDT SHACL Schema for Coordinate Systems - Version 3.2.1" ;
  vaem:hasGraphRole vaem:SchemaGraph ;
  vaem:isMetadataFor <http://qudt.org/3.2.1/schema/shacl/coordinateSystems> ;
  vaem:latestPublishedVersion "https://qudt.org/doc/2026/04/DOC_SCHEMA-SHACL-COORDINATES.html"^^xsd:anyURI ;
  vaem:logo "https://qudt.org/linkedmodels.org/assets/lib/lm/images/logos/qudt_logo-300x110.png"^^xsd:anyURI ;
  vaem:name "QUDT" ;
  vaem:namespace "http://qudt.org/schema/qudt/"^^xsd:anyURI ;
  vaem:namespacePrefix "qudt" ;
  vaem:owner "QUDT.ORG" ;
  vaem:previousPublishedVersion "https://qudt.org/doc/2026/03/DOC_SCHEMA-SHACL-COORDINATES.html"^^xsd:anyURI ;
  vaem:publishedDate "2017-05-10"^^xsd:date ;
  vaem:releaseDate "2016-05-09"^^xsd:date ;
  vaem:title "QUDT SHACL Schema for Coordinate Systems - Version 3.2.1" ;
  vaem:turtleFileURL "http://qudt.org/3.2.1/schema/shacl/coordinateSystems.ttl"^^xsd:anyURI ;
  vaem:usesNonImportedResource dcterms:abstract ;
  vaem:usesNonImportedResource dcterms:created ;
  vaem:usesNonImportedResource dcterms:creator ;
  vaem:usesNonImportedResource dcterms:modified ;
  vaem:usesNonImportedResource dcterms:rights ;
  vaem:usesNonImportedResource dcterms:title ;
  vaem:usesNonImportedResource <http://voag.linkedmodel.org/voag#QUDT-Attribution> ;
  vaem:withAttributionTo <http://voag.linkedmodel.org/voag#QUDT-Attribution> .


