Changeset 12764

Show
Ignore:
Timestamp:
30.10.2009 18:15:26 (3 weeks ago)
Author:
maeder
Message:

implemented views

Location:
trunk/OWL
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/OWL/Logic_OWL.hs

    r12478 r12764  
    6767          if isAxiom namedSen then empty else space <> text "%implied" 
    6868    sym_of OWL = symOf 
     69    symmap_of OWL = symMapOf 
    6970 
    7071instance StaticAnalysis OWL OntologyFile Axiom 
     
    8586      symbol_to_raw OWL = ASymbol 
    8687      induced_from_morphism OWL = inducedFromMor 
     88      induced_from_to_morphism OWL = inducedFromToMor 
    8789      cogenerated_sign OWL = cogeneratedSign 
    8890      generated_sign OWL = fail "cogenerated_sign OWL nyi" 
  • trunk/OWL/Morphism.hs

    r12072 r12764  
    2323  , statSymbMapItems 
    2424  , inducedFromMor 
     25  , inducedFromToMor 
     26  , symMapOf 
    2527  , mapSen 
    2628  ) where 
     
    3335import Common.DocUtils 
    3436import Common.Doc 
     37import Common.ExtSign 
    3538import Common.Result 
    3639import Common.Lib.State (execState) 
     40import Common.Lib.Rel (setToMap) 
    3741 
    3842import Control.Monad 
     
    5660isOWLInclusion m = Map.null (mmaps m) && isSubSign (osource m) (otarget m) 
    5761 
     62symMap :: Map.Map Entity URI -> Map.Map Entity Entity 
     63symMap = Map.mapWithKey (\ (Entity ty _) -> Entity ty) 
     64 
    5865inducedElems :: Map.Map Entity URI -> [Entity] 
    59 inducedElems = Map.elems . Map.mapWithKey (\ (Entity ty _) u -> Entity ty u) 
     66inducedElems = Map.elems . symMap 
    6067 
    6168inducedSign :: Map.Map Entity URI -> Sign -> Sign 
     
    8289    , mmaps = mm } 
    8390 
     91inducedFromToMor :: Map.Map RawSymb RawSymb -> ExtSign Sign Entity 
     92                 -> ExtSign Sign Entity -> Result OWLMorphism 
     93inducedFromToMor rm (ExtSign sig _) (ExtSign tar _) = do 
     94  mor <- inducedFromMor rm sig 
     95  if isSubSign (otarget mor) tar 
     96    then return mor { otarget = tar } 
     97    else fail "OWL.inducedFromToMor" 
     98 
     99symMapOf :: OWLMorphism -> Map.Map Entity Entity 
     100symMapOf mor = Map.union (symMap $ mmaps mor) $ setToMap $ symOf $ osource mor 
     101 
    84102instance Pretty OWLMorphism where 
    85103  pretty m = let 
     
    148166             ++ showDoc u " and " ++ showDoc t "") 
    149167  Map.empty 
    150   . (concatMap 
    151     $ \ (SymbMapItems m us) -> 
     168  . concatMap (\ (SymbMapItems m us) -> 
    152169      let ps = map (\ (u, v) -> (u, fromMaybe u v)) us in 
    153170      case m of 
  • trunk/OWL/StaticAnalysis.hs

    r11854 r12764  
    7070  DatatypeRestriction r fcs -> do 
    7171    anaDataRange r 
    72     mapM_ anaConstant $ map snd fcs 
     72    mapM_ (anaConstant . snd) fcs 
    7373 
    7474anaDescription :: Description -> State Sign () 
     
    165165            integrateNamespaces (namespaceMap inSign) ns 
    166166        ofile' = renameNamespace transMap ofile 
     167        syms = Set.difference (symOf accSign) $ symOf inSign 
    167168        (sens, accSign) = runState 
    168169          (mapM anaAxiom $ axiomsList $ ontology ofile') 
    169170          inSign {namespaceMap = integNamespace 
    170                  ,ontologyID   = uri $ ontology $ ofile' 
     171                 ,ontologyID   = uri $ ontology ofile' 
    171172                 } 
    172     in Result diags1 $ Just (ofile', mkExtSign accSign, concat sens) 
     173    in Result diags1 
     174           $ Just (ofile', ExtSign accSign syms, concat sens) 
    173175    where 
    174176        oName = uri $ ontology ofile 
     
    178180          if null iuri then [] 
    179181            else 
    180              let uri' = take ((length iuri) -1) iuri 
    181              in  if uri' `elem` importList 
     182             let uri' = take (length iuri - 1) iuri 
     183             in  if elem uri' importList 
    182184                  then [] 
    183185                  else 
     
    186188                        ("\"" ++ uri' ++ "\"" ++ 
    187189                                  " is not imported in ontology: " ++ 
    188                                   (show $ localPart oName)) 
     190                                  show (localPart oName)) 
    189191                        ()] 
    190         importList = (localPart oName): 
    191                         (map localPart (importsList $ ontology ofile)) 
     192        importList = localPart oName 
     193          : map localPart (importsList $ ontology ofile) 
    192194 
    193195        removeDefault :: Namespace -> Namespace 
    194         removeDefault namespace = 
    195             Map.delete "owl11" (Map.delete "owl" (Map.delete "xsd" 
    196                (Map.delete "rdf" (Map.delete "rdfs" 
    197                   (Map.delete "xml" namespace))))) 
     196        removeDefault = 
     197            Map.delete "owl11" . Map.delete "owl" . Map.delete "xsd" 
     198               . Map.delete "rdf" . Map.delete "rdfs" 
     199                  . Map.delete "xml" 
    198200 
    199201getObjRoleFromExpression :: ObjectPropertyExpression -> IndividualRoleURI 
     
    207209getObjRoleFromSubExpression sopExp = 
    208210    case sopExp of 
    209       OPExpression opExp -> (getObjRoleFromExpression opExp):[] 
     211      OPExpression opExp -> [getObjRoleFromExpression opExp] 
    210212      SubObjectPropertyChain expList -> 
    211213          map getObjRoleFromExpression expList 
     
    224226    case anno of 
    225227      ExplicitAnnotation auri (Constant value (Typed _)) -> 
    226           if localPart auri == "Implied" then 
    227              if value == "true" then 
    228                  True 
    229                else False 
     228          if localPart auri == "Implied" then value == "true" 
    230229            else isToProve r 
    231230      _ -> isToProve r