hsparql 0.3.9 → 0.4.0
raw patch · 2 files changed
+14/−9 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Database.HSparql.QueryGenerator: class (TermLike a) => ObjectTermLike a
+ Database.HSparql.QueryGenerator: class TermLike a => ObjectTermLike a
- Database.HSparql.QueryGenerator: class (TermLike a) => PredicateTermLike a
+ Database.HSparql.QueryGenerator: class TermLike a => PredicateTermLike a
- Database.HSparql.QueryGenerator: class (TermLike a) => SubjectTermLike a
+ Database.HSparql.QueryGenerator: class TermLike a => SubjectTermLike a
Files
- Database/HSparql/Connection.hs +13/−8
- hsparql.cabal +1/−1
Database/HSparql/Connection.hs view
@@ -17,8 +17,9 @@ askQueryRaw, updateQueryRaw, describeQueryRaw,+ -- * parse query results- structureContent+ structureContent, ) where @@ -32,11 +33,13 @@ import qualified Data.Text as T import qualified Data.Text.Encoding as E import qualified Data.Text.Encoding as T+import qualified Data.Text.Lazy.Encoding as EL import Database.HSparql.QueryGenerator import Network.Connection (TLSSettings (..)) import Network.HTTP import Network.HTTP.Conduit import Network.HTTP.Types.Header+import qualified Network.HTTP.Types.URI as URI import Text.RDF.RDF4H.TurtleParser import Text.XML.Light import Text.XML.Light.Lexer (XmlSource)@@ -58,7 +61,7 @@ -- | Transform the 'String' result from the HTTP request into a two-dimensional -- table storing the bindings for each variable in each row.-structureContent :: XmlSource a => a -> Maybe [[BindingValue]]+structureContent :: (XmlSource a) => a -> Maybe [[BindingValue]] structureContent s = do e <- doc@@ -135,19 +138,21 @@ selectQueryRaw :: Database.HSparql.Connection.EndPoint -> String -> IO (Maybe [[BindingValue]]) selectQueryRaw ep q = do- let uri = ep ++ "?" ++ urlEncodeVars [("query", q)]+ let contentParams = [("query", Just (T.encodeUtf8 (T.pack q)))] h1 = (hAccept, "application/sparql-results+xml") h2 = (hUserAgent, "hsparql-client")- request' <- parseRequest uri+ h3 = (hContentType, "application/x-www-form-urlencoded")+ let request' = parseRequest_ ep let request = request'- { method = "GET",- requestHeaders = [h1, h2]+ { method = "POST",+ requestHeaders = [h1, h2, h3],+ requestBody = RequestBodyBS (URI.renderQuery False contentParams) } let settings = mkManagerSettings (TLSSettingsSimple True False False def) Nothing manager <- liftIO $ newManager settings resp <- httpLbs request manager- return $ structureContent (LB.unpack (responseBody resp))+ return $ structureContent (EL.decodeUtf8 (responseBody resp)) askQueryRaw :: Database.HSparql.Connection.EndPoint -> String -> IO Bool askQueryRaw ep q = do@@ -204,7 +209,7 @@ -- | Takes a generated uri and makes simple HTTP request, -- asking for RDF N3 serialization. Returns either 'ParseFailure' or 'RDF'-httpCallForRdf :: RDF.Rdf a => String -> IO (Either RDF.ParseFailure (RDF.RDF a))+httpCallForRdf :: (RDF.Rdf a) => String -> IO (Either RDF.ParseFailure (RDF.RDF a)) httpCallForRdf uri = do let h1 = (hUserAgent, "hsparql-client") h2 = (hAccept, "text/turtle")
hsparql.cabal view
@@ -1,5 +1,5 @@ Name: hsparql-Version: 0.3.9+Version: 0.4.0 Synopsis: A SPARQL query generator and DSL, and a client to query a SPARQL server. Category: Database Description: