-
Data: 2014-05-28 23:54:36
Temat: Re: Prolog i hierarchiczna baza faktów
Od: Andrzej Jarzabek <a...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 28/05/2014 19:35, Sebastian Biały wrote:
> On 2014-05-27 23:52, Edek wrote:
>
>> Hierarchiczną? Czy punkt a jest b czy b nad a i dlaczego?
>
> Ponieważ niezygle czesto wystepują tam zalezności "coś jest wewnątrz
> czegoś". Z programowania to oznacza częste relacje parent<->child
> wyrażone z relacji między obiektami w pamięci. Myślę że to dość istotna
> obsewacja.
Rozumiem, że chodzi ci o możliwość definiowania w języku zapytań reguł
typu "jeśli a jest wewnątrz b a b jest wewnątrz c, to a jest rónież
wewnątrz c?
> Danych jest *bardzo* dużo, powiedzmy ze zajmuja solidne gigabajty w
> pamięci. Jednak relacji nie ma za wiele,
Co rozumiesz przez "relację"? Chodzi o to, że rodzajów powiązań między
danymi jest niewiele?
Generalnie nie znam się zbyt dobrze, ale z wykorzystaniem Prologa do
przeczesywania dużej ilości danych może być problem.
Ja bym rozważył możliwość zembedowania jakiegoś języka skryptowego,
który ci będzie łatwo zintegrować (np. ten twój JavaScript czy Python) i
wystawienia mu API. W dowolnym języku Turing complete możesz wtedy
napisać dowolne zapytania (nawet jeśli ich wyrażenie nie będzie zbyt
eleganckie). W miarę identyfikacji typowych wzorców zapytań możesz
zrefaktoryzować swoje zapytania w bibliotekę/framework i efektywnie
stworzyć DSL-a osadzonego w wybranym języku.
> Problem już został wstepnie rozwiązany w C++ i tam mam najbardziej
> rozbudowane "zapytania" eksperymentalne. Niestety wygląd kodu ukrywa
> intencje (więcej emulacji logiki niż sensu zapytania).
C++, zwłaszcza C++11 jest dość ekspresywny, powinieneś móc zdefiniować
infrastrukturę tak, żeby "emulację logiki" poukrywać w klasach,
funkcjach, ostatecznie makrach - przy odpowiedniej bibliotece powinieneś
mieć czytelny sens zapytania z dodatkowym bonusem w postaci type safety.
Oczywiście nadal pozostaje ci problem taki, że jak masz mieć język
zapytań w C++ to musisz w swoją aplikację wbudować kompilator (albo
kazać użytkownikowi kompilować te zapytania samodzielnie), plus gdybyś
chciał je uruchamiać po stronie serwera to zabezpieczenie aplikacji jest
znacznie trudniejsze - tak więc C++ niekoniecznie jest dobrym pomysłem
tak czy inaczej.
> Chcę zrobić
> eksperyment z językiem zorientowanym logicznie aby sprawdzić czy będzie
> bardziej czytelny. Nie jestem tez zadowolony z mojej "bazy danych" i mam
> przeczucie że zmiene jej organizacji może coś pomóc. Tu muszę szeroko
> poczytać o innych organizacjach baz danych.
Może wrzuć w relacyjną?
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-24 Aby WKOOOORWIĆ ekofaszystów ;-)
- 2024-11-22 OC - podwyżka
- 2024-11-22 wyszedł z domu bez buta
- 2024-11-22 Bieda hud.
- 2024-11-24 DS1813-10 się psuje
- 2024-11-23 Białystok => Inżynier bezpieczeństwa aplikacji <=
- 2024-11-23 Szczecin => QA Engineer <=
- 2024-11-23 Warszawa => SEO Specialist (15-20h tygodniowo) <=
- 2024-11-22 Warszawa => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-22 Warszawa => Senior Account Manager <=
- 2024-11-22 Warszawa => Key Account Manager <=
- 2024-11-22 Warszawa => DevOps Specialist <=
- 2024-11-22 Kraków => IT Expert (Network Systems area) <=
- 2024-11-22 Warszawa => Infrastructure Automation Engineer <=
- 2024-11-22 Warszawa => Presales / Inżynier Wsparcia Technicznego IT <=