Git Product home page Git Product logo

org.jung.terminology's Introduction

org.jung.terminology

DITA-OT 4.2.3 DITA-OT 4.1.2 DITA-OT 4.0.2 DITA-OT 3.7.4 license CI

org.jung.terminology is a plugin for the DITA-OT for creating a DITA-based terminology database.

  • Create and change terms easily using specialized DITA topics (DTD/RNG). The new DITA <termentry> topic represents a single term. Terms are linked together to a terminology database using the <termmap> map.
  • Author terms easily using an <oXygen/> XML framework with author mode stylesheets, that simplify the editing of <termentry> and <termmap> topics.
  • Navigate through the terminology database with a classic or responsive terminology browser (DEMO) based on the <oXygen/> webhelp transformation.
  • Check DITA or XLIFF files with a Schematron based terminology checker.
  • Export the terminology to TBX-Basic or TBX-Min for your Language Service Provider (LSP).

Installation

Prerequisites

  • DITA-OT 2.3.x or higher
  • The termbrowser needs the OOPS Consultancy XMLTask library on classpath. If this library is missing, you can provide it by installing the DITA-OT utility plugin org.jung.xmltask.
  • <oXygen/> XML 18 or higher (optional)
  • To use the Relax NG topics and maps, you need to install the dita-relaxng-defaults plugin.
    dita --install https://github.com/oxygenxml/dita-relaxng-defaults/archive/master.zip

Install the plugin

Install the plugin with the dita command.

dita --install https://github.com/stefan-jung/org.jung.terminology/archive/master.zip

Install the <oXygen/> XML Framework

  1. In <oXygen/> open the menu Options > Preferences.
  2. In the preferences, open Document Type Association > Locations.
  3. Add the frameworks directory of the plugin in the DITA-OT as an additional framework directory, e.g. /home/user/workspace/DITA/dita-ot/plugins/org.doctales.terminology/frameworks.

Using the Plugin

Please refer to the documentation.

Licenses

TBX-Core

TBX-Core is a TBX dialect and licensed under the CC BY 4.0 license.

The TBXcoreStructV03.rng is maintained in the GitHub repository github.com/LTAC-Global/TBX_Core_RNG. The grammar file(s) represent TBX core as described in ISO 30042.

Contribution

People who contribute to org.doctales.terminology:

org.jung.terminology's People

Contributors

lionelmoi avatar raducoravu avatar sanfandocu avatar stefan-jung avatar waffle-iron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

org.jung.terminology's Issues

add support for alternative definitions

A single term may have different definitions, that is, not different meanings but different angles (customer, terminologist, student, manager, SME).

It would be interesting to add a <definitionAlt> element based on topic/section in the termBody in order to implement it.

Shadow semantic-net generation by using a conditional<local> Ant task

The processing of a semantic net must be public, because it has to be injected into the webhelp processing, but creating a new transtype does not work, because the plugin must not depend on the webhelp plugin. Therefore the processing should shadow properties using the (conditional property) <local> Ant task.

Implement a logical term conflict validation post processing step

A term should not have a deprecated <termNotation>, that is an allowed <termNotation> of another term. This should be validated after the preprocessing phase.

term 1

<fullForm language="en-GB" usage="notRecommended">
   <termVariant>foo</termVariant>
</fullForm>

term 2

<fullForm language="en-GB" usage="preferred">
   <termVariant>foo</termVariant>
</fullForm>

Convert usage attribute to element

Currently, the status is set using the usage attribute:

<fullForm usage="preferred" language="en-GB">
  <termVariant>my term</termVariant>
</fullForm>

Because the usage may different in another term domain, the usage should be expressed with an element. Of course, this should be avoided, because the terminology should be harmonized.

<fullForm usage="preferred" language="en-GB">
  <usage status="preferred" termdomain="foo"/>
  <usage status="notRecommended" termdomain="bar"/>
  <termVariant>my term</termVariant>
</fullForm>

In that case, the status and the termdomain attributes should be mandatory for the <usage> element.

Fix broken string references

[stefan@vaio org.doctales.terminology]$ /opt/Oxygen\ XML\ Editor\ 20/diffFiles.sh 
0 WARN [ main ] ro.sync.ecss.extensions.q - Could not find translation for key: doctales.termRelation.delete
1 WARN [ main ] ro.sync.ecss.extensions.q - Could not find translation for key: doctales.termNotation.delete
1 WARN [ main ] ro.sync.ecss.extensions.q - Could not find translation for key: doctales.keyref.termRelation
1 WARN [ main ] ro.sync.ecss.extensions.q - Could not find translation for key: doctales.open.termRelation

Enhance termchecker performance by using compiled XSLT

To increase the performance, an approach can be to compile the XSLT and export it in the compiled form. Then, this compiled stylesheet can be used from other Schematron file, or from other XSLT via xsl:use-package.

Please add support for HiDPI displays

On a 4K display the termbrowser displays text that's too tiny to read, in some cases the letters overlap. Would be nice to use this on my new 32" display :-). Thx.

Reduce reports in termchecker by using match instead of contains

<sch:schema xmlns:sch="http://purl.oclc.org/dsdl/schematron" queryBinding="xslt2"
  xmlns:sqf="http://www.schematron-quickfix.com/validator/process">
  <!-- Replace -->
  <sch:report test="contains(., 'foo') role="warning">The term 'foo' is not allowed.</sch:report>
  <sch:report test="contains(., 'Foo') role="warning">The term 'Foo' is not allowed.</sch:report>
  <!-- With -->
  <sch:report test="matches(., 'foo', 'i') role="warning">The term 'foo' is not allowed.</sch:report>
</sch:schema>

The semantic net arrows for "is part of" relations should point in the oposite direction

Solution:
Update file: org.doctales.terminology/xsl/terminology2semanticnet.xsl
go to:

<!-- partOf -->
<xsl:for-each select="document(./$filename)/descendant::*[contains(@class, ' termentry/partOf ')]">

change order of value-of elements to:

<xsl:for-each select="document(./$filename)/descendant::*[contains(@class, ' termentry/partOf ')]">
                <xsl:text>{id: '</xsl:text>
                <xsl:value-of select="$key"/>
                <xsl:text>2</xsl:text>
                <xsl:value-of select="@keyref"/>
                <xsl:text>', from: '</xsl:text>
                <xsl:value-of select="$key"/>
                <xsl:text>', to: '</xsl:text>
                <xsl:value-of select="@keyref"/>
                <xsl:text>', arrows: 'to', label: 'is part of'},</xsl:text>
</xsl:for-each>

Implement mandatory <termgroup>element in <termmap>

A <termgroup> element should be integrated into the <termmap> to group termentry topics. That offers the possibility to implement features like sorting terms without affecting other <topicref> elements.

Example

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE termmap PUBLIC "-//DOCTALES//DTD DITA DOCTALES Termmap//EN" "termmap.dtd">
<termmap id="termmap">
 <title>Termmap</title>
 <termgroup>
  <termref href="term1.dita" keys="term1"/>
  <termref href="term2.dita" keys="term2"/>
 </termgroup>
 <topicref href="other.dita"/>
</termmap>

Oxygen does not load termmap doctype association from frameworks folder

If I set the associated framework location to org.doctales.terminology/framework/
Oxygen (18.1 + 19) finds the termentry doctype association only but not the termmap doctype association.
Because of that, Oxygen does not provide the author with any transformation scenario.

It seems that Oxygen ecxpects that multiple frameworks must located in separate subdirecories of the added framework directory.
If I try to safe a new external framework in the top level frameworks dirctory the following message occours:

The "*.framework" file must be saved in a subdirectory of one of the configured frameworks directories..."

Moving the framework and referenced ressources in a subdirectory solves the problem.
Associated ransformation scenarios are available after that.
However, I facing another transformation failure
java.lang.ClassNotFoundException: org.dita.dost.module.GenMapAndTopicListModule,
so I am not shure, if other things are to do regarding this issue.

Schematron IDs are invalid NCNames

<sqf:fix id="BoLB/L"> <!-- This is invalid -->
    <sqf:description>
        <sqf:title>Replace with an allowed acronym: 'B/L'</sqf:title>
    </sqf:description>
    <sqf:stringReplace regex="(\b(BoL)\b)" select="'B/L'"/>
</sqf:fix>

throws


The value 'BoLB/L' of attribute 'id' on element 'sqf:fix' is not valid with respect to its type, 'NCName'.
--

Make plugins works with DITA OT 3.6

We had this remark from one of our users:

 We have looked at Doctales’ terminology plugin (https://github.com/doctales/org.doctales.terminology). 
 This has great functionality as it offers not only the possibility to check for incorrect terms, but also to manage terms and concepts like in a terminology database. 
 However, this plugin is seemingly not maintained any more and does not work with DITA-OT 3.6.

Upgrade flag-icon-css

The CDN has changed. Use:

<link
  rel="stylesheet"
  href="https://cdn.jsdelivr.net/gh/lipis/[email protected]/css/flag-icons.min.css"
/>

The CSS syntax has changed. Use:

<span class="fi fi-us">

Add MS Excel template

Add an MS Excel template with VBA macros. Each row should represent a <termentry> topic.

Change the order of `<termNotation>` child elements

Change the order of <termNotation> child elements so that <termVariant> is always the first child. That would simplify working with the hierarchy view in . Test with all transformations.

BEFORE

<fullForm language="en-GB" usage="preferred">
  <termSource>
    <sourceName>source</sourceName>
  </termSource>
  <termVariant>term</termVariant>
</fullForm>

AFTER

<fullForm language="en-GB" usage="preferred">
  <termVariant>term</termVariant>
  <termSource>
    <sourceName>source</sourceName>
  </termSource>
</fullForm>

DITA Termchecker should offer terms without region code in language as replacement

If termchecker rules are generated for terms with a region code, e.g. en-GB, than terms without a region code, e.g. en should be offered as replacements.

<fullForm usage="preferred" language="en">
  <termVariant>anti-lock braking system</termVariant>
</fullForm>
<fullForm language="en-GB" usage="notRecommended">
  <termVariant>anti-skid braking system</termVariant>
</fullForm>

Implement a new HTML5 only termbrowser transformation type

Implement a new termbrowser, that generates a termbrowser by only using the html5 transformation and flavoring this with some JavaScript and CSS libraries.

Eliot K. roughly summarized, how this is done for the OT docs:

- Set nav-toc to "full" or "partial" depending on your preference
(http://www.dita-ot.org/dev/parameters/parameters-html5.html)
- Set args.copy-css to "yes"
- Set args.css to "dita-ot-docs.css"
- Set args.cssroot to "docsrc/resources" (this is relative to the root of
the OT. You may need to make this absolute. For example, in oXygenXML 18
you can do "${configured.ditaot.dir}/docsrc/resources".

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.