TopBraid Suite 7.0.0 Overview: - All - TopBraid EDG - TopBraid Composer - SHACL, Active Data Shapes and GraphQL - SPIN, SPARQL functions, SPARQLMotion and SWP All - Changed: TBS-3451: Improve access control logging to include more user information. - Changed: TBS-1295: Minimum Java version is now 11. - Bug fix: TBS-3446: Prevent data loss (file truncated to 0 bytes) when exception occurs during file save. - Bug fix: TBS-3631: Logout from the remote server if send projects/publish to Explorer fails. - Deleted: TBS-3037: Outdated Saxon library removed (use built-in Java classes instead). - Deleted: TBS-3082: Support for D2RQ connection files (.d2rq extension) removed. - Deleted: TBS-3080: Removed ability to receive JMS messages - Deleted: PLAT-1512: Removed unused PostgreSQL driver. TopBraid EDG - Feature: TBS-3019: Ability to use EDG to edit files from the workspace, using new "Files" asset collection type. - Feature: TBS-3021: Added 'Local Assets' panel, similar to Local Resources button from TBC. - Feature: Class Hierarchy panel now has a button to toggle root class between rdfs:Resource and owl:Thing. - Feature: TBS-3267: Auto-complete widgets on forms now filter results to conform to a given shape if the property has a sh:node constraint. - Feature: TBS-3284: Create multiple concepts action is now also available for concept schemes. - Feature: TBS-3293: Classes and Node Shapes trees now have a setting to switch to qname display (over labels). - Feature: TBS-3283: Form panel now has a setting to display "undeclared" properties (that have values but no SHACL property shape). - Feature: TBS-3117: Problems and Suggestions panel now has an option to produce a Profile report with statistics about SHACL validation. - Feature: TBS-3026: Problems and Suggestions panel now also executes DASH Test Cases (via GraphQL) http://datashapes.org/testcases.html The Manage tab has a setting to enable DASH Test Cases per graph. Once enabled, the following buttons will appear: - The SPARQL Results Table panel has a button to automatically turn a SPARQL SELECT query into a dash:QueryTestCase - The Script Editor panel has a button to automatically turn a script into a dash:ScriptTestCase - The Problems and Suggestions panel has a button to automatically turn the validation results into a dash:GraphValidationTestCase - Feature: TBS-3315: Change History for master graphs now has an option to filter by (already committed) workflows, e.g. to roll back all. - Feature: TBS-3022: References panel now has a switch to display triples (all references) instead of only incoming references. - Feature: TBS-3187: Managers can now set a default language per asset collection (dash:defaultLang) which will be used by input widgets. - Feature: TBS-2923: Create Resource dialogs now have fields to enter required (sh:minCount>0) properties and those with dash:propertyRole dash:IDRole. - Feature: TBS-3345: Added dialog to Manage default settings for all users, e.g. to always show the properties that have no values, for a given collection. - Feature: TBS-1733: Create wizard for Crosswalks and the Manage plugin for the match predicate now have an option to also generate property shapes for the match predicate (e.g. closeMatch), allowing them to show up on forms and search. - Feature: Constraint violations now have a little Info icon with an explanatory tool tip text, allowing users to navigate to the underlying shape. - Feature: TBS-3364: Deactivated property shapes now render better in Property Groups panel and properties table on form. - Feature: TBS-2976: Added Script Console panel for the output of the JS functions print, printErr, console.log, console.error etc. - Feature: TBS-3373: Create property dialog now has input field for sh:order. - Feature: TBS-3220: Property path in nested forms on node shape/class forms is now clickable where applicable. - Feature: TBS-3325: Direct RDF file imports against master graphs are now also reflected by a teamwork:Change history entry (used for last changed date). - Feature: TBS-3184: Import Reports feature to capture metadata around Spreadsheet and RDF file imports. - Feature: TBS-3374: Restore Snapshot admin feature known from TBC-ME is now also enabled for EDG server, with care. - Feature: TBS-3177: Added config option to use WhitespaceAnalyzer for Lucene text indices, preserving characters such as -, / and ? - Feature: TBS-3418: Added global option to hide values from non-preferred languages on forms. - Feature: TBS-397: Create... menu near auto-complete widget on forms now checks for edg:instancesHeldInAssetCollectionType to determine where the new instances should be created, and offers a dialog to open a target graph if applicable. - Feature: TBS-1865: If a form has unchanged changes and the user attempts to navigate away, a warning will be shown above the form. - Feature: TBS-3432: SPARQL Results Table panel now has options to export graphs of CONSTRUCT/DESCRIBE queries to JSON-LD, RDF/XML, Turtle. - Feature: TBS-3088: Add "Startup Sequence" page to Server Administration - Feature: TBS-3189: Provide default labels for new workflows, users can accept the suggestion or modify to suit. - Feature: TBS-3267: Added new subclass editor widget for properties declaring dash:rootClass. - Feature: TBS-3449: Transform > Copy/Move Instances will now also copy missing namespace prefixes, if operated on master graph. - Feature: TSM-1929: The Modify menu of property shapes has new global refactoring actions that go across all (selected) graphs: - Change datatype (attempts to change the datatype, e.g. from xsd:integer to xsd:decimal) - Delete all property values (useful before a property shape gets deleted) - Replace values with another property (e.g. for ontology refactoring) - Feature: Resources on forms now have much richer and configurable tool tip hovers. Use dash:propertyRole to select which properties/icons to show. - Feature: TBS-1903: Manage tab now has a button to Clear the Change History (of production copy). - Feature: TBS-3509: Class Hierarchy panel now has an option to only show locally defined classes (applies to child classes, not the roots, but also includes any other class that has any locally defined subclasses). Needs to be activated on Manage tab due to scalability concerns. - Feature: TBS-2893: Provide ability to control System Announcement and Search the EDG landing widget banners. - Feature: TBS-3465: Adds exapand all/collapse all button to Governance Area and Organization trees. - Feature: Batch Edit Assets operations is now also available for Ontologies (and other "shape graphs"). - Feature: TBS-3424: Creates a new panel for tag selection to improve tagger UX. - Feature: TBS-3508: Create quick search controls to Governance Area and Organization trees. - Feature: TBS-2341: Define NeighborGram Panel for graph editors application. - Feature: TBS-3222: Expose APIs to rebuild teamwork and search the edg lucene indices. - Feature: TBS-3540: Improved rendering of OWL class expressions using a Manchester Syntax-like viewer. - Feature: TBS-3545: References Panel now displays the root of blank node structures instead of the blank node itself. - Feature: TBS-3546: Added Inferences Panel with button to execute sh:rules (and SPIN rules) and a dialog to (de)activate rules. Also, classes and node shapes now have a view shape for the property group 'Inferences' with property sh:rule. - Feature: TBS-3286: Map full name and email address from SAML assertions and JWT claims to user-data graph properties. - Feature: TBS-3590: SPARQL Query panel now has a "debug" button to see the SPARQL Algebra. - Feature: TBS-3610: Axios and jQuery error handlers for maximum concurrent user limit (429 status code). - Feature: TBS-3635: Added Manage tab option to allow editing all fields of instances in ontologies - strongly discourages but maybe useful in exceptional cases. - Feature: TBS-3243: Added a Server Administration page and JSON service to show concurrent user sessions. - Feature: TBS-3528: SPARQL export button now has an option to produce Labeled TSV, based on display labels instead of URIs. - Feature: TBS-2812: Further additions to QA utilities for EDG models and SWP scripts - Feature: TBS-3547: Form panel now supports Ctrl-S/Cmd-S to Save Changes. - Feature: TBS-3727: Add a configurable session timeout for SAML. - Change: TBS-3694: "Cloud Computing Service", specically "SaaS" now can be used as a interoperable resource in lineage. - Change: TBS-3092: Improvements to lineage. Now has template-driven approach with a generic algorithm for executing the templates and evaluators. - Change: TBS-2662: Update react-select library to 3.x. - Change: TBS-3251: Change Task description to use a rich text field - Change: TBS-2992: Make Action/error dialogs look different than success dialogs. - Change: TBS-3289: Some user settings are now stored per-graph, avoiding confusion between check boxes if multiple browser tabs are open. - Change: TBS-3349: Added a constraint that if any workflow template transition uses governance roles then none of the others can use permission roles. - Change: TBS-3257 Tasks and Comments dialogs have been updated to use new TBdialog - Change: TBS-3356: Improved Search the EDG facet paging by index facets with SortedSetDocValuesFacetField and utilizing SortedSetDocValuesFacetCounts over FastTaxonomyFacetCounts. - Change: TBS-3230: Improved message when autosearch is disabled and no search has been run. - Change: TBS-3346: The default workflow template is no longer part of the teamwork.ttl namespace and - if needed - must be copied into the workflows customizations graph using the corresponding link from the Workflow Templates page. - Change: TBS-3189: Update heading and grammar on workflow status page. - Change: TSM-1869: Search forms now consistently apply the following 'contains' checks (also for free-text search): - If multiple words are given (separated by spaces) then ALL words must appear, regardless of their order. - If the whole string is surrounded by \"...\" then the order of the words must match - If the query is of the form term1 OR term2 OR ... it will match values where any of the terms is present""" ; - Change: TSM-1907: Free-text search now also queries properties declared at subclasses of the selected type. - Change: TBS-3450: Apply a 30 second connection timeout and read timeout to SMTP and SMTPS connections - Change: TBS-3363: Updated tbladmin:ExpandableProjectsList to utilize smf:managableProject property function for listing projects. - Change: TBS-3247: Update library dependencies for CVE-2018-10237, CVE-2019-12400, CVE-2020-2773, CVE-2020-8908, and CVE-2020-25649. - Change: PLAT-771: Replace the hamburger menu next to a field with explicit icons. - Change: TBS-1453: Replace old SWA inline editors. - Change TBS-3480: Add new 'Stop Index' action for Search the EDG to halt all processing. Add 'Replace' action to remove the stored index rather than rebuild upon the existing. - Change: TBS-1429: Manage slick-carousel via package.json for incorporation in UI bundles. - Removes jquery-dropdown - Removes bootstrap-select - Change: TBS-3527: SPARQL panel and stand-alone SPARQL query servlet now produce better errors, following the standard SPARQL protocol. - Change: RDF file importer now moves skos:prefLabel of owl:Classes into rdfs:label. - Change: TBS-3427: Search the EDG will respect WhitespaceAnalyzer config option introduced in 6.4.3 (TBS-3177). - Change: TBS-2695: Remove SWA edit forms. - Change: TBS-3558: LineageGram will render all Derivation Map icons by default without the need to mouse hover. - Change: TBS-3337: Improved caching of user permissions and governance roles. - Change: TBS-3474: Upgraded Data Platform to Jena 3.16 - Change: TBS-3240: Upgrade Tika from 1.23 to 1.25 - Change: TSM-2015: Include full resource IRI as a searchable field within Search the EDG. - Change: TBS-3191: Modify Default Layout for Crosswalk to give more space to problems and suggestions. - Change: TBS-3667: The Transform > Execute Rules has been simplified (in favor of the new Inferences Panel), but now has an option to bypass change history. Additionally, the Export to RDF File feature has an option to include the SHACL inferences, optionally sh:values rules. - Change: TBS-3662: Change Workflow Status Page. - Change: TBS-3228: Search the EDG interface has been migrated from SWP based to React based. - Change: TBS-3669: The RDF file importer will no longer add rdfs:subClassOf owl:Thing triples for classes marked owl:deprecated/owl:DeprecatedClass. - Change: TBS-3690: The CMIS Connector for Corpora has been removed. A replacement will be re-added in a future release. - Change: TBS-3457: Re-structured the settings drop-down of the Problems and Suggestions panel. - Change: TBS-3672: Improve error handling for an expired term license. - Change: TBS-3681: Improve loading indicators for Search Panels. - Change: TBS-3716: Update lodash library to address (CVE-2019-10744, CVE-2020-8203, CVE-2021-23337). - Change: TBS-3633: Update the EDG server logo. - Bug fix: TBS-3274: References Panel now renders property labels using sh:names where applicable. - Bug fix: TBS-3072: Fix JQuery vulnerability (CVE-2015-9251). Upgrade from 2.2.2 to 3.5.1. - Bug fix: TBS-3360: Form sections are now always made visible when the Edit button above the form is clicked, even if no values exist for a property in the group. - Bug fix: TBS-3371: Spreadsheet importer's match value option now type-casts into target datatype before matching, e.g. numeric values. - Bug fix: TBS-3372: JDBC importer for database assets now uses correct reification triples for edg:keyOrder. - Bug fix: TBS-3351: Fixed an issue with displaying the result of a send projects request. - Bug fix: TBS-3397: If the primary key is also the label property then no label needs to be entered separately. - Bug fix: TBS-3356: Fixed missing facet labels in Search the EDG. - Bug fix: TBS-3204: Fixes Safari rendering issue for Asset List table. - Bug fix: TBS-3421: Fixes issue with missing URI Construction rule server defaults in EDG configuration parameters page. - Bug fix: TSM-1861: Hyperlink to Defined-in graph and 'Open in Defining Asset Collection' sometimes opened a non-owl:imported copy of a resource. - Bug fix: TBS-3329: Update react-select creatable usage, resolving an issue with default options. - Bug fix: TBS-3432: SPARQL Results Table panel: Export of CONSTRUCT queries did not produce correct output format. - Bug fix: Rebuilding a Lucene text index did not clear it first, potentially accumulating duplicate matches. - Bug fix: TBS-3384: Fixes issue with create buttons having the ability to replay events, resulting in errors or multiple resources being created. - Bug fix: TBS-3288: Fixes issues with legacy Content Tag Sets when the subject graph is a Taxonomy, which is no longer supported. - Bug fix: TBS-3454: Drag and drop from query results (and elsewhere) sometimes also added items from tree panels. - Bug fix: Suggested Crosswalk matches based on term similarity did not handle terms separated by spaces correctly, and altLabels were only used in one direction. - Bug fix: Generic Hierarchy panels were sometimes showing duplicate properties. - Bug fix: Ontology editor's "Create property value rule from template..." wizard sometimes did not allow selecting inherited properties. - Bug fix: Create Concept dialog opened from outside of the Taxonomy Hierarchy panel did not select subclass correctly. - Bug fix: TSM-1932: Spreadsheet import mapping did not display sh:inversePath properties inherited from superclasses of the target type. - Bug fix: dash:ValuesTableViewer sometimes used the declared sh:class over the sh:node. - Bug fix: TBS-3488: Panels drop down menu now displays in two columns to make it less overwhelming. - Bug fix: TBS-3515: Fix bug with Editing passwords on Manage Passwords page having no effect. - Bug fix: TBS-3480: Search the EDG indexer could fail and appear to be unresponsive. - Bug fix: TBS-2765: Export tab plugins now appear on AutoClassifier Results Workflow export tab. - Bug fix: TBS-3459, TBS-3467: Fixed issues triggering on demand jobs that were scheduled under a different user. - Bug fix: TSM-2009: Export Ontology as OWL file now also includes the owl:Ontology triples (except some SHACL-related owl:imports) and downloads as a file from the browser. - Bug fix: TSM-2013: The form no longer allows editing the sh:path of an imported property shape. - Bug fix: TBS-3361: Crosswalk Mapping comment was not rendering in the Crosswalk Mapping Panel. - Bug fix: TBS-3250: Crosswalk failed to appropriately fetch labels for primary keys that are defined via a property shape. - Bug fix: TBS-3460: 'Merged View' was not respecting property group orders. - Bug fix: Teamwork edit rules were not using ui:overrides correctly. - Bug fix: TSM-2016: Avoided potential deadlock on parallel commits of workflows - they are now using ui:synchronized. - Bug fix: Node Shapes panel was also showing blank nodes. - Bug fix: TBS-3588: Fixes a slow query in governance:GetGovernanceRoles service. - Bug fix: TBS-3587: Progress dialog was not dismissing when updating goverannce roles on the users tab. - Bug fix: TBS-3556: Only use the CN for a security role if the corresponding SAML attribute has a DN. - Bug fix: TBS-3513: Fix display problem in Password Management for user names containing @ character - Bug fix: TBS-3468: Fixes undefined error message on Publish Page. - Bug fix: TBS:3308: Rename default Archive Project from 'Archive' to 'archive', fixes IRI logged Error from Jena. - Bug fix: TBS-3566: Fixes toolbar overflow in NeighborGram Panel. - Bug fix: TBS-3503: Resolved UX issues with View Selector menu inside of search results. - Bug fix: TBS-3626: Form widget sometimes did not show property groups even if any of the fields had validation issues or suggestions. - Bug fix: TBS-3604: Search the EDG indexer was not properly managing PossibleDeadLockException. - Bug fix: TBS-3539: Uploading a workflow templates file no longer validates the whole graph (with imports). - Bug fix: TBS-3305: UI properties ui:includeScript and ui:includeStyle will now respect ui:overrides similar to ui:headIncludes. - Bug fix: TBS-3640: Linear geometric shapes were not displayed on maps. - Bug fix: TBS-3637: TriG export sometimes did not set teamwork:internalGraphURI correctly, causing re-imports to create files instead of collections. - Bug fix: TBS-3648: Firefox was not suppressing the error dialog when the browser aborts active XHR connections when leaving the editor before it fully loads. - Bug fix: TBS-3645: Data Samples Gadget needed updated to utilize react-table. - Bug fix: TBS-3644: Delete Sample Data dialog failed to pass along all parameters necessary for the transform. - Bug fix: TBS-3657: Crosswalk column ordering could throw an error after removing a match. - Bug fix: TBS-3634: Return a server error if an invalid Principal is generated from an incorrectly provisioned user at the IDP. - Bug fix: TBS-3261: Fix an error when syncing a collection's change history to Data Platform. - Bug fix: TBS-3495: Fix issues which could cause unexpected license exceeded errors. - Bug fix: Hierarchy panels did not reset the Incomplete warning when the focus node or selected shape changed. - Bug fix: TBS-3094: If the Preview dialog would need to show more than 20k triples, it switches to a simpler HTML pre, avoiding the UI to hang. - Bug fix: TBS-3663: Workflow Table was not rendering the columns Next Actions and Responsible Roles as HTML. - Bug fix: TBS-3377: Changes published to Explorer would not be visible to users until logout/login when using RDBMS graph storage. - Bug fix: TBS-3678: Commit changes to production appeared available on the workflow text and diagram view. - Bug fix: TBS-3560: Graphs that have owl:imports to missing graphs (outside of workspace) now gracefully continue with a warning. Users may go to Settings tab to remove such owl:imports or add missing graphs to workspace. RDF file import is now allowed even with missing imports, but the missing graphs will be printed as warning. - Bug fix: TBS-3702: Blank Node Viewer and Details Viewer now also offer the drop down to switch to other viewers. - Bug fix: TBS-3708: Some form select controls could exceed the width of the form when the options have large values. - Bug fix: TBS-3710: Search Panel: deeply nested queries were not grouping appropriately, resulting in unbound variables. - Bug fix: TBS-3711: Search Panel was not respecting Return local results only setting between page loads. - Bug fix: TBS-1452: Users would not have permission if their security role was assigned to an organization assigned to a governance role. - Bug fix: Create property dialog was crashing if someone entered a label such as "rdf:" matching a known prefix. - Bug fix: TBS-2879: A second request to publish to Explorer will now wait for the first to finish. - Bug fix: TBS-3476: Fix various sorting scenarios for deeply nested columns. - Bug fix: TBS-3726: Fixes Governance change history reporting for changes made form Governance Areas tab. Ensures user assigned to a Subject Area from the editor are visible in the Governance Areas tree. - Deleted: TBS-3079: Remove "Spell Check" report for Taxonomies - Deleted: TBS-3082: Support for D2RQ connection files (.d2rq extension) removed. - Deleted: TBS-3490: Removed Diagnostics sections from Memory Management page in Server Administration. - Deleted: TBS-3486: Removed unused coordinates from default workflow template. - Deleted: TBS-3497: Can no longer change name of Repositories directory in EDG configuration. Can still be done in a setup file. - Deleted: TBS-3684: Remove saxon from server admin config page TopBraid Composer - Deleted: TBS-3082: Import wizard removed: "Create Connection for RDBMS Source (using D2RQ)" - Changed: PLAT-1358: Updated Eclipse platform to 2020-12. SHACL, Active Data Shapes (ADS) and GraphQL - Feature: TBS-2990: TOSH namespace now contains system shapes to validate and describe the forms of classes, properties etc. This replaces the work-arounds for customizing system forms using the metash shapes from 6.3 and 6.4. You may see additional violations in your ontologies, but the Problems & Suggestions panel has a flag to skip those. - Feature: TBS-2949: Active Data Shapes technology is no longer 'experimental', enabled by default and cannot be de-activated. - Feature: TBS-3126: If there is a triple * sh:entailment sh:Rules then sh:defaultValue and sh:values will be applied prior to validation. - Feature: Added support for dash:ScriptFunction - SPARQL functions that are backed by ADS JavaScript, and which will also be injected into the namespace prefix object. - Feature: Added support for dash:scriptConstraint and dash:ScriptValidator, using ADS to declare constraint expressions. - Feature: TBS-3214: Added support for dash:ScriptSuggestionGenerator, using ADS to produce suggestions to fix constraint violations. - Feature: Added flag dash:neverMaterialize to deactivate certain sh:values rules in batch mode (e.g. sml:ApplySHACLRules). These values will only be computed if someone explicitly visits a given resource, e.g. on form or via GraphQL and ADS APIs. - Feature: ADS now supports tagged string templates for SPARQL, e.g. sparql`SELECT { ${subject} rdfs:label ?label }` where subject may be a GraphNode or JavaScript number, string or boolean. - Feature: GraphQL where clauses now support 'filter' for arbitrary SPARQL expressions. Use $value for current value and $this for focus node if needed. - Feature: ADS scripts can now switch the active graph using graph.withDataGraph(). - Feature: ADS servlet now supports a generic data graph (and shapes graph) with ID '_' that simply consists of tosh itself. - Feature: ADS scripts can now (easily) make HTTP requests, see IO.http() which is similar to Axios. - Feature: ADS scripts can now import (large) spreadsheets in a streaming fashion, see http://datashapes.org/active/import.html#spreadsheets-iterator - Feature: TBS-3512: Added infrastructure for declaring ADS-based web services using dash:Service, including Swagger UI for documentation and testing of these services. See http://datashapes.org/active/service.html - Feature: TSM-1768: GraphQL's where clauses for rdfs:label and skos:prefLabel now have "startsWith" option, using auto-complete index for fast lookups. - Feature: TBS-3101: ADS now supports working with relational databases, see the functions SQL.query and SQL.update. - Feature: ADS scripts can now produce Turtle or RDF/XML using IO.serializeRDF(triples), see http://datashapes.org/active/service.html#response-rdf. - Feature: TBS-3546: sml:ApplySHACLRules now has a flag to run all rules iteratively. - Feature: ADS API now includes all SPARQL functions from afn, fn, smf, spif, spl, teamwork and tosh namespaces. - Feature: ADS API now has a graph.newURI() function to generate URIs based on the current URI creation policy (e.g. UUID). - Change: TSM-1768: GraphQL's where...pattern has been replaced with 'contains'. Use filter($value, "regex(...)") instead. Queries that use pattern will break! - Change: TBS-3103: SHACL-JS now uses GraalVM instead of the deprecated Nashorn engine. - Bug fix: PLAT-1540: ADS assignments to numbers now always use lexical form, not native Java number objects (caused comparison/round-tripping issues) - Bug fix: ADS code generator was declaring LiteralNode as type of properties even if they had sh:nodeKind != sh:Literal; now uses NamedNode. - Bug fix: Node Expressions did not always "see" sh:Functions defined in the current shapes graph. - Bug fix: TSM-1802: GraphQL mutations with more than 800 top-level fields were causing stack overflow issues and potential server hangs. Now gracefully rejected. - Bug fix: TBS-3606: SHACL rules now handle the case where new target rules were added by inferring rdf:type triples within the same shape. - Bug fix: TSM-1655/TBS-3213: GraphQL engine now better tolerates property path URIs such as test-name that were previously ignored. - Bug fix: TBS-3697: GraphQL (and ADS) mutations were not allowing to add triples (to the edited graph) if the triple already existed in an imported graph. Furthermore, they pretended to delete triples even if they were from imported graphs. Both operations work on the edited base graph now. - Bug fix: TBS-3712: GraphQL schema generator no longer fails if it cannot abbreviate a field name due to lack of a suitable namespace prefix. - Changed: ADS graph object method changes: - graph.named() renamed to graph.namedNode() - added graph.update (SPARQL UPDATEs) - graph.uploadedFile() moved to IO.uploadedFile() - Changed: ADS NamedNode method changes: - added NamedNode.add and NamedNode.remove SPIN, SPARQL functions, SPARQLMotion and SWP - Feature: TBS-3402: Editing support for SWP scripts (ui:prototypes and spl:Arguments) with EDG web UI. - Feature: TBS-1912: Added function spif:htmlLang to extract the lang attribute from the root of a rdf:HTML literal. - Feature: Added function dash:uriTemplate to support deriving URLs from URI templates. - Feature: Added ui:synchronized. - Feature: TBS-3680: ui:convertHTMLToText now has an option to skip <...> hrefs. - Feature: sml:ImportRDFFromWorkspace now recognizes any graph from the local dataset, including results of ui:graphWithImports and other special graphs. - Bug fix: SPARQL servlet did not always "see" sh:Functions defined in the default model, e.g. from the SPARQL Query panel in EDG. - Bug fix: TSM-2009: ui:responseType ui:Turtle now produces plain text output. - Change: sml:RequestLock and sml:ReleaseLock are no longer suitable for execution in SWP scripts (actually never worked correctly there). Use ui:synchronized. - Deleted: TBS-3079: Remove spell check feature, sml:CheckSpelling, sml:AddUserDictionaryWord, sml:RemoveUserDictionaryWord, sml:UpdateUserWordDictionary - Deleted: TBS-3080: Removed sml:ExportToJMS - Deleted: SPINx support (SPIN functions based on JavaScript, had been marked deprecated for several years): use SHACL-JS or ADS instead.