diff --git a/Database/HSparql/QueryGenerator.hs b/Database/HSparql/QueryGenerator.hs
--- a/Database/HSparql/QueryGenerator.hs
+++ b/Database/HSparql/QueryGenerator.hs
@@ -39,7 +39,7 @@
     -- * Term Manipulation
 
     -- ** Operations
-    , (.+.), (.-.), (.*.), (./.)
+    , (.+.), (.-.), (.*.), (./.), (.&&.), (.||.)
 
     -- ** Relations
     , (.==.), (.!=.), (.<.), (.>.), (.<=.), (.>=.)
@@ -58,7 +58,7 @@
     , isURI
     , isBlank
     , isLiteral
-    , regex
+    , regex, regexOpts
 
     -- * Printing Queries
     , qshow
@@ -308,6 +308,21 @@
 (./.) :: (TermLike a, TermLike b) => a -> b -> Expr
 (./.) = operation Divide
 
+-- | Combine two boolean terms with AND
+(.&&.) :: (TermLike a, TermLike b) => a -> b -> Expr
+(.&&.) = operation And
+
+-- | Combine two boolean terms with OR
+(.||.) :: (TermLike a, TermLike b) => a -> b -> Expr
+(.||.) = operation Or
+
+infixr 2 .||.
+infixr 3 .&&.
+infixl 7 .*.
+infixl 7 ./.
+infixl 6 .+.
+infixl 6 .-.
+
 -- Relations
 relation :: (TermLike a, TermLike b) => Relation -> a -> b -> Expr
 relation rel x y = RelationalExpr rel (expr x) (expr y)
@@ -357,6 +372,10 @@
 builtinFunc2 :: Function -> BuiltinFunc2
 builtinFunc2 f x y = BuiltinCall f [expr x, expr y]
 
+type BuiltinFunc3 = forall a b c . (TermLike a, TermLike b, TermLike c) => a -> b -> c -> Expr
+builtinFunc3 :: Function -> BuiltinFunc3
+builtinFunc3 f x y z = BuiltinCall f [expr x, expr y, expr z]
+
 str :: BuiltinFunc1
 str = builtinFunc1 StrFunc
 
@@ -390,6 +409,9 @@
 regex :: BuiltinFunc2
 regex = builtinFunc2 RegexFunc
 
+regexOpts :: BuiltinFunc3
+regexOpts = builtinFunc3 RegexFunc
+
 -- Default QueryData
 queryData :: QueryData
 queryData = QueryData
@@ -448,7 +470,7 @@
 data VarOrNode = Var' Variable
                | RDFNode Node
 
-data Operation = Add | Subtract | Multiply | Divide
+data Operation = Add | Subtract | Multiply | Divide | And | Or
 
 data NumericExpr = NumericLiteralExpr Integer
                  | OperationExpr Operation Expr Expr
@@ -571,6 +593,8 @@
   qshow Subtract = "-"
   qshow Multiply = "*"
   qshow Divide   = "/"
+  qshow And      = "&&"
+  qshow Or       = "||"
 
 instance QueryShow NumericExpr where
   qshow (NumericLiteralExpr n) = show n
diff --git a/hsparql.cabal b/hsparql.cabal
--- a/hsparql.cabal
+++ b/hsparql.cabal
@@ -1,6 +1,6 @@
 Name:          hsparql
 Homepage:      https://github.com/robstewart57/hsparql
-Version:       0.2.9
+Version:       0.3.0
 Synopsis:      A SPARQL query generator and DSL, and a client to query a SPARQL server.
 Category:      Database
 Description:
@@ -27,7 +27,7 @@
                , HTTP >= 4
                , mtl
                , xml
-               , rdf4h >= 2.0.0
+               , rdf4h >= 3.0.1
                , bytestring
                , MissingH
                , network
@@ -39,7 +39,7 @@
   type:          exitcode-stdio-1.0
   main-is:       AllTests.hs
   build-depends: hsparql
-                 , rdf4h >= 2.0.0
+                 , rdf4h >= 3.0.1
                  , base
                  , text
                  , containers
