Skip to content

Latest commit

 

History

History
301 lines (248 loc) · 13.9 KB

rapport.org

File metadata and controls

301 lines (248 loc) · 13.9 KB

Ontologie des astres cosmiques

.

\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.

Présentation de l’ontologie

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.

Concepts et relations

Taxonomie des objets et corps célestes

Idée générale

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).

./ims/concepts.png

Définitions

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 $$CelestialThing ~ \sqsubseteq ~ \text{bfo:”object aggregate”} ~ \sqcap ~ (=1 ~ hasBarycenter.Point)$$ \normalsize

CelestialObject
Un objet céleste est une chose céleste qui correspond à la définition académique (a priori arbitraire).

\scriptsize $$CelestialObject ~ \sqsubseteq ~ CelestialThing$$ \normalsize

CelestialBody
Un corps céleste est une chose céleste qui correspond à la définition académique (a priori arbitraire).

\scriptsize $$CelestialBody ~ \sqsubseteq ~ CelestialThing$$ \normalsize

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 $$Moon ~ \sqsubseteq ~ CelestialBody ~ \sqcap ~ Satellite$$ \normalsize

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

Relations définissant les orbites

Idée générale

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.

Définitions

Point
Un point est un site de dimension 0.

\scriptsize $$Point ~ \sqsubseteq ~ \text{bfo:”zero-dimensional spatial region”}$$ \normalsize

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 $$orbitsWith ~ ≡ ~ hasBarycenter ~ ˆ ~ orbitAround ~ ˆ ~ isBarycenterOf$$ \normalsize

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.

Systèmes orbitaux

Idée générale

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

./ims/concepts_orb.png

Définitions

OrbitingSystem
Un système orbital est une chose céleste dont le barycentre est orbité par des points

\scriptsize $$OrbitingSystem ~ ≡ ~ CelestialObject ~ \sqcap ~ (\geq 1 ~ hasOrbitingComponent.CelestialObject)$$ \normalsize

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 $$Galaxy ~ ≡ ~ OrbitingSystem ~ \sqcap ~ (∀ hasOrbitingComponent.(BlackHole ~ \sqcup ~ PlanetarySystem))$$ \normalsize

Cohérence de l’ontologie

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.

./ims/infer.png

Trois questions de compétences

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.

Quels corps célestes gravitent dans le système solaire ?

\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
x
http://dbpedia.org/resource/Callisto_(moon)
http://dbpedia.org/resource/Europa_(moon)
http://dbpedia.org/resource/Ganymede_(moon)
http://dbpedia.org/resource/Io_(moon)
http://dbpedia.org/resource/Jupiter
http://www.semanticweb.org/hut-mar-pom/cosmic-ontology#EARTH
http://www.semanticweb.org/hut-mar-pom/cosmic-ontology#JUPITER
http://www.semanticweb.org/hut-mar-pom/cosmic-ontology#MOON
http://www.semanticweb.org/hut-mar-pom/cosmic-ontology#SUN

\normalsize

Combien d’éléments consituent les systèmes orbitaux ?

\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
xy
http://www.semanticweb.org/hut-mar-pom/cosmic-ontology#SUN_SYSTEM“1”
http://www.semanticweb.org/hut-mar-pom/cosmic-ontology#EARTH_MOON_SYSTEM“2”
http://dbpedia.org/resource/Solar_System“4”
http://www.semanticweb.org/hut-mar-pom/cosmic-ontology#SOLAR_SYSTEM“4”
http://www.semanticweb.org/hut-mar-pom/cosmic-ontology#JUPITER_SYSTEM“6”

\normalsize

Quels type d’objets célestes sont présents le système solaire ?

\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
}
x
http://www.semanticweb.org/hut-mar-pom/cosmic-ontology#CelestialBody
http://www.semanticweb.org/hut-mar-pom/cosmic-ontology#Planet
http://www.semanticweb.org/hut-mar-pom/cosmic-ontology#Moon
http://www.semanticweb.org/hut-mar-pom/cosmic-ontology#Star
http://www.semanticweb.org/hut-mar-pom/cosmic-ontology#Asteroid