[Fencommits] fenserve: try using Raptor and Turtle in FenServe; now I get raptor errors

Benja Fallenstein benja.fallenstein at gmail.com
Sun Mar 25 18:14:33 EEST 2007


Fri Mar 23 16:52:03 EET 2007  Benja Fallenstein <benja.fallenstein at gmail.com>
  * try using Raptor and Turtle in FenServe; now I get raptor errors
diff -rN -u old-fenserve/FenServe.hs new-fenserve/FenServe.hs
--- old-fenserve/FenServe.hs	2007-03-25 18:14:33.000000000 +0300
+++ new-fenserve/FenServe.hs	2007-03-25 18:14:33.000000000 +0300
@@ -78,7 +78,7 @@
                  deriving (Show, Read)
 
 emptyState :: Ptr
-emptyState = runStormIO (writeData "" $ Dir (IRI "") []) Map.empty
+emptyState = runStormIO (writeData "ex:" $ Dir (IRI "ex:") []) Map.empty
 
 type Ptr = (Node, Pool)
 type FenServe = StateT Node StormIO
@@ -165,16 +165,16 @@
 bID :: Node -> BlockId
 bID (IRI ('b':'l':'k':':':s)) = BlockId $ takeWhile (/= '#') s
 bID node = error $ "Not a block IRI: " ++ show node
-  
+
 readGraph :: StormMonad m => BlockId -> m Graph
-readGraph bid = do triples <- readBlock bid; let uri = bURI bid
-                   let triples' = everywhere (mkT $ absolutizeNode uri) triples
-                   return $ toGraph (IRI uri) (triples' :: Set Triple)
+readGraph bid = do bytes <- getBlock bid; let uri = bURI bid
+                   let (ts, nss) = unsafePerformIO $ 
+                           Raptor.bytesToTriples "turtle" bytes uri
+                   return $ raptorToGraph ts nss uri
 
 writeGraph :: StormMonad m => Graph -> m BlockId
-writeGraph g = let triples = fromGraph g; uri = iriStr $ defaultGraph g
-                   triples' = everywhere (mkT $ relativizeNode uri) triples
-               in writeBlock (triples' :: Set Triple)
+writeGraph g = do let (ts,nss) = graphToRaptor g; uri = iriStr $ defaultGraph g
+                  addBlock $ unsafePerformIO $ Raptor.triplesToBytes ts nss uri
                     
 readData :: (FromRDF a, StormMonad m) => Node -> m a
 readData node = do graph <- readGraph (bID node)




More information about the Fencommits mailing list