L’absence de preuves n’est pas la preuve de l’absence

Qu’on en commun la recherche de la vie extra-terrestre et la recherche des armes de destruction massive en Irak ?

Elles supposent toutes les deux que le monde est ouvert, et que ce n’est pas parce qu’on n’a rien trouvé qu’il n’y a rien; dans l’un et l’autre cas, l’absence de preuve n’est pas la preuve de l’absence(*).

Dans le monde ouvert des recherches sur le « web of data », hé bien c’est pareil.

Si vous travaillez sur un ensemble de données sur un domaine, rien ne vous dit que quelqu’un, quelque part, n’a pas publié des données qui complètent, voire contredisent, les vôtres.
Le cas d’utilisation que nous avons est le suivant : nous avons les données de jour de fermeture des équipements touristiques (musées, attractions, etc.), par exemple :

:WidgetMuseum   :openingPeriod   _:p1
_:p1      :begins     2008-03-01
_:p1      :ends        2008-10-31
_:p1      :closingDay      :Tuesday
_:p1      :closingDay      :Sunday

Pouvons-nous en déduire, dans un monde ouvert, que les jours d’ouverture sont lundi, mercredi, jeudi, vendredi et samedi ?
Non. Pour cela il faut lever cette assomption, en déclarant dans l’ontologie que tous les jours qui ne sont pas fermés sont ouverts. Ou alors, cette déduction peut se faire par une négation en SPARQL, en utilisant cette astuce :

CONSTRUCT { ?s :openingDay ?dayofweek }
WHERE
  {
    :WidgetMuseum   :openingPeriod ?s
    ?s :begins 2008-03-01 .
    ?s :ends        2008-10-31 .
    ?dayofwee a somedictionary:dayOfWeek .
    OPTIONAL { ?s2 :closingDay ?dayofweek . FILTER (?s2 = ?s) }
    FILTER (!bound (?s2))
  }

Je construis « s est un jour d’ouverture » si je ne trouve aucun s2 tel que s2 est un jour de fermeture et s2 = s (le truc difficile à appréhender ici est le fait d’utiliser une variable s2 différente de s, mais en disant que s2 = s. Si on utilisait directement s, s serait toujours « bindée », puisque les statements qui sont avant la clause optionnelle peuvent très bien renvoyer une réponse à eux tout seul).

Maintenant, serait-il possible d’éliminer l’assomption que quelqu’un, quelque part, ait pu publier de la donnée complémentaire/contradictoire avec la mienne ? pourquoi ne pas imaginer un système qui serait capable d’interroger l’intégralité des données publiées sur le web ? si un tel système existait, cela éliminerait du coup l’assomption du monde ouvert; quel serait alors l’architecture d’un tel système ? grosso modo, cela pourrait être soit :

  • Un « google du web of data », un super index de toutes les données RDF publiées sur le web; une super base de connaissances planétaire, en somme;
  • Une architecture décentralisée, à base d’agents détenant chacun un bout de réseau de connaissances, étant capables de discuter entre eux, de savoir quel agent détient quel type de donnée, à base d’annuaires, de rediriger les requêtes vers tel autre agent, etc.

Si la première solution semble d’un point de vue ingénierie la plus directe, sa centralisation (logique) pose tout de même question; la seconde solution se rapprocherait plus de la philosophie du web, et si elle est plus floue en terme de mise en œuvre, elle n’en reste sans doute pas moins valable.
(autre chose un peu annexe : une fois l’ensemble des données publiées interrogeables, quid du « data-rank », un algorithme de classement des résultats d’une recherche inspiré du « page-rank » ?)
Et vous, qu’en pensez-vous ?

______
(*) : Pour la formidable citation de Rumsfeld sur la justification de la guerre en Irak, voir ici. Et pour la recherche de la vie extra-terrestre, voir .

2 commentaires pour L’absence de preuves n’est pas la preuve de l’absence

  1. bernard dit :

    Une autre voie intéressante dans ce genre de cas, et qui n’est que très peu envisagée dans le monde du Web sémantique pour le moment, est de formaliser l’absence d’information sur un jour donné par un prédicat spécifique. Dans le cas présent le système sait que le musée est fermé le mardi et le dimanche, et il « sait qu’il ne sait rien » sur les autres jours. Donc on peut très bien imaginer de représenter les périodes d’ouverture et de fermeture avec une logique de « tiers inclus » utilisant trois types de prédicat (ouvert, fermé, peut-être). J’imagine une interface de type mobile représentant en temps réel les infrastructures ouvertes en vert, les infrastructures fermées en rouge, les peut-être en orange. J’ai une information positive pour tous les cas, et j’agis en conséquence suivant le contexte. Si le « peut-être » est juste au coin de la rue, ça vaut le coup de tenter, s’il me fait faire un détour de 100 km, ça se discute vu le prix du carburant …

  2. jmainka dit :

    Ouh qu’elle est moche, cette requête SPARQL ! Pourtant on a tout ce qui faut sous la main si on accepte la notion de « formule », comme c’est le cas en Notation3. L’exemple précédent s’écrirait plus élégamment :

    @forAll :day, :dayofweek .
    {
    :myGraph log:semantics ?f .
    ?f log:includes {
    :WidgetMuseum :openingPeriod :day
    :day :begins 2008-03-01 .
    :day :ends 2008-10-31 .
    } .
    ?dayofweek a somedictionary:dayOfWeek .
    ?f log:notIncludes {
    :day :closingDay :dayofweek
    } .
    } => {
    :day :openingDay :dayofweek .
    }

Laisser un commentaire

Choisissez une méthode de connexion pour poster votre commentaire:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :