{ "info": { "author": "Nicholas Car", "author_email": "nicholas.car@surroundaustralia.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Utilities" ], "description": ".. image:: https://badge.fury.io/py/pyLODE.svg\n :target: https://badge.fury.io/py/pyLODE\n\npyLODE\n======\nAn OWL ontology documentation tool using Python and templating, based on\nLODE.\n\nThe Live OWL Documentation Environment tool\n(`LODE `__) is a well-known (in\nSemantic Web circles) Java & XSLT-based tool used to generate\nhuman-readable HTML documents for OWL and RDF ontologies. That tool is\nnow a bit dated (old-style HTML, use of older technologies like XSLT)\nand it's (`online version `__) is not always\nonline.\n\nThis tool is a complete re-implementation of LODE's functionality using\nPython and Pythons RDF manipulation module,\n`rdflib `__. An ontology to be\ndocumented is parsed and inspected using rdflib and HTML is generated\nusing basic Python scripting and Python's `Jinja2\ntemplating `__.\n\nThe tool can be run either via command line or as-a-service. The \nlatter is implemented via the popular `Falcon framework `__.\n\n\nExamples\n--------\npyLODE has been tested with all of the ontologies in\n`pylode/examples/ `__ and we are trying to ensure it\ncaptures all of their annotations. For each example, there is the\noriginal RDF file and the corresponding output HTML.\n\nOntologies online using pyLODE:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n- `Geological Survey of\n Queensland `__'s\n **Boreholes Profile** - http://linked.data.gov.au/def/borehole\n- `Geoscience Australia `__'s **Place Names\n Profile** - http://linked.data.gov.au/def/placenames\n- `Epimorphic `__'s **Registry Ontology**\n - https://epimorphics.com/public/vocabulary/Registry.html\n- `Semantic Web for Earth and Environmental Terminology `__ (SWEET)\n\nSee pairs of RDF & HTML files in the\n`pylode/examples/ `__ directory for other,\npreprocessed examples.\n\n\nInstallation\n--------------\nThis tool can be used either as a command line utility (see below) or as a Python module in other Python code.\n\nThis 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:\n\n::\n\n pip install pylode\n\nFor desktop command line use, just clone this repository and either use Python or the provided BASH scrip (see below).\n\n\nUse\n---\npyLODE presents as a Python & BASH command-line utility,\n`pylode/cli.py `__ &\n`pylode/bin/pylode `__ respectively as well as\na server implementation powered by the `Falcon framework `__. \nWindows scripts may appear soon. All use the same command line arguments.\n\nOnline API\n^^^^^^^^^^\nAn online API to access pyLODE is now available in test mode at https://kurrawong.net/pylode-online.\n\nLocal server\n^^^^^^^^^^^^^\nYou can run pyLODE using your own, local, HTTP server like this:\n```\ngunicorn server:api\n```\nThen, in another terminal:\n```\ncurl localhost:8000/lode?url=http://sweetontology.net/sweetAll.ttl\n```\n\nCommand line\n^^^^^^^^^^^^^\nThese are the command line arguments to run pyLODE as a BASH or Python script:\n\n- ``-i`` or ``--inputfile``, *required if* ``-u`` *not used*\n- The RDF ontology file you wish to generate HTML for Must be in either\n Turtle, RDF/XML, JSON-LD or N-Triples formats indicated by the file\n type extensions .rdf, .owl, .ttl, .n3, .nt, .json respectively\n- ``-u`` or ``--url``, *required if* ``-i`` *not used*\n- The RDF ontology you wish to generate HTML for, online. Must be an\n absolute URL that can be resolved to RDF, preferably via Content\n Negotiation.\n- ``-c`` or ``--css``, *optional, default 'false'*\n- Whether (true) or not (false) to copy the default CSS file to the\n output directory.\n- ``-o`` or ``--outputfile``, *optional*\n- A name you wish to assign to the output file. Will be postfixed with\n .html. If not specified, the name of the input file or last segment\n of RDF URI will be used, + .html.\n\nExample call\n^^^^^^^^^^^^\nThis call to the BASH script in `pylode/bin/ `__ will\ncreate an HTML document for an ontology called ``placenames.html`` and\nsave it with a basic CSS file into\n`pylode/output\\_files/ `__:\n\n::\n\n $ ./pylode -i ../example/prof.ttl --css true\n\n\nHTML results\n------------\n\nAnnotations\n^^^^^^^^^^^\npyLODE understands the following ontology annotations:\n\n- **ontology metadata**\n\n - *imports* - ``owl:imports``\n - *title* - ``rdfs:label`` or ``skos:prefLabel`` or ``dct:title``\n - *version URI* - ``owl:versionIRI`` as a URI\n - *version info* - ``owl:versionInfo`` as a string\n - *publishers*, *creators*, *contributors*\n\n - either the DC versions of properties (``dc:publisher`` etc.) or\n the DCT versions (``dct:publisher`` etc.)\n - if using the DC form, the range should just be a string, e.g.\n \\`dc:publisher \"Geoscience Australia\" .\n - if using the DCT form, range should be a ``foaf:Agent`` or\n ``schema:Person`` Blank Node with the following properties: ``foaf:name``/``sdo:name``, ``foaf:mbox``/``sdo:email`` or\n ``foaf:homepage``/``schema:identifier`` properties\n - see the `pylode/examples/ `__ directory for\n examples!\n\n - *created*, modified, issued - ``dct:created`` etc., all as\n ``xsd:date`` or ``xsd:dateTime`` datatype properties\n - *description* - ``rdf:comment`` or ``skos:definition`` or\n ``dct:description``\n - *license* - ``dct:license`` as a URI\n - *rights* - ``dct:rights`` as a string\n\n- **classes**\n\n - per ``rdfs:Class`` or ``owl:Class``\n - *title* - ``rdfs:label`` or ``skos:prefLabel`` or ``dct:title``\n - *description* - ``rdf:comment`` or ``skos:definition`` or\n ``dct:description`` as a string or using\n `Markdown `__ or\n HTML\n - *usage note* - a ``skos:scopeNote`` string\n - *super classes* - by declaring a class to be ``owl:subClassOf``\n something\n - *sub classes* - pyLODE will work these out itself\n - *restrictions* - by declaring a class to be ``owl:subClassOf`` of\n an ``owl:Restriction`` with any of the normal cardinality or\n property existence etc. restrictions\n - *in domain/range of* - pyLODE will auto-calculate these\n\n- **properties**\n\n - per ``owl:ObjectProperty``, ``owl:DatatypeProperty`` or\n ``owl:AnnotationProperty``\n - *title* - ``rdfs:label`` or ``skos:prefLabel`` or ``dct:title``\n - *description* - ``rdf:comment`` or ``skos:definition`` or\n ``dct:description``\n - *usage note* - a ``skos:scopeNote`` string\n - *super properties* - by declaring a class to be\n ``owl:subPropertyOf`` something\n - *sub properties* - pyLODE will work these out itself\n - *domains* - ``rdfs:domain`` or ``schema:domainIncludes``\n - *ranges* - ``rdfs:range`` or ``schema:rangeIncludes``\n\n- **namespaces**\n\n - pyLODE will honour any namespace prefixes you set and look up\n others in `http://prefix.cc `__\n - it will either read your ontology's default/base URI in\n annotations or guess it using a number of methods\n\n- **named individuals**\n\n - *coming!*\n\nTo help pyLODE understand more annotations, see **Suggestions** below.\n\n\nStyling\n^^^^^^^\nThis tool generates HTML that is shamelessly similar to LODE's styling.\nThat's because we want things to look familiar and LODE's outputs look\ngreat.\n\nAlso, pyLODE generates and uses only static HTML + CSS, no JavaScript,\nlive loading Google Fonts etc. This is to ensure that all you nned for\nnice display is within a couple of static, easy to use and maintain,\nfiles. Prevents documentation breaking over time.\n\nFeel free to extend your styling with your own CSS.\n\n\nDifferences from LODE\n---------------------\n- command line access\n\n - you can use this on your own desktop so you don't need me to\n maintain a live service for use\n\n- use of more modern & simpler HTML\n- catering for a wider range of ontology options such as:\n\n - schema.org ``domainIncludes`` & ``rangeIncludes`` for properties\n\n- better Agent linking\n\n - ``foaf:Agent`` or ``schema:Person`` objects for creators,\n contributors & publishers\n - you can still use simple string peoperties like\n ``dc:contributor \"Nicholas J. Car\"`` too if you really must!\n\n::\n\n \n dct:creator [\n sdo:name \"Nicholas J. Car\" ;\n sdo:identifier ;\n ] ;\n\n- smarter CURIES\n\n - pyLODE caches and looks up well-known prefixes to make more/better\n CURIES\n - it tries to be smart with CURIE presentation by CURIE-ising all\n URIs it finds, rather than printing them\n\n- **active development**\n\n - this software is in use and will be improved for the foreseeable\n future so we will cater for more and more things\n - recent ontology documentation initiatives such as the `MOD\n Ontology `__ will be\n handled, if requested\n\n\nLicense\n-------\nThis code is licensed using the GPL v3 licence. See the `LICENSE\nfile `__ for the deed. Note *Citation* below though for\nattribution.\n\n\nCitation\n--------\nIf you use pyLODE, please leave the pyLODE logo with a hyperlink back\nhere in the top left of published HTML pages.\n\n\nCollaboration\n-------------\nThe maintainers welcome any collaboration.\n\nIf you have suggestions, please email the contacts below or leave Issues\nin this repository's `Issue tracker `__.\n\nBut the very best thing you could do is create a Pull Request for us to\naction!\n\n\nContacts\n--------\n| *Author*:\n| **Nicholas Car**\n| *Data System Architect*\n| SURROUND Australia Pty Ltd\n| nicholas.car@surround.com\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/rdflib/pyLODE/archive/v1.2.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/rdflib/pyLODE", "keywords": "Semantic Web,OWL,ontology,template,Jinja2,documentation", "license": "LICENSE", "maintainer": "", "maintainer_email": "", "name": "pyLODE", "package_url": "https://pypi.org/project/pyLODE/", "platform": "", "project_url": "https://pypi.org/project/pyLODE/", "project_urls": { "Bug Reports": "https://github.com/rdflib/pyLODE/issues", "Download": "https://github.com/rdflib/pyLODE/archive/v1.2.tar.gz", "Homepage": "https://github.com/rdflib/pyLODE", "Source": "https://github.com/rdflib/pyLODE/" }, "release_url": "https://pypi.org/project/pyLODE/1.2/", "requires_dist": [ "argparse", "falcon", "gunicorn", "jinja2", "markdown", "pytest", "python-dateutil", "rdflib", "requests" ], "requires_python": "", "summary": "An OWL ontology documentation tool using Python and templating, based on LODE.", "version": "1.2" }, "last_serial": 6007059, "releases": { "0.6": [ { "comment_text": "", "digests": { "md5": "6fb63a91b6208c9ec91d5eb2d8a27296", "sha256": "e9f57382d3e34b89f29fde2a42ca749e2b714590ab1b117bc555d812a1dd0bd7" }, "downloads": -1, "filename": "pyLODE-0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "6fb63a91b6208c9ec91d5eb2d8a27296", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 58681, "upload_time": "2019-07-19T10:36:05", "url": "https://files.pythonhosted.org/packages/69/a6/34cddfbd4629477b73d078d69536e6237495bb1f522ca726615db93f75ba/pyLODE-0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "066893cb2adfaea2a18b5133a6324428", "sha256": "54c3f546a917a60763c09b74fe88c9ceb397d7347c9f741f9617c418889eb14b" }, "downloads": -1, "filename": "pyLODE-0.6.tar.gz", "has_sig": false, "md5_digest": "066893cb2adfaea2a18b5133a6324428", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46415, "upload_time": "2019-07-19T10:36:09", "url": "https://files.pythonhosted.org/packages/5f/e4/1a18b1bf3c45b0e617a0b192e9ee9932352867b5ee3d094d12977d5ecf28/pyLODE-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "1dc66440bdc209af5afdf22373814092", "sha256": "b4ebb8d4c98b91870fa7d502524d4484bcc0123506109415d765eef11cc2fb74" }, "downloads": -1, "filename": "pyLODE-0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "1dc66440bdc209af5afdf22373814092", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 58679, "upload_time": "2019-07-22T12:05:24", "url": "https://files.pythonhosted.org/packages/f4/87/b799983c441d2c377468d15d01d4735e287f1db134500f649d84de7f10ce/pyLODE-0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a1fedef77d62073f69f665c5d296b514", "sha256": "ae4cdbd54e152e6ba48ba3f119857972eaf3ed0ee3ad3a0c5b688043b52cdaf6" }, "downloads": -1, "filename": "pyLODE-0.7.tar.gz", "has_sig": false, "md5_digest": "a1fedef77d62073f69f665c5d296b514", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46419, "upload_time": "2019-07-22T12:05:26", "url": "https://files.pythonhosted.org/packages/bf/b2/7d7747a6aa4b59c3d6b15071f2c89f86bda2e28b832d6d715623a55051a6/pyLODE-0.7.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "53ddcb0e859e22f590f50d22af156d62", "sha256": "4f70916a9ecea1e6ec527920c91d9176d1788c14008ce059d95877065ace038d" }, "downloads": -1, "filename": "pyLODE-0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "53ddcb0e859e22f590f50d22af156d62", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 58675, "upload_time": "2019-07-22T22:35:49", "url": "https://files.pythonhosted.org/packages/35/9c/f93b95f459f32859b3d757ae1d098f39f7f7a7ae5489c60cd7f98b67a5c9/pyLODE-0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a41786c5569e4cf0a2c59c297dcdf1fc", "sha256": "f009b87fdde2da75e09c11a8443184dcf60d0b32d385011e67ad21d91a3a54fc" }, "downloads": -1, "filename": "pyLODE-0.8.tar.gz", "has_sig": false, "md5_digest": "a41786c5569e4cf0a2c59c297dcdf1fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49504, "upload_time": "2019-07-22T22:35:52", "url": "https://files.pythonhosted.org/packages/7a/1b/15a387543b3c386b150d044177b9b15c9788e16f5e54fa4222744d952ae3/pyLODE-0.8.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "955c70d66b8bb543b31f78895da7d1c9", "sha256": "582dbea92a0c3b7b21030aab0599037e5b05f0c8b7e90ade916b7a5ce458abcb" }, "downloads": -1, "filename": "pyLODE-0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "955c70d66b8bb543b31f78895da7d1c9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 63035, "upload_time": "2019-07-22T22:57:20", "url": "https://files.pythonhosted.org/packages/8a/83/cc98aa0116669b5a8dd9aff0eb57ab38fffe8e0fd8aa1cb6e21e6f891641/pyLODE-0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f48224adb045f42ae5ca51b614aeb62e", "sha256": "a07197f7c3f8b5ad30f7af8407c94b18fdd9fdf684ba882826a0f6fb605f2b82" }, "downloads": -1, "filename": "pyLODE-0.9.tar.gz", "has_sig": false, "md5_digest": "f48224adb045f42ae5ca51b614aeb62e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48393, "upload_time": "2019-07-22T22:57:23", "url": "https://files.pythonhosted.org/packages/68/c7/98caef2ceb6a021a2b12615062ea12f48b6210370d62d83b6849047694bd/pyLODE-0.9.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "3d076447b9fb07815074e9bf7e584013", "sha256": "302a915653b4b58839899caf9ffeb8f64f09f6043f23d740a53a19b317226c3b" }, "downloads": -1, "filename": "pyLODE-1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3d076447b9fb07815074e9bf7e584013", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 63213, "upload_time": "2019-07-23T03:30:11", "url": "https://files.pythonhosted.org/packages/9d/90/89edf224a90d179c62427bc1f87b64ba8297e7ffc35f68652c222250bd78/pyLODE-1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b1e5b59f0fc40d8ef3191a68e69801cb", "sha256": "b76229dfedc9db9edda7feea01297535195e5519f15d6dc693059e8a017bf509" }, "downloads": -1, "filename": "pyLODE-1.0.tar.gz", "has_sig": false, "md5_digest": "b1e5b59f0fc40d8ef3191a68e69801cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48612, "upload_time": "2019-07-23T03:30:13", "url": "https://files.pythonhosted.org/packages/73/1f/3c4f2a4dcbc4f461d871ce742e1301acb10c27f62b94f305086fa14fcfee/pyLODE-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "a6d32690b4400019ad475af98361ba5b", "sha256": "8d9384bd237994157c39dfaec02f41ce51ff2c0011cd0e3eeae1e268bdb4d3ae" }, "downloads": -1, "filename": "pyLODE-1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a6d32690b4400019ad475af98361ba5b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 63906, "upload_time": "2019-08-04T06:34:18", "url": "https://files.pythonhosted.org/packages/cc/23/860be5bb5d7c2eb53f3cc6f7b344f48460f590852d8c956a6486901897ea/pyLODE-1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e928e7370bcc7a11afd1b18f01ab346d", "sha256": "a79b3238445968cd0c10f1123be8d4d0a78ff2d4484d5df688fb89cdb1150bc8" }, "downloads": -1, "filename": "pyLODE-1.1.tar.gz", "has_sig": false, "md5_digest": "e928e7370bcc7a11afd1b18f01ab346d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49202, "upload_time": "2019-08-04T06:34:20", "url": "https://files.pythonhosted.org/packages/47/48/000812e12fa03bbeda63004dfe79fd97a7da7ae6d3ee26d48193c7b86ba3/pyLODE-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "f68f21738d84b6928e1a710ff117ee88", "sha256": "86465190d647162f04ba61195f4ac7d87d2a0927a6b0c7765479f2490dcea692" }, "downloads": -1, "filename": "pyLODE-1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f68f21738d84b6928e1a710ff117ee88", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 64311, "upload_time": "2019-10-21T12:26:36", "url": "https://files.pythonhosted.org/packages/5d/96/9426b8c6bd3ea950e276cf73f609783cbf57af042a37080d72e252f13827/pyLODE-1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6d8957c55aabbd43b13d63974a791017", "sha256": "41b2362d7dc32af425172833061e3cf41d2741f03d5cb4f5b8f111e5ef76b2c6" }, "downloads": -1, "filename": "pyLODE-1.2.tar.gz", "has_sig": false, "md5_digest": "6d8957c55aabbd43b13d63974a791017", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49649, "upload_time": "2019-10-21T12:26:40", "url": "https://files.pythonhosted.org/packages/c8/51/afdd4d96dec6a91cf6f830a8f83d11cc6f7225eeb288b6b2c21c3f28d814/pyLODE-1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f68f21738d84b6928e1a710ff117ee88", "sha256": "86465190d647162f04ba61195f4ac7d87d2a0927a6b0c7765479f2490dcea692" }, "downloads": -1, "filename": "pyLODE-1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f68f21738d84b6928e1a710ff117ee88", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 64311, "upload_time": "2019-10-21T12:26:36", "url": "https://files.pythonhosted.org/packages/5d/96/9426b8c6bd3ea950e276cf73f609783cbf57af042a37080d72e252f13827/pyLODE-1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6d8957c55aabbd43b13d63974a791017", "sha256": "41b2362d7dc32af425172833061e3cf41d2741f03d5cb4f5b8f111e5ef76b2c6" }, "downloads": -1, "filename": "pyLODE-1.2.tar.gz", "has_sig": false, "md5_digest": "6d8957c55aabbd43b13d63974a791017", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49649, "upload_time": "2019-10-21T12:26:40", "url": "https://files.pythonhosted.org/packages/c8/51/afdd4d96dec6a91cf6f830a8f83d11cc6f7225eeb288b6b2c21c3f28d814/pyLODE-1.2.tar.gz" } ] }