pylode 2.10.3__tar.gz → 2.13.2__tar.gz

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 (297) hide show
  1. pyLODE-2.13.2/PKG-INFO +880 -0
  2. {pyLODE-2.10.3 → pyLODE-2.13.2}/README.rst +3 -2
  3. pyLODE-2.13.2/pyLODE.egg-info/PKG-INFO +880 -0
  4. pyLODE-2.13.2/pyLODE.egg-info/SOURCES.txt +80 -0
  5. pyLODE-2.13.2/pyLODE.egg-info/requires.txt +4 -0
  6. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/__init__.py +1 -3
  7. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/curies.py +1 -1
  8. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/profiles/base.py +10 -8
  9. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/profiles/ontdoc.py +3 -3
  10. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/ontdoc/document.html +1 -1
  11. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/ontdoc/document.md +1 -1
  12. pyLODE-2.10.3/.gitignore +0 -119
  13. pyLODE-2.10.3/Dockerfile +0 -27
  14. pyLODE-2.10.3/PKG-INFO +0 -876
  15. pyLODE-2.10.3/img/favicon-16x16.png +0 -0
  16. pyLODE-2.10.3/img/favicon-32x32.png +0 -0
  17. pyLODE-2.10.3/img/pyLODE-250.png +0 -0
  18. pyLODE-2.10.3/img/pyLODE.png +0 -0
  19. pyLODE-2.10.3/pyLODE.egg-info/PKG-INFO +0 -876
  20. pyLODE-2.10.3/pyLODE.egg-info/SOURCES.txt +0 -292
  21. pyLODE-2.10.3/pyLODE.egg-info/requires.txt +0 -5
  22. pyLODE-2.10.3/pylode/_version.py +0 -5
  23. pyLODE-2.10.3/pylode/bin/pyLODE.exe +0 -0
  24. pyLODE-2.10.3/pylode/bin/pylode.app +0 -0
  25. pyLODE-2.10.3/pylode/bin/pylode.sh +0 -5
  26. pyLODE-2.10.3/pylode/examples/_make_examples.py +0 -79
  27. pyLODE-2.10.3/pylode/examples/agift.ttl +0 -9694
  28. pyLODE-2.10.3/pylode/examples/agift.vocpub.html +0 -14468
  29. pyLODE-2.10.3/pylode/examples/agift.vocpub.md +0 -6184
  30. pyLODE-2.10.3/pylode/examples/agrif-notitle.html +0 -3959
  31. pyLODE-2.10.3/pylode/examples/agrif-notitle.md +0 -1249
  32. pyLODE-2.10.3/pylode/examples/agrif-notitle.ttl +0 -1453
  33. pyLODE-2.10.3/pylode/examples/agrif.adoc +0 -2817
  34. pyLODE-2.10.3/pylode/examples/agrif.adoc.html +0 -7292
  35. pyLODE-2.10.3/pylode/examples/agrif.html +0 -3968
  36. pyLODE-2.10.3/pylode/examples/agrif.md +0 -1253
  37. pyLODE-2.10.3/pylode/examples/agrif.nmpf.html +0 -3959
  38. pyLODE-2.10.3/pylode/examples/agrif.ttl +0 -1451
  39. pyLODE-2.10.3/pylode/examples/agrif.vocpub.html +0 -2100
  40. pyLODE-2.10.3/pylode/examples/agrif.vocpub.md +0 -690
  41. pyLODE-2.10.3/pylode/examples/alternates.html +0 -547
  42. pyLODE-2.10.3/pylode/examples/alternates.md +0 -132
  43. pyLODE-2.10.3/pylode/examples/alternates.ttl +0 -106
  44. pyLODE-2.10.3/pylode/examples/asgs.html +0 -1513
  45. pyLODE-2.10.3/pylode/examples/asgs.md +0 -439
  46. pyLODE-2.10.3/pylode/examples/asgs.ttl +0 -574
  47. pyLODE-2.10.3/pylode/examples/asgs.vocpub.html +0 -1022
  48. pyLODE-2.10.3/pylode/examples/asgs.vocpub.md +0 -297
  49. pyLODE-2.10.3/pylode/examples/bfo.html +0 -4365
  50. pyLODE-2.10.3/pylode/examples/bfo.md +0 -1254
  51. pyLODE-2.10.3/pylode/examples/bfo.ttl +0 -5467
  52. pyLODE-2.10.3/pylode/examples/brick.html +0 -12339
  53. pyLODE-2.10.3/pylode/examples/brick.md +0 -4033
  54. pyLODE-2.10.3/pylode/examples/brick.ttl +0 -7294
  55. pyLODE-2.10.3/pylode/examples/collection-item-format.md +0 -230
  56. pyLODE-2.10.3/pylode/examples/collection-item-format.ttl +0 -234
  57. pyLODE-2.10.3/pylode/examples/collection-item-format.vocpub.html +0 -858
  58. pyLODE-2.10.3/pylode/examples/collection-item-format.vocpub.md +0 -252
  59. pyLODE-2.10.3/pylode/examples/crs.html +0 -1895
  60. pyLODE-2.10.3/pylode/examples/crs.md +0 -558
  61. pyLODE-2.10.3/pylode/examples/crs.ttl +0 -531
  62. pyLODE-2.10.3/pylode/examples/data-access-rights.ttl +0 -69
  63. pyLODE-2.10.3/pylode/examples/data-access-rights.vocpub.html +0 -452
  64. pyLODE-2.10.3/pylode/examples/data-access-rights.vocpub.md +0 -119
  65. pyLODE-2.10.3/pylode/examples/datatype.html +0 -723
  66. pyLODE-2.10.3/pylode/examples/datatype.md +0 -197
  67. pyLODE-2.10.3/pylode/examples/datatype.ttl +0 -256
  68. pyLODE-2.10.3/pylode/examples/dcat.ttl.broken +0 -2518
  69. pyLODE-2.10.3/pylode/examples/decprov.html +0 -585
  70. pyLODE-2.10.3/pylode/examples/decprov.md +0 -144
  71. pyLODE-2.10.3/pylode/examples/decprov.svg +0 -1
  72. pyLODE-2.10.3/pylode/examples/decprov.ttl +0 -134
  73. pyLODE-2.10.3/pylode/examples/doap.html +0 -2046
  74. pyLODE-2.10.3/pylode/examples/doap.md +0 -565
  75. pyLODE-2.10.3/pylode/examples/doap.ttl +0 -778
  76. pyLODE-2.10.3/pylode/examples/earth-science-data-category.ttl +0 -560
  77. pyLODE-2.10.3/pylode/examples/earth-science-data-category.vocpub.html +0 -2229
  78. pyLODE-2.10.3/pylode/examples/earth-science-data-category.vocpub.md +0 -773
  79. pyLODE-2.10.3/pylode/examples/ebg.html +0 -4660
  80. pyLODE-2.10.3/pylode/examples/ebg.ttl +0 -1256
  81. pyLODE-2.10.3/pylode/examples/examples-ont/examples.adoc +0 -426
  82. pyLODE-2.10.3/pylode/examples/examples-ont/examples.adoc.html +0 -1398
  83. pyLODE-2.10.3/pylode/examples/examples-ont/examples.html +0 -806
  84. pyLODE-2.10.3/pylode/examples/examples-ont/examples.md +0 -189
  85. pyLODE-2.10.3/pylode/examples/examples-ont/examples.ttl +0 -204
  86. pyLODE-2.10.3/pylode/examples/examples-ont/fish-food.png +0 -0
  87. pyLODE-2.10.3/pylode/examples/examples-ont/toothy.png +0 -0
  88. pyLODE-2.10.3/pylode/examples/foaf.html +0 -3067
  89. pyLODE-2.10.3/pylode/examples/foaf.md +0 -858
  90. pyLODE-2.10.3/pylode/examples/foaf.ttl +0 -726
  91. pyLODE-2.10.3/pylode/examples/ga-skos.prof.html +0 -441
  92. pyLODE-2.10.3/pylode/examples/ga-skos.prof.md +0 -93
  93. pyLODE-2.10.3/pylode/examples/ga-skos.ttl +0 -63
  94. pyLODE-2.10.3/pylode/examples/geo.adoc +0 -1248
  95. pyLODE-2.10.3/pylode/examples/geo.adoc.html +0 -3830
  96. pyLODE-2.10.3/pylode/examples/geo.html +0 -2177
  97. pyLODE-2.10.3/pylode/examples/geo.md +0 -525
  98. pyLODE-2.10.3/pylode/examples/geo.profile.prof.html +0 -552
  99. pyLODE-2.10.3/pylode/examples/geo.profile.prof.md +0 -134
  100. pyLODE-2.10.3/pylode/examples/geo.profile.ttl +0 -119
  101. pyLODE-2.10.3/pylode/examples/geo.ttl +0 -1214
  102. pyLODE-2.10.3/pylode/examples/geoadminfeatures.html +0 -441
  103. pyLODE-2.10.3/pylode/examples/geoadminfeatures.md +0 -102
  104. pyLODE-2.10.3/pylode/examples/geoadminfeatures.ttl +0 -75
  105. pyLODE-2.10.3/pylode/examples/geofabric.html +0 -597
  106. pyLODE-2.10.3/pylode/examples/geofabric.md +0 -150
  107. pyLODE-2.10.3/pylode/examples/geofabric.ttl +0 -208
  108. pyLODE-2.10.3/pylode/examples/geosparql-profile.html +0 -559
  109. pyLODE-2.10.3/pylode/examples/geosparql-profile.ttl +0 -129
  110. pyLODE-2.10.3/pylode/examples/geox.html +0 -731
  111. pyLODE-2.10.3/pylode/examples/geox.md +0 -179
  112. pyLODE-2.10.3/pylode/examples/geox.ttl +0 -210
  113. pyLODE-2.10.3/pylode/examples/gnaf.html +0 -1621
  114. pyLODE-2.10.3/pylode/examples/gnaf.md +0 -491
  115. pyLODE-2.10.3/pylode/examples/gnaf.ttl +0 -575
  116. pyLODE-2.10.3/pylode/examples/iso19115-1-RoleCodes.ttl +0 -169
  117. pyLODE-2.10.3/pylode/examples/iso19115-1-RoleCodes.vocpub.html +0 -598
  118. pyLODE-2.10.3/pylode/examples/iso19115-1-RoleCodes.vocpub.md +0 -198
  119. pyLODE-2.10.3/pylode/examples/iso19160/codelist.ttl +0 -435
  120. pyLODE-2.10.3/pylode/examples/iso19160/images/address.png +0 -0
  121. pyLODE-2.10.3/pylode/examples/iso19160/images/address_alias.png +0 -0
  122. pyLODE-2.10.3/pylode/examples/iso19160/images/address_component.png +0 -0
  123. pyLODE-2.10.3/pylode/examples/iso19160/images/address_position.png +0 -0
  124. pyLODE-2.10.3/pylode/examples/iso19160/images/address_provenance.png +0 -0
  125. pyLODE-2.10.3/pylode/examples/iso19160/images/addressable_object.png +0 -0
  126. pyLODE-2.10.3/pylode/examples/iso19160/images/addressed_period.png +0 -0
  127. pyLODE-2.10.3/pylode/examples/iso19160/images/diagrams.pptx +0 -0
  128. pyLODE-2.10.3/pylode/examples/iso19160/images/lifespan.png +0 -0
  129. pyLODE-2.10.3/pylode/examples/iso19160/images/major_classes.png +0 -0
  130. pyLODE-2.10.3/pylode/examples/iso19160/images/reference_object.png +0 -0
  131. pyLODE-2.10.3/pylode/examples/iso19160/iso19160-1.html +0 -2745
  132. pyLODE-2.10.3/pylode/examples/iso19160/iso19160-1.ttl +0 -1439
  133. pyLODE-2.10.3/pylode/examples/iso19160/style.css +0 -157
  134. pyLODE-2.10.3/pylode/examples/iso19160-1-nz-profile.html +0 -466
  135. pyLODE-2.10.3/pylode/examples/iso19160-1-nz-profile.md +0 -109
  136. pyLODE-2.10.3/pylode/examples/iso19160-1-nz-profile.ttl +0 -126
  137. pyLODE-2.10.3/pylode/examples/iso21972.html +0 -3647
  138. pyLODE-2.10.3/pylode/examples/iso21972.md +0 -1161
  139. pyLODE-2.10.3/pylode/examples/iso21972.ttl +0 -1249
  140. pyLODE-2.10.3/pylode/examples/loci.html +0 -767
  141. pyLODE-2.10.3/pylode/examples/loci.md +0 -225
  142. pyLODE-2.10.3/pylode/examples/loci.ttl +0 -259
  143. pyLODE-2.10.3/pylode/examples/ogc/fonts/Lato-Regular.eot +0 -0
  144. pyLODE-2.10.3/pylode/examples/ogc/fonts/Lato-Regular.ttf +0 -0
  145. pyLODE-2.10.3/pylode/examples/ogc/fonts/Lato-Regular.woff +0 -0
  146. pyLODE-2.10.3/pylode/examples/ogc/fonts/Lato-Regular.woff2 +0 -0
  147. pyLODE-2.10.3/pylode/examples/ogc/hyf.3.html +0 -1330
  148. pyLODE-2.10.3/pylode/examples/ogc/hyf.4.html +0 -1505
  149. pyLODE-2.10.3/pylode/examples/ogc/hyf.5.html +0 -1330
  150. pyLODE-2.10.3/pylode/examples/ogc/hyf.html +0 -1334
  151. pyLODE-2.10.3/pylode/examples/ogc/hyf.skos.html +0 -491
  152. pyLODE-2.10.3/pylode/examples/ogc/hyf.ttl +0 -411
  153. pyLODE-2.10.3/pylode/examples/om.html +0 -19651
  154. pyLODE-2.10.3/pylode/examples/om.md +0 -5694
  155. pyLODE-2.10.3/pylode/examples/om.ttl +0 -27294
  156. pyLODE-2.10.3/pylode/examples/owl.html +0 -2904
  157. pyLODE-2.10.3/pylode/examples/owl.md +0 -804
  158. pyLODE-2.10.3/pylode/examples/owl.ttl +0 -552
  159. pyLODE-2.10.3/pylode/examples/placenames.html +0 -1324
  160. pyLODE-2.10.3/pylode/examples/placenames.md +0 -420
  161. pyLODE-2.10.3/pylode/examples/placenames.ttl +0 -415
  162. pyLODE-2.10.3/pylode/examples/plot.html +0 -1227
  163. pyLODE-2.10.3/pylode/examples/plot.md +0 -362
  164. pyLODE-2.10.3/pylode/examples/plot.ttl +0 -563
  165. pyLODE-2.10.3/pylode/examples/project.adoc +0 -752
  166. pyLODE-2.10.3/pylode/examples/project.adoc.html +0 -2156
  167. pyLODE-2.10.3/pylode/examples/project.html +0 -1228
  168. pyLODE-2.10.3/pylode/examples/project.md +0 -298
  169. pyLODE-2.10.3/pylode/examples/project.ttl +0 -596
  170. pyLODE-2.10.3/pylode/examples/ra.html +0 -505
  171. pyLODE-2.10.3/pylode/examples/ra.md +0 -117
  172. pyLODE-2.10.3/pylode/examples/ra.ttl +0 -95
  173. pyLODE-2.10.3/pylode/examples/rdf.html +0 -738
  174. pyLODE-2.10.3/pylode/examples/rdf.md +0 -178
  175. pyLODE-2.10.3/pylode/examples/rdf.ttl +0 -125
  176. pyLODE-2.10.3/pylode/examples/rdfs.html +0 -823
  177. pyLODE-2.10.3/pylode/examples/rdfs.md +0 -199
  178. pyLODE-2.10.3/pylode/examples/rdfs.ttl +0 -109
  179. pyLODE-2.10.3/pylode/examples/reg.html +0 -1732
  180. pyLODE-2.10.3/pylode/examples/reg.md +0 -486
  181. pyLODE-2.10.3/pylode/examples/reg.png +0 -0
  182. pyLODE-2.10.3/pylode/examples/reg.ttl +0 -496
  183. pyLODE-2.10.3/pylode/examples/skos-thes.html +0 -1235
  184. pyLODE-2.10.3/pylode/examples/skos-thes.ttl +0 -518
  185. pyLODE-2.10.3/pylode/examples/sosa.html +0 -1563
  186. pyLODE-2.10.3/pylode/examples/sosa.md +0 -472
  187. pyLODE-2.10.3/pylode/examples/sosa.ttl +0 -424
  188. pyLODE-2.10.3/pylode/examples/ssn.html +0 -1218
  189. pyLODE-2.10.3/pylode/examples/ssn.md +0 -366
  190. pyLODE-2.10.3/pylode/examples/ssn.ttl +0 -415
  191. pyLODE-2.10.3/pylode/examples/void/changelog.txt +0 -4
  192. pyLODE-2.10.3/pylode/examples/void/figs.html +0 -11
  193. pyLODE-2.10.3/pylode/examples/void/properties.png +0 -0
  194. pyLODE-2.10.3/pylode/examples/void/style.css +0 -157
  195. pyLODE-2.10.3/pylode/examples/void/void.html +0 -961
  196. pyLODE-2.10.3/pylode/examples/void/void.md +0 -343
  197. pyLODE-2.10.3/pylode/examples/void/void.ttl +0 -257
  198. pyLODE-2.10.3/pylode/pyLODE-cli.spec +0 -64
  199. pyLODE-2.10.3/pylode/templates/agent.adoc +0 -11
  200. pyLODE-2.10.3/pylode/templates/namespaces.adoc +0 -7
  201. pyLODE-2.10.3/pylode/templates/ontdoc/class.adoc +0 -87
  202. pyLODE-2.10.3/pylode/templates/ontdoc/classes.adoc +0 -8
  203. pyLODE-2.10.3/pylode/templates/ontdoc/document.adoc +0 -43
  204. pyLODE-2.10.3/pylode/templates/ontdoc/metadata.adoc +0 -91
  205. pyLODE-2.10.3/pylode/templates/ontdoc/named_individual.adoc +0 -43
  206. pyLODE-2.10.3/pylode/templates/ontdoc/named_individuals.adoc +0 -7
  207. pyLODE-2.10.3/pylode/templates/ontdoc/properties.adoc +0 -47
  208. pyLODE-2.10.3/pylode/templates/ontdoc/property.adoc +0 -66
  209. pyLODE-2.10.3/pylode/templates/orcid.adoc +0 -1
  210. pyLODE-2.10.3/requirements-pyinstaller.txt +0 -2
  211. pyLODE-2.10.3/requirements.dev.txt +0 -3
  212. pyLODE-2.10.3/requirements.server.txt +0 -8
  213. pyLODE-2.10.3/requirements.txt +0 -5
  214. pyLODE-2.10.3/tests/agrif.html +0 -4320
  215. pyLODE-2.10.3/tests/agrif.ttl +0 -1459
  216. pyLODE-2.10.3/tests/decprov.ttl +0 -134
  217. pyLODE-2.10.3/tests/simpleont.ttl +0 -34
  218. pyLODE-2.10.3/tests/test_adoc.py +0 -5
  219. pyLODE-2.10.3/tests/test_baseprofile.py +0 -48
  220. pyLODE-2.10.3/tests/test_class.py +0 -43
  221. pyLODE-2.10.3/tests/test_issue_110.py +0 -16
  222. pyLODE-2.10.3/tests/test_issue_110_input.ttl +0 -17870
  223. pyLODE-2.10.3/tests/test_issue_110_output.html +0 -57727
  224. pyLODE-2.10.3/tests/test_metadata.py +0 -0
  225. pyLODE-2.10.3/tests/test_ontdoc.py +0 -44
  226. pyLODE-2.10.3/tests/test_property.py +0 -1
  227. pyLODE-2.10.3/upload-to-PyPI.txt +0 -13
  228. {pyLODE-2.10.3 → pyLODE-2.13.2}/LICENSE +0 -0
  229. {pyLODE-2.10.3 → pyLODE-2.13.2}/pyLODE.egg-info/dependency_links.txt +0 -0
  230. {pyLODE-2.10.3 → pyLODE-2.13.2}/pyLODE.egg-info/entry_points.txt +0 -0
  231. {pyLODE-2.10.3 → pyLODE-2.13.2}/pyLODE.egg-info/top_level.txt +0 -0
  232. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/cli.py +0 -0
  233. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/common.py +0 -0
  234. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/profiles/__init__.py +0 -0
  235. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/profiles/nmpf.py +0 -0
  236. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/profiles/prof.py +0 -0
  237. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/profiles/profile.py +0 -0
  238. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/profiles/vocpub.py +0 -0
  239. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/server.py +0 -0
  240. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/style/pylode.css +0 -0
  241. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/agent.html +0 -0
  242. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/agent.md +0 -0
  243. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/namespaces.html +0 -0
  244. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/namespaces.md +0 -0
  245. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/nmpf/class.html +0 -0
  246. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/nmpf/class.md +0 -0
  247. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/nmpf/classes.html +0 -0
  248. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/nmpf/classes.md +0 -0
  249. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/nmpf/document.html +0 -0
  250. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/nmpf/document.md +0 -0
  251. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/nmpf/metadata.html +0 -0
  252. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/nmpf/metadata.md +0 -0
  253. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/nmpf/named_individual.html +0 -0
  254. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/nmpf/named_individual.md +0 -0
  255. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/nmpf/named_individuals.html +0 -0
  256. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/nmpf/named_individuals.md +0 -0
  257. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/nmpf/properties.html +0 -0
  258. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/nmpf/properties.md +0 -0
  259. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/nmpf/property.html +0 -0
  260. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/nmpf/property.md +0 -0
  261. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/ontdoc/class.html +0 -0
  262. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/ontdoc/class.md +0 -0
  263. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/ontdoc/classes.html +0 -0
  264. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/ontdoc/classes.md +0 -0
  265. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/ontdoc/metadata.html +0 -0
  266. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/ontdoc/metadata.md +0 -0
  267. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/ontdoc/named_individual.html +0 -0
  268. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/ontdoc/named_individual.md +0 -0
  269. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/ontdoc/named_individuals.html +0 -0
  270. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/ontdoc/named_individuals.md +0 -0
  271. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/ontdoc/properties.html +0 -0
  272. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/ontdoc/properties.md +0 -0
  273. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/ontdoc/property.html +0 -0
  274. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/ontdoc/property.md +0 -0
  275. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/orcid.html +0 -0
  276. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/orcid.md +0 -0
  277. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/prof/prof.html +0 -0
  278. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/prof/prof.md +0 -0
  279. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/prof/profile.html +0 -0
  280. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/prof/profile.md +0 -0
  281. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/prof/resource_descriptor.html +0 -0
  282. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/prof/resource_descriptor.md +0 -0
  283. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/vocpub/collection.html +0 -0
  284. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/vocpub/collection.md +0 -0
  285. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/vocpub/collections.html +0 -0
  286. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/vocpub/collections.md +0 -0
  287. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/vocpub/concept.html +0 -0
  288. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/vocpub/concept.md +0 -0
  289. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/vocpub/concept_hierarchy.html +0 -0
  290. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/vocpub/concept_scheme.html +0 -0
  291. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/vocpub/concept_scheme.md +0 -0
  292. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/vocpub/concepts.html +0 -0
  293. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/vocpub/concepts.md +0 -0
  294. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/vocpub/taxonomy.html +0 -0
  295. {pyLODE-2.10.3 → pyLODE-2.13.2}/pylode/templates/vocpub/taxonomy.md +0 -0
  296. {pyLODE-2.10.3 → pyLODE-2.13.2}/setup.cfg +0 -0
  297. {pyLODE-2.10.3 → pyLODE-2.13.2}/setup.py +0 -0
pyLODE-2.13.2/PKG-INFO ADDED
@@ -0,0 +1,880 @@
1
+ Metadata-Version: 2.1
2
+ Name: pyLODE
3
+ Version: 2.13.2
4
+ Summary: An OWL ontology documentation tool using Python and templating, based on LODE.
5
+ Home-page: https://github.com/rdflib/pyLODE
6
+ Author: Nicholas J. Car
7
+ Author-email: nicholas.car@surroundaustralia.com
8
+ License: LICENSE
9
+ Download-URL: https://github.com/rdflib/pyLODE/archive/v2.13.2.tar.gz
10
+ Project-URL: Bug Reports, https://github.com/rdflib/pyLODE/issues
11
+ Project-URL: Source, https://github.com/rdflib/pyLODE/
12
+ Keywords: Semantic Web,OWL,ontology,template,Jinja2,documentation
13
+ Platform: UNKNOWN
14
+ Classifier: Development Status :: 4 - Beta
15
+ Classifier: Topic :: Utilities
16
+ Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
17
+ Classifier: Intended Audience :: Developers
18
+ Classifier: Natural Language :: English
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3 :: Only
21
+ Classifier: Programming Language :: Python :: 3.6
22
+ Classifier: Programming Language :: Python :: 3.7
23
+ Classifier: Programming Language :: Python :: 3.8
24
+ Classifier: Programming Language :: Python :: 3.9
25
+ Classifier: Programming Language :: Python :: Implementation :: CPython
26
+ Classifier: Programming Language :: Python :: Implementation :: PyPy
27
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
28
+ Description-Content-Type: text/x-rst
29
+ License-File: LICENSE
30
+
31
+ .. image:: https://rawcdn.githack.com/RDFLib/pyLODE/b1ff1b1e19262cdc21ee28c7362b1690ca18e30b/img/pyLODE-250.png
32
+
33
+ .. image:: https://badge.fury.io/py/pyLODE.svg
34
+ :target: https://badge.fury.io/py/pyLODE
35
+
36
+ pyLODE
37
+ ******
38
+ An OWL ontology documentation tool using Python and templating, based on
39
+ LODE.
40
+
41
+ In addition to making human-readable forms of ontologies/taxonomies, pyLODE encourages ontology annotation *best
42
+ practice* by only producing good results for well documented inputs! pyLODe defines what it considers w'well documented'
43
+ in sections below, such as `Profiles`_ & `What pyLODE understands`_.
44
+
45
+ Contents
46
+ ========
47
+ 1. `Quick Intro`_
48
+ 2. Examples_
49
+ 3. Installation_
50
+ 4. Use_
51
+ 5. `What pyLODE understands`_
52
+ 6. `Profiles`_
53
+ 7. `Differences from LODE`_
54
+ 8. `Releases`_
55
+ 9. License_
56
+ 10. Citation_
57
+ 11. Collaboration_
58
+ 12. Contacts_
59
+
60
+
61
+ Quick Intro
62
+ ===========
63
+ The Live OWL Documentation Environment tool
64
+ (`LODE <https://github.com/essepuntato/LODE>`__) is a well-known (in
65
+ Semantic Web circles) Java & XSLT-based tool used to generate
66
+ human-readable HTML documents for OWL and RDF ontologies. That tool is
67
+ now a bit dated (old-style HTML, use of older technologies like XSLT)
68
+ and it's (`online version <https://www.essepuntato.it/lode>`__) is not always
69
+ online.
70
+
71
+ This tool is a complete re-implementation of LODE's functionality using
72
+ Python and Python's RDF manipulation module,
73
+ `rdflib <https://pypi.org/project/rdflib/>`__. An ontology to be
74
+ documented is parsed and inspected using rdflib and HTML or Markdown is generated
75
+ using basic Python scripting and Python's `Jinja2
76
+ templating <https://pypi.org/project/Jinja2/>`__.
77
+
78
+ The tool can be run as in these ways:
79
+
80
+ - Python command line
81
+ - cli.py in the main folder
82
+ - BASH command line
83
+ - bin/ directory, uses cli.py
84
+ - as-a-service locally
85
+ - via the popular `Falcon framework <https://falconframework.org/>`__.
86
+ - see server.py in the main folder
87
+ - as-a-service online
88
+ - hosted at https://pylode.surroundaustralia.com
89
+
90
+
91
+ Examples
92
+ ========
93
+ pyLODE has been tested with all of the 30+ ontologies in `pylode/examples/ <pylode/examples/>`_ and we are trying to
94
+ ensure it captures all of their annotations. For each example, there is the original RDF file and the corresponding
95
+ output, in HTML & Markdown. There are some examples of ADOC too.
96
+
97
+ For example, `Epimorphic's <https://www.epimorphics.com/>`__'s **Registry Ontology** is:
98
+
99
+ - **reg.ttl** - source file
100
+ - **reg.html** - HTML output
101
+ - this is a couple of releases ahead of the `online version <https://epimorphics.com/public/vocabulary/Registry.html>`_
102
+ - **reg.md** - Markdown output
103
+
104
+ Another, the Australian Government's Records Interoperability Framework (AGRIF) Ontology:
105
+
106
+ - **agrif.ttl** - source file
107
+ - **agrif.html** - HTML output
108
+ - see this `rendered online by GitHack <https://raw.githack.com/RDFLib/pyLODE/master/pylode/examples/agrif.html>`__
109
+ - see `the point-of-truth rendered online <https://linked.data.gov.au/def/agrif>`__
110
+ - **agrif.md** - Markdown output
111
+ - see this `rendered online by GitHub <https://github.com/RDFLib/pyLODE/blob/master/pylode/examples/agrif.md>`__
112
+ - **agrif.md** - ASCIIDOC output
113
+ - `resulting ADOC source <https://github.com/RDFLib/pyLODE/blob/master/pylode/examples/agrif.adoc>`__
114
+ - `rendered in HTML <https://github.com/RDFLib/pyLODE/blob/master/pylode/examples/agrif.adoc.html>`__
115
+ - **agrif.skos.html** - HTMl output, "vocpub" profile
116
+ - see this `rendered online by GitHack <https://raw.githack.com/RDFLib/pyLODE/master/pylode/examples/agrif.vocpub.html>`__
117
+
118
+ You can build all of the example outputs locally by running `pylode/examples/_make_examples.py <pylode/examples/_make_examples.py>`_
119
+ which also serves as a good demonstration of calling pyLODE from a Python file.
120
+
121
+
122
+ Ontologies online using pyLODE:
123
+ -------------------------------
124
+
125
+ - `Australia's Department of Finance's <https://www.finance.gov.au>`__'s **AGRIF ontology** - http://linked.data.gov.au/def/agrif
126
+ - see the `Markdown version <https://github.com/AGLDWG/agrif-ont/blob/master/agrif.md>`__
127
+ - `National Archives of Australia <http://www.naa.gov.au>`__'s **Commonwealth Records Series ontology** - http://linked.data.gov.au/def/crs
128
+ - see the `Markdown version <https://github.com/RDFLib/pyLODE/blob/master/pylode/examples/crs.md>`__
129
+ - `CSIRO's <https://www.csiro.au>`__'s **LocI ontology** - http://linked.data.gov.au/def/loci
130
+ - `Geological Survey of
131
+ Queensland <https://www.business.qld.gov.au/industries/mining-energy-water/resources/geoscience-information/gsq>`__'s
132
+ **Boreholes Profile** - http://linked.data.gov.au/def/borehole
133
+ - `Geoscience Australia <http://www.ga.gov.au/>`__'s **Place Names
134
+ Profile** - http://linked.data.gov.au/def/placenames
135
+ - `Epimorphic <https://www.epimorphics.com/>`__'s **Registry Ontology**
136
+ - https://epimorphics.com/public/vocabulary/Registry.html
137
+ - `Semantic Web for Earth and Environmental Terminology <http://sweetontology.net>`__ (SWEET)
138
+ - a series of ontologies that are live rendered into HTML via pyLODE being called by a Falcon server
139
+
140
+ See pairs of RDF & HTML files in the
141
+ `pylode/examples/ <pylode/examples/>`__ directory for other,
142
+ preprocessed examples.
143
+
144
+
145
+ Installation
146
+ ============
147
+ This tool can be used either as a command line utility (Linux, Mac or Windows, see below) or as a Python module in other Python code. It can also be used via a hosted, online, service or even as a local web server that you can run. This repo contains executable files for Mac & Windows (soon Linux!) that you can use without any installation too.
148
+
149
+ The most important dependency to get correct when using this as a Python script of a command line program is the package ``rdflib`` which must be v5.0.0 or greater (see requirements.txt).
150
+
151
+ Python
152
+ ------
153
+ Do this to use pyLODE as a Python command line program.
154
+
155
+ This tool is available on PyPI, the Python Package Index, at https://pypi.org/project/pyLODE/ and can be installed for use as a Python module via pip:
156
+
157
+ ::
158
+
159
+ pip install pylode
160
+
161
+ To use pyLODE within Python, try something like this:
162
+
163
+ ::
164
+
165
+ import pylode
166
+
167
+ html = pylode.MakeDocco(
168
+ input_data_file=input_file_path,
169
+ outputformat="html",
170
+ profile="ontdoc"
171
+ ).document()
172
+
173
+ You will now have the HTML content within the variable ``html``.
174
+
175
+ For desktop command line use, just clone this repository and either use ``cli.py`` as per the command line instructions below or use makedocco.py as a Python script directly.
176
+
177
+
178
+ Use
179
+ ===
180
+ pyLODE presents natively as a Python command-line utility,
181
+ `pylode/cli.py <pylode/cli.py>`__ and there are also a BASH, Windows & Mac OS options available for command line use:
182
+
183
+ * `pylode/bin/pylode.sh <pylode/bin/pylode.sh>`__ - BASH script
184
+ * Linux executable coming soon!
185
+ * `pylode/bin/pylode.app <pylode/bin/pylode.app>`__ - MAC OS command line executable script
186
+ * `pylode/bin/pylode.exe <pylode/bin/pylode.exe>`__ - Windows command line executable
187
+
188
+ All use the same command line arguments.
189
+
190
+ Additionally, there is a `Falcon framework <https://falconframework.org/>`__ local HTTP server option.
191
+
192
+ Also, a web UI for pyLODE is available at `<https://pylode.surroundaustralia.com>`.
193
+
194
+ Command line arguments
195
+ ----------------------
196
+ These are the command line arguments to run pyLODE as a BASH or Python script on Linux, Mac etc. or via the Windows executable:
197
+
198
+ - ``-i`` or ``--inputfile``, *required if* ``-u`` *not used*
199
+ - The RDF ontology file you wish to generate HTML for Must be in either Turtle, RDF/XML, JSON-LD or N-Triples formats indicated by the file type extensions .rdf, .owl, .ttl, .n3, .nt, .json respectively
200
+ - ``-u`` or ``--url``, *required if* ``-i`` *not used*
201
+ - The RDF ontology you wish to generate HTML for, online. Must be an absolute URL that can be resolved to RDF, preferably via Content Negotiation.
202
+ - ``-c`` or ``--css``, *optional, default 'true'*
203
+ - Whether (true) or not (false) to include CSS in an HTML output.
204
+ - ``-o`` or ``--outputfile``, *optional*
205
+ - A name you wish to assign to the output file. Will be postfixed with .html, .md or .adoc. If not specified, the name of the input file or last segment of RDF URI will be used, + .html/.md/.adoc.
206
+ - ``-f`` or ``--outputformat``, *optional, default 'html'*
207
+ - The output format of the documentation. 'html', 'md' or 'adoc' accepted.
208
+ - ``-p`` or ``--profile``, *optional, default 'ontdoc'*
209
+ - The profile (specification) for ontology documentation used. "ontdoc" (for OWL Ontologies), "vocpub" (for `Simple Knowledge Organization System (SKOS) <https://www.w3.org/TR/skos-reference/>`__) vocabularies or SKOS versions of OWL ontologies, "prof" for `Profiles Vocabularies <https://www.w3.org/TR/dx-prof/>`__ profiles. See ``-lp`` for all profiles supported.
210
+ - ``-lp`` or ``--listprofiles``, *optional, no arguments*
211
+ - Lists all the profiles (specifications) for ontology documentation supported by pyLODE
212
+
213
+ Example call
214
+ ------------
215
+ This basic call to the BASH script in `pylode/bin/ <pylode/bin/>`__ will
216
+ print to standard out an HTML document for an ontology called ``placenames.html``.
217
+
218
+ ::
219
+
220
+ ./pylode -i ../example/prof.ttl
221
+
222
+ An output file could be specified by using `-o`, rather than printing to standard out.
223
+
224
+ Online Service
225
+ --------------
226
+ An online version of pyLODE is now available at https://pylode.surroundaustralia.com/.
227
+
228
+ Docker
229
+ ------
230
+ Install locally by first building the container
231
+
232
+ ::
233
+
234
+ docker build -t pylode:latest --build-arg PYTHON_VERSION=3.8-slim .
235
+
236
+ Then run the container
237
+
238
+ ::
239
+
240
+ docker run -it -d -p 8000:8000 -e GTAGID=${Google TagID} pylode
241
+
242
+ N.B. The Google TagID is NOT required unless Google Analytics is required.
243
+ It looks as follows `GTAGID=UA-168806395-1`.
244
+
245
+ You can now access the service on localhost
246
+
247
+ ::
248
+
249
+ curl localhost:8000/lode?url=http://sweetontology.net/sweetAll.ttl
250
+
251
+ Local server - Falcon
252
+ ---------------------
253
+ You can run pyLODE using your own, local, HTTP server like this:
254
+
255
+ ::
256
+
257
+ gunicorn --chdir /path/to/pyLODE/pylode server:api
258
+
259
+ The server is then available at localhost:8000 and localhost:8000/pylode for the active endpoint. Note that the server must be fed a URL to an ontology to document supplied by a server capable of responding to Content Negotiation, i.e. it must supply RDF according to an HTTP `Accept` request for `text/turtle`, `application/rdf+xml` etc.
260
+
261
+
262
+ ::
263
+
264
+ curl localhost:8000/pylode?url=http://sweetontology.net/sweetAll.ttl
265
+
266
+ Windows
267
+ -------
268
+ In ``pylode/bin/``, a Windows executable, ``pylode.exe`` is available for command line use.
269
+
270
+ Be sure to add ``pylode.exe`` to your Windows user's PATH variable so you can run ``pylode.exe`` from any folder. Just run the Registry Editor (search for "Regedit" in the Start menu) and then navicate to HKEY_CURRENT_USER > Environment > Path. Adding the full path of the folder ``pylode/bin/`` to Path will ensure you can run ``pylode.exe`` within the Windows command prompt, regardless of what folder you are in.
271
+
272
+ You can rebuild the ``pylode.exe`` file from the source code, if you like. Use the Python program `Pyinstaller <https://www.pyinstaller.org/>`__ as per
273
+ `its instructions <https://pyinstaller.readthedocs.io/en/stable/usage.html>`__. The created ``pylode.exe`` will have the same characteristics as the Linux/Mac
274
+ CLI program.
275
+
276
+ Pyinstaller uses a ``.spec`` file to make the binary and that is included in this repository: ``pylode-cli.spec``.
277
+
278
+ See `the PyInstaller installation guide <https://pyinstaller.readthedocs.io/en/stable/installation.html#installing-in-windows>`__
279
+ for info on how to install PyInstaller for Windows.
280
+
281
+ Once you have PyInstaller, use ``pyinstaller`` to generate the ``pyLODE.exe`` CLI file like so:
282
+
283
+ ::
284
+
285
+ cd pylode
286
+ pyinstaller pylode-cli.spec
287
+
288
+ This will output ``pylode.exe`` in the ``dist`` directory in ``pylode``. The .exe file in ``bin/`` is just the latest copy of this.
289
+
290
+ You can now run the pyLODE Command Line utility via ``pylode.exe``.
291
+ See above for the pyLODE command line util usage instructions.
292
+
293
+ Mac OS
294
+ ------
295
+ In ``pylode/bin/``, there is a Mac executable, ``pylode.app``.
296
+
297
+ As per instructions for PyInstaller use on Windows, you can rebuild the file ``pylode.app`` using ``pylode.spec``, if you wish.
298
+
299
+ Linux
300
+ -----
301
+ In ``pylode/bin/``, there is a shell script ``pylode.sh``. You can run this on the command line. It just pushes queries to the Python command line ``cli.py``.
302
+
303
+
304
+ What pyLODE understands
305
+ =======================
306
+ pyLODE understands Ontologies, Taxonomies & Profiles and handles them based on the *Ontology Document*, *Vocabulary Publication* and *PROF* profiles that it contains. These three profiles share understanding of basic annotation properties.
307
+
308
+ Annotations
309
+ -----------
310
+ pyLODE understands the following ontology constructs:
311
+
312
+ - **ontology/taxonomy/profile metadata**
313
+ - *imports* - ``owl:imports``
314
+ - *title* - ``rdfs:label``, ``skos:prefLabel``, ``dct:title`` or ``dc:title``
315
+ - *description* - ``rdfs:comment``, ``skos:definition``, ``dct:description`` or ``dc:description``
316
+ - inline HTML & Markdown are supported
317
+ - *historyNote* - ``skos:historyNote``
318
+ - inline HTML & Markdown are supported
319
+ - *version URI* - ``owl:versionIRI`` as a URI
320
+ - *version info* - ``owl:versionInfo`` as a string
321
+ - *preferred namespace prefix* - ``vann:preferredNamespacePrefix`` as a token
322
+ - *preferred namespace URI* - ``vann:preferredNamespaceUri`` as a URI
323
+ - **agents**: *publishers*, *creators*, *contributors*
324
+ - see **Agent Formatting** below for details
325
+ - see the `pylode/examples/ <pylode/examples/>`__ directory for examples!
326
+ - **dates**: *created*, *modified*, *issued* - ``dct:created`` etc., all as ``xsd:date`` or ``xsd:dateTime`` datatype properties
327
+ - **rights**: *license* - ``dct:license`` as a URI & *rights* - ``dct:rights`` as a string
328
+ - *code respository* - ``schema:codeRepository`` as a literal of type ``xsd:anyURI``
329
+ - *source* - ``dcterms:source`` as a literal of type ``xsd:anyURI`` or text
330
+ - **ontology classes**
331
+ - per ``rdfs:Class`` or ``owl:Class``
332
+ - *title* - ``rdfs:label`` or ``skos:prefLabel`` or ``dct:title``
333
+ - *description* - ``rdf:comment``, ``skos:definition``, ``dct:description`` as a string or using inline HTML or `Markdown <https://daringfireball.net/projects/markdown/>`__
334
+ - *scope note* - a ``skos:scopeNote`` as a literal
335
+ - inline HTML & Markdown are supported
336
+ - *example* - a ``skos:example``
337
+ - see *Example Handling* below
338
+ - *super classes* - by declaring a class to be ``owl:subClassOf`` something
339
+ - *sub classes* - pyLODE will work these out itself
340
+ - *restrictions* - by declaring a class to be ``owl:subClassOf`` of an ``owl:Restriction`` with any of the normal cardinality or property existence etc. restrictions
341
+ - *in domain/range of* - pyLODE will auto-calculate these
342
+ - **ontology properties**
343
+ - per ``owl:ObjectProperty``, ``owl:DatatypeProperty`` or ``owl:AnnotationProperty``
344
+ - *title* - ``rdfs:label`` or ``skos:prefLabel`` or ``dct:title`` string literal
345
+ - *description* - ``rdf:comment``, ``skos:definition``, ``dct:description`` string literal
346
+ - inline HTML & Markdown are supported
347
+ - *scope note* - a ``skos:scopeNote`` string literal
348
+ - inline HTML & Markdown are supported
349
+ - *example* - a ``skos:example``
350
+ - see *Example Handling* below
351
+ - *super properties* - by declaring a class to be ``owl:subPropertyOf`` something
352
+ - *sub properties* - pyLODE will work these out itself
353
+ - *equivalent properties* - by declaring a class to be ``owl:equivalentProperty`` something
354
+ - *inverse of* - by declaring a class to be ``owl:inverseOf`` something
355
+ - *domains* - ``rdfs:domain`` or ``schema:domainIncludes``
356
+ - *ranges* - ``rdfs:range`` or ``schema:rangeIncludes``
357
+ - **namespaces**
358
+ - pyLODE will honour any namespace prefixes you set and look up others in `http://prefix.cc <http://prefix.cc/>`__
359
+ - it will either read your ontology's default/base URI in annotations or guess it using a number of methods
360
+ - **named individuals**
361
+ - as per class but also ``owl:sameAs``
362
+
363
+ Example Handling
364
+ ~~~~~~~~~~~~~~~~
365
+ pyLODE can handle many forms of examples for Classes & Properties and can handle multiple examples per class/property. In all cases, the example value is indicated with a ``skos:example`` property like this:
366
+
367
+ ::
368
+
369
+ <x>
370
+ a owl:Class ;
371
+ skos:example {Literal, Blank Node or URI}
372
+ .
373
+
374
+ **Simple Literals**
375
+
376
+ The most basic form is an example that is a literal with no format type indicated. This will be printed out in monospaced text, e.g. the Class ``Fish`` in the `Examples Ontology <https://raw.githack.com/RDFLib/pyLODE/master/pylode/examples/examples-ont/examples.html>`_ has a plain Turtle example like this:
377
+
378
+ ::
379
+
380
+ <x> a eggs:Fish ;
381
+ skos:prefLabel "Fish X"@en ;
382
+ eggs:livesInFreshWater true ;
383
+ ...
384
+ .
385
+
386
+ If you indicate one of the RDF built-in formats (``rdf:HTML``, ``rdf:XMLLiteral`` or ``rdf:JSON``), it will be interpreted in the markup form specified, which means, in practice, that HTML will be rendered where as XML or JSON will be monospaced. The Examples Ontology has this HTML example for the property ``has scale colour``:
387
+
388
+ ----
389
+
390
+ **scale colour:**
391
+
392
+ * blue
393
+ * orange
394
+ * white
395
+
396
+ ----
397
+
398
+ You can use Markdown in example literals too, but to do so, you must set the format to ``text/markdown`` so see the *Resource Descriptor* method below.
399
+
400
+
401
+ **URIs**
402
+
403
+ If you put a URI in the example field like this: ``<x> skos:example <...> ;`` or like this ``<x> skos:example "..."^^xsd:anyURI ;`` then pyLODE will render it as a clickable hyperlink in HTML, Markdown or ASCIIDOC, as per your chose output format.
404
+
405
+ **Images**
406
+
407
+ You can use images in the example field. To do so, either use a URI to an image on the web or a relative URI to a local image file. pyLODE will render either form as an inline image. See the `Fish Food class example <https://raw.githack.com/RDFLib/pyLODE/master/pylode/examples/examples-ont/examples.html#FishFood>`_ that looks like this:
408
+
409
+ .. image:: examples/examples-ont/fish-food.png
410
+
411
+ **"Resource Descriptor" Examples**
412
+
413
+ To do more you can use a `Profiles Vocabulary (PROF) <https://w3c.github.io/dx-prof/prof/>`__ ``ResourceDescriptor`` to define multiple properties for an example resource. This involves defining a ``ResourceDescriptor`` either as a Blank Node or a URI node like this, the `Examples Ont 'eats' property <https://raw.githack.com/RDFLib/pyLODE/master/pylode/examples/examples-ont/examples.html#FishFood>`_:
414
+
415
+ ::
416
+
417
+ :eats skos:example :eats-example .
418
+
419
+ :eats-example
420
+ a prof:ResourceDescriptor ;
421
+ dcterms:format "text/turtle" ;
422
+ dcterms:conformsTo <https://example.com> ;
423
+ prof:hasArtifact """<x> a :Creature ;
424
+ :eats <y> ;
425
+ .
426
+ <y> a :Food .""" ;
427
+ .
428
+
429
+ Here the ``ResourceDescriptor`` says that this example is in the ``text/turtle`` format, has an inline artifact (the actual example text) and conforms to something, in this case the profile defined by ``<https://example.com>``.
430
+
431
+ You can use this ``ResourceDescriptor`` method to create multiple examples for a class or property that conform to different things (perhaps profiles of your ontology).
432
+
433
+ Agents
434
+ ------
435
+ Agents, individual persons or organisations, should be associated with ontologies/taxonomies/profiles to indicate *authors*, *creators*, *publishers* etc. There are 2 ways to do this that pyLODE understands: datatype & object type.
436
+
437
+ Datatype - not preferred
438
+ ~~~~~~~~~~~~~~~~~~~~~~~~
439
+ A simple literal value for an agent that a human can read but not a machine can't understand:
440
+
441
+ * ``<ONTOLOGY_URI> dc:creator "AGENT NAME" .``
442
+ * the range value is a string literal, either string typed (``^^xsd:string``) or language typed (``@en`` or ``@de``)
443
+ * the following `Dublin Core Elements 1.1 <https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#section-3>`__ properties may be used:
444
+ * ``dc:contributor``
445
+ * ``dc:creator``
446
+ * ``dc:publisher``
447
+ * the following `schema.org <https://schema.org>`__ properties may be used:
448
+ * ``schema:author``
449
+ * ``schema:contributor``
450
+ * ``schema:creator``
451
+ * ``schema:editor``
452
+ * ``schema:funder``
453
+ * ``schema:publisher``
454
+ * ``schema:translator``
455
+
456
+ ::
457
+
458
+ <ontology_x>
459
+ dc:creator "Nicholas J. Car" ;
460
+
461
+ Object type - preferred
462
+ ~~~~~~~~~~~~~~~~~~~~~~~
463
+ An RDF object is used for the agent and can contain multiple details. A Blank Node or a URI can be used. Best case, a persistent agent URI!
464
+
465
+ .. figure:: img/contributor-object.png
466
+ :align: center
467
+ :figclass: figure-eg
468
+
469
+ .....
470
+
471
+ * ``<ONTOLOGY_URI> dct:creator [...] .``
472
+
473
+ or
474
+
475
+ * ``<ONTOLOGY_URI> dct:creator <SOME_URI> .``
476
+ * the range value is a Blank Node or a URI of type:
477
+ * ``schema:Person``
478
+ * ``schema:Organization``
479
+ * ``foaf:Person``
480
+ * ``foaf:Organization``
481
+ * the properties of the Blank Node or the URI are as below
482
+ * the following `Dublin Core Terms <https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#section-2>`__ properties may be used:
483
+ * ``dct:contributor``
484
+ * ``dct:creator``
485
+ * ``dct:publisher``
486
+ * ``dct:rightsHolder``
487
+ * the following `schema.org <https://schema.org>`__ properties may be used:
488
+ * ``schema:author``
489
+ * ``schema:contributor``
490
+ * ``schema:creator``
491
+ * ``schema:editor``
492
+ * ``schema:funder``
493
+ * ``schema:publisher``
494
+ * ``schema:translator``
495
+ * the following `FOAF <http://xmlns.com/foaf/spec/>`__ properties may be used:
496
+ * ``foaf:maker``
497
+
498
+ e.g. (Blank Node):
499
+
500
+ ::
501
+
502
+ <ontology_x>
503
+ schema:editor [
504
+ a schema:Organization ;
505
+ ...
506
+ ] ;
507
+
508
+ or (URI):
509
+
510
+ ::
511
+
512
+ <ontology_x>
513
+ schema:editor <https://orcid.org/0000-0002-8742-7730> ;
514
+ ...
515
+
516
+ <https://orcid.org/0000-0002-8742-7730>
517
+ a foaf:Person ;
518
+ ...
519
+
520
+
521
+ Agent datatype properties
522
+ ^^^^^^^^^^^^^^^^^^^^^^^^^
523
+
524
+ * ``foaf:name`` / ``schema:name``
525
+ * ``foaf:mbox`` / ``schema:email``
526
+ * ``foaf:homepage`` / ``schema:url``
527
+ * ``schema:identifier``
528
+
529
+
530
+ e.g.:
531
+
532
+ ::
533
+
534
+ <ontology_x>
535
+ dct:creator [
536
+ schema:name "Nicholas J. Car" ;
537
+ schema:identifier <http://orcid.org/0000-0002-8742-7730> ;
538
+ schema:email <mailto:nicholas.car@surroundaustralia.com> ;
539
+ ] ;
540
+
541
+
542
+ Linking a Person to an Organization
543
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
544
+
545
+ Use ``schema:member``, ``schema:affiliation`` (there is no FOAF Person -> Group/Org property):
546
+
547
+ e.g.:
548
+
549
+ ::
550
+
551
+ <ontology_x>
552
+ dct:creator [
553
+ schema:name "Nicholas J. Car" ;
554
+ schema:identifier <http://orcid.org/0000-0002-8742-7730> ;
555
+ schema:email <mailto:nicholas.car@surroundaustralia.com> ;
556
+ schema:affiliation [
557
+ schema:name "SURROUND Australia Pty Ltd" ;
558
+ schema:url <https://surroundaustralia.com> ;
559
+ ] ;
560
+ ] ;
561
+
562
+
563
+ Provenance
564
+ ----------
565
+
566
+ Ontology/Taxonomy Source
567
+ ~~~~~~~~~~~~~~~~~~~~~~~~
568
+ The ontology's HTML representation linking back to the RDF: generated automatically
569
+
570
+ .. figure:: img/source.png
571
+ :align: center
572
+ :figclass: figure-eg
573
+
574
+ .....
575
+
576
+ Code Repositories
577
+ ~~~~~~~~~~~~~~~~~
578
+ Indicating to readers where the 'live' version of the ontology/taxonomy is managed:
579
+
580
+ .. figure:: img/code-repository.png
581
+ :align: center
582
+ :figclass: figure-eg
583
+
584
+ .....
585
+
586
+ This should not be done for profiles, instread, create a ``prof:ResourceDescriptor`` instance with ``role:repository`` to indicate a profile's repository.
587
+
588
+ Code repositories that house an ontology can be indicated either using `schema.org's codeRepository property <https://schema.org/codeRepository>`__ or a combination of the `Description of a Project <https://github.com/ewilderj/doap>`__ and PROV:
589
+
590
+ ::
591
+
592
+ @prefix schema: <https://schema.org/> .
593
+
594
+ <ONTOLOGY_URI>
595
+ schema:codeRepository <REPO_URI> ;
596
+ ...
597
+
598
+ or
599
+
600
+ ::
601
+
602
+ @prefix doap: <http://usefulinc.com/ns/doap#> .
603
+ @prefix prov: <http://www.w3.org/ns/prov#> .
604
+
605
+ <ONTOLOGY_URI>
606
+ prov:wasGeneratedBy [
607
+ a doap:Project , prov:Activity ;
608
+ doap:repository <REPO_URI>
609
+ ]
610
+ ...
611
+
612
+ e.g., for the `ontology version on ISO 19160-1 <http://linked.data.gov.au/def/iso19160-1-address>`__:
613
+
614
+ ::
615
+
616
+ <http://linked.data.gov.au/def/iso19160-1-address>
617
+ prov:wasGeneratedBy [
618
+ a doap:Project , prov:Activity ;
619
+ doap:repository <https://github.com/AGLDWG/iso19160-1-address-ont>
620
+ ] ;
621
+ ...
622
+
623
+ Styling
624
+ -------
625
+ This tool generates HTML that is shamelessly similar to LODE's styling.
626
+ That's because we want things to look familiar and LODE's outputs look
627
+ great. The Markdown's pretty vanilla.
628
+
629
+ Also, pyLODE generates and uses only static HTML + CSS, no JavaScript,
630
+ live loading Google Fonts etc. This is to ensure that all you need for
631
+ nice display is within a couple of static, easy to use and maintain,
632
+ files. Prevents documentation breaking over time.
633
+
634
+ Feel free to extend your styling with your own CSS.
635
+
636
+
637
+ Profiles
638
+ ========
639
+ pyLODE can document ontologies, taxonomies and profiles according to different *profiles* which are specifications. The
640
+ basic, default, profile is pyLODE's so-called *Ontology Documentation* profile, which is a profile of OWL and a few
641
+ other bits and pieces. See `What pyLODE understands`_ section.
642
+
643
+ pyLODE can tell you what profiles it supports: just run ``~$ pylode -lp`` ("list profiles") or, if calling from Python:
644
+
645
+ ::
646
+
647
+ m = MakeDocco(input_data_file="examples/data-access-rights.ttl", profile="vocpub")
648
+ print(m.list_profiles())
649
+
650
+
651
+ Supported Profiles
652
+ ------------------
653
+ Currently pyLODE supports its OWL profile, as described above, and a profile of SKOS. For full details of what the
654
+ profiles include, see the profiles' definitions at:
655
+
656
+ ========= ==========================================
657
+ **Token** **URI**
658
+ ========= ==========================================
659
+ prof `<https://www.w3.org/TR/dx-prof/>`_
660
+ ontdoc `<https://w3id.org/profile/ontdoc>`_
661
+ vocpub `<https://w3id.org/profile/vocpub>`_
662
+ ========= ==========================================
663
+
664
+ Creating New Profiles
665
+ ---------------------
666
+ In the folder ``pylode/profiles/``, you will see an ``__init__.py`` file containing the ``BaseProfile`` class which all
667
+ profiles must inherit from. The existing ``OntDoc``, ``Prof`` & ``VocPub`` profile classes are in files ``ontdoc.py``,
668
+ ``prof.py`` & ``vocpub.py`` respectively. They do all the things profiles need to do and are listed in
669
+ ``pylode/profiles/__init__.py`` for pyLODE to know about with both a profile declaration and an entry in the ``PROFILES``
670
+ list. The profile declaration for PROF is:
671
+
672
+ ::
673
+
674
+ PROF_PROFILE = Profile(
675
+ "https://www.w3.org/TR/dx-prof/",
676
+ "The Profiles Vocabulary",
677
+ "The Profiles Vocabulary is an RDF vocabulary created to allow the machine-readable description of profiles of "
678
+ "specifications for information resources.",
679
+ [HTML_MEDIA_TYPE, "text/markdown"],
680
+ HTML_MEDIA_TYPE,
681
+ languages=["en"],
682
+ default_language="en"
683
+ )
684
+
685
+ See the ``Profile`` class in ``pylode/profiles/__init__.py`` for mor details.
686
+
687
+ The ``PROFILES`` object currently contains:
688
+
689
+ ::
690
+
691
+ PROFILES = {
692
+ "prof": PROF_PROFILE,
693
+ "ontdoc": ONT_DOC_PROFILE,
694
+ "vocpub": VOC_PUB_PROFILE,
695
+ }
696
+
697
+ Profiles also contain templates in ``pylode/templates/FOLDER`` and need to be imported into ``pylode/__init.py`` and
698
+ added to that file's ``document()`` finction to be made accessible.
699
+
700
+ So, to create your own profile:
701
+
702
+ 1. create a class to inherit from ``BaseProfile``
703
+ 2. do the work of profileing in your class, following the *prof*, *ontdoc* & *vocpub* examples
704
+ 3. list your profile with a profile declaration and an entry in PROFILES in ``pylode/profiles/__init__.py``
705
+ 4. place your templates in ``pylode/templates/FOLDER`` (FOLDER being your profile's folder name)
706
+ 5. make your profile work with pyLODE by importing it into ``pylode/__init.py`` and adding a call to its constructor in ``document()``
707
+
708
+ We hope to simplify this with profile auto-discovery soon!
709
+
710
+
711
+ Transformation by Profile
712
+ -------------------------
713
+ You can, of course, document an OWL ontology using the *owldoc* profile or a SKOS taxonomy using the *vocpub* profile
714
+ however, you can also document an OWL ontology using the *vocpub* profile! This is because SKOS is conceptually a subset
715
+ of OWL - whatever you can express in SKOS you can express in OWL.
716
+
717
+ pyLODE performs an OWL > SKOS transformation on OWL ontologies to produce a taxonomy document. The following
718
+ conversions are made:
719
+
720
+ - ``owl:Ontology`` > ``skos:ConceptScheme``
721
+ - and all the ontology metadata is used with the ConceptScheme
722
+ - ``owl:Class`` > ``skos:Concept``
723
+ - and other class annotation properties used with Concept
724
+ - ``owl:subClassOf`` > ``skos:broader``
725
+ - and the inverses, ``skos:narrower``
726
+
727
+ To see the full list of transformations, see the function ``_expand_graph_for_skos()`` in *makedocco.py*.
728
+
729
+ Examples of a small taxonomies documented using the *vocpub* profile are:
730
+
731
+ - `Data Access Rights <https://raw.githack.com/RDFLib/pyLODE/master/pylode/examples/data-access-rights.skos.html>`_
732
+ - `ISO 19115-1's RoleCodes <https://raw.githack.com/RDFLib/pyLODE/master/pylode/examples/iso19115-1-RoleCodes.skos.html>`_
733
+
734
+ An example of a large one:
735
+
736
+ - `Earth Science Data Category <https://raw.githack.com/RDFLib/pyLODE/master/pylode/examples/earth-science-data-category.skos.html>`_
737
+
738
+ An example of a *vocpub*-documented OWL ontology and the corresponding *owldoc* original is AGRIF:
739
+
740
+ - `AGRIF as vocpub <https://raw.githack.com/RDFLib/pyLODE/master/pylode/examples/agrif.skos.html>`_
741
+ - `AGRIF as owldoc <https://raw.githack.com/RDFLib/pyLODE/master/pylode/examples/agrif.html>`_
742
+
743
+
744
+ Differences from LODE
745
+ =====================
746
+ - command line access
747
+
748
+ - you can use this on your own desktop so you don't need me to
749
+ maintain a live service for use
750
+
751
+ - use of more modern & simpler HTML
752
+ - catering for a wider range of ontology options such as:
753
+
754
+ - schema.org ``domainIncludes`` & ``rangeIncludes`` for properties
755
+
756
+ - better Agent linking
757
+
758
+ - ``foaf:Agent`` or ``schema:Person`` objects for creators,
759
+ contributors & publishers
760
+ - you can still use simple string peoperties like
761
+ ``dc:contributor "Nicholas J. Car"`` too if you really must!
762
+
763
+ ::
764
+
765
+ <ontology_x>
766
+ dct:creator [
767
+ sdo:name "Nicholas J. Car" ;
768
+ sdo:identifier <http://orcid.org/0000-0002-8742-7730> ;
769
+ ] ;
770
+
771
+ - smarter CURIES
772
+
773
+ - pyLODE caches and looks up well-known prefixes to make more/better
774
+ CURIES
775
+ - it tries to be smart with CURIE presentation by CURIE-ising all
776
+ URIs it finds, rather than printing them
777
+
778
+ - **active development**
779
+
780
+ - this software is in use and will be improved for the foreseeable
781
+ future so we will cater for more and more things
782
+ - recent ontology documentation initiatives such as the `MOD
783
+ Ontology <https://github.com/sifrproject/MOD-Ontology>`__ will be
784
+ handled, if requested
785
+
786
+
787
+ Releases
788
+ ========
789
+ pyLODE is under continual and constant development. The current developers have a roadmap for enhancements in mind,
790
+ which is given here, however, since this is an open source project, new developers may join the pyLODE dev community
791
+ and change/add development priorities.
792
+
793
+ Current Release
794
+ ---------------
795
+
796
+ The current release, as of December, 2021, is **2.13.2**.
797
+
798
+ Release Schedule
799
+ ----------------
800
+
801
+ .. csv-table:: **pyLODE Release Schedule**
802
+ :header: "Version", "Date", "Description"
803
+ :widths: 15, 10, 30
804
+
805
+ 3.0, *?*, "Will include pre-testing inputs with SHACL"
806
+ **2.13.2**, 21 December 2021, "Updated RDFlib to 6.1.1, improved test to properly use pytest"
807
+ 2.10.0, 24 May 2021, "Update Windows EXE build process, simplified versioning"
808
+ 2.9.1, 28 Apr 2021, "Support for ASCIIDOC format (OntDoc profile only)"
809
+ 2.8.11, 28 Apr 2021, "Further changes for PyPI only"
810
+ 2.8.10, 27 Apr 2021, "Further changes for PyPI only"
811
+ 2.8.9, 27 Apr 2021, "PyPI enhancements only"
812
+ 2.8.8, 27 Apr 2021, "Several small bugs fixed, auto-generation of version no. from Git tag"
813
+ 2.8.6, 23 Feb 20201, "Fixing char encoding issues, updated examples, new test files style - per issue"
814
+ 2.8.5, 5 Jan 20201, "Small enhancements to the Falcon server deployment option"
815
+ 2.8.3, 3 July 2020, "Packaging bugfixes only"
816
+ 2.7, 1 July 2020, "Much refactoring for new profile creation ease"
817
+ 2.6, June 2020, "Supports PROF profiles as well as taxonomies & ontologies"
818
+ 2.4, 27 May 2020, "Small improvements over 2.0"
819
+ 2.0, 18 Apr 2020, "Includes multiple profiles - OWP & vocpub"
820
+ 1.0, 15 Dec 2019, "Initial working release"
821
+
822
+ Release Notes
823
+ -------------
824
+
825
+ 3.0 - expected
826
+ ~~~~~~~~~~~~~~
827
+ Expected to handle
828
+
829
+ - pre-documentation graph shape testing using SHACL
830
+ - you will be able to see what pyLODE-recommended annotation and design patterns your inputs do/don't handle
831
+ - "modp", a documentation profile based on the `MOD Ontology <https://github.com/sifrproject/MOD-Ontology>`_
832
+
833
+ 2.0 - current
834
+ ~~~~~~~~~~~~~~
835
+ - handles complex Examples (``skos:example``)
836
+ - can export to ASCIIDOC format
837
+ - includes 3rd-party-created profile: NMPF
838
+ - handles Named Individuals in OWL ontologies
839
+ - implements "owldoc" & "vocpub" documentation profiles for OWL, SKOS and OWL-as-SKOS results
840
+ - implements "prof" profile for documentation of `Profiles Vocabulary <https://www.w3.org/TR/dx-prof/>`__ profiles
841
+ - has a more modular structure than 1.0 to assist with the creation or more profiles
842
+
843
+ 1.0 - previous
844
+ ~~~~~~~~~~~~~~
845
+ Initial pyLODE release. Generated HTML documentation for OWL ontologies, missed quite a few expected ontology elements,
846
+ such as Named Individuals.
847
+
848
+ License
849
+ =======
850
+ This code is licensed using the GPL v3 licence. See the `LICENSE
851
+ file <LICENSE>`_ for the deed. Note *Citation* below though for
852
+ attribution.
853
+
854
+
855
+ Citation
856
+ ========
857
+ If you use pyLODE, please leave the pyLODE logo with a hyperlink back
858
+ here in the top left of published HTML pages.
859
+
860
+
861
+ Collaboration
862
+ =============
863
+ The maintainers welcome any collaboration.
864
+
865
+ If you have suggestions, please email the contacts below or leave Issues
866
+ in this repository's `Issue tracker <https://github.com/rdflib/pyLODE/issues>`_.
867
+
868
+ But the very best thing you could do is create a Pull Request for us to
869
+ action!
870
+
871
+
872
+ Contacts
873
+ ========
874
+ | *Author*:
875
+ | **Nicholas Car**
876
+ | *Data System Architect*
877
+ | `SURROUND Australia Pty Ltd <https://surroundaustralia.com>`_
878
+ | nicholas.car@surroundaustralia.com
879
+
880
+