.
\noindent Ce rapport présente le travail que nous avons réalisé dans le cadre du projet pour l’UE Ontologie (M2DC). Il accompagne le fichier OWL/RDF contenant l’ontologie elle-même.
Nous avons réalisé une ontologie décrivant les principaux objets célestes. Elle comporte trois parties :
- Une taxonomie des corps et objets célestes, selon les définitions astronomiques académiques
- Une représentation réaliste de la relation d’orbitage en physique newtonienne
- Une classification des systèmes orbitaux classiques (galaxies, systèmes planétaires, etc.)
Pour cela, nous avons construit notre ontologie sur BFO. En effet, elle offre un cadre réaliste, et cherche à représenter le meilleur état des connaissances.
Nous avons aussi souhaité utiliser l’ontologie BDpedia, afin de profiter des ressources et relations existantes. Nous n’avons pas retenu cette solution, car cette ontologie contient des incohérences qui risquent de se propager dans notre modélisation. Par exemple, “Comète de Halley” est classée comme “Planète”. Nous utiliserons uniquement des ressources, pour peupler notre exemple de A-Box.
Un objet céleste est académiquement considéré comme tel. Par exemple, les galaxies comme les planètes sont des objets célestes, mais les nuages de gaz et les fusées n’en sont pas.
La notion de corps céleste spécialise celle d’objet céleste : un corps céleste est considéré comme atomique d’un point de vue astronomique. Par exemple, les planètes sont des corps célestes, mais pas les galaxies.
Pour cette taxonomie, nous effectuons donc un travail d’énumération et de classification (figure fig:taxo).
- CelestialThing
- Une chose céleste est un agrégat qui possède un barycentre.
Tous les concepts concrets que nous représentons sont des sous-classes de CelestialThing. La notion de barycentre sert à la formalisation de la relation d’orbitage (voir chapitre suivant). \ Note : Les corps célestes, réputés atomiques, tombent eux aussi dans la catégorie object aggregate de BFO, car ils sont composés de roches, liquides et gaz, et in fine de particules.
\scriptsize
- CelestialObject
- Un objet céleste est une chose céleste qui correspond à la définition académique (a priori arbitraire).
\scriptsize
- CelestialBody
- Un corps céleste est une chose céleste qui correspond à la définition académique (a priori arbitraire).
\scriptsize
- Asteroid
- Un astéroide est un corps céleste dont la taille est inférieure à 1000.
Note : nous devons utiliser \sqsubseteq (et non pas ≡) car d’autres corps célestes peuvent avoir une taille inférieure à 1000 (p. ex. un trou noir).
\scriptsize $$Asteroid ~ \sqsubseteq ~ CelestialBody ~ \sqcap ~ (=1 ~ hasSize.\text{[<1000\\xsd:double]})$$ \normalsize
- BlackHole
- Un trou noir est un corps céleste dont la taille est inférieure à 1000 et la masse supérieure à 10.
Note : nous pouvons utiliser une équivalence car cela illustre une loi physique : tout objet ayant de telles masse et taille est un trou noir.
\scriptsize $$BlackHole ~ ≡ ~ CelestialBody ~ \sqcap ~ (=1 ~ hasSize.\text{[<1000\\xsd:double]}) ~ \sqcap ~ (=1 ~ hasMass.\text{[>10\\xsd:double]})$$ \normalsize
- Planet
- Une planète est un corps céleste dont la masse est inférieure à 10-5.
Note : il faut utiliser \sqsubseteq car d’autres objets célestes ont une telle masse (p. ex. une lune)
\scriptsize $$Planet ~ \sqsubseteq ~ CelestialBody ~ \sqcap ~ (=1 ~ hasMass.\text{[<1E-5\\xsd:double]})$$ \normalsize
- Moon
- Une lune est un corps céleste qui est un satellite naturel (voir chapitre suivant)
\scriptsize
- Star
- Une étoile est un corps céleste dont la luminosité est supérieure à 0.
\scriptsize $$Star ~ \subseteq ~ CelestialBody ~ \sqcap ~(=1 ~ hasLuminosity.\text{[>0\\xsd:double]})$$ \normalsize
Nous avons porté une attention particulière à la relation d’orbitage. En effet, c’est une relation subtile. L’approche simpliste de DBpedia, avec la relation satelliteOf, permet de lier une lune à sa planète, mais pas de représenter une étoile double par exemple.
Nous utilisons la description classique copernicienne : les barycentres des objets orbitent autour du barycentre du système. Par exemple, considérons le système SUN - EARTH - MOON:
- MOON et EARTH orbitent ensemble et forment le système
EARTH_MOON_SYSTEM - SUN et EARTH_MOON_SYSTEM orbitent ensemble et forment le système SOLAR_SYSTEM
Plus dans le détail :
- Les barycentres MOON_BC et EARTH_BC orbitent tous deux autour de EARTH_MOON_SYSTEM_BC
- Les barycentres EARTH_MOON_SYSTEM_BC et SUN_BC orbitent tous deux autour de SOLAR_SYSTEM_BC
On en déduira des relations d’appartenance et de méréologie.
- Point
- Un point est un site de dimension 0.
\scriptsize
- hasBarycenter / isBarycenterOf
- Les choses célestes ont un barycentre
\scriptsize
$$\begin{align*}
hasBarycenter : & ~ CelestialThing → Point
isBarycenterOf : & ~ Point → CenestialThing ~ ≡ ~ hasBarycenter^-
\end{align*}$$
\normalsize
- orbitsAround / isOrbitedBy
- Un point orbite autour d’un autre point
\scriptsize
$$\begin{align*}
orbitAround : & ~ Point → Point
isOrbitedBy : & ~ Point → Point ~ ≡ ~ orbitAround^-
\end{aling*}$$
\normalsize
- orbitsWith
- Des choses célestes orbitent ensemble si leur barycentres orbitent autour d’un point commun
\scriptsize
- orbitsIn / hasOrbitingComponent
- Une chose céleste $x$ orbite dans $y$ si le barycentre de $x$ orbite autour de celui de $y$.
Note : ces relations définissent des ensembles imbriqués, elles ne sont pas transitives. Elles sont sous-relations de isPartOf et hasPart (opérateurs méréologiques transitifs).
\scriptsize
$$\begin{align*}
orbitsIn : & ~ CelestialThing → CelestialThing
~ ≡ & ~ hasBarycenter ~ ˆ ~ orbitsAround ~ ˆ ~ isBarycenterOf \
hasOrbitingComponent : & ~ CelestialThing → CelestialThing ~ ≡ ~ orbitsIn^-
\end{align*}$$
\normalsize
- isPartOf / hasPart
- Une chose céleste $x$ est une partie de $y$ si elle orbite dans $y$ ou dans une partie de $y$ : ce sont les opérateurs méréologiques, transitifs, sous-classes des précédents.
Les systèmes orbitaux sont des regroupements de choses qui orbitent ensemble (i.e. dont les barycentres orbitent autour d’un point commun). Nous créons ainsi une nouvelle taxonomie, inférée, représentant les différents types de systèmes orbitaux classiques : satellites, étoiles multiples, systèmes planétaires et galaxies
- OrbitingSystem
- Un système orbital est une chose céleste dont le barycentre est orbité par des points
\scriptsize
- SatelliteSystem
- Un système satellitaire est un système orbital composé de planètes et de lunes
\scriptsize $$ SatelliteSystem ~ ≡ ~ OrbitingSystem \sqcap ~ (∀ hasOrbitingComponent.(Planet ~ \sqcup ~ Moon))$$ \normalsize
- StarSystem
- Un système stellaire (ou étoile multiple) est un système orbital composé uniquement d’étoiles. Parmi ceux-ci, on distingue les “étoiles unaires” (simples), binaires (doubles), ternaires (triples).
\scriptsize
$$\begin{align*}
StarSystem ~ & ≡ ~ OrbitingSystem ~ \sqcap ~ (∀ hasOrbitingComponent.Star)
UnaryStar ~ & ≡ ~ StarSystem ~ \sqcap (=1 ~ hasBarycenter.(=1 ~ isOrbitedBy.Star)) \
BinaryStar ~ & ≡ ~ StarSystem ~ \sqcap (=1 ~ hasBarycenter.(=2 ~ isOrbitedBy.Star)) \
TernaryStar ~ & ≡ ~ StarSystem ~ \sqcap (=1 ~ hasBarycenter.(=3 ~ isOrbitedBy.Star)) \
\end{align*}$$
\normalsize
Note : nous ne pouvons pas utiliser ici la relation complexe hasOrbitingComponent sous peine de bloquer le raisonneur.
- PlanetarySystem
- Un système planétaire est un système orbital composé de systèmes stellaires, de systèmes satellitaires et d’astéroides
\scriptsize
$$\begin{align*}
PlanetarySystem ~ ≡ ~ & OrbitingSystem ~
\sqcap ~ & (∀ hasOrbitingComponent.(StarSystem ~ \sqcup ~ SatelliteSystem ~ \sqcup ~ Asteroid))
\end{align*}$$
\normalsize
- Galaxy
- Une galaxie est un système orbital composé de trous noirs et de systèmes planétaires
\scriptsize
Nous utilisons le raisonneur Hermit
pour assurer la cohérence de l’ontologie. Cela nous permet aussi d’inférer des relations, par exemple la figure fig:infer montre les relations inférées pour l’individu dbpedia:Solar_System
.
Remarque : pour répondre à ces questions de compétances avec SPARQL, nous enrichissons d’abord notre ontologie en appliquant des règles SWRL redondantes avec nos définitions. Cela permet d’écrire en dur certaines assertions dans la A-Box, afin que SPARQL puisse les utiliser.
\scriptsize
PREFIX hmp: <http://www.semanticweb.org/hut-mar-pom/cosmic-ontology#>
PREFIX dbpedia: <http://dbpedia.org/resource/>
SELECT ?x
WHERE {
?x a hmp:CelestialBody ; hmp:isPartOf dbpedia:Solar_System.
}
ORDER BY ?x
\normalsize
\scriptsize
PREFIX hmp: <http://www.semanticweb.org/hut-mar-pom/cosmic-ontology#>
SELECT ?x (COUNT(?y) as ?n)
WHERE {
?y hmp:orbitsIn ?x
}
GROUP BY ?x
ORDER BY ?n ?x
\normalsize
\scriptsize
PREFIX hmp: <http://www.semanticweb.org/hut-mar-pom/cosmic-ontology#>
PREFIX dbpedia: <http://dbpedia.org/resource/>
SELECT DISTINCT ?x
WHERE {
?x rdfs:subClassOf hmp:CelestialObject.
?y a ?x.
?y hmp:isPartOf dbpedia:Solar_System
}