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,649 @@
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) 2010-2013, University of Amsterdam
7
+ All rights reserved.
8
+
9
+ Redistribution and use in source and binary forms, with or without
10
+ modification, are permitted provided that the following conditions
11
+ are met:
12
+
13
+ 1. Redistributions of source code must retain the above copyright
14
+ notice, this list of conditions and the following disclaimer.
15
+
16
+ 2. Redistributions in binary form must reproduce the above copyright
17
+ notice, this list of conditions and the following disclaimer in
18
+ the documentation and/or other materials provided with the
19
+ distribution.
20
+
21
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24
+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25
+ COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27
+ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31
+ ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
+ POSSIBILITY OF SUCH DAMAGE.
33
+ */
34
+
35
+ :- module(rdf_parser,
36
+ [ xml_to_plrdf/3, % +XMLTerm, -RDFTerm, +State
37
+ element_to_plrdf/3, % +ContentList, -RDFTerm, +State
38
+ make_rdf_state/3, % +Options, -State, -RestOptions
39
+ rdf_modify_state/3, % +XMLAttrs, +State0, -State
40
+ rdf_name_space/1
41
+ ]).
42
+ :- use_module(library(record),[(record)/1, op(_,_,record)]).
43
+ :- use_module(library(rewrite_term),
44
+ [ rew_term_expansion/2,rew_goal_expansion/2,
45
+ op(_,_,::=)
46
+ ]).
47
+ :- autoload(library(lists),[select/3,append/3,member/2]).
48
+ :- autoload(library(occurs),[sub_term/2]).
49
+ :- autoload(library(sgml),[xml_name/1]).
50
+ :- autoload(library(uri),[iri_normalized/3]).
51
+
52
+
53
+ % xml_name/1
54
+ :- op(500, fx, \?). % Optional (attrs)
55
+
56
+ term_expansion(F, T) :- rew_term_expansion(F, T).
57
+ goal_expansion(F, T) :- rew_goal_expansion(F, T).
58
+
59
+ goal_expansion(attrs(Attrs, List), Goal) :-
60
+ translate_attrs(List, Attrs, Goal).
61
+
62
+ translate_attrs(Var, Attrs, rewrite_term(Var, Attrs)) :-
63
+ var(Var),
64
+ !.
65
+ translate_attrs([], _, true) :- !.
66
+ translate_attrs([H], Attrs, Goal) :-
67
+ !,
68
+ ( var(H)
69
+ -> Goal = rewrite_term(H, Attrs)
70
+ ; H = \?Optional
71
+ -> Goal = ( member(A, Attrs),
72
+ OptRewrite
73
+ -> true
74
+ ; true
75
+ ),
76
+ expand_goal(rewrite_term(\Optional, A), OptRewrite)
77
+ ; Goal = ( member(A, Attrs),
78
+ Rewrite
79
+ -> true
80
+ ),
81
+ expand_goal(rewrite_term(H, A), Rewrite)
82
+ ).
83
+ translate_attrs([H|T], Attrs0, (G0, G1)) :-
84
+ !,
85
+ ( var(H)
86
+ -> G0 = rewrite_term(H, Attrs0),
87
+ Attrs1 = Attrs0
88
+ ; H = \?Optional
89
+ -> G0 = ( select(A, Attrs0, Attrs1),
90
+ OptRewrite
91
+ -> true
92
+ ; Attrs1 = Attrs0
93
+ ),
94
+ expand_goal(rewrite_term(\Optional, A), OptRewrite)
95
+ ; G0 = ( select(A, Attrs0, Attrs1),
96
+ Rewrite
97
+ ),
98
+ expand_goal(rewrite_term(H, A), Rewrite)
99
+ ),
100
+ translate_attrs(T, Attrs1, G1).
101
+ translate_attrs(Rule, Attrs, Goal) :-
102
+ expand_goal(rewrite_term(Rule, Attrs), Goal).
103
+
104
+
105
+ :- multifile rdf_name_space/1.
106
+ :- dynamic rdf_name_space/1.
107
+
108
+ %! rdf_name_space(?URL) is nondet.
109
+ %
110
+ % True if URL must be handled as rdf: Determines special handling
111
+ % of rdf:about, rdf:resource, etc.
112
+
113
+
114
+ rdf_name_space('http://www.w3.org/1999/02/22-rdf-syntax-ns#').
115
+ rdf_name_space('http://www.w3.org/TR/REC-rdf-syntax').
116
+
117
+
118
+ :- record
119
+ rdf_state(base_uri='',
120
+ lang='',
121
+ ignore_lang=false,
122
+ convert_typed_literal).
123
+
124
+
125
+ %! xml_to_plrdf(+RDFElementOrObject, -RDFTerm, +State)
126
+ %
127
+ % Translate an XML (using namespaces) term into an Prolog term
128
+ % representing the RDF data. This term can then be fed into
129
+ % rdf_triples/[2,3] to create a list of RDF triples. State is an
130
+ % instance of an rdf_state record.
131
+
132
+ xml_to_plrdf(Element, RDF, State) :-
133
+ ( is_list(Element)
134
+ -> rewrite_term(\xml_content_objects(RDF, State), Element)
135
+ ; rewrite_term(\xml_objects(RDF, State), Element)
136
+ ).
137
+
138
+ %! element_to_plrdf(+DOM, -RDFTerm, +State)
139
+ %
140
+ % Rewrite a single XML element.
141
+
142
+ element_to_plrdf(Element, RDF, State) :-
143
+ rewrite_term(\nodeElementList(RDF, State), [Element]).
144
+
145
+ xml_objects(Objects, Options0) ::=
146
+ E0,
147
+ { modify_state(E0, Options0, E, Options), !,
148
+ rewrite_term(\xml_objects(Objects, Options), E)
149
+ }.
150
+ xml_objects(Objects, Options) ::=
151
+ element((\rdf('RDF'), !),
152
+ _,
153
+ \nodeElementList(Objects, Options)),
154
+ !.
155
+ xml_objects(Objects, Options) ::=
156
+ element(_, _, \xml_content_objects(Objects, Options)).
157
+
158
+ xml_content_objects([], _) ::=
159
+ [].
160
+ xml_content_objects([H|T], Options) ::=
161
+ [ \xml_objects(H, Options)
162
+ | \xml_content_objects(T, Options)
163
+ ].
164
+
165
+
166
+ nodeElementList([], _Options) ::=
167
+ [], !.
168
+ nodeElementList(L, Options) ::=
169
+ [ (\ws, !)
170
+ | \nodeElementList(L, Options)
171
+ ].
172
+ nodeElementList([H|T], Options) ::=
173
+ [ \nodeElementOrError(H, Options)
174
+ | \nodeElementList(T, Options)
175
+ ].
176
+
177
+ nodeElementOrError(H, Options) ::=
178
+ \nodeElement(H, Options), !.
179
+ nodeElementOrError(unparsed(Data), _Options) ::=
180
+ Data.
181
+
182
+ nodeElement(description(Type, About, Properties), Options) ::=
183
+ \description(Type, About, Properties, Options).
184
+
185
+
186
+ /*******************************
187
+ * DESCRIPTION *
188
+ *******************************/
189
+
190
+ description(Type, About, Properties, Options0) ::=
191
+ E0,
192
+ { modify_state(E0, Options0, E, Options), !,
193
+ rewrite_term(\description(Type, About, Properties, Options), E)
194
+ }.
195
+ description(description, About, Properties, Options) ::=
196
+ element(\rdf('Description'),
197
+ \attrs([ \?idAboutAttr(About, Options)
198
+ | \propAttrs(PropAttrs, Options)
199
+ ]),
200
+ \propertyElts(PropElts, Options)),
201
+ { !, append(PropAttrs, PropElts, Properties)
202
+ }.
203
+ description(Type, About, Properties, Options) ::=
204
+ element(\name_uri(Type, Options),
205
+ \attrs([ \?idAboutAttr(About, Options)
206
+ | \propAttrs(PropAttrs, Options)
207
+ ]),
208
+ \propertyElts(PropElts, Options)),
209
+ { append(PropAttrs, PropElts, Properties)
210
+ }.
211
+
212
+ propAttrs([], _) ::=
213
+ [], !.
214
+ propAttrs([H|T], Options) ::=
215
+ [ \propAttr(H, Options)
216
+ | \propAttrs(T, Options)
217
+ ].
218
+
219
+ propAttr(rdf:type = URI, Options) ::=
220
+ \rdf_or_unqualified(type) = \value_uri(URI, Options), !.
221
+ propAttr(Name = Literal, Options) ::=
222
+ Name = Value,
223
+ { mkliteral(Value, Literal, Options)
224
+ }.
225
+
226
+ propertyElts([], _) ::=
227
+ [], !.
228
+ propertyElts(Elts, Options) ::=
229
+ [ (\ws, !)
230
+ | \propertyElts(Elts, Options)
231
+ ].
232
+ propertyElts([H|T], Options) ::=
233
+ [ \propertyElt(H, Options)
234
+ | \propertyElts(T, Options)
235
+ ].
236
+
237
+ propertyElt(E, Options) ::=
238
+ \propertyElt(Id, Name, Value, Options),
239
+ { mkprop(Name, Value, Prop),
240
+ ( var(Id)
241
+ -> E = Prop
242
+ ; E = id(Id, Prop)
243
+ )
244
+ }.
245
+
246
+ mkprop(NS:Local, Value, rdf:Local = Value) :-
247
+ rdf_name_space(NS),
248
+ !.
249
+ mkprop(Name, Value, Name = Value).
250
+
251
+
252
+ propertyElt(Id, Name, Value, Options0) ::=
253
+ E0,
254
+ { modify_state(E0, Options0, E, Options), !,
255
+ rewrite_term(\propertyElt(Id, Name, Value, Options), E)
256
+ }.
257
+ propertyElt(Id, Name, Value, Options) ::=
258
+ \literalPropertyElt(Id, Name, Value, Options), !.
259
+ propertyElt(_, Name, Literal, Options) ::=
260
+ element(Name,
261
+ \attrs([ \parseLiteral
262
+ ]),
263
+ Content),
264
+ { !,
265
+ literal_value(Content, Literal, Options)
266
+ }.
267
+ propertyElt(Id, Name, collection(Elements), Options) ::=
268
+ element(Name,
269
+ \attrs([ \parseCollection,
270
+ \?idAttr(Id, Options)
271
+ ]),
272
+ \nodeElementList(Elements, Options)).
273
+ % 5.14 emptyPropertyElt
274
+ propertyElt(Id, Name, Value, Options) ::=
275
+ element(Name, A, \all_ws),
276
+ { !,
277
+ rewrite_term(\emptyPropertyElt(Id, Value, Options), A)
278
+ }.
279
+
280
+ propertyElt(_, Name, description(description, Id, Properties), Options) ::=
281
+ element(Name,
282
+ \attrs([ \parseResource,
283
+ \?idAboutAttr(Id, Options)
284
+ ]),
285
+ \propertyElts(Properties, Options)),
286
+ !.
287
+ propertyElt(Id, Name, Literal, Options) ::=
288
+ element(Name,
289
+ \attrs([ \?idAttr(Id, Options)
290
+ ]),
291
+ [ Value ]),
292
+ { atom(Value), !,
293
+ mkliteral(Value, Literal, Options)
294
+ }.
295
+ propertyElt(Id, Name, Value, Options) ::=
296
+ element(Name,
297
+ \attrs([ \?idAttr(Id, Options)
298
+ ]),
299
+ \an_rdf_object(Value, Options)), !.
300
+ propertyElt(Id, Name, unparsed(Value), Options) ::=
301
+ element(Name,
302
+ \attrs([ \?idAttr(Id, Options)
303
+ ]),
304
+ Value).
305
+
306
+ literalPropertyElt(Id, Name, Literal, Options) ::=
307
+ element(Name,
308
+ \attrs([ \typeAttr(Type, Options),
309
+ \?idAttr(Id, Options)
310
+ ]),
311
+ Content),
312
+ { typed_literal(Type, Content, Literal, Options)
313
+ }.
314
+
315
+ emptyPropertyElt(Id, Literal, Options) ::=
316
+ \attrs([ \?idAttr(Id, Options),
317
+ \?parseLiteral
318
+ | \noMoreAttrs
319
+ ]),
320
+ { !,
321
+ mkliteral('', Literal, Options)
322
+ }.
323
+ emptyPropertyElt(Id,
324
+ description(description, About, Properties),
325
+ Options) ::=
326
+ \attrs([ \?idAttr(Id, Options),
327
+ \?aboutResourceEmptyElt(About, Options),
328
+ \?parseResource
329
+ | \propAttrs(Properties, Options)
330
+ ]), !.
331
+
332
+ aboutResourceEmptyElt(about(URI), Options) ::=
333
+ \resourceAttr(URI, Options), !.
334
+ aboutResourceEmptyElt(node(URI), _Options) ::=
335
+ \nodeIDAttr(URI).
336
+
337
+ %! literal_value(+In, -Value, +Options)
338
+ %
339
+ % Create the literal value for rdf:parseType="Literal" attributes.
340
+ % The content is the Prolog XML DOM tree for the literal.
341
+ %
342
+ % @tbd Note that the specs demand a canonical textual representation
343
+ % of the XML data as a Unicode string. For now the user can
344
+ % achieve this using the convert_typed_literal hook.
345
+
346
+ literal_value(Value, literal(type(rdf:'XMLLiteral', Value)), _).
347
+
348
+ %! mkliteral(+Atom, -Object, +Options)
349
+ %
350
+ % Translate attribute value Atom into an RDF object using the
351
+ % lang(Lang) option from Options.
352
+
353
+ mkliteral(Text, literal(Val), Options) :-
354
+ atom(Text),
355
+ ( rdf_state_lang(Options, Lang),
356
+ Lang \== ''
357
+ -> Val = lang(Lang, Text)
358
+ ; Val = Text
359
+ ).
360
+
361
+ %! typed_literal(+Type, +Content, -Literal, +Options)
362
+ %
363
+ % Handle a literal attribute with rdf:datatype=Type qualifier. NB:
364
+ % possibly it is faster to use a global variable for the
365
+ % conversion hook.
366
+
367
+ typed_literal(Type, Content, literal(Object), Options) :-
368
+ rdf_state_convert_typed_literal(Options, Convert),
369
+ nonvar(Convert),
370
+ !,
371
+ ( catch(call(Convert, Type, Content, Object), E, true)
372
+ -> ( var(E)
373
+ -> true
374
+ ; Object = E
375
+ )
376
+ ; Object = error(cannot_convert(Type, Content), _)
377
+ ).
378
+ typed_literal(Type, [], literal(type(Type, '')), _Options) :- !.
379
+ typed_literal(Type, [Text], literal(type(Type, Text)), _Options) :- !.
380
+ typed_literal(Type, Content, literal(type(Type, Content)), _Options).
381
+
382
+
383
+ idAboutAttr(id(Id), Options) ::=
384
+ \idAttr(Id, Options), !.
385
+ idAboutAttr(about(About), Options) ::=
386
+ \aboutAttr(About, Options), !.
387
+ idAboutAttr(node(About), _Options) ::=
388
+ \nodeIDAttr(About), !.
389
+
390
+ %! an_rdf_object(-Object, +OptionsURI)
391
+ %
392
+ % Deals with an object, but there may be spaces around. I'm still
393
+ % not sure where to deal with these. Best is to ask the XML parser
394
+ % to get rid of them, So most likely this code will change if this
395
+ % happens.
396
+
397
+ an_rdf_object(Object, Options) ::=
398
+ [ \nodeElement(Object, Options)
399
+ ], !.
400
+ an_rdf_object(Object, Options) ::=
401
+ [ (\ws, !)
402
+ | \an_rdf_object(Object, Options)
403
+ ].
404
+ an_rdf_object(Object, Options) ::=
405
+ [ \nodeElement(Object, Options),
406
+ \ws
407
+ ], !.
408
+
409
+ ws ::=
410
+ A,
411
+ { atom(A),
412
+ atom_chars(A, Chars),
413
+ all_blank(Chars), !
414
+ }.
415
+ ws ::=
416
+ pi(_).
417
+
418
+ all_ws ::=
419
+ [], !.
420
+ all_ws ::=
421
+ [\ws | \all_ws].
422
+
423
+ all_blank([]).
424
+ all_blank([H|T]) :-
425
+ char_type(H, space), % SWI-Prolog specific
426
+ all_blank(T).
427
+
428
+
429
+ /*******************************
430
+ * RDF ATTRIBUTES *
431
+ *******************************/
432
+
433
+ idAttr(Id, Options) ::=
434
+ \rdf_or_unqualified('ID') = \uniqueid(Id, Options).
435
+
436
+ aboutAttr(About, Options) ::=
437
+ \rdf_or_unqualified(about) = \value_uri(About, Options).
438
+
439
+ nodeIDAttr(About) ::=
440
+ \rdf_or_unqualified(nodeID) = About.
441
+
442
+ resourceAttr(URI, Options) ::=
443
+ \rdf_or_unqualified(resource) = \value_uri(URI, Options).
444
+
445
+ typeAttr(Type, Options) ::=
446
+ \rdf_or_unqualified(datatype) = \value_uri(Type, Options).
447
+
448
+ name_uri(URI, Options) ::=
449
+ NS:Local,
450
+ { !, atom_concat(NS, Local, A),
451
+ rewrite_term(\value_uri(URI, Options), A)
452
+ }.
453
+ name_uri(URI, Options) ::=
454
+ \value_uri(URI, Options).
455
+
456
+ value_uri(URI, Options) ::=
457
+ A,
458
+ { rdf_state_base_uri(Options, Base),
459
+ ( Base \== []
460
+ -> iri_normalized(A, Base, URI)
461
+ ; URI = A
462
+ )
463
+ }.
464
+
465
+ uniqueid(Id, Options) ::=
466
+ A,
467
+ { unique_xml_name(A, HashID),
468
+ make_globalid(HashID, Options, Id)
469
+ }.
470
+
471
+ unique_xml_name(Name, HashID) :-
472
+ atom_concat(#, Name, HashID),
473
+ ( xml_name(Name)
474
+ -> true
475
+ ; print_message(warning, rdf(not_a_name(Name)))
476
+ ).
477
+
478
+ make_globalid(In, Options, Id) :-
479
+ rdf_state_base_uri(Options, Base),
480
+ iri_normalized(In, Base, Id).
481
+
482
+ parseLiteral ::= \rdf_or_unqualified(parseType) = 'Literal'.
483
+ parseResource ::= \rdf_or_unqualified(parseType) = 'Resource'.
484
+ parseCollection ::= \rdf_or_unqualified(parseType) = 'Collection'.
485
+
486
+
487
+ /*******************************
488
+ * PRIMITIVES *
489
+ *******************************/
490
+
491
+ rdf(Tag) ::=
492
+ NS:Tag,
493
+ { rdf_name_space(NS), !
494
+ }.
495
+
496
+ rdf_or_unqualified(Tag) ::=
497
+ Tag.
498
+ rdf_or_unqualified(Tag) ::=
499
+ NS:Tag,
500
+ { rdf_name_space(NS), !
501
+ }.
502
+
503
+
504
+ /*******************************
505
+ * BASICS *
506
+ *******************************/
507
+
508
+ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
509
+ This code is translated by the goal_expansion/2 rule at the start of
510
+ this file. We leave the original code for reference.
511
+
512
+ attrs(Bag) ::=
513
+ L0,
514
+ { do_attrs(Bag, L0)
515
+ }.
516
+
517
+ do_attrs([], _) :- !.
518
+ do_attrs([\?H|T], L0) :- !, % optional
519
+ ( select(X, L0, L),
520
+ rewrite_term(\H, X)
521
+ -> true
522
+ ; L = L0
523
+ ),
524
+ do_attrs(T, L).
525
+ do_attrs([H|T], L0) :-
526
+ select(X, L0, L),
527
+ rewrite_term(H, X), !,
528
+ do_attrs(T, L).
529
+ do_attrs(C, L) :-
530
+ rewrite_term(C, L).
531
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
532
+
533
+ % \noMoreAttrs
534
+ %
535
+ % Check attribute-list is empty. Reserved xml: attributes are
536
+ % excluded from this test.
537
+
538
+ noMoreAttrs ::=
539
+ [], !.
540
+ noMoreAttrs ::=
541
+ [ xml:_=_
542
+ | \noMoreAttrs
543
+ ].
544
+
545
+ %! modify_state(+Element0, +Options0, -Element, -Options) is semidet.
546
+ %
547
+ % If Element0 contains xml:base = Base, strip it from the
548
+ % attributes list and update base_uri(_) in the Options
549
+ %
550
+ % It Element0 contains xml:lang = Lang, strip it from the
551
+ % attributes list and update lang(_) in the Options
552
+ %
553
+ % Remove all xmlns=_, xmlns:_=_ and xml:_=_. Only succeed
554
+ % if something changed.
555
+
556
+ modify_state(element(Name, Attrs0, Content), Options0,
557
+ element(Name, Attrs, Content), Options) :-
558
+ modify_a_state(Attrs0, Options0, Attrs, Options),
559
+ Attrs0 \== Attrs.
560
+
561
+ rdf_modify_state(Attributes, State0, State) :-
562
+ modify_a_state(Attributes, State0, _, State).
563
+
564
+
565
+ modify_a_state([], Options, [], Options).
566
+ modify_a_state([Name=Value|T0], Options0, T, Options) :-
567
+ modify_a(Name, Value, Options0, Options1),
568
+ !,
569
+ modify_a_state(T0, Options1, T, Options).
570
+ modify_a_state([H|T0], Options0, [H|T], Options) :-
571
+ modify_a_state(T0, Options0, T, Options).
572
+
573
+
574
+ modify_a(xml:base, Base1, Options0, Options) :-
575
+ !,
576
+ rdf_state_base_uri(Options0, Base0),
577
+ remove_fragment(Base1, Base2),
578
+ iri_normalized(Base2, Base0, Base),
579
+ set_base_uri_of_rdf_state(Base, Options0, Options).
580
+ modify_a(xml:lang, Lang, Options0, Options) :-
581
+ !,
582
+ rdf_state_ignore_lang(Options0, false),
583
+ !,
584
+ set_lang_of_rdf_state(Lang, Options0, Options).
585
+ modify_a(xmlns, _, Options, Options).
586
+ modify_a(xmlns:_, _, Options, Options).
587
+ modify_a(xml:_, _, Options, Options).
588
+
589
+
590
+ %! remove_fragment(+URI, -WithoutFragment)
591
+ %
592
+ % When handling xml:base, we must delete the possible fragment.
593
+
594
+ remove_fragment(URI, Plain) :-
595
+ sub_atom(URI, B, _, _, #),
596
+ !,
597
+ sub_atom(URI, 0, B, _, Plain).
598
+ remove_fragment(URI, URI).
599
+
600
+
601
+ /*******************************
602
+ * HELP PCE-EMACS A BIT *
603
+ *******************************/
604
+
605
+ :- multifile
606
+ emacs_prolog_colours:term_colours/2,
607
+ emacs_prolog_colours:goal_classification/2.
608
+
609
+ expand(c(X), _, X) :- !.
610
+ expand(In, Pattern, Colours) :-
611
+ compound(In),
612
+ !,
613
+ In =.. [F|Args],
614
+ expand_list(Args, PatternArgs, ColourArgs),
615
+ Pattern =.. [F|PatternArgs],
616
+ Colours = functor(F) - ColourArgs.
617
+ expand(X, X, classify).
618
+
619
+ expand_list([], [], []).
620
+ expand_list([H|T], [PH|PT], [CH|CT]) :-
621
+ expand(H, PH, CH),
622
+ expand_list(T, PT, CT).
623
+
624
+ :- discontiguous
625
+ term_expansion/2.
626
+
627
+ term_expansion(term_colours(C),
628
+ emacs_prolog_colours:term_colours(Pattern, Colours)) :-
629
+ expand(C, Pattern, Colours).
630
+
631
+ term_colours((c(head(+(1))) ::= c(match), {c(body)})).
632
+ term_colours((c(head(+(1))) ::= c(match))).
633
+
634
+ emacs_prolog_colours:goal_classification(\_, expanded).
635
+
636
+ :- dynamic
637
+ prolog:meta_goal/2.
638
+ :- multifile
639
+ prolog:meta_goal/2,
640
+ prolog:called_by/2.
641
+
642
+ prolog:meta_goal(rewrite_term(A, _), [A]).
643
+ prolog:meta_goal(\A, [A+1]).
644
+
645
+ prolog:called_by(attrs(Attrs, _Term), Called) :-
646
+ findall(G+1, sub_term(\?G, Attrs), Called, Tail),
647
+ findall(G+1, sub_term(\G, Attrs), Tail).
648
+
649
+