Loomio

Linked Open Data

Simon Tegg PublicSeen by 73

One of the interesting points to come out of the Communicating OpenApp thread was the current focus on Linked Open Data.

Open-App stakeholders unfamiliar with the concept might wonder what Linked Open Data is and what is has to do with "tools for commons-based peer production" and user value.

Use this thread to ask questions about Linked Open Data and what it means for Open-App. I'll update it with my own comments.

Resources:
Tim Berners-Lee TED talk on Linked Open Data

What is Linked Data? video

What is JSON-LD? video

JSON API :: A standard for building APIs in JSON

For more detailed and advanced topics you can check out http://www.euclid-project.eu/

Simon Tegg

I'm quite excited about the potential of Linked Open Data. I see at as the next evolution of the web. Though I probably need to justify what I mean by that.

I think technology has biases. In energy systems for example, rooftop solar has a bias towards homeowners while nuclear power has a bias towards large centralised power companies. Loomio has deliberate built-in biases towards "collaborative decision-making".

I think Linked Open Data has a bias towards individual users, "managed trust" groups and the commons, and away from monopolistic platform providers.

One part of Linked Open Data is using standard vocabularies to make applications interoperable. This is like the technical version of "shared understanding" but for machines!

Tibor Katelbach

Life starts by a link
so I'll start in this conversation as my link to this group :-)
here's one of the standard vocabularies for many things
https://schema.org/docs/full.html

in open source movements it is recommended to use, as much as possible, field names and description types, as a way to start sharing standard namings for anything we specify and describe.

If we all share the way we call things, things can be compared, put together, compiled, joined, mixed up..etc
On the other hand when similar things have a different names it's almost impossible to know they are the same.

it's standardisation to strengthen diversity :-)
since these ontologies are open to contribution of new properties

Bob Haugen

This is an important topic to discuss in some detail, which, as we know, is where the devil lurks.

One of the details that I do not yet understand is the full use of linked data. (I mean, I understand what people are saying about it, but I do not yet understand from experience.)

I understand about interoperability and message-communication between peers. But http://linkeddata.org/ says "Linked Data is about using the Web to connect related data..."

I understand from that the emergence of a layer above individual Web pages, which they often depict in network diagrams, as in http://lod-cloud.net/versions/2011-09-19/lod-cloud.html. (Although that diagram, curiously, links stuff that has been centralized into http://datahub.io - and the links take you to pages on that site, not to the original sources. Wonder why...)

So do we foresee uses of some kind of overview in OpenApps? What would it do for us? @tiborkatelbach says "things can be compared, put together, compiled, joined, mixed up..etc". What are some examples of what we could do like that?

And what other uses of linked data have I not even thought of yet?

I am asking these questions for my own understanding, but also because I want to tell a compelling story about linked data and the importance of openness in that respect to some friends in academia who don't get it at all yet.

Bob Haugen

Another of the details to discuss is that many of the supposedly-authoritative sources of linked data also have biases. For example, http://www.w3.org/TR/vocab-org/

It is biased toward internal organization charts in hierarchical companies. It will not work for value networks or any other kind of P2P organization. Or even traditional company supply chains and value systems.
What do we do about that?

And that's not the only one. Schema.org also has a bias, although I can't quite put my finger on it yet. Seems like one of those everything-including-the-kitchen-sink collections that happens when a group of stakeholders wants to include everybody's contribution. Which is nice for them, but you were not a stakeholder, it may not work for you, and it's not very logical ontologically. One of the problems is that many of the nodes in the tree have cross-relationships, like SellAction and BuyAction. So it should be a network, not a tree.

Tibor Katelbach

“things can be compared, put together, compiled, joined, mixed up..etc”
"semantic web and linkeddata standards" simply mean using a common vocabulary

so in different contexts (websites, applications..) when talking about the same thing, ex: 3 websites talking about "Cucumbers", a robot can figure it out thanks to the common vocabulary, linking those 3 talks to a unique instance Cucumber.
By using the common language those three sites are working towards inter-connectivity opening up to a larger picture like who are the cucumber experts, cucumber images, cucumber species ...etc
LinkedData gives
- a context to things
- a hierarchy or a parenthood to things
- helps organize and classify things
and much more

Bob Haugen

@tiborkatelbach - thanks. Can you (or anybody else) think of practical examples in an OpenApp situation? For example, the OpenApp roadmap plans to have Loomio and Cobudget be the first apps to be interconnected. How would linked data be used in that context?

Tibor Katelbach

sorry dont pay attention to my previous post thought there were discussion about this.

if both projects are structured using semanticWeb and LD they'll automatically understand each other because they'll be using the same words.
For example when talking about a Project , if in both cases a project is described using DOAP http://en.wikipedia.org/wiki/DOAP
Then they'll easily be able to pick and use whatever the need work with. the access to the information is done using an API.

Combining

- an open API
- Semantic Web
- Linked Data
give you a real Open App
:-)

Lynn Foster

Here is a use case, which I think is real, but others can correct if not:

Let's say there are person, group, and association data (to simplify for this example, this can be associations between people and groups). The data lives on different servers, let's say Enspiral, Sensorica, and Mikorizal. Each of these servers has an instance of the Person and Group apps, which uses and exposes linked data which has the same ontology.

Each piece of data has to have a system of record (http://en.wikipedia.org/wiki/System_of_record), and anything else is a cached copy. So, Mikorizal is my primary "space" and my person data lives there (system of record). Let's say I am a contributor to Enspiral and Sensorica. I'm thinking my association to Enspiral lives on the Enspiral server and my association to Sensorica lives on the Sensorica server. So, Enspiral and Sensorica Group apps need to get my person data from Mikorizal whenever they need it, or cache it on their servers? And at least need to cache the identifier?

And whatever non-identifier data is cached needs to be updated using some protocol, perhaps triggered by change to the system of record?

Is this real or am I missing something I should know about linked data? What is the mechanism for apps to retrieve linked data from other places when they need it? What is the mechanism to update cached data? How would identifiers get formed? URLs? (There are many Lynn Fosters.) If so, what if I want to move my system of record person data to another server and instance of Person app?

These are the things my perhaps-overly-detail-oriented brain wonders. :) Thanks!

Bob Haugen

Maybe I should explain a bit about where I am coming from in my linked data questions. I understand the sales pitch. But the sales pitch has been pitched for 15 years. The original pitchers are tired and disappointed. See
http://www.mkbergman.com/1771/a-decade-in-the-trenches-of-the-semantic-web/
The stuff never took off the way they hoped.

Now, sometimes new ideas take that long to be adopted. But the pitch has changed over time, too: from capital S Semantic Web to little s semantic web to JSON-LD to just use plain JSON and link to a context document:
http://hublog.hubmed.org/archives/001984.html

So there's some friction and pretty constant push back. Even the editor of the JSON-LD spec complains about the big S Semantic Web.
http://manu.sporny.org/2014/json-ld-origins-2/

I'm not coming from any of those viewpoints. I'd like to see the stuff work. But I want to think about how it will work in our context, and what we will do with it, in some excruciating detail.

P.S. I don't mean this as criticism for overview-type responses, they are also useful. I was not clear about where I was coming from. Trying to be more clear now.

Bob Haugen

@carolinesmalley - “25-30 years”? Little did I know...;-)

Mikey

@lynnfoster:

identifiers are URLs, yes.

the mechanism to distribute changes from the primary records to replica copies is independent of Linked Data. this is all an open question, however a possible solution that would work today is using Linked Data Fragments to do federated queries across "spaces" you trust to find the data you want, then if you want to update or listen to changes just do it directly to the "space" that owns the data. more mad science distributed data systems are gundb and secure-scuttlebutt.

Bob Haugen

@carolinesmalley - I'm 73. Older than dirt.

Bob Haugen

@elfpavlik - euclid looks pretty comprehensive, thanks!

Caroline Smalley

@elfpavlik thanks for the vids :) watched one.. and no I haven't read.. took a quick look, but to be honest, it's somewhat over my head!

okay.. so, in seeking to figure out what all this means in a practical / where's the relevance to me 'layman's' kinda way, here's where I'm at:

guess what i'm thinking is CM creates a backbone that apps (all bells and whistles aka 'features') plug into and end result is OpenApp Ecosystem. there could be multiple backbones for different platforms but if the backbones share transferable (translatable?!) protocols, then all data could be shared somewhat seamlessly. if we implement key words (data fields) that relate to the work / what we're trying to achieve, we could map relationships that would accelerate our abiltiy to get there. see idea of Data Analysis for creation of a Prosperity Graph (came up with the idea a while back when a data analyst asked me "what sort of graph would CM create?") http://thecitizensmedia.com/pub/section/data-analysis?id=1155

think i've sent this already, but here's a link to platform we've built. so what would the backbone comprise of? what's the skeleton, so to speak? thinking the answer = the cms, which we've designed to connect distributed data. blogs (with language translation) becomes an app, profiles... and so on. http://thecitizensmedia.com/pub/section/the-platform?id=1119

sorry guys.. bad to kindergarten?!

Bob Haugen

@carolinesmalley - is the source for that stuff open? e.g. github repo, whatever? (Forgive me if it was obvious and I'm blind...)

elf Pavlik

Maybe sharing simple example I played with can help with avoiding drifting into black holes ;)

If it will sound confusing, I plan to record short screencast and already have sequence diagram for it which can make it clearer. I made 4 very simple elements:

webfingerd simply helps to discover my profile page from my email address, so having perpetual-tripper@wwelves.org it will return https://wwelves.org/perpetual-tripper (or any other URL I want)

webprofiled serves my Linked Data profile, currently supporting RDFa and JSON-LD
to see graph embeded in RDFa just copy source of https://wwelves.org/perpetual-tripper/ and paste into http://rdfa.info/play/
to see JSON-LD one can use simple Content-Negotiation, in terminal: $ curl https://wwelves.org/perpetual-tripper/ -H "Accept: application/ld+json" BTW HTML page with RDFa gets generated from that JSON-LD currently with mustache but I plan to yank out part of http://viejs.org to do it in nicer way

webserviced offers for now just login/logout with Mozilla Persona and discovery of Linked Data profile location via webfinger

webfingerd, webprofiled, webserviced all do http://enable-cors.org/

greeting-app just provides super basic SPA to interact with webserviced. for now I can login from browser javascript console with navigator.id.request()
then it sends it to webprofiled (easily hosted on different domain than one which serves greeting-app). once i do persona dance webservice will get from webfingered URL to my webpage powered by webprofiled and then get data in JSON-LD. after that it sends it to greeting-app which greets me with my name and avatar.

let's imagine now that we replace webserviced with loomio backend and greeting-app with loomio frontend. this way i can just click 'Login with Persona' and it will greet me my name, avatar, know my current location, languages i speak, whatever i decide to publish in my independent homepage, in my case powered by webprofiled but someone else can just write it with text editor, use Drupal, Wordpress whatever :)

Once front end connects to CORS aware services, it can for example send my posts and comments, at the same time to my Personal Data Space and to instance(s) of loomio backend. It may make less sense for discourse type of features, but if I want to offer a rideshare or couch, nowadays I can't easily post it to http://blablacar.com , http://carpooling.com, http://liftshare.com etc. I also can't use my favorite trip planner app but need to deal with different human (graphical) interface to interact with 'different' services which in practice offer exactly the same functionality. Lately I find the last issue of big importance, imagine if you would need to use the same email client that your friend uses to receive a message (hell no!) relevant links here: http://decoupledcms.org/ & http://hydra-cg.com/

IMO having common vocabularies to express concepts we interact with ( http://schema.org & http://lov.okfn.org ) as well as common ways of specifying what interaction we can have with those resources (http://schema.org/Action & http://hydra-cg.com ) gives us nice foundation for building systems which can interoperate :)

BTW I would encourage technical folks to join http://www.w3.org/wiki/Socialwg and less technical ones to join: http://www.w3.org/wiki/Socialig

I hope this post didn't run to long or got to confusing...

Caroline Smalley

@bobhaugen it will be! through PPL is the intention (http://thecitizensmedia.com/pub/section/peer-production-design?id=1171) we'll be re-writing in either python or ruby. we began building back in 2006.. what we were trying to achieve in terms of key goals along with our thinking = practically the same as Joshua speaks to.

what's worth keeping is what we've learned in building distributed architecture. (note info and link i sent to access sandbox)

i asked Eric how to answer: (and yes.. he does keep a github)
The code isn't open right now and can't be shared with anyone until there's been time to do a full sweep to make sure nothing private (such as keys, passwords, ...) is in there. I think a lot of the existing code is obsolete anyway, there's still a lot of stuff in there that's leftover from the state of the art (or more accurately, the lack of useful frameworks and such) as of 2006 when I started it. I don't think there's anything worth bothering with in the source code, the database schema and maybe some of the internationalization/localization ideas are the only bits worth considering IMO.

Bob Haugen

@elfpavlik - your comment was not too long, I really want those kinds of details. Thanks!

Bob Haugen

@carolinesmalley - would be good to have somebody rewrite the PPL to cover software a bit more explicitly.

Bob Haugen

@elfpavlik - you wrote " I plan to record short screencast and already have sequence diagram for it which can make it clearer."

Yes please, sequence diagram!

Caroline Smalley

@bobhaugen agreed. perhaps something that will drop out of this process? difficult to say. my personal take is that the only way to get answers is get it going. guessing there will need to be some kind of stackoverflow rating system that 'weighs' a programmers contribution to whatever app's being developed, then anything anyone does in using the app for commercial gain get's distributed in proportion to contribution/rating. lots of potential to get kinda messy.

Bob Haugen

@carolinesmalley - We'd like to develop a treatment of this for software development. Based on github commits.

Source: https://github.com/valnet/valuenetwork

It's now being used for open hardware creation and document workflows.

We're here in the OpenApp Ecosystem to figure out if we can turn it into a bunch of open apps.

Bob Haugen

Okay, so what is the collective noun for Open Apps? (Like, a flock of pigeons, or a murder of crows, or ...?)

Simon Tegg

an ecosystem of apps..? :)
Note: the way Mikey and have been talking about it internally is "services" (api's that do one thing), "apps" that have a frontend and probably combine and use several "services".

"stores" are a particular sort of "service" for data resources , and are how React describe a similar concept.

Tibor Katelbach

@elfpavlik thanks for the great links to bounce on, especially Socialwg. I requested to join but it seems not so straight forward process

Simon Tegg

One of the core designers of JSON-LD Marcus Lanthaler and Dmitri Van Hees will be giving workshops on Linked Data at the API conference in the Uk later this month. Hopefully their talks make it online.

Jon Richter

First of all, thanks for the EUCLID and mkbergman links.

From the perspective of the TransforMap/MMM project, Linked Open Data is the preferred way of integrating multiple (150+) data sources, even if it is only referred to as a blueprint.

What I see especially challanging, next to all admittedly already thrilling technical questions, is the social process of creating shared vocabularies. The d:swarm alpha, coming from library sciences with help from AKSW, is one of the interfaces that I can imagine becoming a collaborative ontology editor. Very much like AKSW's OntoWiki approach.

Fortunately philosophy already tells us that the world seems to exist as a multitude of local ontologies and no universal streamlining is neccessary.

Bob Haugen

@paulmackay1 - thanks a lot. I'll see if I can make contact.
(followup: I did make contact with Philipp Grunewald, who sent me some questions, and I sent some answers, and so far, that was the end of the conversation. If anybody would actually like to read the conversation, let me know, but it probably is not going anywhere.)

Jon Richter

There are lots of technical formalisms in the paper that I don’t understand, and to my mind the paper does not actually identify the “secrets” to engineering digital commons. But that’s okay. What is more important to me, for now, is that there are computer scientists deliberately trying to figure out how to engineer “planned emergence,” as Pitt et al. put it. The scientists envision “a new type of intrinsically adaptive institution” that can adapt to rapid changes in the social, technological and physical environment (unlike contemporary government). They also seek to combine “top-down control and coordination [with] bottom-up emergence and adaptation” in order to create hybrid institutions.

via Bollier.org about a pay-walled paper on Axiomatization of Socio-Economic Principles for Self-Organizing institutions. The full abstract:

We address the problem of engineering self-organizing electronic institutions for resource allocation in open, embedded, and resource-constrained systems. In such systems, there is decentralized control, competition for resources and an expectation of both intentional and unintentional errors. The “optimal” distribution of resources is then less important than the endurance of the distribution mechanism. Under these circumstances, we propose to model resource allocation as a common-pool resource management problem, and develop a formal characterization of Elinor Ostrom’s socio-economic principles for self-governing institutions. This article applies a method for sociologically inspired computing to give a complete axiomatization of six of Ostrom’s eight principles in the Event Calculus. A testbed is implemented for experimenting with the axiomatization. The experimental results show that these principles support enduring institutions, in terms of longevity and membership, and also provide insight into calibrating the transaction and running costs associated with implementing the principles against the behavioral profile of the institutional membership. We conclude that it is possible to express Ostrom’s principles in logical form and that they are necessary and sufficient conditions for enduring self-organizing electronic institutions to manage sustainable common-pool resources.

Jon Richter

@bobhaugen WebID is an authentication system based on in-browser client-certificates that is currently contested by the identity pattern developed by the Web Payments group.

Your client certificates' public key(s) get published on your URI so you can log-in anywhere your WebID is used for authentication. Also see Henry Story's XWiki WebID page for an example.

Bob Haugen

@jonrichter - ok, so we got (a) the stuff I copied and pasted from what @tiborkatelbach posted, (b)WebID, and (c) the identity pattern developed by the Web Payments group (this? https://web-payments.org/specs/source/identity-credentials/ )

Any more contenders? And which should we choose, assuming we need to choose?

Jon Richter

That's @elfpavlik's playground.

Tibor Katelbach

Thanks Bob for the home work.
Jon is right that we build our person json-ld map based on elf's profile , in order to share something existing that we agreed with instead of creating yet another profile endpoint. I'm working on the person editor at the moment based on these input fields.

Mikey

WebID and the Web Payments identity are both based on foaf:Person or schema.org:Person objects, so we're good.

elf Pavlik

@ahdinosaur why did you chose YAML? i also considered it when preparing plp-berlin-hacks repo but then went with CSON

Mikey

@elfpavlik, i like writing YAML more than writing JSON and didn't think of CSON. what are your thoughts on YAML vs CSON for JSON-LD objects like this?

Tibor Katelbach

@elfpavlik I just need a form inside our application it's doing the same thing but has to correspond to our design specifications, and small application specifities , but the end point json-ld is the same