initial structure for NaiveQE

This commit is contained in:
Felix Dilke 2026-02-03 11:03:46 +00:00
parent 0b98490756
commit 86c9b73ebe
2 changed files with 9 additions and 6 deletions

View File

@ -14,19 +14,22 @@
module Datalog.NaiveQE where module Datalog.NaiveQE where
import Datalog.QueryEngine import Datalog.QueryEngine
import Data.Text import Data.Text
import Data.Map (Map)
import Data.Map qualified as Map
import Datalog.DatalogDB import Datalog.DatalogDB
import Datalog.DatalogParser import Datalog.DatalogParser
import Control.Exception import Control.Exception
data NaiveQE = NaiveQE data (DatalogDB db) => NaiveQE db = NaiveQE
{ {
db :: db,
herbrand :: Map Text Relation
} deriving (Show, Eq) } deriving (Show, Eq)
instance QueryEngine NaiveQE where instance QueryEngine NaiveQE where
queryEngine :: (DatalogDB db) => db -> NaiveQE queryEngine :: (DatalogDB db) => db -> NaiveQE db
queryEngine db = NaiveQE { } queryEngine db = NaiveQE { }
query :: NaiveQE -> Text -> Text query :: (DatalogDB db) => NaiveQE db -> Text -> Text
query qe queryText = query qe queryText =
case parseDatalog queryText of case parseDatalog queryText of
Right (Query texts literals) -> "#NYI" Right (Query texts literals) -> "#NYI"

View File

@ -10,7 +10,7 @@ import Datalog.DatalogDB
import Data.Text import Data.Text
class QueryEngine qe where class QueryEngine qe where
queryEngine :: (DatalogDB db) => db -> qe queryEngine :: (DatalogDB db) => db -> qe db
query :: qe -> Text -> Text query :: (DatalogDB db) => qe db -> Text -> Text