module ProjectM36.InclusionDependency where import ProjectM36.Base import ProjectM36.Attribute import ProjectM36.Error import ProjectM36.Relation import qualified Data.Map as M import qualified Data.Text as T inclusionDependenciesAsRelation :: InclusionDependencies -> Either RelationalError Relation inclusionDependenciesAsRelation incDeps = do mkRelationFromList attrs (map incDepAsAtoms (M.toList incDeps)) where attrs = attributesFromList [Attribute "name" TextAtomType, Attribute "sub" TextAtomType, Attribute "super" TextAtomType ] incDepAsAtoms (name, (InclusionDependency exprA exprB)) = [TextAtom name, TextAtom (T.pack (show exprA)), TextAtom (T.pack (show exprB))]