Skosmos is a web-based tool providing services for accessing controlled vocabularies, which are used by indexers describing documents and searchers looking for suitable keywords.

Overview

CI tests Test Coverage Code Climate Scrutinizer Code Quality SensioLabsInsight Codacy Badge Quality Gate Status Average time to resolve an issue Percentage of issues still open

Skosmos

Skosmos is a web-based tool providing services for accessing controlled vocabularies, which are used by indexers describing documents and searchers looking for suitable keywords. Vocabularies are accessed via SPARQL endpoints containing SKOS vocabularies. See skosmos.org for more general information about Skosmos including use cases, current users and publications.

In addition to a modern web user interface for humans, Skosmos provides a REST-style API and Linked Data access to the underlying vocabulary data.

Skosmos is used as a basis for the Finto vocabulary service. The latest development version is also available at dev.finto.fi.

Skosmos is implemented using PHP, with Twig templates and e.g. jQuery and jsTree used to build the web interface, and EasyRdf for SPARQL and RDF data access.

The code is open source under the MIT license. See Installation in the wiki for details on obtaining the source and running your own instance of Skosmos.

For information about released versions, see Release Notes.

Reporting issues

If you have found a bug please create a new issue using the provided template: Report an issue

Comments
  • Replace qtip JS library by a pure CSS tooltip

    Replace qtip JS library by a pure CSS tooltip

    Reasons for creating this PR

    Replace the deprecated qtip JS library by a pure CSS tooltip.

    Link to relevant issue(s), if any

    • Related to #1151

    Description of the changes in this PR

    In #1151, when I looked at the qtip library alternatives, the first that I thought about was using Bootstrap's popover component. That requires us including and loading the Popper.js library.

    My idea was to add this new dependency, import before docready.js, and initialize the instances for each object. Similar to what we are doing with qtip. Finally, I would also have to spend some time customizing the CSS to match qtip's output.

    However, I thought perhaps we could try a solution without JavaScript first. This way in the future we won't have to worry about tooltips, replacing libraries, updating popper, etc.

    Known problems or uncertainties in this PR

    I used the example from this post: https://dev.to/r3zu3/pure-css-tooltip-1k3j. The author uses it in his library z.css, licensed under the Apache License.

    We need to customize the time of the animation, and the location of the tooltip.

    I also have implemented only the "Help" text tooltip. I am not sure if we are not using any other features of qtip in other parts of the UI.

    Checklist

    • [x] phpUnit tests pass locally with my changes
    • [ ] I have added tests that prove my fix is effective or that my feature works (if not, explain why below)
    • [x] The PR doesn't introduce unintended code changes (e.g. empty lines or useless reindentation)
    enhancement 
    opened by kinow 46
  • Update to Bootstrap 5

    Update to Bootstrap 5

    Closes #1045

    • [x] ported Bootstrap 3 to Bootstrap 5
    • [x] updated dependencies fixing the stylesheet and JS accordingly
    • [x] added CSS variables
    • [x] tested
    • [ ] addressed feedback & fixed issues (testing again)
    • [ ] wrote a changelog suggested entry
    • [ ] tested autocomplete (https://github.com/NatLibFi/Skosmos/issues/1246)
    opened by kinow 44
  • Add Docker files to run self-contained image for trying out Skosmos

    Add Docker files to run self-contained image for trying out Skosmos

    Closes #910

    Initial Docker files to try out Skosmos 2.4. Uses the Ubuntu base image, and installs Apache2, PHP, composer, git. It is similar to the InstallTutorial, but there are still some steps missing. Some of the steps require trying to customize/parameterize the Jena image.

    I am creating this PR now so that I can check what else needs to be done.

    The Dockerfile.ubuntu is for the Skosmos 2.4 image, that at the moment is using YSO and YSA vocabularies from Finto dev server. I haven't done the extra step of the tutorial, to use different vocabularies as that would require Fuseki. I thought some users would prefer to be able to run just one container to try Skosmos first?

    There is also a docker-compose.yml that uses a different config.ttl, which points to the Jena Fuseki container. It is not loading any data at the moment, but I was starting to work on having 1 vocabulary only, then leave the commands to load the data to the user. Not sure what's the best way here, maybe the docker-compose.yml should try to do more, and also load the data (not sure if I can do that), and perhaps complete the rest of the tutorial?

    Cheers Bruno

    enhancement 
    opened by kinow 38
  • Add 304 to rest controller

    Add 304 to rest controller

    WIP pull request! Will add another commit to update the swagger.json after the initial review. Notes taken during code writing below:

    In methods for resources like /vocabularies, which return collections that do not have a timestamp, before the collection is retrieved are now doing the checks for git/config modified dates, and using them if request contains the right headers.

    I used https://petstore.swagger.io/#/ with the swagger.json from https://raw.githubusercontent.com/NatLibFi/Skosmos/master/swagger.json, going from the top to bottom. So the comments below should reflect what I found while progressing through the methods.

    The code to return the 304 header was added after validation methods. Except validation that required performing a query (otherwise returning 304 after that would be pointless performance-wise I think).

    Manual tests were performed while implementing the changes with the following commands:

    # First request before the change, with response below (NB date is in the future!)
    $ curl -I --header 'If-Modified-Since: 2020-04-29 07:39:48' http://localhost:8000/rest/v1/yso/
    HTTP/1.1 200 OK
    Date: Wed, 24 Apr 2019 08:59:09 GMT
    Server: Apache/2.4.25 (Debian)
    X-Powered-By: PHP/7.0.33
    Access-Control-Allow-Origin: *
    Vary: Accept
    Content-Type: application/json; charset=utf-8
    
    # Second request after implementing change
    $ curl -I --header 'If-Modified-Since: 2020-04-29 07:39:48' http://localhost:8000/rest/v1/yso/
    HTTP/1.0 304 Not Modified
    Date: Wed, 24 Apr 2019 09:01:05 GMT
    Server: Apache/2.4.25 (Debian)
    Connection: close
    
    
    # Last request where the date is in the past (meaning the resource was modified after that, so no 304 expected)
    HTTP/1.1 200 OK
    Date: Wed, 24 Apr 2019 09:01:08 GMT
    Server: Apache/2.4.25 (Debian)
    X-Powered-By: PHP/7.0.33
    Access-Control-Allow-Origin: *
    Last-Modified: 2019-04-24 07:39:48
    Vary: Accept
    Content-Type: application/json; charset=utf-8
    
    

    First modification: move methods related to modified date to Controller

    The first commit moves the methods related to modified dates to the base Controller class.

    Second modification: per vocabulary setting to enable/disable modified date

    In the concept method for WebController, we check if the Vocabulary has the setting skosmos:useModifiedDate, but there is no global setting to enable / disable the modified date globally. I thought we could have a global one and also a per vocabulary setting... but that would make troubleshooting it harder... in the end I thought the easiest approach would be to simply make skosmos:modifiedDate a global configuration. What do you think?

    Third modification: method signature for getModifiedDate

    getModifiedDate was expecting a Concept. So now it allows this concept to be null. This way it can still be used by methods with a Concept, but otherwise simply skip that value if it was not provided.

    It was also expecting a Vocabulary in the method. But then I realized it was not necessary, as the Concept contains already a getVocab() to retrieve the Concept's Vocabulary. It won't affect the existing concept method in WebController, as the Concept is obtained in the first place by calling a method on the Vocabulary (IOW, the Concept->getVocab() will return the same as before).

    Fourth modification: realized I was always doing:

            $useModifiedDate = $this->model->getConfig()->getUseModifiedDate();
            if ($useModifiedDate) {
                $modifiedDate = $this->getModifiedDate(null);
                // return if the controller sends the not modified header
                if ($this->sendNotModifiedHeader($modifiedDate)) {
                    return;
                }
            }
    

    So created the helper method notModified(Concept) in Controller, and now the same code is simplified to:

            if ($this->notModified(null)) {
                return;
            }
    

    Methods that were not modified

    I think for some methods, it may not make sense to return not modified, for some content that the client may not have cached:

    • data: it looks strange to return 304 for a url that may start the download of a file... what do you think?
    • search: I have never seen a search result returning 304 I think... what do you think?

    Q: I realized that I was not using the Concept in the REST methods related to concepts... but the reason is that the methods used by those REST methods are querying single string values (e.g. label), never returning a complete Concept. I could alter each query to return the dc:modified too, change the method to return... an array? Then use the dc:modified value. Is that the right direction?

    enhancement may slip 
    opened by kinow 33
  • Add Dockerfile and a docker-compose to run Skosmos with Fuseki

    Add Dockerfile and a docker-compose to run Skosmos with Fuseki

    Not sure if others would be interested. I started a simple Docker environment as I am on a new notebook and didn't want to install PHP + Apache + Fuseki etc just for developing SKOSMOS again.

    To get everything up and running, once in the project folder:

    $ docker-compose up
    $ curl -I -u admin:admin -XPOST --data "dbName=skosmos&dbType=tdb" -G http://localhost:3030/$/datasets/
    $ curl -I -X POST -H Content-Type:text/turtle -T vocabularies.ttl -G http://localhost:3030/skosmos/data
    

    And with that SKOSMOS should be running on http://localhost:8000.

    Feel free to close if that's not interesting at this point :-) just in case someone else was thinking about doing something along these lines. It can be easily modified to also support nginx.

    enhancement 
    opened by kinow 24
  • Error when trying to displaying a vocabulary from a Virtuoso SPARQL endpoint

    Error when trying to displaying a vocabulary from a Virtuoso SPARQL endpoint

    At which URL did you encounter the problem?

    http://vocabs.sparna.fr/skosmos/legal-institution-history-casemates/fr/

    What steps will reproduce the problem?

    1. Go to the given URL
    2. ... or go to http://vocabs.sparna.fr and click on "Liste historique des institutions - CASEMATES"

    What is the expected output? What do you see instead?

    Expected to see the vocabulary page, got a blank page instead.

    The vocabulary configuration is

    :legal-institution-history-casemates a skosmos:Vocabulary, void:Dataset ;
            dc:title "Liste historique des institutions - CASEMATES"@fr ;
            dc:subject :cat_general ;
            dc:type mdrtype:THESAURUS ;
            void:uriSpace "http://data.legilux.public.lu/resource/authority/legal-institution/historique/";
            skosmos:language "fr";
            skosmos:shortName "Liste historique des institutions - CASEMATES";
            skosmos:fullAlphabeticalIndex "true";
            skosmos:showTopConcepts "true";
            void:sparqlEndpoint <http://data.legilux.public.lu/sparql> ;
            skosmos:sparqlGraph <http://data.legilux.public.lu/resource/authority/legal-institution-history/graph> .
    

    The Apache log says :

    [Wed Oct 04 16:58:31.888067 2017] [:error] [pid 19071] [client 109.74.87.2:52432] PHP Fatal error:  Uncaught Error: Call to undefined method EasyRdf_Sparql_Result::resource() in /var/lib/skosmos/model/Vocabulary.php:144\nStack trace:\n#0 /var/lib/skosmos/vendor/twig/twig/lib/Twig/Template.php(680): 
    Vocabulary->getInfo('fr')\n#1 /tmp/skosmos-template-cache/b4/b438a52156ba66e79e559db8c29b8e52729c0ad9707262a507b62dae7412cf29.php(33): Twig_Template->getAttribute(Object(Vocabulary), 'info', Array, 'method')\n#2 /var/lib/skosmos/vendor/twig/twig/lib/Twig/Template.php(438): 
    __TwigTemplate_582ccf7fc687f49fd0eba2baa31441b1f2ce99184d5fda00ae3ba6d804d3ef3a->doDisplay(Array, Array)\n#3 /var/lib/skosmos/vendor/twig/twig/lib/Twig/Template.php(406): 
    Twig_Template->displayWithErrorHandling(Array, Array)\n#4 /tmp/skosmos-template-cache/9e/9e144ce04ac068de9c5f43446bf36669bd75f2b3d8970b749ed17f27e4e2e40f.php(188): 
    Twig_Template->display(Array)\n#5 /var/lib/skosmos/vendor/twig/twig/lib/Twig/Template.php(215): 
    __TwigTemplate_72284e08262d094ed9ca748c5808d2ecb1cd528dd6e930f9045576b893892b0a->block_content(Array, Array)\n#6 /tmp/skosmos-t in /var/lib/skosmos/model/Vocabulary.php on line 144, referer: http://vocabs.sparna.fr/skosmos/fr/
    

    I have updated and reinstalled the dependencies to make use EasyRDF was installed with the correct version. I have no clue what can possibly go wrong, any idea would be appreciated. The endpoint at http://data.legilux.public.lu/sparql is Virtuoso, could it be a problem with how the results are returned from the endpoint ?

    (Note also that the same data, when loaded in a local Fuseki endpoint, works fine; so this is not a data-related issue, it is related to querying a remote endpoint).

    Thanks

    bug 
    opened by tfrancart 24
  • Index and Tabs not in sync on Tomcat

    Index and Tabs not in sync on Tomcat

    I've loaded the subject part of GND into my brand-new Skosmos 1.5 installation (using Fuseki 2.4.0 snapshot of 2016-02-17).

    Since GND comprises lots of special character labels, the tabs give an extended list. However, even if I click 'Ä' (which is quite common in German), I get an empty list of words - though I have verified that for example Ästhetik exists.

    I suppose this is related to text indexing (I append my index definition below). Maybe I should use another analyzer - what works for you?

    If I've done something fundamentally wrong, I'd suppose it to be an error that tabs are displayed, when no index entries exist.


    <#entMapFull> a text:EntityMap ;
        text:entityField      "uri" ;
        text:defaultField     "text" ;
        text:defaultPredicate rdfs:label ;
        text:graphField       "graph" ; ## enable graph-specific indexing
        text:uidField         "uid" ; ## recommended for Skosmos 1.4+
        text:langField        "lang" ; ## required for Skosmos 1.4
        text:multilingualSupport true ;
    
        text:map (
    
            # skos:prefLabel
             [ text:field "keyword" ;
               text:predicate skos:prefLabel ;
               text:analyzer [ a text:LowerCaseKeywordAnalyzer ]
             ]
            # skos:altLabel
             [ text:field "keyword" ;
               text:predicate skos:altLabel ;
               text:analyzer [ a text:LowerCaseKeywordAnalyzer ]
             ]
            # skos:hiddenLabel
             [ text:field "keyword" ;
               text:predicate skos:hiddenLabel ;
               text:analyzer [ a text:LowerCaseKeywordAnalyzer ]
             ]
    
            # skosxl
             [ text:field "keyword" ;
               text:predicate skosxl:literalForm  ;
               text:analyzer [ a text:LowerCaseKeywordAnalyzer ]
             ]
    
            # div
             [ text:field "text" ; text:predicate rdfs:label ]
             [ text:field "text" ; text:predicate dc:title ]
             [ text:field "text" ; text:predicate dc:subject ]
             [ text:field "text" ; text:predicate dcterms:title ]
             [ text:field "text" ; text:predicate dcterms:abstract ]
             [ text:field "text" ; text:predicate dcterms:description ]
    
            # ...
    ) .
    
    opened by jneubert 21
  • Uncaught EasyRdf_Exception

    Uncaught EasyRdf_Exception

    At which URL did you encounter the problem?

    http://localhost:8080/Biodiversit%C3%A9_ARK/fr/

    What steps will reproduce the problem?

    1. Select any vocabulary on front page.
    2. the error shows up on blank page

    What is the expected output? What do you see instead?

    • The next page showing content of selected vocab

    • Fatal error: Uncaught EasyRdf_Exception: Unable to connect to localhost:3030 (Cannot assign requested address) in /var/www/html/vendor/easyrdf/easyrdf/lib/EasyRdf/Http/Client.php:423 Stack trace: #0 /var/www/html/vendor/easyrdf/easyrdf/lib/EasyRdf/Sparql/Client.php(276): EasyRdf_Http_Client->request() #1 /var/www/html/vendor/easyrdf/easyrdf/lib/EasyRdf/Sparql/Client.php(120): EasyRdf_Sparql_Client->request('query', 'SELECT ?cs ?lab...') #2 /var/www/html/model/sparql/GenericSparql.php(72): EasyRdf_Sparql_Client->query('SELECT ?cs ?lab...') #3 /var/www/html/model/sparql/GenericSparql.php(652): GenericSparql->query('SELECT ?cs ?lab...') #4 /var/www/html/model/Vocabulary.php(210): GenericSparql->queryConceptSchemes('fr') #5 /var/www/html/model/Vocabulary.php(227): Vocabulary->getConceptSchemes() #6 /var/www/html/model/Vocabulary.php(139): Vocabulary->getDefaultConceptScheme() #7 /var/www/html/vendor/twig/twig/lib/Twig/Template.php(680): Vocabulary->getInfo('fr') #8 /tmp/skosmos-template-cache/33/33ee68b76e69dfd64d470b6af94c1e in /var/www/html/view/vocab-shared.twig on line 9

    What browser did you use? (eg. Firefox, Chrome, Safari, Internet explorer)

    Firefox, Chrome

    PS:

    • the jena-fuseki endoint (http://localhost:3030/ds/sparql) is correctly accessed from YASGUI client even through CORS (http://yasgui.org/). But not from Skosmos...

    • I used the docker version of jena-fuseki (https://hub.docker.com/r/stain/jena-fuseki/)

    • console logging :

    image

    image

    Thanks.

    question 
    opened by mhabsaoui 19
  • Installation fails on Ubuntu 12.04 with php 5.4.36-1

    Installation fails on Ubuntu 12.04 with php 5.4.36-1

    Hello, I tried to install skosmos (master and 0.7.2) on my Ubuntu 12.04 with php5.4. The installation has nor Problems, but the Browser redirects to http://localhost/skosmos/fi/ which seems not to be available? Apache2 mod_redirect is enabled and all other things are done as defined in the installation manual. All needed locales are also installed. Is there a missing php5 module? Regrads from Germany Armin

    opened by armin11 19
  • New configuration file format to replace config.inc

    New configuration file format to replace config.inc

    At the moment we use a PHP file called global.inc for global configuration settings. Most of them are set using define() statements. But this is not a very flexible format and causes difficulties in unit testing, because while the config.inc is parsed within the GlobalConfig constructor, its effects are global so there cannot be two configurations active within the same PHP environment.

    We could introduce a new configuration file format for Skosmos 2.0 since it's a major version bump. There should be some migration mechanism, for example a script that converts an old configuration file to the new format.

    Reasonable options for a new configuration file format:

    • PHP .inc file that defines an array with settings
    • YAML

    Not so good options:

    • JSON: doesn't support comments
    • INI style: doesn't support arrays
    • XML: nobody wants to use XML...
    enhancement size-medium 
    opened by osma 17
  • Same concept appears multiple times in search results

    Same concept appears multiple times in search results

    At which URL did you encounter the problem?

    http://dev.finto.fi/sv/search?lang=&q=ufologia&vocabs=yso

    What steps will reproduce the problem?

    1. Go to above URL (or perform another search which matches both the prefLabel and altLabel of a concept)

    What is the expected output? What do you see instead?

    Expected to see the concept only once, but instead seeing several matches: one via prefLabel, another via altLabel. These should probably be merged into just one visible result, but how to do that is a difficult question. The SPARQL queryConcepts method considers all matches separately.

    bug REST size-large search results needs unittest 
    opened by osma 17
  • How indicate the main thesaurus to be displayed in the hierarchical view ?

    How indicate the main thesaurus to be displayed in the hierarchical view ?

    Hello,

    Our thesaurus contains 1 main conceptScheme (INRAE thesaurus) and several microthesauri (also ConceptSchemes), i.e. each Concept is a member of the main thesaurus AND one or several microthesauri. Is it possible to indicate the main thesaurus to be displayed in the hierarchical view?

    Thank you ! imageHierarchy

    enhancement 
    opened by dipso-num4sci 1
  • Loading the concept page from a dynamic component does not udate concept info for deprecation alert box

    Loading the concept page from a dynamic component does not udate concept info for deprecation alert box

    At which URL did you encounter the problem?

    At this point, the mechanism of this bug is a bit speculative but at least we know what components are involved in creating this situation.

    What steps will reproduce the problem?

    1. Go to https://finto.fi/yso/en/new and choose a depreceted (strike-though) concept and load it.
    2. The concept page shows a deprecated alert saying the page is not in use anymore
    3. Load the page in any manner
    • by F5
    • by switching the content language
    • by switching the UI language
    1. And the alert box gets the dct:isReplacedBy -information too

    What is the expected output? What do you see instead?

    I'd expect the alert box to get all the information it would eventually get by just clicking the link to the deprecated concept in the sidebar. Possibly because the partial page load does not fire up the component in docready.js - https://github.com/NatLibFi/Skosmos/blob/0a51dd58bae105fa4c27ea0c1955a908489180e2/resource/js/docready.js#L1045

    What browser did you use? (eg. Firefox, Chrome, Safari, Internet explorer)

    bug 
    opened by joelit 0
  • Adjust skosmos:showNotation setting to be obeyed in autocomplete dropdown

    Adjust skosmos:showNotation setting to be obeyed in autocomplete dropdown

    Reasons for creating this PR

    Whilst working on #1380 (#1335), I noticed that the skos:showNotation setting is not respected in autocomplete dropdown. Whilst this is somewhat documented, I dare to say it could make more sense to have this setting enabled more globally, e.g., also in the autocomplete dropdown, too (as in all other places it is already respected in such a way).

    Description of the changes in this PR

    This PR simply does not show the notation code if it is required to be hidden via skosmos:showNotation "false" setting.

    Known problems or uncertainties in this PR

    This changes the way autocomplete search results are shown in, e.g., https://dev.finto.fi/yso-aika/fi/. This change of behavior may be a problem for that vocabulary, for example, in which case there should be another setting for this use case. As @joelit has created this vocabulary, I will set him as the reviewer of this PR so that he can make a good review of this problem and PR.

    Checklist

    • [x] phpUnit tests pass locally with my changes
    • [x] I have added tests that show that the new code works, or tests are not relevant for this PR (e.g. only HTML/CSS changes)
    • [x] The PR doesn't reduce accessibility of the front-end code (e.g. tab focus, scaling to different resolutions, use of .sr-only class, color contrast)
    • [x] The PR doesn't introduce unintended code changes (e.g. empty lines or useless reindentation)
    opened by kouralex 1
  • Lower part of fonts not visible in search results when concept has several narrower concepts

    Lower part of fonts not visible in search results when concept has several narrower concepts

    At which URL did you encounter the problem?

    https://finto.fi/mts/en/search?clang=fi&q=opettaja

    What steps will reproduce the problem?

    1. Search for a concept in vocabulary e. g. "opettaja" in Metatietosanasto

    What is the expected output? What do you see instead?

    Narrower concepts are listed and number of narrower concepts, when there is more than few of them. The lower part of narrower concept labels is not visible: image

    What browser did you use? (eg. Firefox, Chrome, Safari, Internet explorer)

    Firefox, Chrome

    bug size-small search results 
    opened by Vainonen 0
  • Refactor sorting code for hierarchical and groups tabs

    Refactor sorting code for hierarchical and groups tabs

    Reasons for creating this PR

    Tackling issues described in #1390

    Link to relevant issue(s), if any

    • Closes #1390

    Description of the changes in this PR

    This PR changes the code base via refactoring as some methods (namely: getLabel, pickLabel, nodeLabelSortKey, hierarchySort) and their respective code lines have been transferred from hierarchy.js to scripts.js so that they can be utilized in both hierarchy.jsand groups.js.

    Additional changes were made to how $(document).on('click','div.group-hierarchy a', ... (clicking groups) was handled as there were apparent issues that stood out whilst testing the now-refactored code. A careful research and comparison with $(document).on('click', '.concept-hierarchy a', (clicking the hierarchy concepts) revealed that the code for clicking groups lacked some features the more-tested clicking hierarchy concepts had so I added them - now the jsTree hiearchy in groups tab seems to be working as expected.

    Known problems or uncertainties in this PR

    I noticed that autocomplete shows notation codes even after applying skosmos:showNotation "false" setting and this is how it is working in https://finto.fi/yso-aika/fi/. It may be OK for YSO-aika vocabulary, but for the vocabulary I am currently testing it certainly is not. However, fixing the aforementioned is out of the scope of this PR.

    Checklist

    • [x] phpUnit tests pass locally with my changes
    • [x] I have added tests that show that the new code works, or tests are not relevant for this PR (e.g. only HTML/CSS changes)
    • [x] The PR doesn't reduce accessibility of the front-end code (e.g. tab focus, scaling to different resolutions, use of .sr-only class, color contrast)
    • [x] The PR doesn't introduce unintended code changes (e.g. empty lines or useless reindentation)
    opened by kouralex 1
  • Sorting by notation does not work in groups tab if showNotation is false

    Sorting by notation does not work in groups tab if showNotation is false

    At which URL did you encounter the problem?

    At my local installation using a vocabulary with notated groups.

    What steps will reproduce the problem?

    1. Set skosmos:showNotation "false"; skosmos:sortByNotation "true"; for the locally installed vocabulary in question (similarly to https://finto.fi/yso-aika/fi/ where these configuration settings are applied and working)
    2. Observe the Groups tab

    What is the expected output? What do you see instead?

    I expect to see the values ordered by notation codes. For YSO-aika, this is working in the Hierarchy tab. Looking at the code, it seems like sorting is done differently: https://github.com/NatLibFi/Skosmos/blob/0a51dd58bae105fa4c27ea0c1955a908489180e2/resource/js/groups.js#L55 https://github.com/NatLibFi/Skosmos/blob/0a51dd58bae105fa4c27ea0c1955a908489180e2/resource/js/hierarchy.js#L503-L532

    I would assume that refactoring so that both codes use the same approach would yield identical behavior between the tabs in question.

    bug enhancement size-small 
    opened by kouralex 0
Releases(v2.16)
  • v2.16(Oct 6, 2022)

    This is a minor version release (2.16) of Skosmos which contains significant upgrades to jQuery and many other JavaScript libraries, some of which were removed and replaced with plain CSS rules. There are important bug fixes to the search functionality and SKOS XL support. Some layout regressions caused by the Bootstrap upgrade in Skosmos 2.15 were corrected. There is also a new UI translation in the Northern Sámi language.

    Enhancements

    • #1122/#1352 Upgrade to jQuery 3.6
    • #1324/#1371 Replace qtip JS library by a pure CSS tooltip (credit: @kinow)
    • #1347/#1360/#1372/#1374 Replaced Malihu custom scrollbar with CSS and JavaScript (thanks: @henriyli)
    • #1370 Upgrade Twig to 2.15.3 or newer

    Bug fixes

    • #1333/#1332 Concept-specific REST method groupMembers is missing an URI parameter in the swagger documentation (credit: @danmichaelo)
    • #1345/#1354 Fixes setting the language and the vocabulary on the global search box
    • #1346/#1356 Graceful handling of partial SKOS XL data for concept labels
    • #1355/#1357 "show all X paths" message misplaced when concept has many paths (credit: @kinow)
    • #1362 fix display of DC properties in reified property value tooltips
    • #1367/#1369 Modify counting for search limit in typeahead (credit: @kinow)

    Code quality and tests

    • #1286/#1359 Refresh contributing guidelines documentation
    • #1358 Add failure message explaining how to fix Composer/git version mismatch
    • #1365 Remove unneeded jQuery UI dependency

    Translation updates

    • #1353 Add Northern Sámi translation (credit: @mariguttorm and Siri K. Gaski)

    See the upgrade instructions in the wiki for information about upgrading from earlier versions.

    Source code(tar.gz)
    Source code(zip)
  • v2.15(Jun 2, 2022)

    This is a minor version release (2.15) of Skosmos that brings several updates to the frontend with a significant upgrade to Bootstrap 5 and minor updates to third-party JS libraries. The Bootstrap 5 update causes many changes to the HTML and CSS structure and necessitated many subsequent fixes that are also included in this release. Users with heavily customized Skosmos installations will need to review their CSS styles and adapt them for this release. The old Bootstrap 3 version included Glyphicons, which are no longer available with an open license; this release instead includes the similar Font Awesome Free icon set.

    The test environment has been updated to PHPUnit 9 for better compatibility with latest PHP versions. Support for PHP version 7.2 has been dropped, since PHPUnit tests are no longer working on that version. The code in this release should still work on PHP 7.2 but we cannot offer any guarantees going forward. The support for SKOS-XL labels has been improved and a brand new Latvian translation of the UI has been added.

    Enhancements

    • #1045/#1182 Update to Bootstrap 5 (credit: @kinow)
    • #1309/#1319 Use Font Awesome Free as a Web Font for copy to clipboard icon
    • #1202/#1308 Store current Skosmos version in composer.json (credit: @kinow)
    • #1291/#1312 Upgrade to PHPUnit 9, drop PHP 7.2 support
    • #1292/#1318 Create a SECURITY.md file

    Bug fixes

    • #1301/#1303 Autocomplete problems after Bootstrap 5 upgrade (credit: @kinow)
    • #1311/#1314 Fix sidebar search after Bootstrap 5 upgrade (credit: @kinow)
    • #1304/#1310 Fix font size issues after Bootstrap 5 upgrade
    • #1321 minor CSS tweaks after Bootstrap 5 upgrade
    • #1326 Fix typeahead templates in the search auto-complete (credit: @kinow)
    • #1328 Fix highlighting of the New tab after Bootstrap 5 upgrade
    • #1315 fix 'Any language' choice in language selection menu
    • #1289/#1307 Sanitize language switching URLs
    • #1270/#1316 JavaScript error on hierarchy sort
    • #1167/#1187 provide translations for skosmos:marcSourceCode
    • #1263/#1317 Popup fo SKOS-XL labels not always populated
    • #1330 Avoid introducing extra whitespace around literal values on the concept page

    Code quality and tests

    • #1288/#1290 GitHub Actions CI tests failing on PHP 7.x
    • #1293 Drop useless SKOSMOS_VERSION build arg from Dockerfile
    • #1297/#1300 Drop unused URI.js dependency
    • #1269/#1305 Upgraded Handlebars to v4.7.7
    • #1255 Document default values for vocabulary-specific configuration settings in the wiki
    • #1322 Modify checklist in PR template

    Translation updates

    • #1313 add Latvian translation (credit: @CaptSolo)
    • #1331 update Portuguese translation (credit: @bsalmeida)

    See the upgrade instructions in the wiki for information about upgrading from earlier versions.

    Source code(tar.gz)
    Source code(zip)
  • v2.14(Mar 10, 2022)

    This is a minor version release (2.14) of Skosmos. This release brings support for PHP 8.0, improves handling of plugins and improves logging when running under Docker. There are bugfixes related to the handling of "0" as a search string and to the display of concept types in search results. Some dependencies are upgraded, including the Twig template engine and the Jena Fuseki triple store used for unit tests.

    Enhancements

    • #1148/#1285/#1287 Call plugin callbacks in the order they are configured
    • #1243/#1266 Support PHP 8.0
    • #1251 Redirect error log to stderr for docker logs (credit: @pulquero)

    Bug fixes

    • #1254/#1284 Concept types in the search box are shown as URIs, not labels
    • #1260/#1261/#1267 Fix vocabulary search using "0" as the search string (credit: @kinow)
    • #1275/#1276 Searching via API using the search term '0' without asterisk (0*) fails (credit: @kinow)
    • #1262/#1271/#1280 Allow plugin robloach/component-installer and update Twig to 2.14 (credit: @janvanmansum)
    • #1278 Added the possibility to define parameter plugins outside of the ordered plugin list

    Code quality and tests

    • #1273 Upgrade to newest Fuseki 4.4.0 for running unit tests
    • #1277 Enable GitHub Actions CI runs for pull requests from forks
    • #1282/#1283 Reformat JSON strings in RestControllerTest

    See the upgrade instructions in the wiki for information about upgrading from earlier versions.

    Source code(tar.gz)
    Source code(zip)
  • v2.13(Dec 8, 2021)

    This is a minor version release (2.13) of Skosmos that brings accessibility and theming improvements. Labels and tooltips for concept properties can now be overridden in the configuration file. Docker builds are now faster. There are numerous bug fixes and minor improvements to code quality. We are thankful for the large number of contributions we received from the international Skosmos user community!

    Enhancements

    • #1222/#1223 Accessibility improvement: Remove hardcoding of allcaps label styling, move to CSS (credit: @schlawiner)
    • #1165/#1233 Show newly deprecated concepts in the new concepts list
    • #1201 Make it possible to define order of plugins in configuration (part of #1148)
    • #1226 Theming Enhancement: Extract and consolidate colors, create css variables (credit: @schlawiner)
    • #1235 Faster docker build (credit: @pulquero)
    • #806/#1244 Custom labels and tooltips for properties in concept view

    Bug fixes

    • #1221/#1227 Fix hierarchy js error for special characters in prefLabels (credit: @schlawiner)
    • #1234/#1258 Fix language switcher "eating" part of vocids that end in a langcode (credit: @schlawiner)
    • #1170/#1231 Avoid uncaught fatal errors in REST API if vocabulary ID not found
    • #1184/#1239 Searching with decomposed unicode characters
    • #1238/#1241 Remove float property of reified property element (credit: @kinow)
    • #1109 Hierarchy tab looking all funny (was already fixed in Skosmos 2.12)

    Code quality and tests

    • #1124 Add pull request template
    • #1249 Remove PHP 8 from build matrix to avoid hanging CI jobs

    Translation updates

    • #1256 Update translations from Transifex for Skosmos 2.13 release
    • #1181/#1237 Change the message shown for deprecated concepts
    • #1225 German translation updated (credit: @schlawiner)
    • Brazilian Portuguese translation updated (credit: Pedro Paulo Favato Barcelos)

    See the upgrade instructions in the wiki for information about upgrading from earlier versions.

    Source code(tar.gz)
    Source code(zip)
  • v2.12(Oct 6, 2021)

    This is a minor version release (2.12) of Skosmos that brings improvements to the handling of notation codes - they can now be shown as regular properties on the concept page, and any labels of notation data types are shown as well. In addition, there are two alternative sorting strategies for sorting by notation codes (lexical and natural). Many error handling issues have been fixed, improving the robustness of Skosmos e.g. in situations where the SPARQL endpoint is not responding. There is also a new UI translation to West Frisian (Frysk) and some bug fixes.

    Enhancements

    • #1087/#1198/#1212/#1213/#1216 Display skos notation with a data type and label in the properties on the concept page
    • #937/#1205 Add "lexical" and "natural" sort strategies for notation codes

    Bug fixes

    • #693/#1195 Improve search error handling
    • #721/#722/#723/#1196 Fix sidebar navigation after erroneous page
    • #1194 error-resistant Vocabulary->getInfo()
    • #1033/#1197 Fixes for searches, ajax, waypoints, easyrdf HTTP client errors
    • #1016/#1109/#1186/#1188 Modify code to always have an ld json element, may be empty (credit: @kinow)
    • #1200 Add dependency on symfony/polyfill-php80 to define ValueError
    • #1210/#1211 Allow clicking on either label or notation in hierarchy
    • #1215 Gracefully produce 404 error page for URLs with unknown vocabulary ID

    Code quality and tests

    • #1199 Cleanup translation files and rename trans_script to compile-translations
    • #1207 Replace NBSP by spaces (credit: @kinow)

    Translation updates

    • #1218 Dutch (nl) translation updated by @redmer
    • #1218 New translation to West Frisian / Frysk language (fy) by @redmer
    • 7 new translated strings (related to notations and error messages) which are not yet translated to most languages

    See the upgrade instructions in the wiki for information about upgrading from earlier versions.

    Source code(tar.gz)
    Source code(zip)
  • v2.11(Jun 2, 2021)

    This is a minor version release (2.11) of Skosmos that brings a few small improvements and bug fixes.

    Enhancements

    • #913/#1174 Count deprecated concepts separately in vocabulary metadata
    • #1100/#1176 Define order for more vocabulary home page properties
    • #1166 Specify SPARQL endpoint URL via environment variable
    • #1159 Add topbar-container CSS hook (credit: @danmichaelo)

    Bug fixes

    • #1156/#1157/#1162 Docker fails to install Composer dependencies (credit: @jrvosse)

    Code quality and tests

    See the upgrade instructions in the wiki for information about upgrading from earlier versions.

    Source code(tar.gz)
    Source code(zip)
  • v2.10(Apr 7, 2021)

    This is a minor version release (2.10) of Skosmos. The aim of the release is to tie up loose ends by concluding longstanding pull requests and brushing up the code quality for both PHP and JavaScript components. There are improvements for spam-proofing the feedback form and giving better support for installing Skosmos in a Docker container. This release brings support for PHP 7.4. PHP 7.1 is no longer supported.

    Enhancements

    #660/#1113/#1140 Retrieve and display domains of ConceptScheme at the top of the tree hierarchy (credit: @tfrancart) #1026/#1137 Improve ajax behavior #1093/#1130 feedback form should have a headline or subject #910/#965 Add Docker files to run self-contained image for trying out Skosmos (credit: @kinow) #1132 Add a noscript tag to alert users when they have not enabled JS (credit: @kinow) #1116/#1138 Add generator meta tag with Skosmos version

    Bug fixes

    #1019/#1022 URL parameter uri used when there is no need #1108/#1134 Long lists not scrollable all the way through #1131 Fix calculation of minimum time in feedback honeypot #1139/#1149 Using the feedback form an empty email is sent

    Code quality and tests

    #920/#1127/#1136 Make unit tests work on PHP 7.4; upgrade to PHPUnit 8 #1128 Upgrade EasyRdf to 1.1.* #1112/#1135 Amended swagger documentation for maxhit search parameter behaviour #1142 Fix typos in comments, add phpdocs, replace NBSP by space, simplify phpunit (credit: @kinow) #1122/#1144 Minor fixes and quality improvements for JavaScript components

    Translation updates

    #1150 Updated translations from Transifex Updated Norwegian Nynorsk and Bokmål by @danmichaelo & @oddrunpauline #1077 Updated Russian translation by @zxenia Updated Spanish translation by Meron E.

    See the upgrade instructions in the wiki for information about upgrading from earlier versions.

    Source code(tar.gz)
    Source code(zip)
  • v.2.9(Feb 25, 2021)

    This is a minor version release (2.9) of Skosmos. It includes several different sized enhancements and bug fixes but also some new features.

    Improvements, bug fixes and new features are related to, among other things, page layout, presentation of ontology hierarchy, search properties, geographic data processing, API documentation, vocabulary data prosessing and code testing.

    Enhancements

    #724/#1013 Cleaned up href links in the hierarchy list #951/#1032 Fix the layout of autocomplete search results #1029/#1030 Filter out references to deprecated concepts when downloading concept information #1081 Translations for w3c geo latitude and longitude #1084 Use the short vocabulary names for property values from another vocabulary #1098 Optimized the alphabet letter query #1096/#1097 add treatment for JSON-LD vocabulary data dump #1115/#1123 Add support for multilingual properties in case no hit in content language

    Bug fixes

    #1013 Fixed uri parameters #1076/#1078 Layout issues with Chrome #1080/#1094 Padding for concept info labels #1095 Fixed a typo in swagger documentation #1102 Add isset tests to fix undefined index PHP notices in RestController #1103 Add isset tests to fix undefined offset in WebController

    Code quality and tests

    #1104 Test if skos:Concept is defined when showing the vocabulary statistics #1120 Disable Travis build job that uses Fuseki snapshot

    See the upgrade instructions in the wiki for information about upgrading from earlier versions.

    Source code(tar.gz)
    Source code(zip)
  • v2.8(Oct 7, 2020)

    This is a minor version release (2.8) of Skosmos. The aim of the release is to improve the accessibility of the Finto.fi Service. The accessibility deadline for all public sector bodies is 23rd September 2020. The enhancements we have agreed to address in the sprint related to the release will be implemented by this date. Shortcomings and problems that we do not have the opportunity to correct by the deadline will be mentioned in the accessibility report and will be addressed later.

    WCAG 2.1 (Levels A and AA) Guidelines, a screen reader and the advice of an expert by experience have been used to define the issues.

    Enhancements

    • #1034/#1046 Adding HTML IDs / classes to the property value list
    • #1047/#1061 Improve heading semantics (WCAG)
    • #1049/#1056/#1069 Accessibility improvements for keyboard / tab key navigation
    • #1048/#1050/#1055 Skip to content functionality
    • #1052/#1067 Headings are not arranged with text in concept and vocab information pages
    • #1053 update twig; references #918
    • #1060 Topbar wcag focus improvements
    • #1062/#1073/#1068/#1061 Missing translations for the main languages translations
    • #1072 tweaked header font size

    Bug fixes

    • #1018/#1024 Timestamp date format should be based on UI language, not content language
    • #1027/#1028 Config.ttl.dist pointing to a non-existing css file path by default
    • #1044 Fix error in swagger spec for search method return value
    • #1063/#1067 The header bar aligns in incorrect way in lower widths
    • #1067/#1070/#1071 Flexbox layout changes and fixes
    • #1071 Fix position of concept spinner, which was broken by a -moz-fit-width rule.
    • #1074 Fixed event listener for alphabetical concept listing

    Code quality and tests

    • #1051 remove dead code: the renderPropertyMappingValues function is never used

    See the upgrade instructions in the wiki for information about upgrading from earlier versions.

    Source code(tar.gz)
    Source code(zip)
  • v2.7(Jun 25, 2020)

    This is a minor version release of Skosmos. It aims to improve the concept page. The basis of the improvements are previously identified issues and communicated user needs.

    The improvements that have now been made include the option to define the order of properties on the concept page and the use of tooltips with custom properties. In addition the language settings for the grouping concepts has been improved. Also some bug fixes were made, such as fixing the alphabetical sorting of AltLabels and improving the quality of the code for PHP extensions and library dependencies.

    Enhancements

    • #554/#992/#1010 Configurable order of properties in Concept pages
    • #600/#982 Add REST API method for new concepts list
    • #824/#995 Support tooltips for custom properties
    • #903/#989 Missing explicit/foreign language langtag for grouping concepts

    Bug fixes

    • #835/#993 AltLabels in other languages are not sorted alphabetically
    • #994 Fix the font definitions for timestamps and linked vocabulary names
    • #990/#998/#1012 AJAX-loaded mapped properties do not respect skosmos:explicitLanguage setting
    • #1007 Fix loading spinner that broke in refactoring

    Code quality and tests

    • #997 Minor library dependency updates
    • #1017 Upgrade bootstrap-multiselect and uri.js to versions that are actually available
    • #1008 Declare required PHP extensions using Composer
    Source code(tar.gz)
    Source code(zip)
  • v2.6(May 14, 2020)

    This is a minor version release of Skosmos. It aims to answer new identified usage needs with new features in the REST API and improvements to some of the existing ones. This also includes a significant improvement to the performance in the form of supporting last-modified information for many of the API methods. Please refer to the upgrade instructions on how to configure this in Skosmos 2.6. While this is most significant to recurring API calls, it also somewhat decreases loading times for a concept page.

    Enhancements

    • #952/#983 Global REST label method
    • #599/#976 Add REST API method for alphabetical index
    • #640/#981 Return altLabels too for REST API  "/vocid/label"
    • #869 Add HTTP 304 support to REST controller by Bruno P. Kinoshita
    • #862/#985 Swagger/OpenAPI documentation for mappings method
    • #901 Downloading a large vocabulary crashes the browser tab (documentation fix)

    Bug fixes

    • #984 HTTP date format fixes for Last-Modified and If-Modified-Since headers

    See the upgrade instructions in the wiki for information about upgrading from earlier versions.

    Source code(tar.gz)
    Source code(zip)
  • v2.5(Apr 21, 2020)

    This is a minor version release of Skosmos. It aims to serve the international users better by bringing the translations in line with the latest Skosmos features. This release also aims to improve the common user experience by hiding excessively long lists in the concept page and by making it possible to configure Skosmos widgets in config.ttl. There are also bug fixes to the way search results and alphabetical lists are displayed, with numerous code quality improvements.

    Enhancements

    • #833/#969 Shorten long lists of property values, with link to expand
    • #874/#970 Support for parameterized plugins
    • #961/#971 Updated translations from Transifex
    • #959 Add Russian UI translation. Credit: zxenia
    • #972 Add Danish translation. Credit: Sebastian Esp Nielsen and A I

    Bug fixes

    • #957/#958 Fix jena-text searches and alphabetical index restrictions by language
    • #942/#973 Avoid displaying empty type field in search result list
    • #963/#964 Fix bad layout of short preferred terms. Credit: @kinow

    Code quality and tests

    • #968 Fix static analysis issues. Credit: @kinow

    See the upgrade instructions in the wiki for information about upgrading from earlier versions.

    Source code(tar.gz)
    Source code(zip)
  • v2.4(Mar 12, 2020)

    This is a minor version release of Skosmos. The main improvements are for vocabularies with notation codes, such as decimal classifications. Notation codes are now fully searchable and they can be shown as qualifiers in the alphabetical index, which helps distinguishing classes with identical labels. There are also some bug fixes and cleanups of the unit test suite.

    Enhancements

    • #896/#945 Showing notation in the alphabetical listing for classifications
    • #854/#949 Use subproperty of prefLabel for concept page headline
    • #617/#950 Enable search by notification both via generic sparql queries and via jena-text index

    Bug fixes

    • #935/#944 Invalid links to external URIs in non-mapping properties
    • #936/#939 Fix bad quotes in SMTP headers
    • #953/#954 Fix failing tests and invalid language parameter
    • #955/#956 "counts" table in vocabulary page is missing class="table"

    Code quality and tests

    • #934/#946/#947 Running PHPUnit tests causes extra output

    See the upgrade instructions in the wiki for information about upgrading from earlier versions.

    Source code(tar.gz)
    Source code(zip)
  • v2.3(Feb 12, 2020)

    This is a minor version release of Skosmos. The most important change is performance-related: external resources (mappings) are loaded in a separate AJAX-style query, so the concept page now loads much faster. There are also some user interface improvements and bug fixes, as well as improvements to the unit and integration test setup. The minimum required PHP version is now 7.1. PHP versions 7.2 and 7.3 are also supported.

    Performance Optimization

    • #817/#846 Dynamic (AJAX style) loading of mappings Credit: Bruno Kinoshita
    • #912/#921/#927/#928 Faster lookup of Wikidata URIs using WDQS SPARQL endpoint
    • #915/#921/#929 Faster lookup of LCSH labels using HEAD requests

    Enhancements

    • #832/#925/#931 Copy-to-Clipboard for skos:notation when it is displayed in Classification class view
    • #889/#890 Values of notated concepts in concept info are incorrectly sorted
    • #905/#911 Automatic base url protocol detection behind reverse proxy Credit: Dan Michael O. Heggø

    Bug fixes

    • #899 Fix "Any language" label not showing in edge case Credit: Dan Michael O. Heggø
    • #930 Fix null-handling of skosmos:sparqlGraph Credit: Dan Michael O. Heggø

    Code quality and tests

    • #923 Use phpdbg instead of Xdebug for Travis coverage
    • #917/#919 Bump PHP version
    • #932/#933 Unable to run and initialize fuseki for current test set (Windows)
    • #916/#924 Review and address code quality issues flagged by SonarCloud
    Source code(tar.gz)
    Source code(zip)
  • v2.2(Nov 28, 2019)

    Skosmos 2.2

    This is a minor version release of Skosmos. The greatest changes are performance-related, where the underlying SPARQL queries have been refactored, caching has been improved and data handling for displaying search results has been streamlined. Improvements include serving daily MARC dumps for vocabularies through REST API source in each vocabulary, support for the new data model and tweaks to the GUI. This release includes various bug fixes, including those related to handling external links in the concept page, improvements for running unit tests and updates to the distributed docker file.

    Performance Optimization

    #829/#830/#831 Very slow CONSTRUCT query with Jena Fuseki 3.8.0+ #836/#838/#847/#849/#850/#851 Search result page generation is slow due to too many queries #837 Don't perform label and subPropertyOf lookups for well-known properties #839/#859/#863 Support last modified header #845 Fix methods calls in ConceptMappingPropertyValue and Concept #848 Changed SPARQL query in Count Lang Concepts

    Bug fixes

    #828 Unit test failures with Fuseki 3.10 snapshot #840 Prevent error when the system is configured to use dc:modified, but neither concept nor scheme have dates #842/#843 Misinterpreted function calls for getLiteral in vocabulary config #852/#853 PHP error when generating a concept page with external links #855/#856 Font update Issue #861/#887 Fix sorting of notated concepts in hierarchy #868/#870 Links to YSO Places not shown correctly on YSO concept pages #880/#888 Translation Fallback fix #882/#883/#900 RestController doesn't handle content language

    Enhancements

    #844 Added redirection to vocab main page for vocab uri #857 Long prefLabels can overlap GUI elements #867 Turn off mouse events on the dropdown menu #871/#884 Change content language when the user clicks on the preferred term in another language #877 Vocabularies to be downloadable as application/marcxml+xml #898 Set the order of isothes hierarchy properties #891 Update Arabic translations from Transifex

    Code quality

    #841 Remove duplicated array index #834 Add some phpdocs & type hinting #865/#872 Upgrading PHPUnit version to 7.5.10 #866 Rename docker-compose created container from "web" to "skosmos" #895 Update Dockerfile for PHP 7.3

    Source code(tar.gz)
    Source code(zip)
  • v2.1(Dec 12, 2018)

    This is a minor version release of Skosmos. Improvements include support for setting a code for MARC source in each vocabulary plus showing a concept type for each rearch result. This release includes few bug fixes related to language settings and configuration and improvements for running unit tests.

    Translation updates:

    • #707 Added/updated translations for skos:relatedMatch property

    Improvements and new features:

    • #807 / #820 Configuration and REST API support for MARC source codes

    Usability / UI improvements:

    • #776 / #781 / #827 Show concept type in search result list
    • #819 / #826 Fixed links between vocabularies
    • #811 / #822 Rewrite concept group handling to account for multiple hierarchical groups

    Bug fixes:

    • #792 Some configuration settings were ignored
    • #794 maxResults setting for jena-text had no effect
    • #796 Too strict port checking caused issues when running behind reverse proxy
    • #801 / #802 Configuration migration script bug when LOG_FILE_NAME was not set
    • #804 Alphabetical index: loading more items fails
    • #808 Feedback recipient should be based on vocabulary selected on feedback form
    • #814 / #813 Added a check for empty arrays when querying property labels
    • #816 / #818 Set LANGUAGE environment variable in addition to LC_ALL

    Code quality improvements:

    • #791 / #795 / #812 Use Fuseki2 version 3.9.0 for unit tests
    • #758 / #815 Travis CI fixes related to PHP 7.2 support
    • #823 / #821 Use test-specific template chache dir to avoid permission problems

    For a more complete list of bug fixes and new features in this version, see issues and PRs tagged with the 2.1 milestone.

    See the upgrade instructions in the wiki for information about upgrading from earlier versions.

    Source code(tar.gz)
    Source code(zip)
  • v2.0(Aug 29, 2018)

    This is a major version of Skosmos. There are some user-visible changes, e.g., a copy to clipboard button, but lots of changes under the hood and many libraries have been updated to more recent versions. The new version requires PHP7 and uses a single configuration file instead of two separate files. There is now support for running Skosmos via Docker and also for setting up a development instance using Vagrant and Ansible.

    Translation updates:

    • #710 New Dutch translation by Ismail Kutlu and Maxime Van Driessche
    • #767 New Arabic translation contributed by UNESCO
    • New Farsi translation by Omid Ghiasvand and Reza Ghiasvand
    • Updated German translation by Jonas Waeber
    • Updated Polish translation by Łukasz Szeremeta
    • Updated French translation by Thomas Francart Note that there is no support for right-to-left languages yet in the Skosmos UI, so the Arabic and Farsi localizations are not yet complete.

    Improvements and new features:

    • #638 / #754 SPARQL query logging includes prefixes
    • #669 / #670 / #671 Non-SKOS property labels defined in another graph are now displayed. Credit: Thomas Francart
    • #673 Embed JSON-LD data on concept page
    • #688 Make prefLabel fallback language configurable
    • #700 Add Dockerfile and a docker-compose to run Skosmos with Fuseki. Credit: Bruno Kinoshita
    • #761 Feedback messages can be caught in spam filters
    • #761 / #766 Change feedback message headers to use Reply-To and make name and e-mail optional (GDPR)
    • #765 Not all hierarchies opened for a concept in multiple schemes
    • #771 / #778 Configuration migration tooli. Credit: Bruno Kinoshita
    • #738 / #769 New configuration file format to replace config.inc. Credit: Bruno Kinoshita

    Usability / UI improvements:

    • #661 / #709 copy to clipboard button. Credit: Bruno Kinoshita
    • #737 / #741 sorting concept property values correctly
    • #679 Fix ordering of narrower concepts with accented characters on concept page. Credit: Thomas Francart
    • #712 Display concepts in alphabetical index even if no term starts with A

    Bug fixes:

    • #686 Missing skosxl:literalForm causes crash
    • #690 Duplicate search results in the autocomplete result listing 
    • #691 Vocabulary page does not display properly on mobile screens
    • #692 The "by type" select in search result screen contains a blank
    • #694 SPARQL search query is referring to ?match in GROUP BY and ORDER BY, while ?match is not in the SELECT clause
    • #696 Model::searchConceptAndInfo() calls queryConceptInfo() even when result list is empty
    • #701 Embedded json-ld data is not updated when changing concept via hierarchical/alphabetical index
    • #714 Change selected language when selecting hierarchy tab
    • #742 Error when typing quotation mark in the search box
    • #744 concept not loading
    • #748 Add SKOS relations to JSON-LD serialization
    • #757 Search for a collection doesn't work in MTS 
    • #763 Apostrophe in the search box becomes ' and a double quote becomes "
    • #764 Fix search with double quotes. Credit: Bruno Kinoshita
    • #770 Fix Dockerfile by automatically answering yes to apt-get install locales
    • #772 Warning: Unsupported language 'en', not setting locale in /var/www/html/Skosmos/controller/Controller.php on line 54
    • #786 / #789 Specify skosmos:defaultEndpoint as a resource, not literal. Fixes #786

    Code quality improvements:

    • #785 Minor improvements. Credit: Bruno Kinoshita
    • #782 Use Fuseki 3.8.0 for unit tests
    • #783 Disable Travis tests for Fuseki snapshot.
    • #728 Drop APC support

    For a more complete list of bug fixes and new features in this version, see issues and PRs tagged with the 2.0 milestone.

    See the upgrade instructions in the wiki for information about upgrading from earlier versions. In particular, please note that PHP 7.0 or 7.1 is now required and the configuration format has changed so you need to run a migration script.

    Source code(tar.gz)
    Source code(zip)
  • v1.10(Dec 22, 2017)

    This release includes better support for SKOS-XL, bug fixes, and many small improvements such as better sorting of concepts in the alphabetical index.

    Translation updates:

    • #641 Polish translation provided by Dominik Tomaszuk
    • German translation updated by @hauschke

    Improvements and new features:

    • #533 Support for displaying SKOS-XL metadata
    • #630 Improved documentation for handling of deprecated concepts
    • #643 EasyRDF updated to the latest version
    • #632 Virtuoso endpoints should now work since EasyRDF has been updated
    • #666 Prefer mapping property in the same Vocabulary rather than in other vocabularies
    • #636 Top ConceptSchemes in REST API are now additionally in an array

    Usability / UI improvements:

    • #603 Properly displaying prefLabels on small screens
    • #623 Notation codes are now visible for mapped concepts when available

    Bug fixes:

    • #559 Alphabetical index is now in natural sort order
    • #612 properly displaying deprecated concepts when there are many values for the property
    • #615 & #648 Alphabetical index no longer misplaces concepts that have an altLabel
    • #616 PHP warnings "A non well formed numeric value encountered"
    • #619 Invalid labels and URIs no longer shown for with uri fragments
    • #629 Removed the unused color-stylesheet.twig template
    • #633 Sidebar navigation fixed for Internet Explorer
    • #639 The "filter by subvocabulary" dropdown in advanced search screen shows URIs instead of labels
    • #644 Better support for Virtuoso endpoints
    • #652 Fixed a bug with some URI patterns in the hierarchy view
    • #655 GenericSPARQL::generateParentListQuery selects a "?member" variable that is never bound
    • #658 In advanced search screen, when selecting more than 1 subvocabulary, the query fails

    For a more complete list of bug fixes and new features in this version, see issues tagged with the 1.10 milestone.

    See the upgrade instructions in the wiki for information about upgrading from earlier versions.

    Source code(tar.gz)
    Source code(zip)
  • v1.9(May 30, 2017)

    This release includes better support for PHP 7, minor layout & translation improvements, and many bug fixes. Software improvements include: improved spam detection in the feedback form, a faster turtle parser, support for displaying HTML inside notes and definitions, debug logging of SPARQL queries, and many other small improvements.

    Translation updates:

    • #560 Added translations for dc:spatial and dc:temporal
    • #602 Inconsistent translations for broadMatch/narrowMatch

    Improvements and new features:

    • #539 Handle HTML code within notes and definitions
    • #549 Support search with empty search term
    • #564 Run tests also against current Fuseki snapshot
    • #566 Debug logging of SPARQL queries
    • #571 Support for APCu cache
    • #594 & #604 Improve spam detection (thanks @kinow !)

    Usability / UI improvements

    • #550 Adjust front page layout when left/right boxes are not used
    • #565 Ontology header not visible on smart phones

    Bug fixes:

    • #555 vocabularies.ttl world readable
    • #556 Sort narrower concepts by notation on concept page
    • #557 Invalid alphabetical sorting of group members
    • #558 Wrong @base URI returned in /vocabularies API method
    • #561 Text query fails with Jena 3.1.1 / Fuseki 1.4.1 / 2.4.1
    • #562 Concept info query is slow with Jena 3.1.1 / Fuseki 1.4.1 / 2.4.1
    • #567 empty FROM clause causes errors on Stardog
    • #569 Backslashes in URL parameters break REST queries
    • #570 Call to undefined method Twig_Node_Text::getTemplateLine()
    • #572 URIs from other vocabularies not resolved in concept property values
    • #576 Top concepts without label in current language not visible in hierarchy
    • #577 Unnecessary language subtag shown in hierarchy
    • #578 "no term for this concept" shown even though a term exists in a variant language
    • #579 Breadcrumbs show labels in wrong language even if a subtag label would be available
    • #580 Invalid concept links from hierarchy when concept localname contains special characters
    • #581 broadMatch relationships not shown when using English UI language
    • #584 different type of fonts in concept page
    • #585 Switching to hierarchy view broken in IPTC
    • #589 Search by English term broken in IPTC
    • #590 Setting default tab to "hierarchy" breaks page loads
    • #592 Concept search shows empty results when the labels have no language tag
    • #595 Empty parenthesis in search results for concepts with altLabels that have no language code
    • #601 Matched altLabel not shown when it has no language tag
    • #606 The new concept listing doesn't always load more results
    • #610 Rest lookup for term containing single quote fails

    Code quality:

    • Unit test coverage 85%, down from 87% in 1.8
    • Code Climate score 1.89 of 4, up from 1.84 in 1.8
    • Scrutinizer score 5.99 "satisfactory", up from 5.94 in 1.8
    • SensioLabs Insight score 88/100 "silver medal", up from 87/100 in 1.8
    • Codacy overall score A (212 issues), an improvement over the 1.8 score B (202 issues)

    For a more complete list of bug fixes and new features in this version, see issues tagged with the 1.9 milestone.

    See the upgrade instructions in the wiki for information about upgrading from earlier versions.

    Source code(tar.gz)
    Source code(zip)
  • v1.8(Sep 29, 2016)

    This release includes a new contribution guideline and issue templates. We hope these improvements make future contributions to Skosmos easier. Software improvements include: better support for SKOS XL labels, showing notation codes in the autocompletion search, more specific JSON-LD context for the REST API responses and many other small improvements. The concept page layout has been improved and it should now be more usable with mobile devices.

    Documentation improvements:

    • #521 Add contributing doc and issue template

    Usability improvements:

    • #502 Concept page no longer uses tables for the layout
    • #552 The "any language" search setting is now remembered correctly

    Technical improvements:

    • #109 SKOS XL label metadata support
    • #517 Showing notation codes in the autocomplete listing
    • #534 Switch from GRAPH blocks to FROM clauses in SPARQL queries
    • #536 Add @base to JSON-LD contexts

    Bug fixes:

    • #535 REST search type restriction space separation issues
    • #540 Invalid message "There is no term for this concept in this language." when a term exists in a language variant
    • #541 Hierarchy view loading issues in IPTC Scene
    • #542 Language code errors in the hierarchy REST API results
    • #544 Concept page layout issues
    • #547 REST API types method giving a 500 error

    Code quality:

    • Unit test coverage 87.4%, down from 88% in 1.7
    • Code Climate score 1.84 of 4, down from 1.85 in 1.7
    • Scrutinizer score 5.94 "satisfactory", slight decline from 5.95 in 1.7
    • SensioLabs Insight score 87/100 "silver medal", identical score in 1.7
    • Codacy overall score B (202 issues), an improvement over the 1.7 score B (218 issues)

    For a more complete list of bug fixes and new features in this version, see issues tagged with the 1.8 milestone

    See the upgrade instructions in the wiki for information about upgrading from earlier versions.

    Source code(tar.gz)
    Source code(zip)
  • v1.7(Jun 20, 2016)

    The most important improvement in this release is the new Swagger/OpenAPI description of the REST API. It is a declarative, machine-readable JSON description of the API that enables automatically generated API documentation as well as client code generation for various programming languages. Other new features include accessibility improvements, better support for reified definitions, and searching concepts by notation code. There are also performance improvements to the search result page, ability to configure SPARQL request timeouts and the possibility to disable the alphabetical index. These performance-related enhancements make it possible to use even very large vocabularies such as LCSH with Skosmos, though some pages will likely be slow to load.

    Translation updates:

    • Updated French translation by Thomas Francart
    • Updated Italian translation by Armando Stellato
    • Updated German translation by Joachim Neubert
    • Updated Norwegian Bokmål translation by Dan Michael O. Heggø

    Usability improvements:

    • #416 "The concept is not available in this language" message rephrased
    • #433 Avoid duplicated information when isothes:superGroup and skos:member have both been used
    • #434 Don't reveal hiddenLabels that were used for matching
    • #473 Show vocabulary URI on the vocabulary front page
    • #499 Add "Skip to content" link
    • #500 Add labels/titles for search form elements
    • #501 Add heading for sidebar section

    Technical improvements:

    • #452 Make display of skos:notation values optional
    • #456 Search by notation code
    • #458 Support classifying vocabularies by type in vocabularies.ttl
    • #477 Better support for structured/reified definitions
    • #493 Option to disable alphabetical index
    • #508 Smarter getVocabularyFromURI when multiple vocabularies share URI namespace
    • #509 Configurable SPARQL query timeout instead of hardcoded 10 second timeout
    • #524 Introduce SEARCH_RESULTS_SIZE configuration parameter, improving search results loading performance

    Documentation improvements:

    • #435 Swagger description of the REST API

    Bug fixes:

    • #510 Plugin loading problems with Safari
    • #511 PO metadata shown as translation for empty language tags
    • #512 Generated link to concept scheme not working
    • #513 Blank page and 500 error when URI contains space
    • #514 REST data method doesn't return a 404 when the concept can't be found
    • #515, #531 Member concepts of Array-type collections not shown
    • #532 Groups tab shown on Array-type collection pages
    • #516 REST vocabulary information returns badly formatted languages
    • #518 Redirect to language-specific page doesn't respect BASE_HREF setting
    • #519 Duplicated search results when different vocabularies have different prefLabels for the same concept
    • #522 Vocabulary search limited to 40 results even though there should be more
    • #523 Vocabulary feedback form vocabulary preselection is broken
    • #525 Rest lookup method not working as expected without the lang parameter
    • #526 Global search result language code is empty even though it shouldn't be
    • #528 Mapping links shown in wrong language
    • #529 Labels with special characters not shown in hierarchy view

    Code quality improvements:

    • Unit test coverage 88% (was 88% in 1.6)
    • Code Climate score 1.85 of 4, up from 1.77 in 1.6
    • Scrutinizer score 5.95 ("satisfactory"), down from 6.11 in 1.6
    • SensioLabs Insight score 87 of 100 (silver medal), down from 88 in 1.6
    • Codacy overall score B (218 issues), was B (227 issues) in 1.6
    • many other potential bugs and problems fixed based on analysis reports by the above tools

    For a more complete list of bug fixes and new features in this version, see issues tagged with the 1.7 milestone.

    See the upgrade instructions in the wiki for information about upgrading from earlier versions. There have been some minor changes to config.inc settings in this release, but the default values should work for most users.

    Source code(tar.gz)
    Source code(zip)
  • v1.6(Apr 20, 2016)

    This release brings a new plugin mechanism for adding elements to Skosmos pages using JavaScript and CSS. It also includes a HTML/RDF content negotiation endpoint that makes it easier than before to publish Linked Data using Skosmos. We also have a new tutorial for getting started with Skosmos.

    Translation updates:

    • Updated French translation by Thomas Francart
    • Updated Italian translation by Armando Stellato

    Usability improvements:

    • #437 Show the special language tag zxx-x-taxon used for scientific taxon names as "Scientific name"
    • #439 Widget for displaying Finna material (developed in a separate GitHub repository)
    • #440 Prefer short URLs in links from the hierarchy and groups views
    • #478 Better structured display of concept counts on the vocabulary page
    • #480 Subproperties of skos:hiddenLabel no longer shown on concept pages

    Technical improvements:

    • #359 Content negotiation entry point, making it easier than before to serve Linked Data
    • #368 Initial support for using an alternative hierarchy property instead of skos:broader
    • #432, #459 Possible to ask for labels in all languages, or values of other SKOS properties, in the REST search method
    • #438 Pass concept URIs and labels to JavaScript code as variables
    • #476 Plugin mechanism for adding JavaScript and CSS to Skosmos pages

    Documentation improvements:

    Bug fixes:

    • #467 Group page doesn't have a proper page title
    • #469 prefLabel highlight is broken
    • #471 Reverse proxy setting not respected in certain places
    • #474 Label statistics only count terms from one concept scheme
    • #475 REST vocabulary search maxlimits is broken
    • #481 Concept page belongs to group links broken
    • #483 Notation codes not always shown/used at top level of hierarchy
    • #485 Feedback recipient address is ignored when sending feedback from inside a vocabulary
    • #486 Global search results limited to 40 results
    • #487 dc11 properties not always translated
    • #489 https: URLs in concept scheme metadata not linked
    • #490 Hierarchy tab inactive when on Groups tab
    • #491 Thesaurus arrays show up in wrong context
    • #492 External URIs not properly linked from concept page
    • #494 External vocabulary names are looked up twice
    • #495 owl:deprecated concepts not shown as deprecated
    • #497 Shouldn't return lots of skos:inScheme triples in concept scheme data
    • #498 HTML validity fixes
    • #506 isothes:ConceptGroup and isothes:ThesaurusArray not translated in autocomplete results
    • #507 Search string with a space breaks the search results paging

    Code quality improvements:

    • Unit test coverage 88% (was 91% in 1.5)
    • Code Climate score 1.77 of 4, up from 1.6 in 1.5
    • Scrutinizer score 6.11 ("satisfactory"), up from 5.82 in 1.5
    • SensioLabs Insight score 88 of 100 (silver medal), down from 89 in 1.5
    • Codacy overall score B (227 issues), down from A (155 issues) in 1.5 (probably the A/155 issues was a measurement error...)
    • many other potential bugs and problems fixed based on analysis reports by the above tools

    For a more complete list of bug fixes and new features in this version, see issues tagged with the 1.6 milestone.

    See the upgrade instructions in the wiki for information about upgrading from earlier versions.

    Source code(tar.gz)
    Source code(zip)
  • v1.5(Feb 18, 2016)

    This release is a maintenance release containing mostly bug fixes and code quality improvements. User-visible improvements include a "Loading..." spinner for slowly loading concept pages, and the merging of group and concept page types whose separation has caused various problems in the past.

    Translation updates:

    • Updated French translation by Thomas Francart
    • Updated German translation by Joachim Neubert
    • Updated Italian translation by Armando Stellato
    • Updated Norwegian Bokmål and Nynorsk translations by Dan Michael O. Heggø

    Usability improvements:

    • #430 Merge group and concept pages
    • #304 "Loading..." AJAX spinner shown when loading a concept page takes a long time
    • #431, #444 More translations for Dublin Core and Creative Commons metadata
    • #443 Enforce alphabetical ordering of multiple values in the same property

    Technical improvements:

    • #367 Initial support for ISO 25964 BTG/BTI/BTP properties
    • #387 RDF namespace prefixes from vocabularies.ttl used for RDF data about concepts
    • #391 Option to restrict search based on ConceptScheme both in UI and REST API
    • #406 Categorization of vocabularies in vocabularies.ttl is now optional
    • #413 Statistical queries now optional, to support larger vocabularies where they would be slow
    • #422 Make use of different text indexes optional

    Documentation improvements:

    Bug fixes:

    • #461, #466 Problems with lazy loading of more search results
    • #410 Switching interface language does not change content language after selecting a concept from the hierarchy
    • #418 Filtering a search by type does not work
    • #425 Global search is not showing the configured additional properties
    • #426 Changing content language breaks URL encoding
    • #427 Search always targets default endpoint
    • #429 Unique flag not working
    • #436 Javascript event handlers not initializing on the index page
    • #441 Uncatched exception with missing vocabularies.ttl
    • #442 Autocomplete results are limited to 100 results
    • #445 PHP error when trying to access nonexistent page
    • #336 Error message says "404 Error" twice
    • #451 Full alphabetical index is not case-insensitive
    • #454 Reported number of search results capped at 100 or 40
    • #455 Concept page does not show arrays that the concept belongs to

    Code quality improvements:

    • #393 Refactored concept search method parameters into new class ConceptSearchParameters
    • #414 Performance test suite updated and added to the GitHub repository
    • #415 Many more unit tests, coverage raised to 91% (was 76% for 1.4)
    • CSS style sheets extensively refactored
    • Started using the new Code Climate Platform which adds many more types of checks to the analysis. Scores are not directly comparable with the old Code Climate scores though they are on the same scale. Score 1.6 of 4
    • Scrutinizer score 5.82 ("satisfactory"), up from 5.55 in 1.4
    • SensioLabs Insight score 89 of 100 (silver medal), up from 82 in 1.4
    • Codacy overall score A (155 issues), up from B (228 issues) in 1.4
    • many other potential bugs and problems fixed based on analysis reports by the above tools

    For a more complete list of bug fixes and new features in this version, see issues tagged with the 1.5 milestone.

    See the upgrade instructions in the wiki for information about upgrading from earlier versions.

    Source code(tar.gz)
    Source code(zip)
  • v1.4(Dec 18, 2015)

    This release brings support for new jena-text features in Jena 3 (Fuseki 1.3.x/2.3.x). Thanks to these, text search functions and the alphabetical index are now 10-80% faster depending on the situation, and the search result pages now avoid listing the same concept twice even if it was matched via several labels. There is experimental support for using alternative text analyzers which can be used to enable search that targets individual words and/or ignores accents and other diacritics. A new tab showing most recently added concepts is also provided. A Chinese translation was contributed by the community and all other translations have also been updated.

    Translation updates:

    • New Chinese translation by FAO
    • Updated French translation by Thomas Francart
    • Updated German translation by Joachim Neubert
    • Updated Italian translation by Armando Stellato
    • Updated Norwegian Bokmål and Nynorsk translations by Dan Michael O. Heggø
    • Updated Spanish translation by Karna Wegner

    Usability improvements:

    • #140, #358 New tab listing recently added concepts, based on dct:created timestamps on concepts.
    • #53 Search result pages no longer show the same concept multiple times when it is matched via different labels. The REST API search methods now have a unique parameter that controls this behavior (default is off).
    • #332 Option to use a dropdown list instead of links for language selection. This is controlled by the UI_LANGUAGE_DROPDOWN setting in config.inc.
    • #335 Show also the number of concept groups in the counts on the vocabulary front page.
    • #344 Show concept group notation codes in the "belongs to group" section on concept pages.
    • #346 Vocabulary selection dropdown is now sorted alphabetically.
    • added Skosmos favicon Skosmos favicon (can be overridden)

    Technical improvements:

    • #273, #383 Uses new Jena 3.0.0+ features in the jena-text index. This means faster searches and also a faster alphabetical index (can be 80% faster when there are many languages).
    • #313 Experimental support for jena-text alternative text analyzers
    • #372 Optimized handling of concept property information. Speeds up especially global search.
    • #339 Script to easily synchronize translation updates from Transifex to Skosmos code.

    Bug fixes:

    • #347 Opening groups failed when labels are not available in the right language
    • #348 ConceptGroup page shows empty Hierarchy tab
    • #349 Global search fails to show more than 20 results
    • #350 Search incorrectly targets the default SPARQL endpoint when there are multiple results from the same vocabulary
    • #354 ThesaurusArrays not shown
    • #355 Language selection links don't respect BASE_HREF setting
    • #356, #390 Autocomplete shows URI instead of label for some concept types, groups and arrays
    • #377 Missing groups in group view
    • #378 Feedback form not sent
    • #380 Feedback message shows referer instead of IP address
    • #381 Selecting a concept from autocomplete loses the content language
    • #385 Duplicated groups in group hierarchy when data contains both skos:member and isothes:subGroup
    • #394 dct:subject metadata from vocabulraries.ttl file mixed with own thesaurus metadata

    Code quality improvements:

    • #360 vocabularies.ttl parsing refactored into its own class VocabularyConfig
    • #374 config.inc parsing refactored into its own class GlobalConfig
    • #373 Switched to the new Trusty environment in Travis CI
    • Upgraded unit tests to PHPUnit 5 (but version 4.8 can still be used for PHP versions older than 5.6)
    • Started using Codacy static analysis tool (overall score: B)
    • SensioLabs Insight score 82 of 100 (silver medal)
    • Scrutinizer score 5.55 ("satisfactory")
    • Code Climate score 1.12 of 4
    • Unit test coverage is at 76% (slightly down from 1.3 when it was 80%)
    • Remaining PHP code reformatted to comply with PSR-1 and PSR-2 style
    • many other potential bugs and problems fixed based on analysis reports by the above tools

    For a more complete list of bug fixes and new features in this version, see issues tagged with the 1.4 milestone.

    See the upgrade instructions in the wiki for information about upgrading from earlier versions. Note that this release requires using Fuseki 1.3.0+ or 2.3.0+, which in turn require a Java 8 environment.

    Source code(tar.gz)
    Source code(zip)
  • v1.3(Nov 2, 2015)

    This release brings better support for some structural features in thesauri and classifications: multiple concept schemes, and notation codes for concepts and concept groups (collections). There are also four new UI translations that were contributed by the Skosmos user community, bringing the total of supported UI languages to nine (de, en, es, fi, fr, it, nb, nn, sv).

    Translation updates:

    • #328 Spanish translation by FAO
    • #329 Italian translation by Armando Stellato
    • #330 French translation by Thomas Francart
    • #340 Norwegian Nynorsk translation by Dan Michael O. Heggø

    Technical improvements:

    • #123 Show concept counts grouped by concept type
    • #263 Support multiple Concept Schemes in hierarchy display
    • #264 Show notations in hierarchy
    • #265 Sort by notation
    • #324 Upgrade Twig library

    Usability improvements:

    • #211 Auto-complete field shouldn't override what the user typed
    • #312 Search box loses focus when clicking the clear button
    • #297 Make vocabulary information resources clickable links

    Bug fixes:

    • #315 Autocomplete selection fails in IE
    • #316 Search restriction layout broken in IE
    • #317 Broken links on 404 error page
    • #325 "Loading" message not translated for Hierarchy and Groups tabs
    • #333 Hierarchy links don't preserve content language
    • #319 Mappings to DBpedia don't show that they are from DBpedia
    • #326 RestController often returns empty results instead of 404

    Code quality improvements:

    • Started using SensioLabs Insight static analysis tool (score: 34 of 100, bronze medal)
    • Started using Scrutinizer static analysis tool (score: 5.24 of 10, "satisfactory")
    • Code Climate score 0.89 of 4
    • Unit test coverage remains at 80%
    • Most of PHP code reformatted to comply with PSR-1 and PSR-2 style
    • #320, #321, #322 Rewrote code that looked fragile
    • many other potential bugs and problems fixed based on analysis reports provided by the above tools

    For a more complete list of bug fixes and new features in this version, see issues tagged with the 1.3 milestone.

    See the upgrade instructions in the wiki for information about upgrading from earlier versions.

    Source code(tar.gz)
    Source code(zip)
  • v1.2.1(Sep 29, 2015)

    This is a maintenance release containing bug fixes and minor enhancements.

    Usability and UI fixes:

    • #211: autocomplete functionality in the search box no longer changes the entered string
    • #296: updated German translation, thanks to Joachim Neubert
    • #307: fix redirected links in hierarchy sidebar
    • #308: HTML page title: show vocabulary name in the correct language
    • #311: fix clear search button that didn't do anything

    Technical fixes:

    • #299: do not sanitize REST API callback parameter as it causes problems for JavaScript applications
    • #300, #301: fix PHP warnings and broken REST API label method
    • #302: fix REST API language parameter handling
    • #305: fix invalid results for hierarchy REST method
    • #309: fix base URI guessing when hosted on Windows platforms
    • Document the BASE_HREF setting (introduced in Skosmos 1.2) in config.inc.dist

    Enhancements:

    • #298: limited support for concept groups nested using isothes:subGroup
    • #306: allow concept data to be downloaded as JSON-LD

    This release is based on the v1.2-maintenance branch.

    Source code(tar.gz)
    Source code(zip)
  • v1.2(Sep 17, 2015)

    This release contains significant improvements, especially to the concept group index. Also URL handling has been reimplemented, which should make it easier to deploy Skosmos behind HTTP proxies.

    Usability improvements:

    • #186, #195, #197, #217, #276, #280, #282, #283 Redesigned concept group display that supports hierarchical concept groups
    • #250 Concept groups are now searchable
    • #198 Option to show more properties in search result list
    • #199 Show notice when concept is missing a label in the current language
    • #247 Timestamps moved to bottom right of concept display, reducing clutter

    Technical improvements:

    • #207, #225, #274 Reimplemented and simplified URL handling and link generation
    • #182 Configurable timeouts for external Linked Data requests
    • #275 Compatibility with jena-text 3.0.0 / Fuseki 1.3.0 / Fuseki 2.3.0
    • #295 Much better performance for the REST types method

    Bugs fixed:

    • #246 Hierarchy view does not show narrower concepts in some cases
    • #262 Labels for mapped concepts in external vocabularies shown in wrong language
    • #269 Sub property detection is broken
    • #277 Alphabetical index: loading more data ignores content language
    • #278 Anylang parameter gets lost when entering a concept page through the autocomplete
    • #286 "Belongs to group" shows also arrays on concept page
    • #288 REST data method fails to respect Accept header

    Code quality improvements:

    • Request handling has been refactored, introducing a new Request class.
    • Composer dependencies are no longer locked to specific versions (with a lock file) in this release, allowing for more flexibility in the choice of installed versions
    • Code Climate score now 0.9 of 4. The score decreased because unit tests were excluded from the analysis. Actual code quality has improved despite the lower score.
    • Unit test coverage is now tracked via Code Climate. It has increased thanks to new unit tests and is now at 80%.

    For a more complete list of bug fixes and new features in this version, see issues tagged with the 1.2 milestone.

    See the upgrade instructions in the wiki for information about upgrading from earlier versions. NOTE: You will need to update config.inc during the upgrade.

    Source code(tar.gz)
    Source code(zip)
  • v1.1.1(Jun 24, 2015)

    This is a maintenance release containing bug fixes and minor enhancements.

    Bug fixes:

    • #259 "Any language" selection fails
    • #260 "from all" vocabulary selection doesn't show checkbox
    • #261 Labels for matching concepts in wrong language
    • #266 Don't break when encountering concepts with no labels
    • #267 "full alphabetical index" broken
    • fixed Swedish translation for "content language"

    Enhancements:

    • #258 Hover text for abbreviated vocabulary names
    • add mention of new skosmos.org website to the README file

    This release is based on the v1.1-maintenance branch.

    Source code(tar.gz)
    Source code(zip)
  • v1.1(May 20, 2015)

    This is a release containing significant enhancements for multilingual vocabulary support, as well as many bug fixes.

    With multilingual vocabularies it is now possible to select the content language (i.e. language of terms, definitions, notes etc.) independent of the user interface language, using a drop-down menu. In previous versions of Skosmos, the content language was tied to the user interface language.

    Major changes since 1.0:

    New features:

    • #190 Allow setting content language separately from UI language
    • #191 Human-friendly display of timestamps
    • #205 Add clear button to search box

    Usability improvements:

    • #219 Groups ordered alphabetically in concept display
    • #216 Enhanced group name display
    • #209 Word wrapping for long terms in hierarchy display

    Bug fixes:

    • #248 Repeated auto-refreshing on Safari if using back button
    • #237: Support REST calls with non-UI language parameters
    • #212, #213, #214: Fix PHP warnings

    Code quality improvements:

    • #181, #224, #232: code refactoring
    • started using Code Climate static analysis tool (current quality score: 1.2 of 4)

    For a more complete list of bug fixes and new features in this version, see issues tagged with the 1.1 milestone.

    See the upgrade instructions in the wiki for information about upgrading from earlier versions.

    Source code(tar.gz)
    Source code(zip)
  • v1.0(Feb 27, 2015)

    This is the 1.0 version of Skosmos. The version number signifies that this release is considered ready for general use. Further development will of course continue, both as patch releases (1.0.x) and new feature releases (1.x, eventually 2.0 and more). We try to adhere to semantic versioning principles.

    The 1.0 release brings support for all SKOS Core properties (see Data Model for details). The user interface is multilingual and available in five languages: English, Finnish, German, Norwegian (Bokmål) and Swedish.

    Major changes since 0.7.x:

    User interface translations:

    • #183 Norwegian Bokmål translation thanks to @danmichaelo (Dan Michael O. Heggø, University of Oslo Science Library)
    • #202 German translation thanks to @armin11 (Armin Retterath, Rhineland-Palatinate spatial data infrastructure initiative)

    Usability fixes:

    • #97, #120 adjust display of search results
    • #141 make default tab on vocabulary home page configurable
    • #172 drop-down list goes outside browser window
    • #176 new layout for terms in multiple languages
    • #196 fix improper hierarchy scrolling

    Bug fixes:

    • #178 opening concept from group index shows empty hierarchy tab
    • #179 don't perform gettext translation on concept labels
    • #187 fix IE9 layout breakage in intranet zone
    • #192 multiple vocabulary selections lost on search results page
    • #194, #203 fix PHP errors

    Other improvements:

    • #166 support skos:notation
    • #174, #189 use language tag translations from CLDR / Punic
    • #185 support rdfs:seeAlso as a mapping property
    • #200 hide type information if it's only skos:Concept
    • #206 support restriction to multiple types in alphabetical index

    For a more complete list of bug fixes and new features in this version, see issues tagged with the 1.0 milestone.

    See the upgrade instructions in the wiki for information about upgrading from earlier versions.

    Source code(tar.gz)
    Source code(zip)
Owner
National Library of Finland
Repositories of the National Library of Finland (Reporting security issues: https://www.helsinki.fi/en/it/information-security-contact-details)
National Library of Finland
Some Joomla! 4.x Web Services Api Examples and Experiments to raise the level of awareness of the huge potiental of Joomla! 4.x Web Services.

j4x-api-examples WHY? If you are a Joomla! developer or want to become a Joomla! developer there is a new resource for you The Official New Joomla! Ma

Mr Alexandre ELISÉ 11 Nov 29, 2022
provides a nested object property based user interface for accessing this configuration data within application code

laminas-config This package is considered feature-complete, and is now in security-only maintenance mode, following a decision by the Technical Steeri

Laminas Project 43 Dec 26, 2022
This is a port of the original WireGuard UI bits as implemented by Netgate in pfSense 2.5.0 to a package suitable for rapid iteration and more frequent updating on future releases of pfSense.

This is a port of the original WireGuard*** UI bits as implemented by Netgate in pfSense 2.5.0 to a package suitable for sideloading and more frequent updating on future releases of pfSense. This also includes some improvments such as a proper status page (found under Status / WireGuard Status) and improved assigned interface handling.

R. Christian McDonald 195 Dec 23, 2022
A quick,easy and safe way of accessing Mysql-like databases from within a PHP program

Mysqli-Safe A simple, easy-to-use and secure way of accessing a Mysql database from within your PHP programs Mysqli-safe is a wrapper around the mysql

Anthony Maina Njoroge 2 Oct 9, 2022
Naive Bayes works by looking at a training set and making a guess based on that set.

Naive Bayes Naive Bayes works by looking at a training set and making a guess based on that set. It uses simple statistics and a bit of math to calcul

Assisted Mindfulness 29 Nov 27, 2022
It is an open-source and free project, which is faced with the drawing lovers, providing a free and simple Gallery service

It is an open-source and free project, which is faced with the drawing lovers, providing a free and simple Gallery service

WeepingDogel 5 Dec 15, 2022
TYPO3 CMS extension which extends TYPO3 page cache, by tags based on entities used in fluid templates.

Fluid Page Cache for TYPO3 CMS This TYPO3 CMS extension allows you to clear frontend page caches, automatically when a displayed record has been updat

Armin Vieweg 1 Apr 8, 2022
MajorDoMo is an open-source DIY smarthome automation platform aimed to be used in multi-protocol and multi-services environment.

MajorDoMo (Major Domestic Module) is an open-source DIY smarthome automation platform aimed to be used in multi-protocol and multi-services environment. It is based on web-technologies stack and ready to be delivered to any modern device. It is very flexible in configuration with OOP paradigm used to set up automation rules and scripts. This platform can be installed on almost any personal computer running Windows or Linux OS.

Sergei Jeihala 369 Dec 30, 2022
KodExplorer is a file manager for web. It is also a web code editor, which allows you to develop websites directly within the web browser.

KodExplorer is a file manager for web. It is also a web code editor, which allows you to develop websites directly within the web browser.

warlee 5.5k Feb 10, 2022
Simple, modern looking server status page with administration and some nice features, that can run even on shared webhosting

Simple, modern looking server status page with administration and some nice features, that can run even on shared webhosting

Server status project 363 Dec 28, 2022
Hi Im L, I found a box that I believe it's contain Kira's real ID. for open that box we need to find three keys. let's start looking for them

DeathNote ctf Description are you smart enaugh to help me capturing the three keys for open the box that contain the real ID of kira? Let's start solv

Hamza Elansari 4 Nov 28, 2022
This Validate Class is for those who are looking for a validator that returns a code for every each error (Laravel/Api)

Validator-Class This Validate Class is for those who are looking for a validator that returns a code for every each error (Laravel/Api) Requirements A

Barbod 3 Jul 18, 2022
Small library providing some functional programming tools for PHP, based on Rambda

Functional library for PHP. Features: set of useful functions helpful in functional programming all functions are automatically curried every array ca

Wojciech Nawalaniec 5 Jun 16, 2022
JSONFinder - a library that can find json values in a mixed text or html documents, can filter and search the json tree, and converts php objects to json without 'ext-json' extension.

JSONFinder - a library that can find json values in a mixed text or html documents, can filter and search the json tree, and converts php objects to json without 'ext-json' extension.

Eboubaker Eboubaker 2 Jul 31, 2022
PhpCodeAnalyzer scans codebase and analyzes which non-built-in php extensions used

PhpCodeAnalyzer PhpCodeAnalyzer finds usage of different non-built-in extensions in your php code. This tool helps you understand how transportable yo

Sergey 92 Oct 19, 2022
PhpCodeAnalyzer scans codebase and analyzes which non-built-in php extensions used

PhpCodeAnalyzer PhpCodeAnalyzer finds usage of different non-built-in extensions in your php code. This tool helps you understand how transportable yo

Sergey 89 Jan 14, 2022
A pure PHP library for reading and writing presentations documents

Branch Master : Branch Develop : PHPPresentation is a library written in pure PHP that provides a set of classes to write to different presentation fi

PHPOffice 1.2k Jan 2, 2023
Json-normalizer: Provides generic and vendor-specific normalizers for normalizing JSON documents

json-normalizer Provides generic and vendor-specific normalizers for normalizing JSON documents. Installation Run $ composer require ergebnis/json-nor

null 64 Dec 31, 2022
A school platform to organize documents and files for students manged by teachers also user role management

A school platform to organize documents and files for students manged by teachers also user role management. The app is developed by the LARAVEL Framework.

med el mobarik 3 Sep 5, 2022