A telemetry bridge from Python to Clojure using the Universal Translator and the Metaobject Protocol
https://github.com/aamedina/formula-one
https://github.com/aamedina/formula-one/blob/main/src/net/wikipunk/rdf/fastf1.clj
A telemetry bridge from Python to Clojure using the Universal Translator and the Metaobject Protocol
https://github.com/aamedina/formula-one
https://github.com/aamedina/formula-one/blob/main/src/net/wikipunk/rdf/fastf1.clj
| ;; (mop/class-slots :fastf1/CarData) | |
| [{:db/ident :fastf1/drs, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "DRS", | |
| :rdfs/domain #{:fastf1/CarData}, | |
| :rdfs/range #{:xsd/integer}} | |
| {:db/ident :fastf1/source, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Source", | |
| :rdfs/domain #{:fastf1/CarData}, | |
| :rdfs/range #{:fastf1/Object}} | |
| {:db/ident :fastf1/speed, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Speed", | |
| :rdfs/domain #{:fastf1/CarData}, | |
| :rdfs/range #{:xsd/integer}} | |
| {:db/ident :fastf1/sessionTime, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "SessionTime", | |
| :rdfs/domain #{:fastf1/CarData}, | |
| :rdfs/range #{:fastf1/PandasTimedelta}} | |
| {:db/ident :fastf1/throttle, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Throttle", | |
| :rdfs/domain #{:fastf1/CarData}, | |
| :rdfs/range #{:xsd/integer}} | |
| {:db/ident :fastf1/time, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Time", | |
| :rdfs/domain #{:fastf1/Telemetry}, | |
| :rdfs/range #{:fastf1/PandasTimedelta}} | |
| {:db/ident :fastf1/nGear, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "nGear", | |
| :rdfs/domain #{:fastf1/CarData}, | |
| :rdfs/range #{:xsd/integer}} | |
| {:db/ident :fastf1/rpm, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "RPM", | |
| :rdfs/domain #{:fastf1/CarData}, | |
| :rdfs/range #{:xsd/integer}} | |
| {:db/ident :fastf1/brake, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Brake", | |
| :rdfs/domain #{:fastf1/CarData}, | |
| :rdfs/range #{:xsd/boolean}}] |
| ;; (mop/class-slots :fastf1/Lap) | |
| [{:db/ident :fastf1/isAccurate, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "IsAccurate", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:fastf1/Object}} | |
| {:db/ident :fastf1/trackStatus, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "TrackStatus", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:fastf1/Object}} | |
| {:db/ident :fastf1/sector1Time, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Sector1Time", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:fastf1/PandasTimedelta}} | |
| {:db/ident :fastf1/sector1SessionTime, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Sector1SessionTime", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:fastf1/PandasTimedelta}} | |
| {:db/ident :fastf1/freshTyre, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "FreshTyre", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:fastf1/Object}} | |
| {:db/ident :fastf1/lapStartTime, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "LapStartTime", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:fastf1/PandasTimedelta}} | |
| {:db/ident :fastf1/sector2SessionTime, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Sector2SessionTime", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:fastf1/PandasTimedelta}} | |
| {:db/ident :fastf1/lapTime, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "LapTime", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:fastf1/PandasTimedelta}} | |
| {:db/ident :fastf1/speedFl, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "SpeedFL", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:xsd/float}} | |
| {:db/ident :fastf1/tyreLife, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "TyreLife", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:xsd/float}} | |
| {:db/ident :fastf1/speedI2, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "SpeedI2", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:xsd/float}} | |
| {:db/ident :fastf1/speedSt, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "SpeedST", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:xsd/float}} | |
| {:db/ident :fastf1/sector3SessionTime, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Sector3SessionTime", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:fastf1/PandasTimedelta}} | |
| {:db/ident :fastf1/stint, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Stint", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:xsd/integer}} | |
| {:db/ident :fastf1/driverNumber, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "DriverNumber", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:fastf1/Object}} | |
| {:db/ident :fastf1/lapNumber, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "LapNumber", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:xsd/integer}} | |
| {:db/ident :fastf1/speedI1, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "SpeedI1", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:xsd/float}} | |
| {:db/ident :fastf1/driver, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Driver", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:fastf1/Object}} | |
| {:db/ident :fastf1/lapStartDate, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "LapStartDate", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:fastf1/PandasDatetime}} | |
| {:db/ident :fastf1/pitOutTime, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "PitOutTime", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:fastf1/PandasTimedelta}} | |
| {:db/ident :fastf1/pitInTime, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "PitInTime", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:fastf1/PandasTimedelta}} | |
| {:db/ident :fastf1/isPersonalBest, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "IsPersonalBest", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:xsd/boolean}} | |
| {:db/ident :fastf1/sector3Time, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Sector3Time", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:fastf1/PandasTimedelta}} | |
| {:db/ident :fastf1/compound, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Compound", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:fastf1/Object}} | |
| {:db/ident :fastf1/sector2Time, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Sector2Time", | |
| :rdfs/domain #{:fastf1/Lap}, | |
| :rdfs/range #{:fastf1/PandasTimedelta}}] |
| ;; (mop/class-slots :fastf1/PositionData) | |
| [{:db/ident :fastf1/z, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Z", | |
| :rdfs/domain #{:fastf1/PositionData}, | |
| :rdfs/range #{:xsd/integer}} | |
| {:db/ident :fastf1/x, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "X", | |
| :rdfs/domain #{:fastf1/PositionData}, | |
| :rdfs/range #{:xsd/integer}} | |
| {:db/ident :fastf1/status, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Status", | |
| :rdfs/domain #{:fastf1/PositionData}, | |
| :rdfs/range #{:fastf1/Object}} | |
| {:db/ident :fastf1/y, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Y", | |
| :rdfs/domain #{:fastf1/PositionData}, | |
| :rdfs/range #{:xsd/integer}} | |
| {:db/ident :fastf1/time, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Time", | |
| :rdfs/domain #{:fastf1/Telemetry}, | |
| :rdfs/range #{:fastf1/PandasTimedelta}}] |
| ;; (mop/class-slots :fastf1/WeatherData) | |
| [{:db/ident :fastf1/trackTemp, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "TrackTemp", | |
| :rdfs/domain #{:fastf1/WeatherData}, | |
| :rdfs/range #{:xsd/float}} | |
| {:db/ident :fastf1/airTemp, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "AirTemp", | |
| :rdfs/domain #{:fastf1/WeatherData}, | |
| :rdfs/range #{:xsd/float}} | |
| {:db/ident :fastf1/humidity, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Humidity", | |
| :rdfs/domain #{:fastf1/WeatherData}, | |
| :rdfs/range #{:xsd/float}} | |
| {:db/ident :fastf1/windSpeed, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "WindSpeed", | |
| :rdfs/domain #{:fastf1/WeatherData}, | |
| :rdfs/range #{:xsd/float}} | |
| {:db/ident :fastf1/pressure, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Pressure", | |
| :rdfs/domain #{:fastf1/WeatherData}, | |
| :rdfs/range #{:xsd/float}} | |
| {:db/ident :fastf1/windDirection, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "WindDirection", | |
| :rdfs/domain #{:fastf1/WeatherData}, | |
| :rdfs/range #{:xsd/integer}} | |
| {:db/ident :fastf1/rainfall, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Rainfall", | |
| :rdfs/domain #{:fastf1/WeatherData}, | |
| :rdfs/range #{:xsd/boolean}} | |
| {:db/ident :fastf1/time, | |
| :rdf/type #{:owl/ObjectProperty}, | |
| :rdfs/label "Time", | |
| :rdfs/domain #{:fastf1/Telemetry}, | |
| :rdfs/range #{:fastf1/PandasTimedelta}}] | |