kibi-swipl-linux-x64-gnu 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (550) hide show
  1. package/README.md +29 -0
  2. package/bin/swipl +0 -0
  3. package/bin/swipl-win +0 -0
  4. package/build-manifest.json +70 -0
  5. package/lib/cmake/swipl/SWIPLConfig.cmake +21 -0
  6. package/lib/cmake/swipl/SWIPLConfigVersion.cmake +65 -0
  7. package/lib/cmake/swipl/SWIPLTargets-release.cmake +28 -0
  8. package/lib/cmake/swipl/SWIPLTargets.cmake +109 -0
  9. package/lib/swipl/ABI +1 -0
  10. package/lib/swipl/LICENSE +41 -0
  11. package/lib/swipl/README.md +116 -0
  12. package/lib/swipl/app/README.md +25 -0
  13. package/lib/swipl/app/app.pl +87 -0
  14. package/lib/swipl/app/pack.pl +350 -0
  15. package/lib/swipl/app/qlf.pl +521 -0
  16. package/lib/swipl/app/splfr.pl +177 -0
  17. package/lib/swipl/app/sys.pl +310 -0
  18. package/lib/swipl/bin/swipl.home +1 -0
  19. package/lib/swipl/boot/apply.pl +73 -0
  20. package/lib/swipl/boot/attvar.pl +344 -0
  21. package/lib/swipl/boot/autoload.pl +1226 -0
  22. package/lib/swipl/boot/bags.pl +283 -0
  23. package/lib/swipl/boot/dcg.pl +388 -0
  24. package/lib/swipl/boot/dicts.pl +193 -0
  25. package/lib/swipl/boot/dwim.pl +485 -0
  26. package/lib/swipl/boot/engines.pl +152 -0
  27. package/lib/swipl/boot/expand.pl +1628 -0
  28. package/lib/swipl/boot/gc.pl +65 -0
  29. package/lib/swipl/boot/history.pl +304 -0
  30. package/lib/swipl/boot/init.pl +4682 -0
  31. package/lib/swipl/boot/iri.pl +64 -0
  32. package/lib/swipl/boot/license.pl +390 -0
  33. package/lib/swipl/boot/load.pl +81 -0
  34. package/lib/swipl/boot/messages.pl +2521 -0
  35. package/lib/swipl/boot/packs.pl +306 -0
  36. package/lib/swipl/boot/predopts.pl +154 -0
  37. package/lib/swipl/boot/qlf.pl +141 -0
  38. package/lib/swipl/boot/rc.pl +263 -0
  39. package/lib/swipl/boot/syspred.pl +1634 -0
  40. package/lib/swipl/boot/tabling.pl +2321 -0
  41. package/lib/swipl/boot/threads.pl +42 -0
  42. package/lib/swipl/boot/toplevel.pl +2248 -0
  43. package/lib/swipl/boot/topvars.pl +261 -0
  44. package/lib/swipl/boot.prc +0 -0
  45. package/lib/swipl/cmake/swipl.cmake +131 -0
  46. package/lib/swipl/customize/README.md +23 -0
  47. package/lib/swipl/customize/edit +101 -0
  48. package/lib/swipl/customize/init.pl +164 -0
  49. package/lib/swipl/demo/README.md +33 -0
  50. package/lib/swipl/demo/likes.pl +44 -0
  51. package/lib/swipl/doc/packages/examples/chr/bool.chr +281 -0
  52. package/lib/swipl/doc/packages/examples/chr/chrdif.chr +87 -0
  53. package/lib/swipl/doc/packages/examples/chr/chrfreeze.chr +6 -0
  54. package/lib/swipl/doc/packages/examples/chr/family.chr +116 -0
  55. package/lib/swipl/doc/packages/examples/chr/fib.chr +24 -0
  56. package/lib/swipl/doc/packages/examples/chr/fibonacci.chr +31 -0
  57. package/lib/swipl/doc/packages/examples/chr/gcd.chr +28 -0
  58. package/lib/swipl/doc/packages/examples/chr/leq.chr +34 -0
  59. package/lib/swipl/doc/packages/examples/chr/listdom.chr +138 -0
  60. package/lib/swipl/doc/packages/examples/chr/primes.chr +29 -0
  61. package/lib/swipl/doc/packages/examples/http/README.md +98 -0
  62. package/lib/swipl/doc/packages/examples/http/calc.pl +92 -0
  63. package/lib/swipl/doc/packages/examples/http/demo_body.pl +232 -0
  64. package/lib/swipl/doc/packages/examples/http/demo_client.pl +165 -0
  65. package/lib/swipl/doc/packages/examples/http/demo_daemon.pl +38 -0
  66. package/lib/swipl/doc/packages/examples/http/demo_files.pl +50 -0
  67. package/lib/swipl/doc/packages/examples/http/demo_hello.pl +15 -0
  68. package/lib/swipl/doc/packages/examples/http/demo_login.pl +280 -0
  69. package/lib/swipl/doc/packages/examples/http/demo_openid.pl +177 -0
  70. package/lib/swipl/doc/packages/examples/http/demo_pwp.pl +20 -0
  71. package/lib/swipl/doc/packages/examples/http/demo_rest.pl +56 -0
  72. package/lib/swipl/doc/packages/examples/http/demo_threads.pl +52 -0
  73. package/lib/swipl/doc/packages/examples/http/linux-init-script +126 -0
  74. package/lib/swipl/doc/packages/examples/http/pwp/context.pwp +23 -0
  75. package/lib/swipl/doc/packages/examples/http/pwp/index.pwp +25 -0
  76. package/lib/swipl/doc/packages/examples/http/pwp/pwp1.pwp +12 -0
  77. package/lib/swipl/doc/packages/examples/http/pwp/pwp2.pwp +10 -0
  78. package/lib/swipl/doc/packages/examples/http/pwp/pwp3.pwp +25 -0
  79. package/lib/swipl/doc/packages/examples/http/pwp/pwp4.pwp +23 -0
  80. package/lib/swipl/doc/packages/examples/http/pwp/pwp5.pwp +11 -0
  81. package/lib/swipl/doc/packages/examples/http/pwp/pwp6.pwp +3 -0
  82. package/lib/swipl/doc/packages/examples/http/pwp/pwp7.pwp +3 -0
  83. package/lib/swipl/doc/packages/examples/http/pwp/pwp8.pwp +3 -0
  84. package/lib/swipl/doc/packages/examples/http/pwp/pwpdb.pl +12 -0
  85. package/lib/swipl/doc/packages/examples/http/systemd-script.service +18 -0
  86. package/lib/swipl/doc/packages/examples/http/upstart-script.conf +20 -0
  87. package/lib/swipl/doc/packages/examples/plunit/read.pl +17 -0
  88. package/lib/swipl/doc/packages/examples/plunit/simple.pl +33 -0
  89. package/lib/swipl/doc/packages/examples/ssl/client.pl +83 -0
  90. package/lib/swipl/doc/packages/examples/ssl/etc/README +52 -0
  91. package/lib/swipl/doc/packages/examples/ssl/etc/client/client-cert.p12 +0 -0
  92. package/lib/swipl/doc/packages/examples/ssl/etc/client/client-cert.pem +85 -0
  93. package/lib/swipl/doc/packages/examples/ssl/etc/client/client-key.pem +30 -0
  94. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/cacert.pem +82 -0
  95. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/careq.pem +18 -0
  96. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/crlnumber +1 -0
  97. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/index.txt +3 -0
  98. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/index.txt.attr +1 -0
  99. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/newcerts/9DC08797A0F63F7C.pem +85 -0
  100. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/newcerts/9DC08797A0F63F7D.pem +85 -0
  101. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/private/cakey.pem +30 -0
  102. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/serial +1 -0
  103. package/lib/swipl/doc/packages/examples/ssl/etc/server/server-cert.pem +85 -0
  104. package/lib/swipl/doc/packages/examples/ssl/etc/server/server-key.pem +30 -0
  105. package/lib/swipl/doc/packages/examples/ssl/https.pl +267 -0
  106. package/lib/swipl/doc/packages/examples/ssl/server.pl +106 -0
  107. package/lib/swipl/include/SWI-Prolog.h +1544 -0
  108. package/lib/swipl/include/SWI-Stream.h +537 -0
  109. package/lib/swipl/include/Yap/YapInterface.h +283 -0
  110. package/lib/swipl/include/sicstus/sicstus.h +452 -0
  111. package/lib/swipl/lib/x86_64-linux/cgi.so +0 -0
  112. package/lib/swipl/lib/x86_64-linux/crypt.so +0 -0
  113. package/lib/swipl/lib/x86_64-linux/crypto4pl.so +0 -0
  114. package/lib/swipl/lib/x86_64-linux/double_metaphone.so +0 -0
  115. package/lib/swipl/lib/x86_64-linux/files.so +0 -0
  116. package/lib/swipl/lib/x86_64-linux/hashstream.so +0 -0
  117. package/lib/swipl/lib/x86_64-linux/http_stream.so +0 -0
  118. package/lib/swipl/lib/x86_64-linux/isub.so +0 -0
  119. package/lib/swipl/lib/x86_64-linux/json.so +0 -0
  120. package/lib/swipl/lib/x86_64-linux/libswipl.so.10 +0 -0
  121. package/lib/swipl/lib/x86_64-linux/mallocinfo.so +0 -0
  122. package/lib/swipl/lib/x86_64-linux/md54pl.so +0 -0
  123. package/lib/swipl/lib/x86_64-linux/memfile.so +0 -0
  124. package/lib/swipl/lib/x86_64-linux/ntriples.so +0 -0
  125. package/lib/swipl/lib/x86_64-linux/pcre4pl.so +0 -0
  126. package/lib/swipl/lib/x86_64-linux/porter_stem.so +0 -0
  127. package/lib/swipl/lib/x86_64-linux/process.so +0 -0
  128. package/lib/swipl/lib/x86_64-linux/prolog_stream.so +0 -0
  129. package/lib/swipl/lib/x86_64-linux/rdf_db.so +0 -0
  130. package/lib/swipl/lib/x86_64-linux/readutil.so +0 -0
  131. package/lib/swipl/lib/x86_64-linux/rlimit.so +0 -0
  132. package/lib/swipl/lib/x86_64-linux/sched.so +0 -0
  133. package/lib/swipl/lib/x86_64-linux/sgml2pl.so +0 -0
  134. package/lib/swipl/lib/x86_64-linux/sha4pl.so +0 -0
  135. package/lib/swipl/lib/x86_64-linux/snowball.so +0 -0
  136. package/lib/swipl/lib/x86_64-linux/socket.so +0 -0
  137. package/lib/swipl/lib/x86_64-linux/ssl4pl.so +0 -0
  138. package/lib/swipl/lib/x86_64-linux/streaminfo.so +0 -0
  139. package/lib/swipl/lib/x86_64-linux/syslog.so +0 -0
  140. package/lib/swipl/lib/x86_64-linux/time.so +0 -0
  141. package/lib/swipl/lib/x86_64-linux/turtle.so +0 -0
  142. package/lib/swipl/lib/x86_64-linux/uid.so +0 -0
  143. package/lib/swipl/lib/x86_64-linux/unix.so +0 -0
  144. package/lib/swipl/lib/x86_64-linux/uri.so +0 -0
  145. package/lib/swipl/lib/x86_64-linux/websocket.so +0 -0
  146. package/lib/swipl/lib/x86_64-linux/zlib4pl.so +0 -0
  147. package/lib/swipl/library/INDEX.pl +1020 -0
  148. package/lib/swipl/library/aggregate.pl +755 -0
  149. package/lib/swipl/library/ansi_term.pl +653 -0
  150. package/lib/swipl/library/apply.pl +426 -0
  151. package/lib/swipl/library/apply_macros.pl +497 -0
  152. package/lib/swipl/library/arithmetic.pl +320 -0
  153. package/lib/swipl/library/assoc.pl +522 -0
  154. package/lib/swipl/library/atom.pl +169 -0
  155. package/lib/swipl/library/backcomp.pl +688 -0
  156. package/lib/swipl/library/base32.pl +291 -0
  157. package/lib/swipl/library/base64.pl +441 -0
  158. package/lib/swipl/library/broadcast.pl +161 -0
  159. package/lib/swipl/library/build/cmake.pl +137 -0
  160. package/lib/swipl/library/build/conan.pl +232 -0
  161. package/lib/swipl/library/build/make.pl +168 -0
  162. package/lib/swipl/library/build/tools.pl +825 -0
  163. package/lib/swipl/library/charsio.pl +195 -0
  164. package/lib/swipl/library/check.pl +1097 -0
  165. package/lib/swipl/library/check_installation.pl +912 -0
  166. package/lib/swipl/library/clp/INDEX.pl +157 -0
  167. package/lib/swipl/library/clp/bounds.pl +2036 -0
  168. package/lib/swipl/library/clp/clp_distinct.pl +263 -0
  169. package/lib/swipl/library/clp/clp_events.pl +92 -0
  170. package/lib/swipl/library/clp/clpb.pl +1896 -0
  171. package/lib/swipl/library/clp/clpfd.pl +7906 -0
  172. package/lib/swipl/library/clp/simplex.pl +1580 -0
  173. package/lib/swipl/library/codesio.pl +182 -0
  174. package/lib/swipl/library/coinduction.pl +183 -0
  175. package/lib/swipl/library/console_input.pl +289 -0
  176. package/lib/swipl/library/csv.pl +611 -0
  177. package/lib/swipl/library/ctypes.pl +161 -0
  178. package/lib/swipl/library/date.pl +370 -0
  179. package/lib/swipl/library/dcg/INDEX.pl +35 -0
  180. package/lib/swipl/library/dcg/basics.pl +514 -0
  181. package/lib/swipl/library/dcg/high_order.pl +227 -0
  182. package/lib/swipl/library/debug.pl +499 -0
  183. package/lib/swipl/library/dialect/bim.pl +186 -0
  184. package/lib/swipl/library/dialect/commons.pl +77 -0
  185. package/lib/swipl/library/dialect/eclipse/test_util_iso.pl +355 -0
  186. package/lib/swipl/library/dialect/hprolog/format.pl +44 -0
  187. package/lib/swipl/library/dialect/hprolog.pl +314 -0
  188. package/lib/swipl/library/dialect/ifprolog.pl +1317 -0
  189. package/lib/swipl/library/dialect/iso/iso_predicates.pl +277 -0
  190. package/lib/swipl/library/dialect/sicstus/README.TXT +1 -0
  191. package/lib/swipl/library/dialect/sicstus/arrays.pl +121 -0
  192. package/lib/swipl/library/dialect/sicstus/block.pl +278 -0
  193. package/lib/swipl/library/dialect/sicstus/lists.pl +167 -0
  194. package/lib/swipl/library/dialect/sicstus/ordsets.pl +52 -0
  195. package/lib/swipl/library/dialect/sicstus/sockets.pl +174 -0
  196. package/lib/swipl/library/dialect/sicstus/system.pl +262 -0
  197. package/lib/swipl/library/dialect/sicstus/terms.pl +57 -0
  198. package/lib/swipl/library/dialect/sicstus/timeout.pl +92 -0
  199. package/lib/swipl/library/dialect/sicstus.pl +582 -0
  200. package/lib/swipl/library/dialect/sicstus4/aggregate.pl +60 -0
  201. package/lib/swipl/library/dialect/sicstus4/between.pl +62 -0
  202. package/lib/swipl/library/dialect/sicstus4/clpfd.pl +75 -0
  203. package/lib/swipl/library/dialect/sicstus4/file_systems.pl +413 -0
  204. package/lib/swipl/library/dialect/sicstus4/lists.pl +274 -0
  205. package/lib/swipl/library/dialect/sicstus4/ordsets.pl +54 -0
  206. package/lib/swipl/library/dialect/sicstus4/samsort.pl +86 -0
  207. package/lib/swipl/library/dialect/sicstus4/sets.pl +124 -0
  208. package/lib/swipl/library/dialect/sicstus4/sockets.pl +164 -0
  209. package/lib/swipl/library/dialect/sicstus4/system.pl +80 -0
  210. package/lib/swipl/library/dialect/sicstus4/terms.pl +89 -0
  211. package/lib/swipl/library/dialect/sicstus4/timeout.pl +43 -0
  212. package/lib/swipl/library/dialect/sicstus4/types.pl +103 -0
  213. package/lib/swipl/library/dialect/sicstus4.pl +200 -0
  214. package/lib/swipl/library/dialect/swi/syspred_options.pl +250 -0
  215. package/lib/swipl/library/dialect/xsb/README.md +20 -0
  216. package/lib/swipl/library/dialect/xsb/basics.pl +318 -0
  217. package/lib/swipl/library/dialect/xsb/consult.pl +87 -0
  218. package/lib/swipl/library/dialect/xsb/curr_sym.pl +57 -0
  219. package/lib/swipl/library/dialect/xsb/error_handler.pl +111 -0
  220. package/lib/swipl/library/dialect/xsb/gensym.pl +53 -0
  221. package/lib/swipl/library/dialect/xsb/gpp.pl +138 -0
  222. package/lib/swipl/library/dialect/xsb/intern.pl +48 -0
  223. package/lib/swipl/library/dialect/xsb/lists.pl +47 -0
  224. package/lib/swipl/library/dialect/xsb/machine.pl +295 -0
  225. package/lib/swipl/library/dialect/xsb/ordsets.pl +53 -0
  226. package/lib/swipl/library/dialect/xsb/setof.pl +54 -0
  227. package/lib/swipl/library/dialect/xsb/source.pl +308 -0
  228. package/lib/swipl/library/dialect/xsb/standard.pl +169 -0
  229. package/lib/swipl/library/dialect/xsb/storage.pl +70 -0
  230. package/lib/swipl/library/dialect/xsb/string.pl +76 -0
  231. package/lib/swipl/library/dialect/xsb/thread.pl +62 -0
  232. package/lib/swipl/library/dialect/xsb/timed_call.pl +158 -0
  233. package/lib/swipl/library/dialect/xsb.pl +688 -0
  234. package/lib/swipl/library/dialect/yap/README.TXT +8 -0
  235. package/lib/swipl/library/dialect/yap.pl +283 -0
  236. package/lib/swipl/library/dialect.pl +123 -0
  237. package/lib/swipl/library/dicts.pl +399 -0
  238. package/lib/swipl/library/dif.pl +426 -0
  239. package/lib/swipl/library/edinburgh.pl +138 -0
  240. package/lib/swipl/library/edit.pl +783 -0
  241. package/lib/swipl/library/error.pl +495 -0
  242. package/lib/swipl/library/exceptions.pl +231 -0
  243. package/lib/swipl/library/explain.pl +543 -0
  244. package/lib/swipl/library/ext/RDF/INDEX.pl +25 -0
  245. package/lib/swipl/library/ext/RDF/rdf.pl +450 -0
  246. package/lib/swipl/library/ext/RDF/rdf_parser.pl +649 -0
  247. package/lib/swipl/library/ext/RDF/rdf_triple.pl +448 -0
  248. package/lib/swipl/library/ext/RDF/rdf_write.pl +701 -0
  249. package/lib/swipl/library/ext/RDF/rewrite_term.pl +177 -0
  250. package/lib/swipl/library/ext/chr/chr/a_star.pl +80 -0
  251. package/lib/swipl/library/ext/chr/chr/binomialheap.pl +142 -0
  252. package/lib/swipl/library/ext/chr/chr/builtins.pl +629 -0
  253. package/lib/swipl/library/ext/chr/chr/chr_compiler_errors.pl +179 -0
  254. package/lib/swipl/library/ext/chr/chr/chr_compiler_options.pl +382 -0
  255. package/lib/swipl/library/ext/chr/chr/chr_compiler_utility.pl +338 -0
  256. package/lib/swipl/library/ext/chr/chr/chr_debug.pl +59 -0
  257. package/lib/swipl/library/ext/chr/chr/chr_hashtable_store.pl +425 -0
  258. package/lib/swipl/library/ext/chr/chr/chr_integertable_store.pl +139 -0
  259. package/lib/swipl/library/ext/chr/chr/chr_messages.pl +176 -0
  260. package/lib/swipl/library/ext/chr/chr/chr_op.pl +53 -0
  261. package/lib/swipl/library/ext/chr/chr/chr_runtime.pl +1016 -0
  262. package/lib/swipl/library/ext/chr/chr/chr_translate.pl +25424 -0
  263. package/lib/swipl/library/ext/chr/chr/clean_code.pl +252 -0
  264. package/lib/swipl/library/ext/chr/chr/find.pl +78 -0
  265. package/lib/swipl/library/ext/chr/chr/guard_entailment.pl +19432 -0
  266. package/lib/swipl/library/ext/chr/chr/listmap.pl +108 -0
  267. package/lib/swipl/library/ext/chr/chr/pairlist.pl +78 -0
  268. package/lib/swipl/library/ext/chr/chr.pl +686 -0
  269. package/lib/swipl/library/ext/clib/INDEX.pl +158 -0
  270. package/lib/swipl/library/ext/clib/cgi.pl +86 -0
  271. package/lib/swipl/library/ext/clib/crypt.pl +44 -0
  272. package/lib/swipl/library/ext/clib/filesex.pl +644 -0
  273. package/lib/swipl/library/ext/clib/hash_stream.pl +119 -0
  274. package/lib/swipl/library/ext/clib/mallocinfo.pl +138 -0
  275. package/lib/swipl/library/ext/clib/md5.pl +68 -0
  276. package/lib/swipl/library/ext/clib/memfile.pl +61 -0
  277. package/lib/swipl/library/ext/clib/process.pl +573 -0
  278. package/lib/swipl/library/ext/clib/prolog_server.pl +157 -0
  279. package/lib/swipl/library/ext/clib/prolog_stream.pl +80 -0
  280. package/lib/swipl/library/ext/clib/rlimit.pl +54 -0
  281. package/lib/swipl/library/ext/clib/sched.pl +85 -0
  282. package/lib/swipl/library/ext/clib/sha.pl +162 -0
  283. package/lib/swipl/library/ext/clib/socket.pl +1102 -0
  284. package/lib/swipl/library/ext/clib/streaminfo.pl +103 -0
  285. package/lib/swipl/library/ext/clib/streampool.pl +136 -0
  286. package/lib/swipl/library/ext/clib/syslog.pl +180 -0
  287. package/lib/swipl/library/ext/clib/time.pl +194 -0
  288. package/lib/swipl/library/ext/clib/udp_broadcast.pl +975 -0
  289. package/lib/swipl/library/ext/clib/uid.pl +220 -0
  290. package/lib/swipl/library/ext/clib/unix.pl +317 -0
  291. package/lib/swipl/library/ext/clib/uri.pl +530 -0
  292. package/lib/swipl/library/ext/clib/uuid.pl +207 -0
  293. package/lib/swipl/library/ext/http/http/INDEX.pl +266 -0
  294. package/lib/swipl/library/ext/http/http/README.md +34 -0
  295. package/lib/swipl/library/ext/http/http/ax.pl +189 -0
  296. package/lib/swipl/library/ext/http/http/dcg_basics.pl +49 -0
  297. package/lib/swipl/library/ext/http/http/graphql.pl +1367 -0
  298. package/lib/swipl/library/ext/http/http/html_decl.pl +416 -0
  299. package/lib/swipl/library/ext/http/http/html_head.pl +654 -0
  300. package/lib/swipl/library/ext/http/http/html_quasiquotations.pl +120 -0
  301. package/lib/swipl/library/ext/http/http/html_write.pl +1425 -0
  302. package/lib/swipl/library/ext/http/http/htmx.pl +139 -0
  303. package/lib/swipl/library/ext/http/http/http_authenticate.pl +364 -0
  304. package/lib/swipl/library/ext/http/http/http_client.pl +412 -0
  305. package/lib/swipl/library/ext/http/http/http_cookie.pl +245 -0
  306. package/lib/swipl/library/ext/http/http/http_cors.pl +176 -0
  307. package/lib/swipl/library/ext/http/http/http_digest.pl +820 -0
  308. package/lib/swipl/library/ext/http/http/http_dirindex.pl +296 -0
  309. package/lib/swipl/library/ext/http/http/http_dispatch.pl +1552 -0
  310. package/lib/swipl/library/ext/http/http/http_dyn_workers.pl +214 -0
  311. package/lib/swipl/library/ext/http/http/http_error.pl +126 -0
  312. package/lib/swipl/library/ext/http/http/http_exception.pl +225 -0
  313. package/lib/swipl/library/ext/http/http/http_files.pl +163 -0
  314. package/lib/swipl/library/ext/http/http/http_header.pl +2820 -0
  315. package/lib/swipl/library/ext/http/http/http_hook.pl +106 -0
  316. package/lib/swipl/library/ext/http/http/http_host.pl +204 -0
  317. package/lib/swipl/library/ext/http/http/http_load.pl +113 -0
  318. package/lib/swipl/library/ext/http/http/http_log.pl +738 -0
  319. package/lib/swipl/library/ext/http/http/http_multipart_plugin.pl +232 -0
  320. package/lib/swipl/library/ext/http/http/http_open.pl +1821 -0
  321. package/lib/swipl/library/ext/http/http/http_openid.pl +1561 -0
  322. package/lib/swipl/library/ext/http/http/http_parameters.pl +504 -0
  323. package/lib/swipl/library/ext/http/http/http_path.pl +380 -0
  324. package/lib/swipl/library/ext/http/http/http_proxy.pl +80 -0
  325. package/lib/swipl/library/ext/http/http/http_pwp.pl +351 -0
  326. package/lib/swipl/library/ext/http/http/http_redis_plugin.pl +332 -0
  327. package/lib/swipl/library/ext/http/http/http_server.pl +105 -0
  328. package/lib/swipl/library/ext/http/http/http_server_files.pl +126 -0
  329. package/lib/swipl/library/ext/http/http/http_server_health.pl +186 -0
  330. package/lib/swipl/library/ext/http/http/http_session.pl +1040 -0
  331. package/lib/swipl/library/ext/http/http/http_sgml_plugin.pl +137 -0
  332. package/lib/swipl/library/ext/http/http/http_stream.pl +376 -0
  333. package/lib/swipl/library/ext/http/http/http_unix_daemon.pl +989 -0
  334. package/lib/swipl/library/ext/http/http/http_wrapper.pl +559 -0
  335. package/lib/swipl/library/ext/http/http/hub.pl +600 -0
  336. package/lib/swipl/library/ext/http/http/js_write.pl +461 -0
  337. package/lib/swipl/library/ext/http/http/mimepack.pl +224 -0
  338. package/lib/swipl/library/ext/http/http/mimetype.pl +276 -0
  339. package/lib/swipl/library/ext/http/http/term_html.pl +797 -0
  340. package/lib/swipl/library/ext/http/http/thread_httpd.pl +1181 -0
  341. package/lib/swipl/library/ext/http/http/web/css/dirindex.css +24 -0
  342. package/lib/swipl/library/ext/http/http/web/css/openid.css +57 -0
  343. package/lib/swipl/library/ext/http/http/web/icons/back.png +0 -0
  344. package/lib/swipl/library/ext/http/http/web/icons/c.png +0 -0
  345. package/lib/swipl/library/ext/http/http/web/icons/compressed.png +0 -0
  346. package/lib/swipl/library/ext/http/http/web/icons/folder.png +0 -0
  347. package/lib/swipl/library/ext/http/http/web/icons/generic.png +0 -0
  348. package/lib/swipl/library/ext/http/http/web/icons/layout.png +0 -0
  349. package/lib/swipl/library/ext/http/http/web/icons/openid-logo-square.png +0 -0
  350. package/lib/swipl/library/ext/http/http/web/icons/openid-logo-tiny.png +0 -0
  351. package/lib/swipl/library/ext/http/http/websocket.pl +729 -0
  352. package/lib/swipl/library/ext/http/http/yadis.pl +205 -0
  353. package/lib/swipl/library/ext/json/INDEX.pl +36 -0
  354. package/lib/swipl/library/ext/json/http/INDEX.pl +16 -0
  355. package/lib/swipl/library/ext/json/http/http_json.pl +490 -0
  356. package/lib/swipl/library/ext/json/http/js_grammar.pl +53 -0
  357. package/lib/swipl/library/ext/json/http/json.pl +48 -0
  358. package/lib/swipl/library/ext/json/http/json_convert.pl +48 -0
  359. package/lib/swipl/library/ext/json/json.pl +1215 -0
  360. package/lib/swipl/library/ext/json/json_convert.pl +681 -0
  361. package/lib/swipl/library/ext/json/json_grammar.pl +349 -0
  362. package/lib/swipl/library/ext/json/json_rpc_client.pl +423 -0
  363. package/lib/swipl/library/ext/json/json_rpc_common.pl +104 -0
  364. package/lib/swipl/library/ext/json/json_rpc_server.pl +489 -0
  365. package/lib/swipl/library/ext/json/json_schema.pl +2111 -0
  366. package/lib/swipl/library/ext/nlp/INDEX.pl +15 -0
  367. package/lib/swipl/library/ext/nlp/double_metaphone.pl +86 -0
  368. package/lib/swipl/library/ext/nlp/isub.pl +162 -0
  369. package/lib/swipl/library/ext/nlp/porter_stem.pl +50 -0
  370. package/lib/swipl/library/ext/nlp/snowball.pl +97 -0
  371. package/lib/swipl/library/ext/pcre/INDEX.pl +17 -0
  372. package/lib/swipl/library/ext/pcre/pcre.pl +974 -0
  373. package/lib/swipl/library/ext/plunit/INDEX.pl +20 -0
  374. package/lib/swipl/library/ext/plunit/plunit.pl +2631 -0
  375. package/lib/swipl/library/ext/plunit/test_wizard.pl +249 -0
  376. package/lib/swipl/library/ext/semweb/semweb/INDEX.pl +288 -0
  377. package/lib/swipl/library/ext/semweb/semweb/rdf11.pl +2106 -0
  378. package/lib/swipl/library/ext/semweb/semweb/rdf11_containers.pl +299 -0
  379. package/lib/swipl/library/ext/semweb/semweb/rdf_cache.pl +278 -0
  380. package/lib/swipl/library/ext/semweb/semweb/rdf_compare.pl +132 -0
  381. package/lib/swipl/library/ext/semweb/semweb/rdf_db.pl +3468 -0
  382. package/lib/swipl/library/ext/semweb/semweb/rdf_edit.pl +1145 -0
  383. package/lib/swipl/library/ext/semweb/semweb/rdf_http_plugin.pl +274 -0
  384. package/lib/swipl/library/ext/semweb/semweb/rdf_library.pl +1021 -0
  385. package/lib/swipl/library/ext/semweb/semweb/rdf_litindex.pl +1035 -0
  386. package/lib/swipl/library/ext/semweb/semweb/rdf_ntriples.pl +422 -0
  387. package/lib/swipl/library/ext/semweb/semweb/rdf_persistency.pl +1576 -0
  388. package/lib/swipl/library/ext/semweb/semweb/rdf_portray.pl +182 -0
  389. package/lib/swipl/library/ext/semweb/semweb/rdf_prefixes.pl +681 -0
  390. package/lib/swipl/library/ext/semweb/semweb/rdf_sandbox.pl +153 -0
  391. package/lib/swipl/library/ext/semweb/semweb/rdf_turtle.pl +54 -0
  392. package/lib/swipl/library/ext/semweb/semweb/rdf_turtle_write.pl +1587 -0
  393. package/lib/swipl/library/ext/semweb/semweb/rdf_zlib_plugin.pl +52 -0
  394. package/lib/swipl/library/ext/semweb/semweb/rdfa.pl +1510 -0
  395. package/lib/swipl/library/ext/semweb/semweb/rdfs.pl +475 -0
  396. package/lib/swipl/library/ext/semweb/semweb/sparql_client.pl +643 -0
  397. package/lib/swipl/library/ext/semweb/semweb/turtle.pl +455 -0
  398. package/lib/swipl/library/ext/sgml/DTD/HTML4.dcl +88 -0
  399. package/lib/swipl/library/ext/sgml/DTD/HTML4.dtd +1092 -0
  400. package/lib/swipl/library/ext/sgml/DTD/HTML4.soc +6 -0
  401. package/lib/swipl/library/ext/sgml/DTD/HTML5.dtd +906 -0
  402. package/lib/swipl/library/ext/sgml/DTD/HTMLlat1.ent +195 -0
  403. package/lib/swipl/library/ext/sgml/DTD/HTMLspec.ent +77 -0
  404. package/lib/swipl/library/ext/sgml/DTD/HTMLsym.ent +241 -0
  405. package/lib/swipl/library/ext/sgml/INDEX.pl +64 -0
  406. package/lib/swipl/library/ext/sgml/c14n2.pl +203 -0
  407. package/lib/swipl/library/ext/sgml/iso_639.pl +631 -0
  408. package/lib/swipl/library/ext/sgml/pwp.pl +705 -0
  409. package/lib/swipl/library/ext/sgml/sgml.pl +815 -0
  410. package/lib/swipl/library/ext/sgml/sgml_write.pl +1003 -0
  411. package/lib/swipl/library/ext/sgml/xpath.pl +620 -0
  412. package/lib/swipl/library/ext/sgml/xsdp_types.pl +232 -0
  413. package/lib/swipl/library/ext/ssl/INDEX.pl +60 -0
  414. package/lib/swipl/library/ext/ssl/crypto.pl +1015 -0
  415. package/lib/swipl/library/ext/ssl/http/INDEX.pl +5 -0
  416. package/lib/swipl/library/ext/ssl/http/http_ssl_plugin.pl +296 -0
  417. package/lib/swipl/library/ext/ssl/saml.pl +609 -0
  418. package/lib/swipl/library/ext/ssl/ssl.pl +647 -0
  419. package/lib/swipl/library/ext/ssl/xmldsig.pl +391 -0
  420. package/lib/swipl/library/ext/ssl/xmlenc.pl +354 -0
  421. package/lib/swipl/library/ext/zlib/INDEX.pl +8 -0
  422. package/lib/swipl/library/ext/zlib/zlib.pl +112 -0
  423. package/lib/swipl/library/fastrw.pl +105 -0
  424. package/lib/swipl/library/files.pl +80 -0
  425. package/lib/swipl/library/gensym.pl +111 -0
  426. package/lib/swipl/library/git.pl +1027 -0
  427. package/lib/swipl/library/hashtable.pl +365 -0
  428. package/lib/swipl/library/heaps.pl +252 -0
  429. package/lib/swipl/library/hotfix.pl +239 -0
  430. package/lib/swipl/library/http/jquery.pl +103 -0
  431. package/lib/swipl/library/http/web/js/jquery-3.6.0.min.js +2 -0
  432. package/lib/swipl/library/increval.pl +217 -0
  433. package/lib/swipl/library/intercept.pl +263 -0
  434. package/lib/swipl/library/iostream.pl +237 -0
  435. package/lib/swipl/library/iri_scheme/file.pl +70 -0
  436. package/lib/swipl/library/lazy_lists.pl +481 -0
  437. package/lib/swipl/library/listing.pl +1362 -0
  438. package/lib/swipl/library/lists.pl +860 -0
  439. package/lib/swipl/library/lynx/INDEX.pl +14 -0
  440. package/lib/swipl/library/lynx/format.pl +380 -0
  441. package/lib/swipl/library/lynx/html_style.pl +129 -0
  442. package/lib/swipl/library/lynx/html_text.pl +865 -0
  443. package/lib/swipl/library/lynx/pldoc_style.pl +87 -0
  444. package/lib/swipl/library/macros.pl +451 -0
  445. package/lib/swipl/library/main.pl +1200 -0
  446. package/lib/swipl/library/make.pl +197 -0
  447. package/lib/swipl/library/modules.pl +129 -0
  448. package/lib/swipl/library/nb_rbtrees.pl +267 -0
  449. package/lib/swipl/library/nb_set.pl +203 -0
  450. package/lib/swipl/library/obfuscate.pl +115 -0
  451. package/lib/swipl/library/occurs.pl +241 -0
  452. package/lib/swipl/library/operators.pl +182 -0
  453. package/lib/swipl/library/option.pl +388 -0
  454. package/lib/swipl/library/optparse.pl +966 -0
  455. package/lib/swipl/library/ordsets.pl +518 -0
  456. package/lib/swipl/library/oset.pl +160 -0
  457. package/lib/swipl/library/pairs.pl +187 -0
  458. package/lib/swipl/library/persistency.pl +713 -0
  459. package/lib/swipl/library/pio.pl +47 -0
  460. package/lib/swipl/library/portray_text.pl +277 -0
  461. package/lib/swipl/library/pprint.pl +940 -0
  462. package/lib/swipl/library/predicate_options.pl +975 -0
  463. package/lib/swipl/library/prolog_autoload.pl +233 -0
  464. package/lib/swipl/library/prolog_breakpoints.pl +396 -0
  465. package/lib/swipl/library/prolog_clause.pl +1104 -0
  466. package/lib/swipl/library/prolog_code.pl +416 -0
  467. package/lib/swipl/library/prolog_codewalk.pl +1248 -0
  468. package/lib/swipl/library/prolog_colour.pl +3301 -0
  469. package/lib/swipl/library/prolog_colour.qlf +0 -0
  470. package/lib/swipl/library/prolog_config.pl +154 -0
  471. package/lib/swipl/library/prolog_coverage.pl +1333 -0
  472. package/lib/swipl/library/prolog_debug.pl +404 -0
  473. package/lib/swipl/library/prolog_deps.pl +675 -0
  474. package/lib/swipl/library/prolog_evaluable.pl +234 -0
  475. package/lib/swipl/library/prolog_format.pl +219 -0
  476. package/lib/swipl/library/prolog_history.pl +161 -0
  477. package/lib/swipl/library/prolog_jiti.pl +333 -0
  478. package/lib/swipl/library/prolog_locale.pl +61 -0
  479. package/lib/swipl/library/prolog_metainference.pl +307 -0
  480. package/lib/swipl/library/prolog_pack.pl +3906 -0
  481. package/lib/swipl/library/prolog_profile.pl +346 -0
  482. package/lib/swipl/library/prolog_qlfmake.pl +533 -0
  483. package/lib/swipl/library/prolog_source.pl +1188 -0
  484. package/lib/swipl/library/prolog_stack.pl +794 -0
  485. package/lib/swipl/library/prolog_trace.pl +365 -0
  486. package/lib/swipl/library/prolog_versions.pl +347 -0
  487. package/lib/swipl/library/prolog_wrap.pl +164 -0
  488. package/lib/swipl/library/prolog_xref.pl +3090 -0
  489. package/lib/swipl/library/prolog_xref.qlf +0 -0
  490. package/lib/swipl/library/pure_input.pl +266 -0
  491. package/lib/swipl/library/qpforeign.pl +695 -0
  492. package/lib/swipl/library/qsave.pl +1516 -0
  493. package/lib/swipl/library/quasi_quotations.pl +300 -0
  494. package/lib/swipl/library/quintus.pl +437 -0
  495. package/lib/swipl/library/random.pl +459 -0
  496. package/lib/swipl/library/rbtrees.pl +1153 -0
  497. package/lib/swipl/library/readln.pl +256 -0
  498. package/lib/swipl/library/readutil.pl +304 -0
  499. package/lib/swipl/library/record.pl +544 -0
  500. package/lib/swipl/library/rwlocks.pl +172 -0
  501. package/lib/swipl/library/sandbox.pl +1384 -0
  502. package/lib/swipl/library/semweb/dc.rdfs +198 -0
  503. package/lib/swipl/library/semweb/eor.rdfs +95 -0
  504. package/lib/swipl/library/semweb/owl.owl +287 -0
  505. package/lib/swipl/library/semweb/rdf_library.ttl +90 -0
  506. package/lib/swipl/library/semweb/rdfs.rdfs +251 -0
  507. package/lib/swipl/library/settings.pl +755 -0
  508. package/lib/swipl/library/shell.pl +462 -0
  509. package/lib/swipl/library/shlib.pl +670 -0
  510. package/lib/swipl/library/solution_sequences.pl +439 -0
  511. package/lib/swipl/library/sort.pl +119 -0
  512. package/lib/swipl/library/statistics.pl +541 -0
  513. package/lib/swipl/library/streams.pl +118 -0
  514. package/lib/swipl/library/strings.pl +469 -0
  515. package/lib/swipl/library/system.pl +95 -0
  516. package/lib/swipl/library/tables.pl +381 -0
  517. package/lib/swipl/library/tableutil.pl +771 -0
  518. package/lib/swipl/library/tabling.pl +42 -0
  519. package/lib/swipl/library/terms.pl +457 -0
  520. package/lib/swipl/library/theme/auto.pl +61 -0
  521. package/lib/swipl/library/theme/dark.pl +455 -0
  522. package/lib/swipl/library/theme/light.pl +45 -0
  523. package/lib/swipl/library/thread.pl +810 -0
  524. package/lib/swipl/library/thread_pool.pl +508 -0
  525. package/lib/swipl/library/threadutil.pl +574 -0
  526. package/lib/swipl/library/tty.pl +316 -0
  527. package/lib/swipl/library/ugraphs.pl +644 -0
  528. package/lib/swipl/library/unicode/INDEX.pl +6 -0
  529. package/lib/swipl/library/unicode/blocks.pl +414 -0
  530. package/lib/swipl/library/url.pl +1129 -0
  531. package/lib/swipl/library/utf8.pl +145 -0
  532. package/lib/swipl/library/varnumbers.pl +221 -0
  533. package/lib/swipl/library/vm.pl +251 -0
  534. package/lib/swipl/library/wfs.pl +205 -0
  535. package/lib/swipl/library/when.pl +263 -0
  536. package/lib/swipl/library/writef.pl +278 -0
  537. package/lib/swipl/library/www_browser.pl +251 -0
  538. package/lib/swipl/library/yall.pl +574 -0
  539. package/lib/swipl/library/zip.pl +211 -0
  540. package/lib/swipl/swipl.home +1 -0
  541. package/lib/vendor/libcrypto.so.3 +0 -0
  542. package/lib/vendor/libpcre2-8.so.0 +0 -0
  543. package/lib/vendor/libssl.so.3 +0 -0
  544. package/lib/vendor/libz.so.1 +0 -0
  545. package/licenses/OpenSSL-LICENSE.txt +177 -0
  546. package/licenses/PCRE2-COPYING +5 -0
  547. package/licenses/README.md +12 -0
  548. package/licenses/SWI-Prolog-LICENSE +41 -0
  549. package/licenses/zlib-LICENSE +22 -0
  550. package/package.json +27 -0
@@ -0,0 +1,681 @@
1
+ /* Part of SWI-Prolog
2
+
3
+ Author: Jan Wielemaker
4
+ E-mail: J.Wielemaker@vu.nl
5
+ WWW: http://www.swi-prolog.org
6
+ Copyright (c) 2018-2022, VU University Amsterdam
7
+ CWI, Amsterdam
8
+ SWI-Prolog Solutions b.v.
9
+ All rights reserved.
10
+
11
+ Redistribution and use in source and binary forms, with or without
12
+ modification, are permitted provided that the following conditions
13
+ are met:
14
+
15
+ 1. Redistributions of source code must retain the above copyright
16
+ notice, this list of conditions and the following disclaimer.
17
+
18
+ 2. Redistributions in binary form must reproduce the above copyright
19
+ notice, this list of conditions and the following disclaimer in
20
+ the documentation and/or other materials provided with the
21
+ distribution.
22
+
23
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
26
+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
27
+ COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
28
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
29
+ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
33
+ ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34
+ POSSIBILITY OF SUCH DAMAGE.
35
+ */
36
+
37
+ :- module(rdf_prefixes,
38
+ [ rdf_prefix/2, % :Alias, +URI
39
+ rdf_current_prefix/2, % :Alias, ?URI
40
+ rdf_register_prefix/2, % +Alias, +URI
41
+ rdf_register_prefix/3, % +Alias, +URI, +Options
42
+ rdf_unregister_prefix/1, % +Alias
43
+ register_file_prefixes/1, % +Pairs
44
+
45
+ rdf_current_ns/2, % :Alias, ?URI
46
+ rdf_register_ns/2, % +Alias, +URI
47
+ rdf_register_ns/3, % +Alias, +URI, +Options
48
+ rdf_global_id/2, % ?NS:Name, :Global
49
+ rdf_global_object/2, % +Object, :NSExpandedObject
50
+ rdf_global_term/2, % +Term, :WithExpandedNS
51
+
52
+ (rdf_meta)/1, % +Heads
53
+ op(1150, fx, (rdf_meta))
54
+ ]).
55
+ :- autoload(library(error),[must_be/2,existence_error/2]).
56
+ :- autoload(library(lists),[member/2]).
57
+ :- autoload(library(option),[option/3]).
58
+ :- autoload(library(pairs),[map_list_to_pairs/3,pairs_values/2]).
59
+
60
+ :- meta_predicate
61
+ rdf_current_prefix(:, -),
62
+ rdf_current_ns(:, -),
63
+ rdf_global_id(?, :),
64
+ rdf_global_term(+, :),
65
+ rdf_global_object(+, :).
66
+
67
+ /** <module> RDF prefixes management
68
+
69
+ This module defines the expansion of `Prefix:Local` terms to full IRIs.
70
+ This library is typically not intended for the end-user. It may be
71
+ included into other RDF and XML libraries and relevant parts may be
72
+ re-exported.
73
+ */
74
+
75
+ :- predicate_options(rdf_register_ns/3, 3,
76
+ [ force(boolean),
77
+ keep(boolean)
78
+ ]).
79
+ :- predicate_options(rdf_register_prefix/3, 3,
80
+ [ force(boolean),
81
+ keep(boolean)
82
+ ]).
83
+
84
+
85
+ /*******************************
86
+ * HOOKS *
87
+ *******************************/
88
+
89
+ %! rdf_empty_prefix_cache(+Alias, +URI)
90
+ %
91
+ % Multifile hook called if the binding Alias -> URI is modified. May
92
+ % be used to update derived caches.
93
+
94
+ :- multifile
95
+ rdf_empty_prefix_cache/2.
96
+
97
+ % the ns/2 predicate is historically defined in `rdf_db`. We'll keep
98
+ % that for compatibility reasons.
99
+ :- multifile rdf_db:ns/2.
100
+ :- dynamic rdf_db:ns/2. % ID, URL
101
+
102
+ %! rdf_current_prefix(:Alias, ?URI) is nondet.
103
+ %
104
+ % Query predefined prefixes and prefixes defined with
105
+ % rdf_register_prefix/2 and local prefixes defined with
106
+ % rdf_prefix/2. If Alias is unbound and one URI is the prefix of
107
+ % another, the longest is returned first. This allows turning a
108
+ % resource into a prefix/local couple using the simple enumeration
109
+ % below. See rdf_global_id/2.
110
+ %
111
+ % ==
112
+ % rdf_current_prefix(Prefix, Expansion),
113
+ % atom_concat(Expansion, Local, URI),
114
+ % ==
115
+
116
+ rdf_current_prefix(Module:Alias, URI) :-
117
+ nonvar(Alias),
118
+ !,
119
+ rdf_current_prefix(Module, Alias, URI),
120
+ !.
121
+ rdf_current_prefix(Module:Alias, URI) :-
122
+ rdf_current_prefix(Module, Alias, URI).
123
+
124
+ rdf_current_prefix(system, Alias, URI) :-
125
+ !,
126
+ rdf_db:ns(Alias, URI).
127
+ rdf_current_prefix(Module, Alias, URI) :-
128
+ default_module(Module, M),
129
+ ( M == system
130
+ -> rdf_db:ns(Alias, URI)
131
+ ; '$flushed_predicate'(M:'rdf prefix'(_,_)),
132
+ call(M:'rdf prefix'(Alias,URI))
133
+ ).
134
+
135
+ %! rdf_prefix(:Alias, +URI) is det.
136
+ %
137
+ % Register a _local_ prefix. This declaration takes precedence
138
+ % over globally defined prefixes using rdf_register_prefix/2,3.
139
+ % Module local prefixes are notably required to deal with SWISH,
140
+ % where users need to be able to have independent namespace
141
+ % declarations.
142
+
143
+ rdf_prefix(Alias, URI) :-
144
+ throw(error(context_error(nodirective, rdf_prefix(Alias, URI)), _)).
145
+
146
+ system:term_expansion((:- rdf_prefix(AliasSpec, URI)), Clauses) :-
147
+ prolog_load_context(module, Module),
148
+ strip_module(Module:AliasSpec, TM, Alias),
149
+ must_be(atom, Alias),
150
+ must_be(atom, URI),
151
+ ( rdf_current_prefix(TM:Alias, URI)
152
+ -> Clauses = []
153
+ ; TM == Module
154
+ -> Clauses = 'rdf prefix'(Alias, URI)
155
+ ; Clauses = TM:'rdf prefix'(Alias, URI)
156
+ ).
157
+
158
+ %! rdf_db:ns(?Alias, ?URI) is nondet.
159
+ %
160
+ % Dynamic and multifile predicate that maintains the registered
161
+ % namespace aliases.
162
+ %
163
+ % @deprecated New code must modify the namespace table using
164
+ % rdf_register_ns/3 and query using rdf_current_ns/2.
165
+
166
+ rdf_db:ns(dc, 'http://purl.org/dc/elements/1.1/').
167
+ rdf_db:ns(dcterms, 'http://purl.org/dc/terms/').
168
+ rdf_db:ns(eor, 'http://dublincore.org/2000/03/13/eor#').
169
+ rdf_db:ns(foaf, 'http://xmlns.com/foaf/0.1/').
170
+ rdf_db:ns(owl, 'http://www.w3.org/2002/07/owl#').
171
+ rdf_db:ns(rdf, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#').
172
+ rdf_db:ns(rdfs, 'http://www.w3.org/2000/01/rdf-schema#').
173
+ rdf_db:ns(serql, 'http://www.openrdf.org/schema/serql#').
174
+ rdf_db:ns(skos, 'http://www.w3.org/2004/02/skos/core#').
175
+ rdf_db:ns(void, 'http://rdfs.org/ns/void#').
176
+ rdf_db:ns(xsd, 'http://www.w3.org/2001/XMLSchema#').
177
+
178
+ %! rdf_register_prefix(+Prefix, +URI) is det.
179
+ %! rdf_register_prefix(+Prefix, +URI, +Options) is det.
180
+ %
181
+ % Register Prefix as an abbreviation for URI. Options:
182
+ %
183
+ % * force(Boolean)
184
+ % If =true=, replace existing namespace alias. Please note
185
+ % that replacing a namespace is dangerous as namespaces
186
+ % affect preprocessing. Make sure all code that depends on
187
+ % a namespace is compiled after changing the registration.
188
+ %
189
+ % * keep(Boolean)
190
+ % If =true= and Alias is already defined, keep the
191
+ % original binding for Prefix and succeed silently.
192
+ %
193
+ % Without options, an attempt to redefine an alias raises a
194
+ % permission error.
195
+ %
196
+ % Predefined prefixes are:
197
+ %
198
+ % | **Alias** | **IRI prefix** |
199
+ % | dc | http://purl.org/dc/elements/1.1/ |
200
+ % | dcterms | http://purl.org/dc/terms/ |
201
+ % | eor | http://dublincore.org/2000/03/13/eor# |
202
+ % | foaf | http://xmlns.com/foaf/0.1/ |
203
+ % | owl | http://www.w3.org/2002/07/owl# |
204
+ % | rdf | http://www.w3.org/1999/02/22-rdf-syntax-ns# |
205
+ % | rdfs | http://www.w3.org/2000/01/rdf-schema# |
206
+ % | serql | http://www.openrdf.org/schema/serql# |
207
+ % | skos | http://www.w3.org/2004/02/skos/core# |
208
+ % | void | http://rdfs.org/ns/void# |
209
+ % | xsd | http://www.w3.org/2001/XMLSchema# |
210
+
211
+
212
+ rdf_register_prefix(Alias, URI) :-
213
+ rdf_register_prefix(Alias, URI, []).
214
+
215
+ rdf_register_prefix(Alias, URI, Options) :-
216
+ must_be(atom, Alias),
217
+ must_be(atom, URI),
218
+ ( rdf_current_prefix(system:Alias, URI)
219
+ -> true
220
+ ; register_global_prefix(Alias, URI, Options)
221
+ ).
222
+
223
+ %! register_global_prefix(+Alias, +URI, +Options)
224
+ %
225
+ % Register a global prefix.
226
+
227
+ register_global_prefix(Alias, URI, Options) :-
228
+ rdf_db:ns(Alias, _),
229
+ !,
230
+ ( option(force(true), Options, false)
231
+ -> retractall(rdf_db:ns(Alias, _)),
232
+ rdf_register_prefix(Alias, URI, Options),
233
+ forall(rdf_empty_prefix_cache(Alias, URI), true)
234
+ ; option(keep(true), Options, false)
235
+ -> true
236
+ ; throw(error(permission_error(register, namespace, Alias),
237
+ context(_, 'Already defined')))
238
+ ).
239
+ register_global_prefix(Alias, URI, _) :-
240
+ findall(P-U, prefix_conflict(URI, P, U), Pairs),
241
+ order_prefixes([Alias-URI|Pairs], Ordered),
242
+ forall(member(P-U, Pairs), retract(rdf_db:ns(P,U))),
243
+ forall(member(P-U, Ordered), assert(rdf_db:ns(P,U))).
244
+
245
+ prefix_conflict(URI, P, U) :-
246
+ rdf_db:ns(P,U),
247
+ ( sub_atom(URI, 0, _, _, U)
248
+ -> true
249
+ ; sub_atom(U, 0, _, _, URI)
250
+ ).
251
+
252
+ order_prefixes(Pairs, Sorted) :-
253
+ map_list_to_pairs(prefix_uri_length, Pairs, ByLen),
254
+ sort(1, >=, ByLen, SortedByLen),
255
+ pairs_values(SortedByLen, Sorted).
256
+
257
+ prefix_uri_length(_-URI, Len) :-
258
+ atom_length(URI, Len).
259
+
260
+ %! rdf_unregister_prefix(+Alias) is det.
261
+ %
262
+ % Delete a prefix global registration.
263
+
264
+ rdf_unregister_prefix(Alias) :-
265
+ must_be(atom, Alias),
266
+ retractall(rdf_db:ns(Alias, _)).
267
+
268
+
269
+ %! rdf_current_ns(:Prefix, ?URI) is nondet.
270
+ %
271
+ % @deprecated Use rdf_current_prefix/2.
272
+
273
+ rdf_current_ns(Prefix, URI) :-
274
+ rdf_current_prefix(Prefix, URI).
275
+
276
+ %! rdf_register_ns(:Prefix, ?URI) is det.
277
+ %! rdf_register_ns(:Prefix, ?URI, +Options) is det.
278
+ %
279
+ % Register an RDF prefix.
280
+ %
281
+ % @deprecated Use rdf_register_prefix/2 or rdf_register_prefix/3.
282
+
283
+ rdf_register_ns(Prefix, URI) :-
284
+ rdf_register_prefix(Prefix, URI).
285
+ rdf_register_ns(Prefix, URI, Options) :-
286
+ rdf_register_prefix(Prefix, URI, Options).
287
+
288
+
289
+ %! register_file_prefixes(+Map:list(pair)) is det.
290
+ %
291
+ % Register a namespace as encountered in the namespace list of an
292
+ % RDF document. We only register if both the abbreviation and URL
293
+ % are not already known. Is there a better way? This code could
294
+ % also do checks on the consistency of RDF and other well-known
295
+ % namespaces.
296
+ %
297
+ % @tbd Better error handling
298
+
299
+ register_file_prefixes([]) :- !.
300
+ register_file_prefixes([Decl|T]) :-
301
+ !,
302
+ register_file_prefixes(Decl),
303
+ register_file_prefixes(T).
304
+ register_file_prefixes([]=_) :- !. % xmlns= (overall default)
305
+ register_file_prefixes(NS=URL) :- % compatibility
306
+ !,
307
+ register_file_prefixes(NS-URL).
308
+ register_file_prefixes(NS-URL) :-
309
+ ( rdf_db:ns(NS, URL)
310
+ -> true
311
+ ; rdf_db:ns(NS, _)
312
+ -> true % redefined abbreviation
313
+ ; rdf_db:ns(_, URL)
314
+ -> true % redefined URL
315
+ ; rdf_register_prefix(NS, URL)
316
+ ).
317
+
318
+
319
+ %! rdf_global_id(?IRISpec, :IRI) is semidet.
320
+ %
321
+ % Convert between Prefix:Local and full IRI (an atom). If IRISpec is
322
+ % an atom, it is simply unified with IRI. This predicate fails
323
+ % silently if IRI is an RDF literal.
324
+ %
325
+ % Note that this predicate is a meta-predicate on its output argument.
326
+ % This is necessary to get the module context while the first argument
327
+ % may be of the form (:)/2. The above mode description is correct, but
328
+ % should be interpreted as (?,?).
329
+ %
330
+ % @error existence_error(rdf_prefix, Prefix)
331
+ % @see rdf_equal/2 provides a compile time alternative
332
+ % @see The rdf_meta/1 directive asks for compile time expansion
333
+ % of arguments.
334
+ % @bug Error handling is incomplete. In its current implementation
335
+ % the same code is used for compile-time expansion and to
336
+ % facilitate runtime conversion and checking. These use cases
337
+ % have different requirements.
338
+
339
+ rdf_global_id(Id, Module:Global) :-
340
+ rdf_global_id(Id, Global, Module).
341
+
342
+ rdf_global_id(NS:Local, Global, Module) :-
343
+ global(NS, Local, Global, Module),
344
+ !.
345
+ rdf_global_id(Global, Global, _).
346
+
347
+
348
+ %! rdf_global_object(+Object, :GlobalObject) is semidet.
349
+ %! rdf_global_object(-Object, :GlobalObject) is semidet.
350
+ %
351
+ % Same as rdf_global_id/2, but intended for dealing with the
352
+ % object part of a triple, in particular the type for typed
353
+ % literals. Note that the predicate is a meta-predicate on the
354
+ % output argument. This is necessary to get the module context
355
+ % while the first argument may be of the form (:)/2.
356
+ %
357
+ % @error existence_error(rdf_prefix, Prefix)
358
+
359
+ rdf_global_object(Object, Module:GlobalObject) :-
360
+ rdf_global_object(Object, GlobalObject, Module).
361
+
362
+ rdf_global_object(Var, Global, _M) :-
363
+ var(Var),
364
+ !,
365
+ Global = Var.
366
+ rdf_global_object(Prefix:Local, Global, M) :-
367
+ global(Prefix, Local, Global, M),
368
+ !.
369
+ rdf_global_object(literal(type(Prefix:Local, Value)),
370
+ literal(type(Global, Value)), M) :-
371
+ global(Prefix, Local, Global, M),
372
+ !.
373
+ rdf_global_object(^^(Value,Prefix:Local),
374
+ ^^(Value,Global), M) :-
375
+ global(Prefix, Local, Global, M),
376
+ !.
377
+ rdf_global_object(literal(Query0, type(Prefix:Local, Value)),
378
+ literal(Query1, type(Global, Value)), M) :-
379
+ global(Prefix, Local, Global, M),
380
+ !,
381
+ rdf_global_term(Query0, Query1, M).
382
+ rdf_global_object(literal(Query0, Value),
383
+ literal(Query1, Value), M) :-
384
+ !,
385
+ rdf_global_term(Query0, Query1, M).
386
+ rdf_global_object(Global, Global, _).
387
+
388
+ global(Prefix, Local, Global, Module) :-
389
+ ( atom(Global)
390
+ -> rdf_current_prefix(Module:Prefix, Full),
391
+ atom_concat(Full, Local, Global)
392
+ ; atom(Prefix), atom(Local), var(Global)
393
+ -> ( rdf_current_prefix(Module:Prefix, Full)
394
+ *-> atom_concat(Full, Local, Global)
395
+ ; current_prolog_flag(xref, true)
396
+ -> Global = Prefix:Local
397
+ ; existence_error(rdf_prefix, Prefix)
398
+ )
399
+ ).
400
+
401
+
402
+ %! rdf_global_term(+TermIn, :GlobalTerm) is det.
403
+ %
404
+ % Performs rdf_global_id/2 on prefixed IRIs and rdf_global_object/2 on
405
+ % RDF literals, by recursively analysing the term. Note that the
406
+ % predicate is a meta-predicate on the output argument. This is
407
+ % necessary to get the module context while the first argument may be
408
+ % of the form (:)/2.
409
+ %
410
+ % Terms of the form `Prefix:Local` that appear in TermIn for which
411
+ % `Prefix` is not defined are not replaced. Unlike rdf_global_id/2 and
412
+ % rdf_global_object/2, no error is raised.
413
+
414
+ rdf_global_term(TermIn, Module:TermOut) :-
415
+ rdf_global_term(TermIn, TermOut, Module).
416
+
417
+ rdf_global_term(Var, Var, _M) :-
418
+ var(Var),
419
+ !.
420
+ rdf_global_term(Prefix:Local, Global, Module) :-
421
+ atom(Prefix), atom(Local),
422
+ rdf_current_prefix(Module:Prefix, Full),
423
+ !,
424
+ atom_concat(Full, Local, Global).
425
+ rdf_global_term([H0|T0], [H|T], M) :-
426
+ !,
427
+ rdf_global_term(H0, H, M),
428
+ rdf_global_term(T0, T, M).
429
+ rdf_global_term(Term0, Term, M) :-
430
+ compound(Term0),
431
+ !,
432
+ compound_name_arguments(Term0, Name, L0),
433
+ rdf_global_term(L0, L, M),
434
+ compound_name_arguments(Term, Name, L).
435
+ rdf_global_term(Term, Term, _).
436
+
437
+ %! rdf_global_graph(+TermIn, -GlobalTerm, +Module) is det.
438
+ %
439
+ % Preforms rdf_global_id/2 on rdf/4, etc graph arguments
440
+
441
+ rdf_global_graph(Prefix:Local, Global, Module) :-
442
+ atom(Prefix), atom(Local),
443
+ !,
444
+ global(Prefix, Local, Global, Module).
445
+ rdf_global_graph(G, G, _).
446
+
447
+
448
+ /*******************************
449
+ * EXPANSION *
450
+ *******************************/
451
+
452
+ :- multifile
453
+ system:term_expansion/2,
454
+ system:goal_expansion/2.
455
+
456
+ system:term_expansion((:- rdf_meta(Heads)), Clauses) :-
457
+ prolog_load_context(module, M),
458
+ phrase(mk_clauses(Heads, M), Clauses).
459
+
460
+ mk_clauses((A,B), M) -->
461
+ mk_clause(A, M),
462
+ mk_clauses(B, M).
463
+ mk_clauses(A, M) -->
464
+ mk_clause(A, M).
465
+
466
+ mk_clause(Head0, M0) -->
467
+ { strip_module(M0:Head0, Module, Head),
468
+ valid_rdf_meta_head(Head),
469
+ functor(Head, Name, Arity),
470
+ functor(Unbound, Name, Arity),
471
+ qualify(Module, 'rdf meta specification'/2, Decl)
472
+ },
473
+ [ (:- multifile(Decl)),
474
+ Module:'rdf meta specification'(Unbound, Head)
475
+ ].
476
+
477
+ qualify(Module, Decl, Decl) :-
478
+ prolog_load_context(module, Module),
479
+ !.
480
+ qualify(Module, Decl, Module:Decl).
481
+
482
+
483
+ valid_rdf_meta_head(Head) :-
484
+ callable(Head),
485
+ !,
486
+ Head =.. [_|Args],
487
+ valid_args(Args).
488
+ valid_rdf_meta_head(Head) :-
489
+ throw(error(type_error(callable, Head), _)).
490
+
491
+ valid_args([]).
492
+ valid_args([H|T]) :-
493
+ valid_arg(H),
494
+ !,
495
+ valid_args(T).
496
+
497
+ valid_arg(:). % meta argument
498
+ valid_arg(+). % non-var
499
+ valid_arg(-). % var
500
+ valid_arg(?). % either var or non-var
501
+ valid_arg(@). % not modified
502
+ valid_arg(r). % RDF resource
503
+ valid_arg(o). % RDF object
504
+ valid_arg(t). % term with RDF resources
505
+ valid_arg(g). % graph argument
506
+ valid_arg(A) :-
507
+ throw(error(type_error(rdf_meta_argument, A), _)).
508
+
509
+ %! rdf_meta(+Heads)
510
+ %
511
+ % This directive defines the argument types of the named
512
+ % predicates, which will force compile time namespace expansion
513
+ % for these predicates. Heads is a coma-separated list of callable
514
+ % terms. Defined argument properties are:
515
+ %
516
+ % $ : :
517
+ % Argument is a goal. The goal is processed using expand_goal/2,
518
+ % recursively applying goal transformation on the argument.
519
+ %
520
+ % $ + :
521
+ % The argument is instantiated at entry. Nothing is changed.
522
+ %
523
+ % $ - :
524
+ % The argument is not instantiated at entry. Nothing is changed.
525
+ %
526
+ % $ ? :
527
+ % The argument is unbound or instantiated at entry. Nothing is
528
+ % changed.
529
+ %
530
+ % $ @ :
531
+ % The argument is not changed.
532
+ %
533
+ % $ r :
534
+ % The argument must be a resource. If it is a term
535
+ % _prefix_:_local_ it is translated.
536
+ %
537
+ % $ o :
538
+ % The argument is an object or resource. See
539
+ % rdf_global_object/2.
540
+ %
541
+ % $ t :
542
+ % The argument is a term that must be translated. Expansion will
543
+ % translate all occurrences of _prefix_:_local_ appearing
544
+ % anywhere in the term. See rdf_global_term/2.
545
+ %
546
+ % As it is subject to term_expansion/2, the rdf_meta/1 declaration
547
+ % can only be used as a directive. The directive must be processed
548
+ % before the definition of the predicates as well as before
549
+ % compiling code that uses the rdf meta-predicates. The atom
550
+ % =rdf_meta= is declared as an operator exported from
551
+ % library(semweb/rdf_db). Files using rdf_meta/1 must explicitly
552
+ % load this library.
553
+ %
554
+ % Beginning with SWI-Prolog 7.3.17, the low-level RDF interface
555
+ % (rdf/3, rdf_assert/3, etc.) perform runtime expansion of
556
+ % `Prefix:Local` terms. This eliminates the need for rdf_meta/1
557
+ % for simple cases. However, runtime expansion comes at a
558
+ % significant overhead and having two representations for IRIs (a
559
+ % plain atom and a term `Prefix:Local`) implies that simple
560
+ % operations such as comparison of IRIs no longer map to native
561
+ % Prolog operations such as `IRI1 == IRI2`.
562
+
563
+ rdf_meta(Heads) :-
564
+ throw(error(context_error(nodirective, rdf_meta(Heads)), _)).
565
+
566
+ %! rdf_meta_specification(+General, +Module, -Spec) is semidet.
567
+ %
568
+ % True when Spec is the RDF meta specification for Module:General.
569
+ %
570
+ % @arg General is the term Spec with all arguments replaced with
571
+ % variables.
572
+
573
+ rdf_meta_specification(Unbounded, Module, Spec) :-
574
+ '$flushed_predicate'(Module:'rdf meta specification'(_,_)),
575
+ call(Module:'rdf meta specification'(Unbounded, Spec)).
576
+
577
+ split_rule((Module:Head :- Body), (Module:Expanded :- Body),
578
+ Module, Head, Expanded) :-
579
+ atom(Module),
580
+ !.
581
+ split_rule((Head :- Body), (Expanded :- Body),
582
+ Module, Head, Expanded) :-
583
+ callable(Head),
584
+ prolog_load_context(module, Module),
585
+ !.
586
+ split_rule((Module:Head,Guard => Body), (Module:Expanded,Guard => Body),
587
+ Module, Head, Expanded) :-
588
+ callable(Head),
589
+ atom(Module),
590
+ !.
591
+ split_rule((Module:Head => Body), (Module:Expanded => Body),
592
+ Module, Head, Expanded) :-
593
+ callable(Head),
594
+ atom(Module),
595
+ !.
596
+ split_rule((Head,Guard => Body), (Expanded,Guard => Body),
597
+ Module, Head, Expanded) :-
598
+ callable(Head),
599
+ prolog_load_context(module, Module),
600
+ !.
601
+ split_rule((Head => Body), (Expanded => Body),
602
+ Module, Head, Expanded) :-
603
+ callable(Head),
604
+ prolog_load_context(module, Module).
605
+
606
+ system:goal_expansion(G, Expanded) :-
607
+ \+ predicate_property(G, iso),
608
+ prolog_load_context(module, LM),
609
+ predicate_property(LM:G, implementation_module(IM)),
610
+ rdf_meta_specification(G, IM, Spec),
611
+ rdf_expand(G, Spec, Expanded, LM).
612
+
613
+ system:term_expansion(Module:Fact, Expanded) :-
614
+ atom(Module),
615
+ rdf_meta_specification(Fact, Module, Spec),
616
+ rdf_expand(Fact, Spec, ExpandedFact, Module),
617
+ Fact \== ExpandedFact,
618
+ Expanded = (Module:ExpandedFact).
619
+ system:term_expansion(Fact, Expanded) :-
620
+ prolog_load_context(module, Module),
621
+ rdf_meta_specification(Fact, Module, Spec),
622
+ rdf_expand(Fact, Spec, Expanded, Module),
623
+ Fact \== Expanded.
624
+ system:term_expansion(Clause0, Clause) :-
625
+ split_rule(Clause0, Clause, Module, Head, Expanded),
626
+ rdf_meta_specification(Head, Module, Spec),
627
+ rdf_expand(Head, Spec, Expanded, Module),
628
+ Head \== Expanded.
629
+
630
+ rdf_expand(G, Spec, Expanded, M) :-
631
+ functor(G, Name, Arity),
632
+ functor(Expanded, Name, Arity),
633
+ rdf_expand_args(0, Arity, G, Spec, Expanded, M).
634
+
635
+ rdf_expand_args(Arity, Arity, _, _, _, _) :- !.
636
+ rdf_expand_args(I0, Arity, Goal, Spec, Expanded, M) :-
637
+ I is I0 + 1,
638
+ arg(I, Goal, GA),
639
+ arg(I, Spec, SA),
640
+ arg(I, Expanded, EA),
641
+ rdf_expand_arg(SA, GA, EA, M),
642
+ rdf_expand_args(I, Arity, Goal, Spec, Expanded, M).
643
+
644
+ rdf_expand_arg(r, A, E, M) :-
645
+ mk_global(A, E, M),
646
+ !.
647
+ rdf_expand_arg(o, A, E, M) :-
648
+ rdf_global_object(A, E, M),
649
+ !.
650
+ rdf_expand_arg(t, A, E, M) :-
651
+ rdf_global_term(A, E, M),
652
+ !.
653
+ rdf_expand_arg(g, A, E, M) :-
654
+ rdf_global_graph(A, E, M),
655
+ !.
656
+ rdf_expand_arg(:, A, E, _M) :-
657
+ !,
658
+ expand_goal(A, E).
659
+ rdf_expand_arg(_, A, A, _M).
660
+
661
+ %! mk_global(+Src, -Resource, +Module)
662
+ %
663
+ % Realised rdf_global_id(+, -), but adds compiletime checking,
664
+ % notably to see whether a namespace is not yet defined.
665
+
666
+ mk_global(X, X, _) :-
667
+ var(X),
668
+ !.
669
+ mk_global(X, X, _) :-
670
+ atom(X),
671
+ !.
672
+ mk_global(Prefix:Local, Global, Module) :-
673
+ must_be(atom, Prefix),
674
+ must_be(atom, Local),
675
+ ( rdf_current_prefix(Module:Prefix, Full)
676
+ -> atom_concat(Full, Local, Global)
677
+ ; current_prolog_flag(xref, true)
678
+ -> Global = Prefix:Local
679
+ ; existence_error(rdf_prefix, Prefix)
680
+ ).
681
+