Skip to toolbar

Community & Business Groups

RDF JavaScript Libraries Community Group

The RDF JavaScript Libraries Community Group discusses implementations of libraries for working with RDF and Linked Data in ECMAScript platforms like Web browsers and Node.js

rdfjs

Group's public email, repo and wiki activity over time

Note: Community Groups are proposed and run by the community. Although W3C hosts these conversations, the groups do not necessarily represent the views of the W3C Membership or staff.

No Reports Yet Published

Learn more about publishing.

Chairs, when logged in, may publish draft and final reports. Please see report requirements.

Publish Reports

RDF.js: The new RDF and Linked Data JavaScript library

In a joint effort, MIT CSAIL, Ghent University and Zazuko will align their existing work to create RDF.js, a new RDF and Linked Data JavaScript library based on the RDFJS specification.

A diverse web requires decentralized data storage and maintenance. According to MIT’s Tim Berners-Lee, “it is about making links, so that a person or machine can explore the web of data. With Linked Data, when you have some of it, you can find other, related, data”.

Zazuko’s CTO Thomas Bergwinkl adds that “Linked Data is built on top of the web stack and the programming language of the web is JavaScript. It is crucial for Web Developers to have access to well-designed JavaScript libraries to work with RDF and Linked Data”.

The RDFJS W3C Community Group did a tremendous job in defining a standard to represent Linked Data in JavaScript. Several individuals and groups started to implement the RDFJS specification.

We are now happy to announce that in a joint effort MIT CSAIL, Ghent University and Zazuko GmbH decided to merge their efforts under the new name RDF.js. In particular the code of RDF-Ext, N3.js and rdflib.js as well as a modular SPARQL engine will be aligned and published on GitHub in the organization RDFJS.

Ghent University’s Ruben Verborgh states that “The usage of RDF and Linked Data on the web gained a lot of traction in the past years. By concentrating our efforts, we’re paving the road for a new generation of web applications, benefiting both developers and end users”.

We are open for contributions, if you would like to know more join our W3C community group or talk to us on our Gitter channel.

About MIT CSAIL

The Decentralized Information Group at CAIL/MIT is exploring how to radically change the way Web applications work today, resulting in decentralized architectures that enable true data ownership with the Solid project; working on frameworks that ensure information can be shared, used, and manipulated in a way that is compliant with regulation, business rules, social norms, and user preferences; investigating methodologies to make algorithms trustworthy and accountable, as well as harnessing mobile technologies for disaster relief.

About Ghent University

IDLab at Ghent University – imec focuses on the “Web” part of the Semantic Web, by building tools and projects to publish, query, and process data at Web scale.

About Zazuko GmbH

Zazuko is an owner-managed consulting company for Semantic Web and related technologies. Based on profound experience, we support our customers in successfully developing software based on the Linked Data stack. By integrating both internal and external data, Zazuko empowers organizations to optimize their core business activities. We enable linking any kind of information with any other information, no matter where the information lives.

Making SPARQL fancy with YASQE and YASR

I’ve been working recently on a rewrite of YASGUI (a tool I wrote a year ago) from the ground up. I’ve decided to take a more modular approach, publishing components of YASGUI as separate JS libraries.

The results are:

  • Yet Another Sparql Query Editor (YASQE, http://yasgui.github.io/YASQE/). Key features are:
    • SPARQL syntax highlighting and error checking
    • Extremely customizable: All functions and handlers from CodeMirror library are accessible
    • Persistent values (optional): your query is stored for easier reuse between browser sessions
    • Prefix autocompletion (using prefix.cc)
    • Property and class autocompletion (using Linked Open Vocabularies)
    • Handlers to easily add your own property and class autocompletion
    • Handy keyboard shortcuts
    • Possible to execute the query directly
  • Yet Another Resultset GUI (YASR http://yasgui.github.io/YASR/).
    • Easily customizable and extendible
    • Easily integrates with YASQE
    • Can handle any valid SPARQL resultset format
    • Use of common libraries such as jQuery Datatables and CodeMirror
    • Integration of preflabel.org for fetching URI labels

Enrichting your (often plain-text) SPARQL endpoint now requires only one or two lines of JS to instantiate YASR and/or YASQE. Other possiblities include fancy integration of SPARQL queries in online documentation, or tools such as iPython notebook.

If you have some feedback, let me know.

ps. Both tools are available via npm as well: https://www.npmjs.org/package/yasgui-yasqe and https://www.npmjs.org/package/yasgui-yasr

“What’s the best way to parameterize SPARQL queries?”

http://www.reddit.com/r/semanticweb/comments/1e3fq0/whats_the_best_way_to_parameterize_sparql_queries/

The gist: as a tokenized query protocol, it is not ‘safe’ to build SPARQL queries by concatenating strings which may contain user-supplied input.

In SQL, this is called “SQL Injection”:

It may be tempting to suggest that this is not an issue for read-only SPARQL queries, but resource exhaustion can also be a very real concern; especially with RDF JavaScript Libraries which are used to prepare queries.