aboutsummaryrefslogtreecommitdiffstats
path: root/src/Data/JLD/NodeMap.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Data/JLD/NodeMap.hs')
-rw-r--r--src/Data/JLD/NodeMap.hs88
1 files changed, 0 insertions, 88 deletions
diff --git a/src/Data/JLD/NodeMap.hs b/src/Data/JLD/NodeMap.hs
deleted file mode 100644
index 0c40c9a..0000000
--- a/src/Data/JLD/NodeMap.hs
+++ /dev/null
@@ -1,88 +0,0 @@
1module Data.JLD.NodeMap (NodeMap, BNMParams (..)) where
2
3import Data.JLD.Prelude
4
5import Data.JLD.Control.Monad.RES (REST, execREST, runREST, withEnvRES, withErrorRES, withErrorRES', withStateRES)
6import Data.JLD.Error (JLDError (..))
7import Data.JLD.Model.ActiveContext (ActiveContext (..), containsProtectedTerm, lookupTerm, newActiveContext)
8import Data.JLD.Model.Direction (Direction (..))
9import Data.JLD.Model.IRI (CompactIRI (..), endsWithGenericDelim, isBlankIri, parseCompactIri)
10import Data.JLD.Model.Keyword (Keyword (..), allKeywords, isKeyword, isKeywordLike, isNotKeyword, parseKeyword)
11import Data.JLD.Model.Language (Language (..))
12import Data.JLD.Model.TermDefinition (TermDefinition (..), newTermDefinition)
13import Data.JLD.Model.URI (parseUri, uriToIri)
14import Data.JLD.Options (ContextCache, Document (..), DocumentCache, DocumentLoader (..), JLDVersion (..))
15import Data.JLD.Util (flattenSingletonArray, valueContains, valueContainsAny, valueIsTrue, valueToArray)
16
17import Control.Monad.Except (MonadError (..))
18import Data.Aeson (Object, Value (..))
19import Data.Aeson.Key qualified as K (fromText, toText)
20import Data.Aeson.KeyMap qualified as KM (delete, keys, lookup, member, size)
21import Data.Map.Strict qualified as M (delete, insert, lookup)
22import Data.RDF (parseIRI, parseRelIRI, resolveIRI, serializeIRI, validateIRI)
23import Data.Set qualified as S (insert, member, notMember, size)
24import Data.Text qualified as T (drop, dropEnd, elem, findIndex, isPrefixOf, null, take, toLower)
25import Data.Vector qualified as V (length)
26import Text.URI (URI, isPathAbsolute, relativeTo)
27import Text.URI qualified as U (render)
28
29type NodeMap = Map (Text, Text, Text) Value
30
31type BNMT e m = REST BNMEnv (JLDError e) BNMState m
32
33data BNMEnv = BNMEnv
34 { bnmEnvDocument :: Value
35 , bnmEnvActiveGraph :: Text
36 , bnmEnvActiveSubject :: Maybe Text
37 , bnmEnvActiveProperty :: Maybe Text
38 }
39 deriving (Show)
40
41newtype BNMState = BNMState
42 { bnmStateNodeMap :: NodeMap
43 }
44 deriving (Show, Eq)
45
46data BNMParams = BNMParams
47 { bnmParamsNodeMap :: NodeMap
48 , bnmParamsActiveGraph :: Text
49 , bnmParamsActiveSubject :: Maybe Text
50 , bnmParamsActiveProperty :: Maybe Text
51 , bnmParamsList :: Map Text Value
52 }
53 deriving (Show, Eq)
54
55bnmModifyNodeMap :: Monad m => (NodeMap -> NodeMap) -> BNMT e m ()
56bnmModifyNodeMap fn = modify \s -> s{bnmStateNodeMap = fn (bnmStateNodeMap s)}
57
58buildNodeMap' :: Monad m => BNMT e m ()
59buildNodeMap' = do
60 pure ()
61
62buildNodeMap :: Monad m => Value -> (BNMParams -> BNMParams) -> m NodeMap
63buildNodeMap document paramsFn = do
64 BNMState{..} <- buildNodeMap' |> execREST env st
65 pure bnmStateNodeMap
66 where
67 BNMParams{..} =
68 paramsFn
69 BNMParams
70 { bnmParamsNodeMap = mempty
71 , bnmParamsActiveGraph = show KeywordDefault
72 , bnmParamsActiveSubject = Nothing
73 , bnmParamsActiveProperty = Nothing
74 , bnmParamsList = mempty
75 }
76
77 env =
78 BNMEnv
79 { bnmEnvDocument = document
80 , bnmEnvActiveGraph = bnmParamsActiveGraph
81 , bnmEnvActiveSubject = bnmParamsActiveSubject
82 , bnmEnvActiveProperty = bnmParamsActiveProperty
83 }
84
85 st =
86 BNMState
87 { bnmStateNodeMap = bnmParamsNodeMap
88 }