hydra-rdf 0.17.2 → 0.17.3
raw patch · 4 files changed
+24/−23 lines, 4 filesdep ~hydra-kernelPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: hydra-kernel
API changes (from Hackage documentation)
Files
- hydra-rdf.cabal +2/−2
- src/main/haskell/Hydra/Rdf/Serde.hs +13/−12
- src/main/haskell/Hydra/Rdf/Utils.hs +5/−5
- src/main/haskell/Hydra/Shacl/Coder.hs +4/−4
hydra-rdf.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: hydra-rdf-version: 0.17.2+version: 0.17.3 synopsis: Hydra's RDF/SHACL/OWL model and coder support description: Hydra is an implementation of the LambdaGraph data model, which takes advantage of an isomorphism between labeled hypergraphs and typed lambda calculus: in Hydra, "graphs are programs, and programs are graphs". RDF support for Hydra category: Data@@ -45,6 +45,6 @@ build-depends: base >=4.19.0 && <4.22 , containers >=0.6.7 && <0.8- , hydra-kernel ==0.17.2+ , hydra-kernel ==0.17.3 , scientific >=0.3.7 && <0.4 default-language: Haskell2010
src/main/haskell/Hydra/Rdf/Serde.hs view
@@ -22,6 +22,7 @@ import qualified Hydra.Overlay.Haskell.Lib.Logic as Logic import qualified Hydra.Overlay.Haskell.Lib.Math as Math import qualified Hydra.Overlay.Haskell.Lib.Optionals as Optionals+import qualified Hydra.Overlay.Haskell.Lib.Ordering as Ordering import qualified Hydra.Overlay.Haskell.Lib.Sets as Sets import qualified Hydra.Overlay.Haskell.Lib.Strings as Strings import qualified Hydra.Packaging as Packaging@@ -55,12 +56,12 @@ -- | Escape a single IRI character code to a string escapeIriChar :: Int -> String escapeIriChar c =- Logic.ifElse (Logic.or (Equality.lte c 32) (Logic.or (Equality.equal c 60) (Logic.or (Equality.equal c 62) (Logic.or (Equality.equal c 34) (Logic.or (Equality.equal c 123) (Logic.or (Equality.equal c 125) (Logic.or (Equality.equal c 124) (Logic.or (Equality.equal c 94) (Logic.or (Equality.equal c 96) (Equality.equal c 92)))))))))) (uchar4 c) (Strings.fromList [+ Logic.ifElse (Logic.or (Ordering.lte c 32) (Logic.or (Equality.equal c 60) (Logic.or (Equality.equal c 62) (Logic.or (Equality.equal c 34) (Logic.or (Equality.equal c 123) (Logic.or (Equality.equal c 125) (Logic.or (Equality.equal c 124) (Logic.or (Equality.equal c 94) (Logic.or (Equality.equal c 96) (Equality.equal c 92)))))))))) (uchar4 c) (Strings.fromList [ c]) -- | Escape a string for use in an N-Triples IRI. Disallowed characters are emitted as 4-digit UCHAR escapes. escapeIriStr :: String -> String-escapeIriStr s = Strings.cat (Lists.map escapeIriChar (Strings.toList s))+escapeIriStr s = Strings.concat (Lists.map escapeIriChar (Strings.toList s)) -- | Escape a single literal character code to a string escapeLiteralChar :: Int -> String@@ -70,7 +71,7 @@ -- | Escape a string for use in an N-Triples literal escapeLiteralString :: String -> String-escapeLiteralString s = Strings.cat (Lists.map escapeLiteralChar (Strings.toList s))+escapeLiteralString s = Strings.concat (Lists.map escapeLiteralChar (Strings.toList s)) -- | Convert an RDF graph to an expression graphToExpr :: Syntax.Graph -> Ast.Expr@@ -78,7 +79,7 @@ -- | Convert a value 0-15 to an uppercase hex digit code point hexDigit :: Int -> Int-hexDigit n = Logic.ifElse (Equality.lt n 10) (Math.add n 48) (Math.add (Math.sub n 10) 65)+hexDigit n = Logic.ifElse (Ordering.lt n 10) (Math.add n 48) (Math.add (Math.sub n 10) 65) -- | Convert an IRI to an expression iriToExpr :: Syntax.Iri -> Ast.Expr@@ -103,7 +104,7 @@ dt = Syntax.literalDatatypeIri lit lang = Syntax.literalLanguageTag lit lexExpr =- Serialization.cst (Strings.cat [+ Serialization.cst (Strings.concat [ "\"", (escapeLiteralString lex), "\""])@@ -151,13 +152,13 @@ uchar4 :: Int -> String uchar4 c = - let d3 = Optionals.fromOptional 0 (Math.maybeDiv c 4096)- r3 = Optionals.fromOptional 0 (Math.maybeMod c 4096)- d2 = Optionals.fromOptional 0 (Math.maybeDiv r3 256)- r2 = Optionals.fromOptional 0 (Math.maybeMod r3 256)- d1 = Optionals.fromOptional 0 (Math.maybeDiv r2 16)- d0 = Optionals.fromOptional 0 (Math.maybeMod r2 16)- in (Strings.cat2 "\\u" (Strings.fromList [+ let d3 = Optionals.withDefault 0 (Math.div c 4096)+ r3 = Optionals.withDefault 0 (Math.mod c 4096)+ d2 = Optionals.withDefault 0 (Math.div r3 256)+ r2 = Optionals.withDefault 0 (Math.mod r3 256)+ d1 = Optionals.withDefault 0 (Math.div r2 16)+ d0 = Optionals.withDefault 0 (Math.mod r2 16)+ in (Strings.concat2 "\\u" (Strings.fromList [ hexDigit d3, (hexDigit d2), (hexDigit d1),
src/main/haskell/Hydra/Rdf/Utils.hs view
@@ -71,7 +71,7 @@ encodeLiteral lit = case lit of Core.LiteralBinary v0 -> Syntax.Literal {- Syntax.literalLexicalForm = (Literals.binaryToString v0),+ Syntax.literalLexicalForm = (Literals.binaryToBase64 v0), Syntax.literalDatatypeIri = (xmlSchemaDatatypeIri "base64Binary"), Syntax.literalLanguageTag = Nothing} Core.LiteralBoolean v0 -> Syntax.Literal {@@ -139,7 +139,7 @@ -- | Construct an IRI from a namespace and local name iri :: String -> String -> Syntax.Iri-iri ns local = Syntax.Iri (Strings.cat2 ns local)+iri ns local = Syntax.Iri (Strings.concat2 ns local) -- | Construct a key IRI from a local name keyIri :: String -> Syntax.Iri@@ -151,12 +151,12 @@ -- | Convert a Hydra name to an RDF IRI nameToIri :: Core.Name -> Syntax.Iri-nameToIri name = Syntax.Iri (Strings.cat2 "urn:" (Core.unName name))+nameToIri name = Syntax.Iri (Strings.concat2 "urn:" (Core.unName name)) -- | Generate the next blank node and an incremented counter nextBlankNode :: Int -> (Syntax.Resource, Int) nextBlankNode counter =- (Syntax.ResourceBnode (Syntax.BlankNode (Strings.cat2 "b" (Literals.showInt32 counter))), (Math.add counter 1))+ (Syntax.ResourceBnode (Syntax.BlankNode (Strings.concat2 "b" (Literals.showInt32 counter))), (Math.add counter 1)) -- | Construct a property IRI from a record name and field name propertyIri :: Core.Name -> Core.Name -> Syntax.Iri@@ -165,7 +165,7 @@ let qualName = Names.qualifyName rname gname = Util.qualifiedNameModuleName qualName local_ = Util.qualifiedNameLocal qualName- in (Syntax.Iri (Strings.cat [+ in (Syntax.Iri (Strings.concat [ "urn:", (Optionals.cases gname "" Packaging.unModuleName), "#",
src/main/haskell/Hydra/Shacl/Coder.hs view
@@ -114,7 +114,7 @@ ShaclModel.definitionIri = iri, ShaclModel.definitionTarget = ShaclModel.PropertyShape { ShaclModel.propertyShapeCommon = _cp,- ShaclModel.propertyShapeConstraints = (Sets.fromList (Optionals.cat [+ ShaclModel.propertyShapeConstraints = (Sets.fromList (Optionals.givens [ minC, maxC])), ShaclModel.propertyShapeDefaultValue = Nothing,@@ -206,7 +206,7 @@ let descs = Pairs.first _dr cx1 = Pairs.second _dr in (- Optionals.fromOptional descs (Optionals.map (\p -> Lists.cons (withType (Core.wrappedTermTypeName v0) (Pairs.first p)) (Pairs.second p)) (Lists.uncons descs)),+ Optionals.withDefault descs (Optionals.map (\p -> Lists.cons (withType (Core.wrappedTermTypeName v0) (Pairs.first p)) (Pairs.second p)) (Lists.uncons descs)), cx1)) (encodeTerm subject (Core.wrappedTermBody v0) cx g) Core.TermOptional v0 -> Optionals.cases v0 (Right ([], cx)) (\_inner -> encodeTerm subject _inner cx g) Core.TermRecord v0 ->@@ -290,7 +290,7 @@ shaclCoder mod cx g = let typeEls =- Optionals.cat (Lists.map (\d -> case d of+ Optionals.givens (Lists.map (\d -> case d of Packaging.DefinitionType v0 -> Just ((\name -> \typ -> let schemaTerm = Core.TermVariable (Core.Name "hydra.core.Type") dataTerm =@@ -316,7 +316,7 @@ -- | Construct an error for unexpected input, given expected and found descriptions unexpectedE :: String -> String -> Either Errors.Error t0 unexpectedE expected found =- err (Strings.cat [+ err (Strings.concat [ "Expected ", expected, ", found: ",