• Aucun résultat trouvé

Linked Data Reactor: a Framework for Building Reactive Linked Data Applications

N/A
N/A
Protected

Academic year: 2022

Partager "Linked Data Reactor: a Framework for Building Reactive Linked Data Applications"

Copied!
13
0
0

Texte intégral

(1)

Linked Data Reactor: a Framework for Building Reactive Linked Data Applications

Ali Khalili

Knowledge Representation and Reasoning Research Group Deptartment of Computer Sciences

Vrije Universiteit Amsterdam a.khalili@vu.nl

Abstract. This paper presents Linked Data Reactor (LD-Reactor or LD-R) as a framework for developing flexible and reusable User In- terface components for Linked Data applications. LD-Reactor utilizes Facebook’s ReactJS components, Flux architecture and Yahoo’s Fluxible framework for isomorphic Web applications. It also exploits Semantic- UI framework for flexible UI themes. LD-R aims to apply the idea of component-based application development into RDF data model hence enhancing current user interfaces to view, browse and edit Linked Data.

Documentation:http://ld-r.org Demo:http://demo.ld-r.org

Code Repository:https://github.com/ali1k/ld-r

1 Introduction

With the growing number of structured data published, the Web is moving towards becoming a rich ecosystem of machine-understandable Linked Data.

Semantically structured data facilitates a number of important aspects of in- formation management such as information retrieval, search, visualization, cus- tomization, personalization and integration [1]. Despite all these benefits, Linked Data Applications (LDAs) are not yet adopted by the large community of Web developers outside the Semantic Web domain and, causally, by the end-users on the Web.

The current communication gap between Semantic Web developers and User Experience (UX) designers, caused by the need to bear Semantic Web knowl- edge, prevents the streamlined flow of best practices from the UX community into Linked Data user interface (UI) development. The resulting lack of adoption and standardization often makes current LDAs inconsistent with user expecta- tions and impels more development time and costs on LDA developers. In this situation, more time is spent in re-designing existing UIs rather than focusing on innovation and creation of sophisticated LDAs.

In [3], We performed an elaborate study on the current pitfalls of LDA UI design and proposedAdaptive Linked Data-driven Web Componentsand its open

(2)

source implementation called Linked Data Reactor1as a solution to tackle those issues. This paper serves as a more technical description of that idea.

2 Adaptive Linked Data-driven Web Components

In order to streamline the process of UI development in LDAs, we propose an architecture of adaptive LD-R Web components – Web components enriched by the RDF data model. As shown in Figure 1, the proposed architecture addresses LDA UI reusability and flexibility by incorporating RDF-based Web components and scopes. In the following sections, the main elements of the architecture are described:

2.1 LD-R Web Components

As depicted in Figure 2, there are four core component levels in an LD-R Web application. Each core component abstracts the actions required for retrieving and updating the graph-based data and provides a basis for user-defined com- ponents to interact with Linked Data in three modes: view, edit and browse.

LD-R

Web Components Scopes

Configurations Interaction Mode

Core (RDF) Components User-defined Components

View Edit Browse

Core Configurations

Component-specific Configurations

Semantic Markup

Fig. 1.Main elements of the adaptive LD-R Web components architecture.

1 http://ld-r.org

(3)

Dataset

Resource

Property

Value

Browser

Data Flow 1

2

3

4

Viewer Editor

Fig. 2.Core LD-R Web components.

The data-flow in the system starts from theDataset component which han- dles all the events related to a set of resources under a named graph identified by a URI. The next level is theResourcecomponent which is identified by a URI and indicates what is described in the application. A resource is described by a set of properties which are handled by theProperty component. Properties can be either individual or aggregate when combining multiple features of a resource (e.g. a component that combines longitude and latitude properties; start date and end date properties for a date range, etc.). Each property is instantiated by an individual value or multiple values in case of an aggregate object. The value(s) of properties are controlled by the Value component. In turn, Value components invoke different components to view, edit and browse the property values.Viewer,Editor andBrowser components are terminals in the LD-R sin- gle directional data flow where customized user-generated components can be plugged into the system. User interactions with the LD-R components are con- trolled by a set of configurations defined on one or more selected component levels known as scopes.

2.2 Scopes and Configurations

LD-R Web components provide a versatile approach for context adaptation.

A context can be a specific domain of interest, a specific user requirement or both. In order to enable customization and personalization, the LD-R approach exploits the concepts of Scope andConfiguration. A scope is defined as a hier- archical permutation of Dataset, Resource, Property and Value components (cf.

Figure 3).

(4)

V

R D P

D P D

R P V

V D R

D V

V

P

1 2 3 4 5 6 7 8

9 10 11 12 13 14 15

R P V

D P V

P

V V

R

D

R P

R D

R

Value

Dataset Resource

Property

Fig. 3.LD-R scopes based on the permutation of dataset, resource, property and value identifiers.

1 I n i t i a l C o n f i g = {i n i t i a l a p p l i c a t i o n c o n f i g u r a t i o n}

2 C o n t e x t = [a r r a y of s c o p e s w i t h the c o r r e s p o n d i n g c o n f i g u r a t i o n o b j e c t s]

3 C o n f i g = I n i t i a l C o n f i g

4 for ( i = 1 5; i < 1; i - -) {

5 C o n f i g . c o m p a r e W i t h ( C o n t e x t[i]) {

6 C o n f i g . a d d M i s s i n g A t t r i b u t e s ()

7 C o n f i g . o v e r w r i t e E x i s t i n g A t t r i b u t e s ()

8 }

9 }

Code 1.Algorithm for the LD-R UI adaptation.

Each scope conveys a certain level of specificity on a given context ranging from 1 (most specific) to 15 (least specific). Scopes are defined by using either the URIs of named graphs, resources and properties, or by identifying the resource types and data types. A configuration is defined as a setting which affects the way the LDA and Web components are interpreted and rendered (e.g. render a specific component for a specific RDF property or enforce a component to display Wikipedia page URIs for DBpedia resources). UI adaptation is handled by traversing the configurations for scopes, populating the configurations and overwriting them when a more specific applicable scope is found. As shown in Code 1 below, in the worst case when the DRPV scopes are used and the UI is

(5)

R2

C8

C10

C7 C11

R4

D2

R3

P5

P4

P3

P2

P1

R1

D1

C3

C4

C2

App C1

C5

C6

C9

Fig. 4.A sample LD-R configuration hypergraph.

supposed to render the Value components, all 15 scopes need to be traversed for the adaptation:

Figure 4 demonstrates an example of the LD-R configuration hypergraph containing scopes with the maximum depth of DRP. The graph defines a generic configuration for the application as C1. There are configurations defined for the dataset scope D1 as C2, for the resource scope R2 as C3 and for the property scope P2as C4. There are also configurations for theRPscope R2P2as C5and for theDRPscope D1R2P2as C6. Let’s suppose we have a setting with the following values for the scopes and configurations:

– D1=<http://ld-r.org/users>

– R2= typefoaf:Person – P2=rdfs:label

– C1={{viewer:‘basic’},{attr1:1},{attr2:3}}

– C2={{attr1:0},{attr3:2}}

– C3={{attr3:1},{attr4:4},{attr5:1}}

– C4={{attr5:2},{attr6:1}}

– C5={{viewer:‘contact’},{attr3:5},{attr7:6}}

– C6={{attr3:8},{attr7:1},{attr8:3}}

With the above settings, when a property component forrdfs:labelis ren- dered without the dataset and resource context, the configuration will be:

{{viewer:‘basic’},{attr1:1},{attr2:3},{attr5:2},{attr6:1}}

(6)

When the property component gets rendered within the resource context of type foaf:Person, the settings for viewer and attr5 are overwritten and new settings for attr3, attr4and attr7 are added:

{{viewer:‘contact’},{attr1:1},{attr2:3},{attr3:5},{attr4:4}, {attr5:1},{attr6:1},{attr7:6}}

When the additional context of dataset as <http://ld-r.org/users> is given, attr3 and attr7 get overwritten and a new setting for attr8 is added:

{{viewer:‘contact’},{attr1:0},{attr2:3},{attr3:8},{attr4:4}, {attr5:1},{attr6:1},{attr7:1},{attr8:3}}

Scopes can also be defined on a per user basis, facilitating the versioning and reuse of user-specific configurations. User-Specific configurations provide different views on components and thereby data, based on the different personas dealing with them.

In addition to the fine-grained component customization, LD-R Web applica- tions provide a fine-grained access control over the data through the component scopes. For example, an application developer can restrict access to a specific property of a specific resource in a certain dataset and on a specific interaction mode.

2.3 Semantic Markup for Web Components

The innate support of RDF in LD-R Web components enable the automatic creation of semantic markup on the UI level. Lower semantic techniques such asRDFa,Mircodata andJSON-LD can be incorporated in the core LD-R com- ponents to expose structured data to current search engines which are capable of parsing semantic markup. For example, an LD-R component created based on the Good Relations2orSchema.orgontologies, can automatically expose the product data as Google Rich Snippets for products3 which will provide better visibility of the data on Web search results (i.e. SEO).

In addition to automatic annotation of data provided by the LD-R Web components, the approach offers semi-automatic markup of Web components by creating component metadata. Component metadata consists of two categories of markup:

– Automatic markup generated by parsing component package specification – metadata about the component and its dependencies. It includes general metadata such as name, description, version, homepage, author as well as technical metadata on component source repository and dependencies.

– Manual markup created by component authors which exposes metadata such as component level (dataset, resource, property, value), granularity (indi- vidual, aggregate), mode (view, edit, browse) and configuration parameters specification.

2 http://www.heppnetz.de/projects/goodrelations/

3 https://developers.google.com/structured-data/

(7)

Actions

Stores LD-R

Components RESTful Services

Endpoint

communicate CRUD

Data

update

render action

Dispatcher

dispatch

Flux

unidirectional data flow

Fig. 5.Data flow in the LD-Reactor framework.

Similar to content markup, Component markup can utilize commonly-known ontologies such as Schema.org in order to improve the visibility of LD-R com- ponents and enable application assemblers to better understand the intended usage and capabilities of a given component.

3 Implementation

In order to realize the idea of adaptive Linked Data-driven Web components, we implemented an open-source software framework calledLinked Data Reactor (LD-Reactor) which is available online at http://ld-r.org. LD-Reactor uti- lizes Facebook’s ReactJS4 components, the Flux5 architecture, Yahoo!’s Flux- ible6 framework for isomorphic Web applications (i.e. running the components code both on the server and the client) and the Semantic-UI7framework for flex- ible UI themes. The main reasons we chose React components over other Web Components solutions (e.g. Polymer8, AngularJS9, EmberJS10, etc.) were the maturity and maintainability of the technology, the native multi-platform sup- port, the number of developer tools/components/applications, and the efficiency of its underlying virtual DOM approach11.

As shown in Figure 5, LD-Reactor follows the Flux architecture which es- chews MVC (Model-View-Controller) in favour of a unidirectional data flow.

4 https://facebook.github.io/react/

5 https://facebook.github.io/flux

6 http://fluxible.io/

7 http://semantic-ui.com/

8 http://www.polymer-project.org/

9 https://angularjs.org/

10http://emberjs.com/

11Elaborating on all these factors is beyond the scope of this paper.

(8)

When a user interacts with a React component, the component propagates an action through a central dispatcher, to the various stores that hold the ap- plication’s data and business logic, and updates all affected components. The component interaction with SPARQL endpoints to retrieve and update Linked Data occurs through the invocation of RESTful services in actions.

In order to allow the bootstrapping of LDA UIs, LD-Reactor provides a comprehensive framework that combines the following main elements:

– A set of RESTful Web services that allow basic CRUD operations on Linked Data using SPARQL queries12.

– A set of core components calledReactorswhich implement core Linked Data components (see Figure 2) together with their corresponding actions and stores.

– A set of default components which allow basic viewing, editing and browsing of Linked Data.

– A set of minimal viable configurations based on the type of data and prop- erties from commonly-used vocabularies on the Semantic Web (e.g. foaf, dcterms and SKOS).

– A basic access control plugin which allows restricting read/write access to data.

LD-Reactor implementation is compliant withMicroservices Architecture [4]

where the existing ReactJS components can be extended by complementary Linked Data services. In contrast to the centralized monolithic architecture, the microservices architecture allows placing the main functionalities of the LDA into separate decoupled services and scale by distributing these services across servers, replicating as needed. This architectural style also helps to minimize the redeploying of the entire application when changes in components were re- quested.

There are three modes of interactions within LD-R components namelyview, browse and edit. These modes work with two types of value granularity: indi- vidual and aggregate. As shown in Figure 7, components can target individual values or interact with aggregate values when users want to show/update multi- ple values at once. Figure 6 depicts the browse mode where individual (e.g. item lists with check boxes) and aggregate data browser (e.g. data sliders or maps) components can be employed.

Semantic markup of data (as discussed in Section 2.3) is supported natively within the framework by embedding Microdata annotations within the LD-R Web components. Additionally, in order to facilitate the creation of compo- nent metadata, we developed a tool13which automatically generates the general

12the framework is compliant with the SPARQL 1.1 standard. However, we have iden- tified certain inconsistencies between OpenRDF Sesame and OpenLink Virtuoso RDF stores, which did not allow the execution of syntactically identical queries across both systems. Thereby, specific adaptors have been implemented for each of these two RDF stores.

13https://github.com/ali1k/ld-r-metadata-generator

(9)

Fig. 6.A screenshot of LD-Reactor browse mode.

metadata about the components in JSON-LD, usingSchema.org’s SoftwareAp- plication schema14.

Code 2 presents a sample LD-R config which is already in-use within the RISIS project15:

– The UI should be able to render metadata properties in different categories (Code 2 line 3, 4).

– The labels for properties should be changeable in the UI especially for tech- nical properties (e.g. RDF dump) that are unknown to researchers outside the Semantic Web domain (Code 2 line 18, 26, 40).

– There should be a hint for properties to help metadata editors to understand the meaning of the property (Code 2 line 20, 28, 41).

– Instead of showing the full URIs, the output UI should render either a short- ened URI or a meaningful string linked to the original URI (Code 2 line 6).

– Whenever a DBpedia URI is provided, display the corresponding Wikipedia URI enabling users to retrieve human readable information (Code 2 line 33, 45).

– When a dropdown menu is provided, there should be the ability to accom- modate user-defined values which are not listed in the menu (Code 2 line 57).

14https://schema.org/SoftwareApplication

15http://datasets.risis.eu

(10)

Fig. 7.A screenshot of LD-Reactor view and edit mode for individual (top) and ag- gregate (bottom) values.

(11)

1 r e s o u r c e: {

2 ‘ generic ’: {

3 u s e P r o p e r t y C a t e g o r i e s: 1,

4 p r o p e r t y C a t e g o r i e s: [‘ o v e r v i e w ’, ‘ l e g a l A s p e c t s ’, ‘ t e c h n i c a l A s p e c t s ’]

,

5 r e s o u r c e R e a c t o r: [‘ R e s o u r c e ’],

6 s h o r t e n U R I: 1

7 }

8 },

9 p r o p e r t y: {

10 ‘ generic ’: {

11 p r o p e r t y R e a c t o r: [‘ I n d i v i d u a l P r o p e r t y ’], 12 o b j e c t R e a c t o r: [‘ I n d i v i d u a l O b j e c t ’], 13 o b j e c t I V i e w e r: [‘ B a s i c I n d i v i d u a l V i e w ’], 14 o b j e c t I E d i t o r: [‘ B a s i c I n d i v i d u a l I n p u t ’]

15 },

16 ‘ h t t p:// p u r l . org / dc / t e r m s / l a n g u a g e ’: {

17 a l l o w N e w V a l u e: 1,

18 l a b e l: [‘ D a t a s e t L a n g u a g e ’], 19 c a t e g o r y: [‘ o v e r v i e w ’],

20 h i n t: [‘ The l a n g u a g e of the d a t a s e t . R e s o u r c e s d e f i n e d by the L i b r a r y of C o n g r e s s ( h t t p:// id . loc . gov / v o c a b u l a r y / iso6 3 9-1. h t m l , h t t p:// id . loc . gov / v o c a b u l a r y / iso6 3 9-2. h t m l ) S H O U L D be u s e d . ’]

,

21 o b j e c t I V i e w e r: [‘ L a n g u a g e V i e w ’], 22 o b j e c t I E d i t o r: [‘ L a n g u a g e I n p u t ’],

23 d e f a u l t V a l u e: [‘ h t t p:// id . loc . gov / v o c a b u l a r y / iso6 3 9-1/ en ’]

24 },

25 ‘ h t t p:// p u r l . org / dc / t e r m s / spatial ’: { 26 l a b e l: [‘ G e o g r a p h i c a l c o v e r a g e ’], 27 c a t e g o r y: [‘ o v e r v i e w ’],

28 h i n t: [‘ The g e o g r a p h i c a l a r e a c o v e r e d by the d a t a s e t . ’],

29 a l l o w N e w V a l u e: 1,

30 o b j e c t R e a c t o r: [‘ A g g r e g a t e O b j e c t ’], 31 o b j e c t A V i e w e r: [‘ D B p e d i a G o o g l e M a p V i e w ’], 32 o b j e c t I V i e w e r: [‘ B a s i c D B p e d i a V i e w ’],

33 a s W i k i p e d i a: 1,

34 o b j e c t A E d i t o r: [‘ B a s i c A g g r e g a t e I n p u t ’], 35 o b j e c t I E d i t o r: [‘ D B p e d i a I n p u t ’],

36 l o o k u p C l a s s: [‘ Place ’]

37 },

38 ‘ h t t p:// p u r l . org / dc / t e r m s / subject ’: { 39 c a t e g o r y: [‘ o v e r v i e w ’],

40 l a b e l: [‘ K e y w o r d s ’],

41 h i n t: [‘ T a g s a d a t a s e t w i t h a t o p i c . ’],

42 a l l o w N e w V a l u e: 1,

43 o b j e c t I E d i t o r: [‘ D B p e d i a I n p u t ’], 44 o b j e c t I V i e w e r: [‘ B a s i c D B p e d i a V i e w ’],

45 a s W i k i p e d i a: 1

46 },

47 ‘ h t t p:// p u r l . org / dc / t e r m s / license ’: { 48 c a t e g o r y: [‘ l e g a l A s p e c t s ’],

49 l a b e l: [‘ License ’],

50 a l l o w N e w V a l u e: 1,

51 o b j e c t I V i e w e r: [‘ B a s i c O p t i o n V i e w ’], 52 o b j e c t I E d i t o r: [‘ B a s i c O p t i o n I n p u t ’],

53 o p t i o n s: [

54 {l a b e l: ‘ O p e n D a t a C o m m o n s A t t r i b u t i o n License ’, v a l u e: ‘ h t t p://

www . o p e n d a t a c o m m o n s . org / l i c e n s e s / by / ’},

55 {l a b e l: ‘ C r e a t i v e C o m m o n s A t t r i b u t i o n - S h a r e A l i k e ’, v a l u e: ‘ h t t p:

// c r e a t i v e c o m m o n s . org / l i c e n s e s / by - sa /3.0/ ’}

56 ],

57 a l l o w U s e r D e f i n e d V a l u e: 1

58 }

59 }

Code 2.An excerpt of the LD-Reactor configuration file.

(12)

4 Related Work

We have brought an elaborate analysis of the related work in [3]. In this section, we only summarize the main related work.

UI Frameworks. WYSIWYM (What You See Is What You Mean) [2] is a generic semantics-based UI model to allow integrated visualization, exploration and au- thoring of structured and unstructured data. Our proposed approach utilizes the WYSIWYM model for binding RDF-based data to viewer, editor and browser UIs. Uduvudu [5] is another approach to making an adaptive RDF-based UI en- gine to render Linked Data. Instead of adopting Web components, Uduvudu em- ploys a set of flexible UI templates that can be combined to create complex UIs.

Even though the static templates do not provide enough interactions for editing and browsing data (in contrast to Web components), we believe that algorithms for automatic selection of templates employed in Uduvudu can be reused in the LD-Reactor framework for automatic generation of configurations. Another sim- ilar approach is SemwidgJS [10] which brings a semantic Widget library for the rapid development of LDA UIs. SemwidgJS offers a simplified query language to allow the navigation of graph-based data by ordinary Web developers. The main difference between LD-R and SemwidgJS is that LD-Reactor suggests a more interactive model which is not only for displaying Linked Data but also for providing user adaptations based on the meaning of data. LD-Viewer [6] is another related Linked Data presentation framework particularly tailored for the presentation of DBpedia resources. In contrast to LD-Reactor, LD-Viewer builds on top of the traditional MVC architecture and its extensions rely heavily on the knowledge of RDF which is a burden for developers unfamiliar with Semantic Web technologies.

Tools and Applications. In addition to the LDA UI frameworks, there are sev- eral ad-hoc tools for Linked Data visualization and exploration such as Balloon Synopsis [8] and Sgvizler [9] which can be utilized as Web components within the LD-Reactor framework. [7] provides an extensive list of these tools aiming to make Linked Data accessible for common end-users who are not familiar with Semantic Web.

Overall, what distinguishes Linked-Data-Reactor from the existing frame- works and tools is its modern isomorphic component-based architecture that addresses reactive and reusable UIs as its first class citizen.

5 Conclusion

We argue that bridging the gap between Semantic Web Technologies and Web Components worlds brings mutual benefits for both sides. On one hand, Semantic Web technologies provide support for richer component discovery, interoperabil- ity, integration, and adaptation on the Web. On the other, Web Components bring the advantages of UI standardization, reusability, replaceability and en- capsulation to current Semantic Web applications.

(13)

This paper presented Linked Data Reactor as a component-based LDA de- velopment framework which aims to bring a better communication between UX designers and Semantic Web developers in order to reuse best UI practices within Linked Data applications.

References

1. A. Khalili and S. Auer. User interfaces for semantic authoring of textual content:

A systematic literature review. Web Semantics: Science, Services and Agents on the World Wide Web, 22(0):1 – 18, 2013.

2. A. Khalili and S. Auer. Wysiwym – integrated visualization, exploration and authoring of semantically enriched un-structured content. Semantic Web Journal, 2014.

3. A. Khalili, A. Loizou, and F. van Harmelen. Adaptive linked data-driven web components: Building flexible and reusable semantic web interfaces. Semantic Web Conference (ESWC) 2016, 2016.

4. J. Lewis and M. Fowler. Microservices, 2014. http://martinfowler.com/

articles/microservices.html.

5. M. Luggen, A. Gschwend, A. Bernhard, and P. Cudre-Mauroux. Uduvudu: a graph- aware and adaptive ui engine for linked data. In C. Bizer, S. Auer, T. Berners-Lee, and T. Heath, editors, Workshop on Linked Data on the Web (LDOW), number 1409 in CEUR Workshop Proceedings, Aachen, 2015.

6. D. Lukovnikov, C. Stadler, and J. Lehmann. Ld viewer - linked data presenta- tion framework. InProceedings of the 10th International Conference on Semantic Systems, SEM ’14, pages 124–131, New York, NY, USA, 2014. ACM.

7. S. Ojha, M. Jovanovic, and F. Giunchiglia. Entity-centric visualization of open data. In J. Abascal, S. Barbosa, M. Fetter, T. Gross, P. Palanque, and M. Winckler, editors,Human-Computer Interaction INTERACT, volume 9298 ofLecture Notes in Computer Science, pages 149–166. Springer, 2015.

8. K. Schlegel, T. Weißgerber, F. Stegmaier, M. Granitzer, and H. Kosch. Balloon synopsis: A jquery plugin to easily integrate the semantic web in a website. In R. Verborgh and E. Mannens, editors,ISWC Developers Workshop, volume 1268 ofCEUR Workshop Proceedings, pages 19–24. CEUR-WS.org, 2014.

9. M. G. Skjveland. Sgvizler: A javascript wrapper for easy visualization of sparql result sets. In9th Extended Semantic Web Conference (ESWC2012), May 2012.

10. T. Stegemann and J. Ziegler. Semwidgjs: A semantic widget library for the rapid development of user interfaces for linked open data. In 44. Jahrestagung der Gesellschaft f¨ur Informatik, Informatik 2014, Big Data - Komplexit¨at meistern, 22.-26. September 2014 in Stuttgart, Deutschland, pages 479–490, 2014.

Références

Documents relatifs

However, while some Web developers have developed notable Linked Data applications consuming and integrating different types of linked open data from the Linked Open Data Cloud

To reduce the effect of these dominant contracts to learning correct decision tree model, we generates ten different input data sets which are sets of randomly sampled

Indeed, our experience with the framework showed that the approach it proposes, regard- less of a particular implementation or programming language, can lead to better RESTful design

While they may exploit relational integrity constraints to increase the mapping quality, these constraints are at most implicit in the resulting RDF database: for a data consumer,

In this paper we address the two mentioned problems by proposing a representation of the notions underlying the SemSim semantic similarity method [2], according to

(Clarification or extension of Linked Data rule #2.) Basic Profile Resources are created by HTTP POST (or PUT) to an existing resource, deleted by HTTP DELETE, updated by HTTP PUT

EDN-LD is a set of conventions for representing linked data using Extensible Data Notation (EDN) and a library for conveniently working with those representations in the

This tool thus allows users to share, explore, directly edit (through the Query Builder or otherwise), and re-use Linked Data Publications, whilst keeping data lineage intact.