====== lokiontology ====== [[https://www.dokuwiki.org/|DokuWiki]] plugin that adds ontology support to [[https://loki.re|Loki]]. This makes process of creating knowledge base easier by validating semantic information on pages. ===== Features ===== * editor that lets you create ontologies used in wiki, * autocompletion of categories, attributes, relations and relation objects (all described in ontologies), * detection of semantic errors in pages, such as wrong relation used in page source. ===== Installation ===== See [[docs:installation#lokiontology|the dedicated page]]. ===== Usage ===== lokiontology uses ontologies (defined by you) to provide semantic validation on DokuWiki pages. In order to make use of it, you should define at least one ontology. Ontology is simply a page created in ''special:ontology'' namespace. When you create such page, semi-graphical editor is enabled allowing you to define categories, attributes and object relations. Now, while editing a regular (non-ontology page), after typing ''[[category:'' you receive suggestions of defined categories. After selecting at least one, you receive suggestions of relations and attributes. Another feature is suggesting relation objects (pages) using SPARQL endpoint (enabled by default in Loki). For example, with defined relation ''author isAuthorOf book'', if you are editing author's page, after typing ''[[isAuthorOf::'' you receive list of pages categorized as ''book''. In order to validate existing pages' semantic information correctness, you have to open such page for editing. Then, any semantic errors are highlighted; also on save attempt there is a popup informing about such errors. ===== Namespaces ===== In order to avoid ID collision between ontologies, namespaces are used. You can define one default ontology on ''special:ontology:default'' page - this ontology is available without namespace, e.g. ''[[category:author]]'', ''[[isAuthorOf::iliad]]''. If you define another ontology, for example ''special:ontology:movies'', all of it's categories, attributes and relations receive ''movies'' namespace, e.g. ''[[category:movies:actor]]'', ''[[movies:playsIn::tomb_raider]]''.