OCaml library for JSONfeed parsing and creation
1type t = [ 2 | `Cites 3 | `CitesAsAuthority 4 | `CitesAsDataSource 5 | `CitesAsEvidence 6 | `CitesForInformation 7 | `UsesDataFrom 8 | `UsesMethodIn 9 | `UsesConclusionsFrom 10 | `AgreesWith 11 | `DisagreesWith 12 | `Confirms 13 | `Refutes 14 | `Disputes 15 | `Critiques 16 | `Qualifies 17 | `Corrects 18 | `Updates 19 | `Extends 20 | `Parodies 21 | `Plagiarizes 22 | `Derides 23 | `Ridicules 24 | `Describes 25 | `Documents 26 | `CitesAsSourceDocument 27 | `CitesAsMetadataDocument 28 | `Compiles 29 | `Reviews 30 | `Retracts 31 | `Supports 32 | `GivesSupportTo 33 | `ObtainsSupportFrom 34 | `GivesBackgroundTo 35 | `ObtainsBackgroundFrom 36 | `SpeculatesOn 37 | `CitesAsPotentialSolution 38 | `CitesAsRecommendedReading 39 | `CitesAsRelated 40 | `IncludesQuotationFrom 41 | `IncludesExcerptFrom 42 | `RepliesTo 43 | `HasReplyFrom 44 | `LinksTo 45 | `SharesAuthorWith 46 | `SharesJournalWith 47 | `SharesPublicationVenueWith 48 | `SharesFundingAgencyWith 49 | `SharesAuthorInstitutionWith 50 | `Other of string 51] 52 53let to_string = function 54 | `Cites -> "cites" 55 | `CitesAsAuthority -> "citesAsAuthority" 56 | `CitesAsDataSource -> "citesAsDataSource" 57 | `CitesAsEvidence -> "citesAsEvidence" 58 | `CitesForInformation -> "citesForInformation" 59 | `UsesDataFrom -> "usesDataFrom" 60 | `UsesMethodIn -> "usesMethodIn" 61 | `UsesConclusionsFrom -> "usesConclusionsFrom" 62 | `AgreesWith -> "agreesWith" 63 | `DisagreesWith -> "disagreesWith" 64 | `Confirms -> "confirms" 65 | `Refutes -> "refutes" 66 | `Disputes -> "disputes" 67 | `Critiques -> "critiques" 68 | `Qualifies -> "qualifies" 69 | `Corrects -> "corrects" 70 | `Updates -> "updates" 71 | `Extends -> "extends" 72 | `Parodies -> "parodies" 73 | `Plagiarizes -> "plagiarizes" 74 | `Derides -> "derides" 75 | `Ridicules -> "ridicules" 76 | `Describes -> "describes" 77 | `Documents -> "documents" 78 | `CitesAsSourceDocument -> "citesAsSourceDocument" 79 | `CitesAsMetadataDocument -> "citesAsMetadataDocument" 80 | `Compiles -> "compiles" 81 | `Reviews -> "reviews" 82 | `Retracts -> "retracts" 83 | `Supports -> "supports" 84 | `GivesSupportTo -> "givesSupportTo" 85 | `ObtainsSupportFrom -> "obtainsSupportFrom" 86 | `GivesBackgroundTo -> "givesBackgroundTo" 87 | `ObtainsBackgroundFrom -> "obtainsBackgroundFrom" 88 | `SpeculatesOn -> "speculatesOn" 89 | `CitesAsPotentialSolution -> "citesAsPotentialSolution" 90 | `CitesAsRecommendedReading -> "citesAsRecommendedReading" 91 | `CitesAsRelated -> "citesAsRelated" 92 | `IncludesQuotationFrom -> "includesQuotationFrom" 93 | `IncludesExcerptFrom -> "includesExcerptFrom" 94 | `RepliesTo -> "repliesTo" 95 | `HasReplyFrom -> "hasReplyFrom" 96 | `LinksTo -> "linksTo" 97 | `SharesAuthorWith -> "sharesAuthorWith" 98 | `SharesJournalWith -> "sharesJournalWith" 99 | `SharesPublicationVenueWith -> "sharesPublicationVenueWith" 100 | `SharesFundingAgencyWith -> "sharesFundingAgencyWith" 101 | `SharesAuthorInstitutionWith -> "sharesAuthorInstitutionWith" 102 | `Other s -> s 103 104let of_string s = 105 match String.lowercase_ascii s with 106 | "cites" -> `Cites 107 | "citesasauthority" -> `CitesAsAuthority 108 | "citesasdatasource" -> `CitesAsDataSource 109 | "citesasevidence" -> `CitesAsEvidence 110 | "citesforinformation" -> `CitesForInformation 111 | "usesdatafrom" -> `UsesDataFrom 112 | "usesmethodin" -> `UsesMethodIn 113 | "usesconclusionsfrom" -> `UsesConclusionsFrom 114 | "agreeswith" -> `AgreesWith 115 | "disagreeswith" -> `DisagreesWith 116 | "confirms" -> `Confirms 117 | "refutes" -> `Refutes 118 | "disputes" -> `Disputes 119 | "critiques" -> `Critiques 120 | "qualifies" -> `Qualifies 121 | "corrects" -> `Corrects 122 | "updates" -> `Updates 123 | "extends" -> `Extends 124 | "parodies" -> `Parodies 125 | "plagiarizes" -> `Plagiarizes 126 | "derides" -> `Derides 127 | "ridicules" -> `Ridicules 128 | "describes" -> `Describes 129 | "documents" -> `Documents 130 | "citesassourcedocument" -> `CitesAsSourceDocument 131 | "citesasmetadatadocument" -> `CitesAsMetadataDocument 132 | "compiles" -> `Compiles 133 | "reviews" -> `Reviews 134 | "retracts" -> `Retracts 135 | "supports" -> `Supports 136 | "givessupportto" -> `GivesSupportTo 137 | "obtainssupportfrom" -> `ObtainsSupportFrom 138 | "givesbackgroundto" -> `GivesBackgroundTo 139 | "obtainsbackgroundfrom" -> `ObtainsBackgroundFrom 140 | "speculateson" -> `SpeculatesOn 141 | "citesaspotentialsolution" -> `CitesAsPotentialSolution 142 | "citesasrecommendedreading" -> `CitesAsRecommendedReading 143 | "citesasrelated" -> `CitesAsRelated 144 | "includesquotationfrom" -> `IncludesQuotationFrom 145 | "includesexcerptfrom" -> `IncludesExcerptFrom 146 | "repliesto" -> `RepliesTo 147 | "hasreplyfrom" -> `HasReplyFrom 148 | "linksto" -> `LinksTo 149 | "sharesauthorwith" -> `SharesAuthorWith 150 | "sharesjournalwith" -> `SharesJournalWith 151 | "sharespublicationvenuewith" -> `SharesPublicationVenueWith 152 | "sharesfundingagencywith" -> `SharesFundingAgencyWith 153 | "sharesauthorinstitutionwith" -> `SharesAuthorInstitutionWith 154 | _ -> `Other s 155 156let equal a b = 157 match a, b with 158 | `Other sa, `Other sb -> sa = sb 159 | _ -> a = b 160 161let pp ppf t = Format.fprintf ppf "%s" (to_string t) 162 163let jsont = 164 let kind = "CiTO intent" in 165 let doc = "A Citation Typing Ontology intent annotation" in 166 let dec = of_string in 167 let enc = to_string in 168 Jsont.map ~kind ~doc ~dec ~enc Jsont.string