Wpadłem na pomysł, aby napisać moduł, który na podstawie informacji w zadanym obiekcie będzie w stanie je rozszerzać iteracyjnie tak długo, aż poznamy jakąś nową, poszukiwaną przez nas cechę tego obiektu.
Program miałby podane instrukcje, jakie dane mogą być użyte do zdobywania jakich innych danych i na tej podstawie samodzielnie określałby, w jakiej kolejności i jakie metody wykonać, aby osiągnąć zadany “cel”.
Oczywiście myślałem, aby do tego celu użyć Prologa, i nawet znalazłem interpreter prologa w js - tau-prolog.js, ale nie znalazłem informacji, jak wykonywać tam np. zapytania AJAX-owe, a wydaje mi się to kluczowe dla naszych potencjalnych zastosowań.
Jednym z możliwych zastosowań byłoby wydobywanie informacji o przejeździe pociągiem - mamy pdf-a z biletem, wyciągamy numer pociągu, datę i czas odjazdu. Mamy datę i czas odjazdu, to możemy sprawdzić opóźnienia lub to czy w pociągu będzie gniazdko z prądem, itp. Nie trzeba będzie określać kolejności wykonywania poszczególnych kroków - tylko: co mamy oraz co chcemy mieć. Czyli jest deklaratywnie i foki się cieszą
Trochę więcej szczegółów i hipotetyczny szkic API umieściłem w T1802:
https://hub.sealcode.org/T1802
Jestem ciekaw Waszych przemyśleń