Reboot of “Using interface encapsulation to listen to linked data predicates”


3 Years ago I wrote a blog post which was a submission to the ISWC 2014 Developers workshop. The idea has been implemented with the Enyo framework which at the time was still a viable ecosystem. The implementation has been used in production in various installations of our systems.
Time has passed on and the EnyoJS framework is no longer supported, its successor was very much tied to react so would be very framework specific. In order to come up with a simple solution to the encapsulation problem I decided to reimplement the whole idea using WebComponents

Design Principle

One of the major issues with using linked data nowadays is that people still conceive the whole tool chain rather complex, even though JSON-LD has dramatically improved the usability of Linked Data in various front-end application frameworks. The central problem described in my previous post still remains, there is no semantics on UI level, front-end frameworks are able to consume JSON-LD but only by ignoring the semantics and treating it just like any other data stream. On the other side of the spectrum are UI building tools who manifest themselves as classic Monoliths, “So you want a front-end framework, you’ll need to use our triple store as well” This whole position is even stranger if you come to realize that in the Linked Data world everything can be done according open standards.

RDF, SPARQL, SPARQL-Protocol, LDP and more recently SHACL are all open standards who brilliantly inter-operate with each other and provide the building blocks to just develop components to create applications.

In this article I’ll describe the ideas behind our new set of WebComponents which allow you to absorb linked data in your application front-end without installing a monolith

The end goal

With the introduction of WebComponents came a new way of extending HTML applications and extending the semantics while still being able to use any traditional UI toolkit. The second major element is the SHACL standard, now there is a standard to describe which elements  ( triples ) you want to select and use for your application. Inspired by SHACL and web components I came up with the following desired structure

<node-shape target-class='foaf:Person'>
    <property-shape path='foaf:name'></property-shape>
    <property-shape path='foaf:img' bind-to='img[src]><img></img></property-shape>
    <property-shape path='foaf:knows'>
        <property-shape path='foaf:name' bind-to='.name'>
           <span class='name'></span>

As you can see we map SHACL terminology within a relative standard HTML layout, this allows you to do any standard markup and styling through CSS. It will not interfere with any other standards DOM interactions on the elements encapsulated within the WebComponents.

To load the Linked Data into a <node-shape> we use rdf-ext a set of javascript libraries which again is adhering to a open standard. The <node-shape> and <property-shapes> will coordinate the propagation of the data through the HTML automatically, even dereferencing is taken care of. When multiple values are found, the encapsulated component is automatically repeated.


Although we use SHACL as guidance there is no validation in place yet, we only use the selection process of SHACL to select these parts of our Graph that we want to display in our front-end. This also means that we might display incomplete Graphs, that is a issue we need to work on.


This whole idea is work in progress, the current implementation based on WebComponents is now being tested with a POC and the results look great! We are planning on publishing the components as opensource on our github repository.

Some more detailed articles on how this works internally will be published as well!

449 thoughts on “Reboot of “Using interface encapsulation to listen to linked data predicates”

    • I’ve done a ton of stuff in XSLT, but if you are talking about making Linked Data more accessible for mere mortals, XSLT is not your go to technology.

  1. Specifically, children may suffer from impaired lung development, increased asthma symptoms, worsening allergies and malnourishment as a result of climate change. Post-traumatic stress, physical injury, disruptions in education and loss of a stable home environment are additional ways that children can be negatively affected by natural disasters.
    Types of psoriasis in children

  2. Great post. I was checking constantly this blog and I am impressed! Extremely helpful info specially the last part 🙂 I care for such information a lot. I was seeking this particular information for a very long time. Thank you and best of luck.

  3. Write more, thats all I have to say. Literally, it seems as though you relied on the video to make your point. You obviously know what youre talking about, why waste your intelligence on just posting videos to your site when you could be giving us something informative to read? walgreens pharmacy

  4. No Prescription Drug Buy Viagra In New York City 123 Acheter Du Clomid Tests De Grossesse [url=]cialis for sale[/url] Mail Order Plavix Ciprofloxacin Functional Groups

  5. Right now it looks like WordPress is the preferred blogging platform out there right now. (from what I’ve read) Is that what you’re using on your blog?

  6. I am really enjoying the theme/design of your blog. Do you ever run into any browser compatibility problems? A few of my blog audience have complained about my website not working correctly in Explorer but looks great in Safari. Do you have any suggestions to help fix this problem?

  7. Vente Kamagra Comment Utiliser Le Levitra 20mg [url=]viagra online prescription[/url] Cod Generic Levaquin Drugs Direct Mastercard Accepted Store Enzyte Drug Interactions Canada Pharmacy Mail Order

  8. Nice post. I was checking continuously this blog and I am impressed! Extremely useful info specifically the last part I care for such information much. I was seeking this certain info for a very long time. Thank you and good luck. sertraline.

  9. Heya this is kind of of off topic but I was wondering if blogs use WYSIWYG editors or if you have
    to manually code with HTML. I’m starting a blog
    soon but have no coding expertise so I wanted to get guidance from someone with experience.
    Any help would be enormously appreciated!

  10. Hey very nice website!! Man .. Beautiful .. Superb ..

    I will bookmark your blog and take the feeds additionally?
    I’m glad to seek out numerous useful information right here within the post, we want
    develop more techniques in this regard, thanks for sharing.
    . . . . .

  11. I am no longer positive the place you’re getting your
    information, but good topic. I must spend some time studying much more or working
    out more. Thanks for magnificent info I was looking for this info for my

  12. Greetings! This is my first comment here so I just wanted to give a quick shout out and say I genuinely enjoy reading through your blog posts.
    Can you suggest any other blogs/websites/forums that go
    over the same topics? Thanks!

  13. I was very pleased to discover this page. I want to to thank you for ones time just for this wonderful read!! I definitely liked every little bit of it and i also have you book-marked to see new things in your blog.


  14. The sculpt is absolutely spot on, Snake looks as though he has literally Skins para GTA San Andreas – MGSV Phantom Pain BIG BOSS Leather Jacket com .. for science, draw a highly detailed picture of Lightning from Final Fantasy but. As i recently started doing personal and public mods for MGSV i got an itch to try
    itchy patches on skin

  15. Hello very cool website!! Guy .. Beautiful ..
    Wonderful .. I’ll bookmark your site and take the feeds also?
    I am happy to find so many helpful info right here within the publish,
    we want develop more strategies on this regard, thank you for sharing.
    . . . . .

  16. With havin so much content and articles do you ever run into any
    problems of plagorism or copyright violation? My website has a lot of
    exclusive content I’ve either written myself or outsourced but
    it appears a lot of it is popping it up all over the web without my agreement.

    Do you know any solutions to help stop content from being
    ripped off? I’d certainly appreciate it.

  17. I know this if off topic but I’m looking into starting my own weblog and was curious what all is required to get setup? I’m assuming having a blog like yours would cost a pretty penny? I’m not very internet savvy so I’m not 100% sure. Any recommendations or advice would be greatly appreciated. Thanks viagra generic

  18. Hi there! This post could not be written any better! Reading through this post reminds me
    of my old room mate! He always kept talking about this.
    I will forward this write-up to him. Pretty sure he
    will have a good read. Thank you for sharing!

  19. I do love the way you have framed this challenge plus it really does offer me some fodder for thought. On the other hand, through everything that I have witnessed, I only hope as other commentary stack on that individuals stay on point and not get started on a soap box regarding some other news du jour. Yet, thank you for this fantastic piece and whilst I do not concur with it in totality, I respect your point of view. kratom cbd

  20. I’m amazed, I must say. Rarely do I come across a blog that’s both
    educative and amusing, and without a doubt, you’ve hit
    the nail on the head. The problem is an issue that not enough folks are speaking intelligently about.

    I am very happy I stumbled across this in my hunt for something regarding this.

  21. really nice

    This is as a matter of fact beneficial information my friend. you are a exceptionally gentle novelist . i lust after to dividend with you my website as well. foresee me what do you deem fro it

    buy youtube views

    Thankyou again for posting such good content. Cheers

Leave a Reply to UhooPert Cancel reply

Your email address will not be published. Required fields are marked *