- Class-based navigation (#270)
VARNISH_*_BACKEND_PORTenv params for configurable Varnish backend ports- Bearer auth token support in entrypoint; service credentials moved to
secrets/credentials.trig gsp_append_quadsfunction in the entrypoint- New ACL HTTP tests for system endpoints
- Ignored paths in
OntologyFilter(#269)
- Renamed
DirectGraphStoreImpltoDocumentHierarchyGraphStoreImpl - Dataspace nav list now visible for unauthenticated agents
- Client-side SPARQL query execution uses
POSTinstead ofGET - Full context dataset now passed to XSLT
- Introduced
ServiceContextto decouple HTTP infrastructure fromService - Split dataspace metadata from service metadata in configuration
- Moved types to
system.trig;lapp:endUserApplication/lapp:adminApplicationnow inferred on the fly - Refactored CSV/RDF import scripts
- UTF-8 charset handling for text-based media types in uploaded files
- Fixed links to the admin app
- URI resolution fix in
AuthorizationFilter - Left sidebar CSS fixes
- Removed system endpoint resources from default RDF datasets
- Package view rendering refactored to use type-driven discovery with
ldh:view/ldh:inverseViewproperties matching resource types againstrdfs:domain/rdfs:rangeconstraints
- Application settings form with modal UI for editing dataspace configuration
- Settings endpoint (
/settings) withGETandPATCHsupport for dataspace settings - HTTP tests for the settings endpoint
- LinkedDataHub packages system with install/uninstall functionality
- Core library refactored Graph Store Protocol implementation - split into
GraphStoreBase(common functionality),DirectGraphStoreImpl(direct graph identification), andGraphStoreImpl(indirect graph identification with query parameters) - Incorporated AtomGraph Server code directly into LinkedDataHub codebase
- System configuration dataset now uses named graphs instead of default graph
- Web-Client dependency version bump
- CLI scripts improved for better parameter handling
- ORCID OpenID Connect login support with JWT token verification
CORSFilterresponse filter for cross-origin resource sharing on static assets- Cache invalidation (
BANrequests) for agent and user account lookup queries - New
Application::normalizeOriginmethod for origin normalization ldh:parent-originXPath function for parent origin retrieval- HTTP tests for CORS functionality, internal IP blocking, and form proxying
ForbiddenExceptionMapperfor handling forbidden exceptionsContent-Security-Policyheader for uploaded files to prevent XSS attacks- Sticky left and right navigation panels
- Support for recursive content blocks
- Docker volume for Varnish cache file persistence
- BREAKING: Admin application moved from
/admin/path toadmin.subdomain - BREAKING: Replaced
ldt:basewithldh:originin configuration (now uses absolute URIs with full domain names) - Refactored OAuth2 authentication with extracted base classes
AuthorizeBase,LoginBase, andJWTVerifier - Provider-specific implementations for Google and ORCID OAuth flows in separate packages
- Authorization queries now isolated by dataspace using
FILTER(strstarts(str(?g), str($base))) - Optimized Varnish caching for authenticated requests with proper cache bypass for user-specific content
- Root domain extraction logic replaced with configured
BASE_URIfromApplication.getBaseURI() - Eliminated unnecessary wrapper methods (
getRootContextURI()) in favor of directgetSystem().getBaseURI()calls - Client-side XSLT now uses
ldt:base()function instead of$ldt:baseparameter - OAuth and access request endpoints moved to end-user dataspace (no longer extend
GraphStoreImplorSPARQLEndpointImpl) - ID tokens now returned via URL fragment instead of query parameters
- CLI scripts refactored:
--fragmentparameter renamed to--uri - Nginx configuration now exempts internal requests from rate limiting
- Parameterized nginx and Varnish configurations for better flexibility
- Improved
ClientUriRewriteFilterto use configured host instead of hardcoded localhost - Agent metadata and authorizations now managed per-app in entrypoint.sh
- Separated templates for owner and secretary authorizations
- Fuseki data directory changed in Docker configuration
$ORIGINenvironment variable now excludes default ports (80/443)- WYMEditor cross-origin compatibility fixes
- Replaced
ldh:newwithixsl:newin client-side code
- Fixed security vulnerability LNK-002 (cache poisoning)
- Fixed security vulnerability LNK-004 (path traversal)
- Fixed security vulnerability LNK-009 (SSRF - internal IP address proxying)
- Fixed security vulnerability LNK-011 (XSS via uploaded files)
- Fixed Billion Laughs XML entity expansion exploit by excluding Xerces dependency
- Fixed OpenLayers map dragging functionality
- Fixed graph layout rendering issues
- Fixed SPARQL update and
application/x-www-form-urlencodedproxying - Fixed access request URL building and modal form display
- Fixed
ldh:Shapemode in XSLT - Fixed HTML reloading after OAuth login
- Improved SHACL support in UI with better form controls
- Fixed performance regression in
ClientUriRewriteFilterfor production deployments - Fixed agent and user account duplicate creation via proper cache invalidation
- Fixed same-site URI resolution for XSLT document loading across subdomains
- Fixed entrypoint to load datasets for all configured apps
- Fixed authorization filter to handle non-existent dataspaces (throws
NotFoundException)
- Removed
RequestAccessresource from admin package (moved to end-user) - Removed
admin/oauth2package (OAuth moved to end-user dataspace) - Removed XOM dependency
- Removed rate limiting tests from HTTP test suite
- Removed debug output from entrypoint and test scripts
- Removed unused namespace declarations
- Drag handles for content blocks - blocks can now only be dragged by their dedicated drag handles
- Client-side XPath
ac:modefunction for layout mode detection - New
ldh:request-uriXPath function for URI handling - New
acl:modeXPath function for client-side ACL mode detection - New HTTP tests for ACL
Linkheaders to verify authorization modes in response
- Service input on the container generation form is now optional
- IXSL promise cleanup and refactoring for better client-side performance
- Document context handling improvements
AuthorizationFilterto always load authorizations from the admin dataset- Modal form validation
- Layout mode is now retained after RDF file upload
- SPARQL query support for
ProxyResourceBaseviaPOSTrequests - YouTube object block support with GRDDL transformation
- New HTTP tests for proxy SPARQL query functionality
JSONGRDDLFilterfeature for processing JSON-LD from HTML script elements- New CLI command for
PATCHrequests - Self-referencing object detection to prevent infinite loops
- Web-Client dependency version bump
- Increased nginx rate limits for better performance
- Uniform
ldh:hreffunction calls across codebase - Improved
Linkheader parsing and usage fixes - Adjusted document controls size for better UI
- Enhanced view titles for better user experience
- Improved tests for document property cardinalities
- Removed DBPedia's prefix mapping
- Fixed template match issues
- Improved
dct:modifiedhandling in GraphPOSToperations - Fixed error handling for "Document loaded successfully but resource was not found" cases
- HTTP test fixes for better reliability
- Form callback invocation
- Proxy parameter tunneling in CLI scripts (
add-object-block.sh,add-xhtml-block.sh)
- Web-Client dependency version bump
- Chart form actions now only display when agent has write access
- CLI scripts now rewrite effective URLs back to original hostname when using proxy
- Default configuration now uses
varnish-frontend MAX_CONTENT_LENGTHenvironment variable moved to.envfile
- Fixed object blocks rendering for non-RDF resources (e.g. images)
- Fixed
rdf:valuecardinality constraint - Fixed proxied return URL in
post.sh
- Replaced
xsl:value-ofusage in XSLT stylesheets - Removed debug output for cleaner production logs
- Fixed map and chart mode rendering for general Linked Data objects in content mode
- Refactored date/datetime comparison logic for improved accuracy
- Fixed
@idvalue handling in client-side processing - Fixed multiple factory promises per top-level
<div>element - Fixed client-side
ldh:basefunction - Fixed default datasets to use
ldh:ChildrenView - Fixed
owl:NamedIndividualcase in.add-constructoronclick handler
- Removed the unused ldh:createGraph property
- Javadoc comments
- Inlined nginx and Varnish config templates into
docker-compose.yml - SaxonJS 3 bump to 3.0.0-beta-2
- Remove user-supplied
dct:createdvalues to prevent timestamp conflicts - XSLT SEF generation in Maven build
- Inline chart save feature for better user experience
- Improved template match patterns for better performance
- Fixed action URL in navbar form
- Comment fixes in codebase
- Saxon-JS upgraded from 2.x to 3.x with "suspended promise tree" architecture
- Auto-generation of WebID certificates (owner and secretary) in entrypoint
- Request access modal forms with ACL integration
- Multi-platform Docker images (ARM64 + AMD64) with GitHub Actions
- Modal document editing forms with in-place editing
- Rate limiting and retry logic for HTTP 429 responses with
Retry-Afterheaders - Conditional HTTP requests support (
ETag,If-None-Match, preconditions) - Access control endpoints for authorization management
- Progress indicators for long-running operations
- Drag-and-drop improvements for block reorganization
- SPARQL endpoint read-only access for authenticated agents
- Enhanced form controls with better
datetime-localrendering - New HTTP test suite for conditional requests and access endpoints
- Chart creation workflow improvements
- View system overhaul -
ldh:Viewnow embedded vialdh:Object - Secrets management for Google OAuth credentials
- Enhanced SSL/TLS management with automated keystore generation
- MacOS compatibility improvements
- CLI tools reorganization - scripts moved to
bin/directory with PATH management - Client-side named templates converted to XPath functions for better composability
- Promise-based rendering for charts, views, and objects
ldh:Viewis now a "normal" resource instead of content block- Authorization query optimization for better performance
- Document type injection with dynamic
VALUESfor type-based queries - Varnish configuration improvements with separate VCL templates
- User-specific content handling with proper cache bypass
- RDF/POST parser improvements for empty values and relative URIs
- SPARQL.js 2.x compatibility with regex fixes for datatype URIs
- Container orchestration with memory limits and better configuration
- Base image updates:
atomgraph/letsencrypt-tomcat:10.1.34,atomgraph/fuseki:4.7.0 - XHTML namespace handling with default
xmlns="http://www.w3.org/1999/xhtml" - Block system improvements with better nesting and unique identifiers
- Authorization filter improvements with
SERVICE-less queries - Static file optimizations with increased burst limits
- Multiple null pointer exceptions in Java code
- XPath syntax errors in XSLT stylesheets
- Variable naming conflicts and scoping issues
- Certificate permission issues across platforms
- Progress bar visibility and selector issues
- Block rendering and nesting logic
- Form submission and response handling
- Chart rendering and display logic
- View navigation and object loading
- HTTP status code handling (
201 Created,308 Permanent Redirect) - Double slash URI prevention in requests
- Container CSS and modal sizing issues
- RDFS-specific vocabulary support
IMPORT_KEEPALIVEparameter- Unused
ReserializeSaxon function (replaced with pure XSLT) - Debug output from XSLT stylesheets
- Unnecessary
ixsl:http-requestarguments - Secret environment variables from Dockerfile
bs2:RowContentmode in XSLT
- Fixed namespace prefix declaration in client-side XSLT
- Fixed dragging within a map
- Fixed Docker build issue caused by an old Node.js version
- Fixed Login with Google caused by Varnish configuration stripping HTTP cookies
- Dependency on
com.atomgraph.server(new module) instead ofcom.atomgraph.processor - JAX-RS application now registers the
NotAcceptableExceptionMapperso that the406 Not Acceptableresponses are mapped correctly - Ontologies are now cached by default
- Bumped Jena version in Dockerfile from 4.3.2 to 4.7.0 in order to avoid the Log4Shell CVE warning
- (X)HTML writer for SPARQL XML Results
- New Varnish proxy cache between nginx and LinkedDataHub (
varnish-frontendservice) in order to improve performance - New
lapp:frontendProxyandlapp:backendProxyproperties in the LAPP ontology HEALTHCHECKconfiguration in Dockerfile (relies on public access to the namespace document)
- Fixed content drag and drop logic to only work in content mode and not affect dragging in map and graph modes
- Content drag and drop is only enabled when the authenticated agent has an
acl:Writeauthorization for the document - Improved extensibility of client-side XSLT templates for faceted search and parallax navigation
- When
ENABLE_LINKED_DATA_PROXY=false,?uri=proxy requests will return405 Method Not Allowedunless the URI is already cached or mapped to file - Replaced the
atomgraph/varnish:6.0.11Docker image with the officialvarnish:7.3.0image - Replaced the
atomgraph/nginx:1.23.3Docker image with the officialnginx:1.23.3image
- Moved
Cache-Controlheader settings from webapp'sweb.xmlto nginx's config template
- Option to re-arrange content blocks by drag & drop in content mode (enabled only when the agent has write access)
- Instead of writing JSON-LD directly,
schema:BreadCrumbListmode returns RDF/XML which is then transformed to JSON-LD usingac:JSON-LD
- XML sitemap generation when env param
GENERATE_SITEMAP=trueis specified (enabled by default) - JSON-LD output in the
<script>tag containingschema:BreadCrumbListstructured data
- Content blocks use
@aboutattributes as identifiers instead of@data-content-uri
- Backlink navigation on XHTML content
- Navigation bar is now fully rendered server-side, i.e. the whole visible HTML body is replaced via AJAX
- Generalized client-side navigation templates using XPath maps
- Fixed default
@idvalue inbs2:RowContentmode
- Upgraded dependencies to use Jersey 3.x and the Servlet 5 API. That required replacing
javax.*dependencies withjakarta.* - Upgraded
atomgraph/nginx,atomgraph/letsencrypt-tomcatandatomgraph/varnishbase images docker-compose.ymlnow uses image versions instead of hashes- Refactored
RDFXML2JSON-LD.xslconverter uses the XSLT 3.0 JSON instructions instead of string concatenation - New
<acl/authorizations/public-namespace/#this>authorization, separate from<acl/authorizations/public/#this> - Fixed editing mode for resources that do not have any
rdf:typeproperties - Replaced all SPARQLBuilder usages for query building with XSLT 3.0 transformations (SPARQLBuilder still used for query serialization)
- A separate HTTP client used only by the Linked Data client, to avoid sharing the connection pool with the main system client
- Linked Data client now sends a
User-Agentrequest header impersonating the Firefox browser
@idattributes are rewritten and@hrefattributes are resolved against base URI when XHTML content is being transcluded
- Fixed HTTP connection leak in the
ldh:send-requestfunction - Fixed blank node labels and typeaheads in instance creation forms
- Fixed response caching in the container generation logic to make sure fresh content with the new containers is loaded after redirect
- If content resource cannot be loaded from Linked Data, fallback to a
DESCRIBEquery over the local endpoint
- Disabled SPARQL updates on the namespace ontology endpoint
/ns - Better aligned document's timestamp and breadcrumbs in the navbar
- Constraint violation responses return
422 Unprocessable Entityinstead of400 Bad Request(same change in Processor) PUT/DELETErestrictions on root/owner/secretary documents return405 Method Not Allowedinstead of400 Bad Request- Improved error handling in the modal "Add data" form
- Resources in containers with remote endpoints get
DESCRIBEquery links instead of plain resource URI which would be attempted to load as Linked Data - Improved
rdf:typecontrols in editing mode to enable adding/removing types on instances (except document instances where types are required)
- Public
acl:Appendaccess to the namespace ontology which is required because theldh:send-requestfunction sends unauthenticated SPARQL ProtocolPOSTrequests
ldh:send-requestXSLT extension function which allows stylesheets to execute HTTPPOSTrequests (e.g. if the query string is too long forGET).
- Fixed datetime literal conversion from RDF/XML and SPARQL Results XML to Google Chart's
DataTable - Fixed encoding of URIs with special characters in HTTP client requests
- Optimized resource-level XSLT modes by consolidating HTTP requests for type/property/constructor/constraint/shape metadata using SPARQL
VALUES
- Fallback to a
DESCRIBErequest inProxyResourceBase $ldh:localGraph/$ldh:originalXSLT parameters. XSLT stylesheet now loads the same data over HTTP without the need for special parameters.
- New "Generate containers" feature that loads a schema from a SPARQL service and then generates a container for each class
- Fixed regression of multiple RDF types in the typeahead component
- Fixed container result count widget to support remote SPARQL endpoints
- Fixed regression of created/modified timestaps not rendered on documents
- Result count widget for container content
- Fixed map initialization regression
- An onboarding message show the first time LinkedDataHub starts
- ACL agent URI is passed to the client-side stylesheet as an
$acl:agentparam
- Fixed minor signup and request-access UI issues
- Disabling "Save as" and "Delete" action buttons when the agent does not have a write permission
- Support for recursive content blocks
- Loading class and property descriptions from the namespace ontology before falling back to Linked Data
- Fixed shapes support for resources with multiple RDF types
- SHACL node shape and property shape creation in the admin app
- Basic support for instance construction from SHACL node shapes
- Improved validation of "Add data" and inline content editing forms
- SaxonJS upgraded to v2.5. Client-side XSLT code updated to take advantage of the latest bugfixes.
- Basic support for HTTP range requests when serving uploded files (
uploads/{sha1sum})
- Fixed infinite XSLT loop in the WebID signup flow
- Container UI code only hydrates server-side HTML elements, does not create them if they don't exist
- Parameterized CSS classes in
bs2:RowContentmode ProxyResourceBaseguards against queries to the backend SPARQL service by requiring that agent is authorized
- Fixed order by dropdown population for container content
- Fixed and optimized container sorting
- Usage of group-sort-triples.xsl because Jena RDF/XML writer takes care of grouping triples and they're sorted during container rendering anyway
- WKT geometry support in map layout mode
- Fixed query builder behind faceted search to generate a correct query that loads facet values
- Moved RDFXML2DataTable.xsl and SPARQLXMLResults2DataTable.xsl converters from Web-Client
- Refactored RDFXML2DataTable.xsl and SPARQLXMLResults2DataTable.xsl using XSLT 3.0 JSON/XML instructions and fixed support for repeating columns
- Fixed the
[Actions]button in edit mode to update the constructor list when new types are added to the edited instance - The ontology import query now adds explicit
rdfs:isDefinedBytriples that connect classes to the ontology
- Web-Client upgrade fixes the RDF/XML to DataTable converter
- Map view is fit to the extent of loaded features
- Fixed blank node resources rendered as empty elements in
bs2:Rowmode
- Fixed calculation of center coordinates correctly for all map usages
- Google Maps and SPARQLMap dependencies replaced with OpenLayers 7.0. All functionality ported except bounding box-based feature loader.
- Fixed instance creation with multiple
rdf:types
- "Actions" button in edit mode allows adding and editing constructors of ontology classes without switching to the admin app
xsd:dateTimeliterals are rendered asdatetime-localinputs in edit mode
- Fixed
refresh_tokencache to store a token per client ID - Improved edit mode support for instances that have multiple
rdf:typeproperties
- Usages of
OntModelReadOnlywhich broke RDF/XML writing in Jena: apache/jena#1450
- The persistent storage of
refresh_tokens allows long-lived sessions when authenticated with Google login
- Fixed the back button (the history states were being mismanaged)
- Inline creation and editing of container and XHTML content in content layout mode
- ACL access modes sent as
Linkresponse headers and accessible in the client-side XSLT stylesheets using theacl:modefunction - Results of queries that use
forClasstype after a new instance was created are banned from Varnish cache endpointURL param can be used to override the SPARQL endpoint that the fallbackDESCRIBEquery gets executed against- XML literals in SPARQL updates get canonicalized before reaching the SPARQL endpoint
- Content model uses
rdf:Seqandrdf:_1,rdf:_2... properties instead ofrdf:Listandrdf:first/rdf:rest - SPARQL updates submitted to the Graph Store via the
PATCHmethod now have to use the default graph context, theGRAPHkeyword is disallowed - Fixed caching of delegated WebID agents, eliminating an unnecessary request with each authentication
- Multiple
Linkheaders combined into a single one with concatenated values
--fragmentparameter to CLI scripts that can be used to specify the fragment ID of the resource paired with the document (defaults to UUID)ENABLE_LINKED_DATA_PROXYenv parameter that allows disabling the Linked Data proxy/browser (enabled by default)
- Fixed double
On-Behalf-Ofheader value when both WebID and OIDC agent contexts were delegated - Fixed Linked Data proxy fallback to a local
DESCRIBEquery when the external URL does not dereference - Fixed IP address check in the setup script
- Jena upgraded to 4.5.0
- Fuseki Docker image upgraded to 4.5.0
- Saxon-JS upgraded to 2.4
key()lookups enabled in client-side XSLT as HTML page mutations do not break indexes anymore (fixed in 5036)
- Spanish UI localization
- Reconciliation of OIDC accounts with existing agents by email address
- Document tree widget
- New
/clearendpoint which is used to clear ontologies from memory - Second nginx port which has WebID client certificate authentication always enabled
--proxyparameter to CLI scripts
- Variables in SPARQL query and update strings whose values are injected now start with
$instead of?, for example$this - CSV and RDF imports write data directly to the backend Graph Store
- Only namespace, signup, OAuth2 login, WebID profiles and public keys can be public in admin apps, nothing else (hardcoded in the admin authorization query)
- When graph URI not explicitly specified, the Graph Store always returns
201 Created(even if the graph existed) - Fuseki image upgraded to 4.3.2
- Interactivity to the graph SVG layout
- Notifications to the requesting agent when its access request is granted (requires email server)
- JSON-LD export option for documents
append-contentCLI script that appends content resources to documentcreate-fileCLI script automatically recognizes the MIME type of the file being uploaded- Linked Data browser functionality in graph layout mode
- Javadoc comments
- The setup script requirements relaxed to make it easier to run on MacOS
- Fixed CSV imports
- Linked Data browser now supports relative URIs
- Upgraded Java from 11 to 17
- A built-in HTTP API constraint does not allow
PUTon documents without the document description in request body - A built-in HTTP API constraint does not allow to
DELETEthe root document - A built-in HTTP API constraint does not allow to
DELETEorPUTthe the app owner's and secretary's WebID documents - Shell script interpreter line
- Dydra-specific code
- Ability to copy (fork) RDF data into the local dataspace
- Block-based content layout (
ldh:ContentListmode) and editor - Login with Google (OpenID Connect)
- Ability to load JSON-LD data from
<script>elements in HTML - Namespace endpoint, which is an in-memory SPARQL endpoint over the app's ontology
- The HTTP CRUD API is now Graph Store Protocol, not Linked Data Templates
- HTML documents are hydrated HTML fragments over AJAX
- XSLT stylesheets now load constraints and constructors using SPARQL over the namespace endpoint
- The URIs of ontology terms are not relative to the app's base URI anymore
- Additional assertions added to external ontology terms instead of subclassing them
- Every UI state generates a distinct URL which is loaded consistently on both server- and client-side
- Upgraded Jena to 4.3.2
- Upgraded Saxon-JS to 2.3
- Upgraded Fuseki, Varnish and nginx Docker images
- Linked Data Templates support (still supported by Processor)
- HTTP smoke tests for SPARQL endpoint and Graph Store
- HTTP test for RDF import without mapping query
add-data.shCLI script which POSTs RDF data to URLExceptionMapperconstructors with injection in order to align with Processor- An option to override request URI using the
?uri=URL param, implemented inApplicationFilter Dispatcheras the new "entrypoint" JAX-RS resource which routes betweenResourceBase(if app is not empty) andProxyResourceBase(if app is empty)- Missing XML namespace definitions to client-side XSLT stylesheets
$output-json-ldparameter inxhtml:Scripttemplate which outputs the RDF document as JSON-LD in the<script>element
select-labelledquery in the end-user dataset to include a default graph patternspin:queryproperty is now optional forapl:RDFImport- Entrypoint script logic to load agent metadata only when
$LOAD_DATASETSis true - Injecting
Optional<Application>,Optional<Service>,Optional<Ontology>instead ofApplication,Service,Ontology - Using
javax.inject.Provider<>for injection into providers that are not in the request scope - If no application matches request URI,
NotFoundExceptionis not thrown anymore --Optional.empty()is used as application instead - Auth filters skipped if the matched application is not an instance of
lapp:EndUserApplicationorlapp:AdminApplication - Simplified
ResourceBase::describeby removing the?uri=indirection logic
- Proxy injections from injection factory binders
- varnish-admin service that proxy-caches the fuseki-admin triplestore
purge_backend_cachefunction to the HTTP test runner script run.shpurge_backend_cachecalls to clear proxy caches before each HTTP scriptBackendInvalidationFilterresponse filter with backend proxy cache invalidation heuristics- Basic environment variable documentation to README
- Upgraded Processor and Web-Client to the latest versions
- Upgraded Saxon-JS to 2.1
- End-user and admin Services passed to import
Executorinstead ofDatasetAccessor - Defined HTTP method -> ACL mode mapping as the
AuthorizationFilter.ACCESS_MODESmap
- Unused Docker mounts from linkeddatahub service
ban()calls fromResourceBase-- now handled by theBackendInvalidationFilter
apl:baseUrias a static XSLT stylesheet param
bs2:PropertyControlXSLT mode can handle multiple RDF types on a resource- Replaced error alerts with inline HTML warning blocks
- Refactored
bs2:SignUptemplate to make it more extensible
ORDER BYinapl:ResultCountsmode in client.xsl
$request_baseparameter support in scripts allows to use a base URI for HTTP requests which is different from the RDF dataset base URI. Useful when multiple LDH instances on different domains or port numbers are backed by the same dataset. E.g. one with WebID-TLS auth enabled and the other without.- Dydra-specific
QuadStoreClientandGraphStoreClientwith support for asynchonous GSP requests
- Ontology classes that used to be in the
ns:namespace (${base}ns#) moved tonsds:(${base}ns/domain/system#) - Ontology classes that used to be in the
def:namespace (${base}def#) moved tonsdd:(${base}ns/domain/default#) pythonusages replaced withpython2in CLI scripts- Mounting only
ssl/owner/public.peminstead of the wholessl/ownerfolder which includes the private key
- Expensive join with the provenance graph from the
laclt:ConstructAgentItemquery. As a result,dct:createdvalue is not included in agent's description. - Unnecessary methods from the
ImportJava interface. Passing arguments directly toImportListenerinstead