...
This example will be about a type of fastener called a grooved pin coded internally to 9377156411. A small parent child table about grooved pins, coiled pins, dowel pins, cotter pins, split pins and slotted pins (phew!) was made and saved as an imported csv file. This has five levels of hierarchy with parents of Pin (Part), Fastener (Part) , Part (BuiltThing) and BuiltThing (BuiltThing). There is a second hierarchy going through 6253914735 | MechanicalFirmLinkage (BuiltThing) | . This table serves as a small reference terminology or ontology and the GELLO will make an appeal to it. It could be further populated out of the Relationships table. The table is will be used in an implies function that returns the code to return a boolean if if a child and a parent concept taen as parameters are in the same row, and . The table is shown here:
Engineering schema
...
Package OntoEngineering
Imports iso_21090_datatypes
class Geometry extends Any
name: String
code: CD -- square, rectangle, circle, triangle, cylinder, cone, sphere, line , cube, cuboid
area: PQ --derived
width: PQ
length: PQ
height: PQ
volume: PQ --derived
radius: PQ
circumference: PQ
describingFunction: String
--all horizontal relationships done up to here
class BuiltThing extends Any
code: CD
hasGeometry: Sequence(Geometry)
hasBehaviour: Behaviour
hasRole: Role
component: Sequence(Component)
tensileStrength: PQ
btArea: PQ
btWidth: PQ
btLength: PQ
btVolume: PQ
btRadius: PQ
btCircumference: PQ
btFluxEmmission: PQ
spaceType: CD -- negative, positive, negAndPos
constructionMaterial: CD -- wood, steel
constructionMethod: CD -- extruded, printed, cast, milled
elasticity: PQ
class Part extends BuiltThing
partID: String
usedWith: Sequence(Part)
class Behaviour extends Any
class Role extends Any
participant1: Part
participant2: Part
roleType: CD -- fasten, support, join
class Component extends Part
componentID: String
class Fastener extends Part --reference https://fastenerengineering.com/what-are-pins/
type: CD --mechanical, electromagnetic, adhesive
class Pin extends Fastener
pinType: CD -- dowel, slotted, coiled (spiral), grooved, split, cotter
chamfer: Chamfer
class Chamfer extends Any
angle: PQ
chamferLength: PQ
turnOffDistance: PQ
chamferLocation: CD -- proximal, distal
class SpringPin extends Pin --new
springStrength: PQ
class SlottedPin extends SpringPin
sheetRevolutionDeg: PQ
compressionTolerance: PQ
class CoiledPin extends SpringPin
-- sheetRevolutionDeg > 360 deg
class GroovedPin extends Pin
grooveNumber: Integer --usually 3 -- done
groove: Sequence(Component)
class CotterPin extends Any
taper: Geometry
class SplitPin extends Pin
end: Sequence(Component)
class Bush extends Part
-- spaceType = negative
interferenceMeasure: PQ
chamfer: Chamfer
class InfrastructureRoot extends Any
builtThing: Sequence(BuiltThing)
EndPackage
Data
A xml file was created that accords with the model:
<GroovedPin xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<type
code="5336670848"
codeSystem="2.16.840.1.113883.6.8"
codeSystemName="OntoEValueDomain">
<displayName value = "Mechanical" />
</type>
<pinType
code="9377156411"
codeSystem="2.16.840.1.113883.6.8"
codeSystemName="OntoEValueDomain">
<displayName value = "Grooved Pin" />
</pinType>
<partID value = '6787982-A'/>
<hasGeometry>
<code
code="7573194557"
codeSystem="2.16.840.1.113883.6.8"
codeSystemName="OntoEValueDomain">
<displayName value = "Cylinder"/>
</code>
</hasGeometry>
<spaceType
code="8494431267"
codeSystem="2.16.840.1.113883.6.8"
codeSystemName="OntoEValueDomain">
<displayName value = "PositiveSpace"/>
</spaceType>
<btLength xsi:type = "PQ" value = "100" unit = "mm" />
<btRadius xsi:type = "PQ" value = "10" unit = "mm" />
<hasRole>
<roleType code="4514449250"
codeSystem="2.16.840.1.113883.6.8"
codeSystemName="OntoEValueDomain">
<displayName value = "Fasten"/>
</roleType>
</hasRole>
<usedWith>
<partID value = '89u207-F'/>
<code
code="7715218853"
codeSystem="2.16.840.1.113883.6.8"
codeSystemName="OntoEValueDomain">
<displayName value = "Bush"/>
</code>
</usedWith>
<component>
<componentID value = 'Groove1'/>
<hasGeometry>
<code
code="7573194557"
codeSystem="2.16.840.1.113883.6.8"
codeSystemName="OntoEValueDomain">
<displayName value = "Cylinder"/>
</code>
</hasGeometry>
<spaceType
code="8999051355"
codeSystem="2.16.840.1.113883.6.8"
codeSystemName="OntoEValueDomain">
<displayName value = "NegativeSpace"/>
</spaceType>
<btLength xsi:type = "PQ" value = "75" unit = "mm" />
<btRadius xsi:type = "PQ" value = "4" unit = "mm" />
</component>
<grooveNumber value = '1' />
</GroovedPin>The