20
Graphity Generic Linked Data platform Do more with less!

Graphity - Generic Linked Data Platform

Embed Size (px)

DESCRIPTION

Linked Enterprise Data Patterns Workshop 2011 presentation

Citation preview

Page 1: Graphity - Generic Linked Data Platform

GraphityGeneric Linked Data platform

Do more with less!

Page 2: Graphity - Generic Linked Data Platform

Wulffmorgenthaler

Danish comic strip since 2001

Page 3: Graphity - Generic Linked Data Platform

HeltNormalt

Rebranding in 2011

Page 4: Graphity - Generic Linked Data Platform

Old codebase

ZendFramework

ModelPHP

templatesMySQLPropelORM

Controller

View

SQL arrays

Request Response

Objects

Page 5: Graphity - Generic Linked Data Platform

Model-View-Controller

Webframework

Model TemplatesRDBMSORM/DAO

Controller

View

SQL

Request Response

Objects

Page 6: Graphity - Generic Linked Data Platform

Leaky abstractions

Page 7: Graphity - Generic Linked Data Platform

Incompatible APIs

DataConversions(N) ≥ 2 × (N − 1)Number of data (model) conversions between source datastore and target datastore

Custom codeBugs

Page 8: Graphity - Generic Linked Data Platform

Model mismatch

DataConversions(N) = 2 × (N − 1)

RDF

XML

JSON

Relationalmodel

Custom codeBugs

ObjectModel

Page 9: Graphity - Generic Linked Data Platform

Linked Data(sources)

DataConversions(N) = 0

Page 10: Graphity - Generic Linked Data Platform

REST+RDF

JAX-RS Jena

ResourcegetURI()

Request/Response Model

@Path Property

UriBuilder Literal

Page 11: Graphity - Generic Linked Data Platform

RDFResource

getURI()

getModel()

exists()

describe()

authenticate()

authorize()

Page 12: Graphity - Generic Linked Data Platform

Linked Systems

PlatformGraphity

ModelRDF store

ControllerResources

ViewXSLT

RDF/POST

DOMSPARQLUpdate

Request Response

RDF

Page 13: Graphity - Generic Linked Data Platform

Unified model

DataConversions(N) = 2

RDF

XMLRDF/XML

JSONJSON-LD

Relationalmodel

DOM D2RQ

Objectmodel

RDF API

Page 14: Graphity - Generic Linked Data Platform

Generic design

Reuse reuse reuse!

APIs: JAX-RS, Jena, XSLT

Ontologies: ACL, DC, SIOC, FOAF, Zodiac, LD API

Push abstractions & logic to RDF

Generalize cases

Refactor to minimize

Inversion of control

Overload default behaviour

Page 15: Graphity - Generic Linked Data Platform

Codebase comparison

Component Language # of files

# of lines Language # of files # of lines

HeltNormalt Old codebase

Model SPARQL 89 5590 PHP 93 19325

Model (strips) 7 588

View XSLT 60 9293 PHP 67 2528

View (strips) 5 784

Controller PHP 65 4155 PHP 51 7625

Controller (strips) 1 32

Graphity Zend Framework

Platform PHP 88 6043 PHP 284 50755

Page 16: Graphity - Generic Linked Data Platform

Server load

Page 17: Graphity - Generic Linked Data Platform

Potential RDF sources

HTTP traffic

Filesystems

Program code

repositories

source

Page 18: Graphity - Generic Linked Data Platform

Generic Linked Data tools & UI

Browser/editor

Analytics

Maps

Timelines/calendars

Real-time streams

Social widgets

Page 19: Graphity - Generic Linked Data Platform

W3C involvment

Best practices

Standard RDF/JSON syntax

Standard RDFizer interface

GRDDL stylesheet repository

Community involvment

w3c.github.com