platforms and the semantic web

Post on 27-May-2015

1.140 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

As presented at http://www.inf.unibz.it/krdb/school/2010/ see also http://hyperdata.org/krdb2010/

TRANSCRIPT

Danny Ayers

danny.ayers@gmail.com

http://dannyayers.com

Platforms and the Semantic Web

Notetaking – not really necessary, just bookmark:

http://hyperdata.org/krdb2010

Questions – if I'm not clear any time, please raise your hand, general questions at the end

Mobile phones – be discrete!

IRC -Server: irc.freenode.netChannel: #swig

available through a browser at: http://www.mibbit.com

Twitter tag - #krdb (I'm @danja)

ObjectivesTo answer questions like :

● What is a platform?

● What are the benefits of using platforms?

● What is a Web platform?

● How can Semantic Web technologies contribute?

● How do different kinds of platforms compare, and what analogies might be useful?

Part 1 : Platforms in General

● Defining “Platform”

● A Plethora of Platforms

● Working with Web Platforms

[a <http://dbpedia.org/resource/Coffee_break>]

Part 2 : Semantic Web Platforms

● Review of Semantic Web Technologies

● Semantic Web Platforms

● The Web as Platform

Defining “Platform”

● a raised horizontal surface (palco)

● political program - a document stating the aims and principles of a political party

● the combination of a particular computer and a particular operating system

● weapons platform - any military structure or vehicle bearing weapons

● platform shoe, chopine - a woman's shoe with a very high thick sole (zeppa)

“Platform” (“Piattaforma”)

Source: Wordnet

things which support something else

● platform shoe, chopine - a woman's shoe with a very high thick sole

(zeppa)

“Platform”

Source: Wordnet

Source : http://en.wikipedia.org/wiki/Chopine

Source: http://www.flickr.com/photos/uggboy/4392602469

Venezia, circa 1500

“...your ladyship is nearer to heaven than when I saw you last by the altitude of a chopine.”

- William Shakespeare Hamlet (1602), Act 2 Scene 2

Working Definition

A platform is a system designed to keep developers and users out of the mud and closer to heaven.

Una piattaforma è un sistema progettato per mantenere gli sviluppatori e gli utenti fuori dal fango e più vicino al cielo.

Layered Models

Layer n + 1

Layer n

Layer n - 1

Supports

Supports

Depends on

Depends on

A Plethora of Platforms

loose taxonomy:

● Abstract Platforms

● Workbench Platforms

● Dedicated Platforms

Abstract Platforms

● branches of mathematics e.g. geometry, logic

● the sciences

● human languages

● the arts

What do they support? : Ideas

Typical mode of use : modelling physical systems

Applications : surveying (earth-measuring), architecture, engineering...

Geometry

Source: http://www.igdb.co.uk/

Physics

Logic (propositional, just declarative statements)

C = A B∧

Typical mode of use : modelling electronic systems

Applications : control circuits, building computers...

&A

BC

Logic (adding predicates and quantifiers)

( x)( y)(Go(x) Person(John) City(Boston) Bus(y)∃ ∃ ∧ ∧ ∧ ∧ Agnt(x,John) Dest(x,Boston) Inst(x,y))∧ ∧

Source: John F. Sowa, http://www.jfsowa.com/krbook

( x)( y)(Go(x) Person(John) City(Boston) Bus(y)∃ ∃ ∧ ∧ ∧ ∧ Agnt(x,John) Dest(x,Boston) Inst(x,y))∧ ∧

Typical mode of use : modelling physical systems

Applications : knowledge representation & processing

( x)( y)(Go(x) Person(John) City(Boston) Bus(y)∃ ∃ ∧ ∧ ∧ ∧ Agnt(x,John) Dest(x,Boston) Inst(x,y))∧ ∧

Source: John F. Sowa, http://www.jfsowa.com/krbook

Concepts :

Named Entities : John, Boston

Entity Types : Person, Go, City, Bus

Relations : Agnt (Agent), Dest (Destination), Inst (Instrument)

Conceptual Graphs(a dialect of Common Logic)

CGs : Alternative Notations

[Person: John] [City: Boston] [Go: *x] [Bus: *y] (Agnt ?x John) (Dest ?x Boston) (Inst ?x ?y)

(exists ((x Go) (y Bus))(and (Person John) (City Boston)(Agnt x John) (Dest x Boston) (Inst x y)))

Graphical

CGIF

CLIF

Source: ISO/IEC 24707

The person John is the agent of some instance of going, the city Boston is the destination, and a bus is the instrument.

John is going to Boston by bus.

Natural Language to CGs

Informal

Formal

Conceptual Graphs can be derived from Natural Language.

Conceptual Graphs express knowledge in a formal mathematical language.

But why should we care about something so abstract?

Case Study : Legacy Re-engineering

Analyze software and documentation of a large corporation.

Generate :

● English glossary of all terms with pointers to the software

● Structure diagrams of the programs, files, and data

● List of discrepancies between software and documentation

Source: John Sowa, http://www.jfsowa.com/talks/iss.pdf

Case Study : Legacy Re-engineering

Software

1.5 million lines of COBOL programs in daily use, some of which up to 40 years old

Documentation

100 megabytes of English reports, manuals, e-mails, Lotus Notes, HTML, and program comments

Source: John Sowa, http://www.jfsowa.com/talks/iss.pdf

IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP RUN.

ADD YEARS TO AGE

age = age + years

“The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense." - Dijkstra

COBOL Examples

Source : http://en.wikipedia.org/wiki/Cobol

Case Study : Legacy Re-engineering

A major consulting firm had estimated that the job would take 40 people two years to analyze the documentation and determine the cross references.

Source: John Sowa, http://www.jfsowa.com/talks/iss.pdf

Case Study : Legacy Re-engineering

Approach

● Translate the COBOL programs to Conceptual Graphs

● Use the Conceptual Graphs from COBOL to interpret the English

● Use the Analogy Engine to compare the graphs derived from COBOL to the graphs derived from English

● Record the similarities and discrepancies

Source: John Sowa, http://www.jfsowa.com/talks/iss.pdf

Case Study : Legacy Re-engineering

VivoMind Analogy Engine

Three methods of analogy:

1. Matching labels: * Compare type labels on conceptual graphs.

2. Matching subgraphs: * Compare subgraphs independent of labels.

3. Matching transformations: * Transform subgraphs.

Source: John Sowa, http://www.jfsowa.com/talks/mitre.htm

Case Study : Legacy Re-engineeringExcerpt from the DocumentationThe input file that is used to create this piece of the BillingInterface for the General Ledger is an extract from the 61 byte filethat is created by the COBOL program BILLCRUA in the BillingHistory production run. This file is used instead of the history filefor time efficiency. This file contains the billing transaction codes(types of records) that are to be interfaced to General Ledger forthe given month.For this process the following transaction codes are used: 32 —loss on unbilled, 72 — gain on uncollected, and 85 — loss onuncollected. Any of these records that are actually taxes arebypassed. Only client types 01 — Mar, 05 — InternalNon/Billable, 06 — Internal Billable, and 08 — BAS are selected.This is determined by a GETBDATA call to the client file.

Note that none of the files or COBOL variables are named.

By matching the English graphs to the COBOL graphs, VAEidentified all the file names and COBOL variables involved.

Source: John Sowa, http://www.jfsowa.com/talks/iss.pdf

Case Study : Legacy Re-engineeringJob finished in 8 weeks by two programmers, Arun Majumdar and André LeClerc.

● Four weeks for customization: Design, ontology, and additional programming for I/O formats.

●Three weeks to run English parser + VAE + extensions:VAE handled matches with strong evidence (close semantic distance). Matches with weak evidence were confirmed or corrected by Majumdarand LeClerc.

● One week to produce a CD-ROM with integrated views of the results: Glossary, data dictionary, data flow diagrams, process architecture, system context diagrams.

Source: John Sowa, http://www.jfsowa.com/talks/iss.pdf

Case Study : Legacy Re-engineering

Contradiction Found by VAE

From analyzing English documentation:

● Every employee is a human being.● No human being is a computer.

From analyzing COBOL programs:

● Some employees are computers.

What is the reason for this contradiction?

Source: John Sowa, http://www.jfsowa.com/talks/iss.pdf

Case Study : Legacy Re-engineering

In 1979 a COBOL programmer made a quick patch :

● Two computers were used to assist human consultants.

● But there was no provision to bill for computer time.

● Therefore, the programmer named the computers Bob andSally, and assigned them employee IDs.

Source: John Sowa, http://www.jfsowa.com/talks/iss.pdf

Case Study : Legacy Re-engineering

For more than 20 years:

● Bob and Sally were issued payroll checks.

● But they never cashed them.

VAE discovered the two computer “employees.”

Source: John Sowa, http://www.jfsowa.com/talks/iss.pdf

Why should we care about abstract platforms?

- concrete benefits.

All models are wrong. Some are useful. - George E. P. Box

A Plethora of Platforms

loose taxonomy:

● Abstract Platforms● Workbench Platforms● Dedicated Platforms

Workbench Platforms

What do they support? :

tools and raw materials

...but end product will often be indirect

A “Jig” - a device that holds a piece of work and guides the tools operating on it

End product

A Template

End product..?

User Interface

Hardware

* stuff *

Traditional Stack

Source : http://en.wikipedia.org/wiki/Operating_system

Hardware

Operating System

Application

User

Platform-Oriented Stack

Source : http://en.wikipedia.org/wiki/Operating_system

User Interface

Platform(s)

Operating System

Database

Hardware

Queries/Stored Procedures

Forms/Reporting

Platform

UserInterface

Users and Developers

Database as Platform

Operating System

Hardware

Virtual Machine

Applications

User

Virtual Machine as Platform

- little difference from traditional stack

Source : http://en.wikipedia.org/wiki/Java_(software_platform)

Java Platform

Operating System

Hardware

JVM

Applications

User

Virtual Machine as Platform - Java Style

Coding Tools

Developer

JRE JDK

System Image

Operating System

Hardware

VM

Applications & Coding Tools

Users and Developers

Virtual Machine as Platform - Squeak Style

(See also : emacs)

Squeak

Workbench

Operating System

Hardware

VM

Applications

User/Developers

Workbench as Platform

Coding Tools

Runtime Compiler

Eclipse Workbench – for developer

“Jig”- a device that holds a piece of work and guides the tools operating on it

<project name="Gradino" default="go" basedir="../">

<!-- 1. Define common properties. -->

<property name="src.dir" value="src"/><property name="build.dir" value="classes"/><property name="lib.dir" value="lib"/>

<property name="scala-compiler.jar" value="/usr/share/scala/lib/scala-compiler.jar"/><property name="scala-library.jar" value="/usr/share/scala/lib/scala-library.jar"/>

<!-- 2. Define Scala CLASSPATH. -->

<path id="scala.classpath"> <pathelement location="${scala-compiler.jar}"/> <pathelement location="${scala-library.jar}"/> <fileset dir="${lib.dir}"> <include name="**/*.jar" /> </fileset></path>

A Template

An Eclipse Application : XMind

Eclipse Platform

● Core functionality : fairly generic app stuff

● Built on a mechanism for discovering, integrating, and running modules called plug-ins

● Plug-ins represented as bundles based on the OSGi * specification

(* originally Open Services Gateway initiative)

OSGi Stack

A Plethora of Platforms

loose taxonomy:

● Abstract Platforms● Workbench Platforms● Dedicated Platforms

Dedicated Platforms

What do they support? : Tasks

Raw Input Output

Storage

Processing

User Interface

Typical Functions of a Dedicated Platform

Dedicated Platform : XMind

Dedicated Platform

Dedicated Platforms

Two examples:

● Recording Studio

● Content Management System

Dedicated Platform – my home studio

Dedicated Platform – Wordpress

User Input

Monitoring

Processing InterconnectionStorage

Dedicated Platform

Core Processing, Interconnection, StorageEnergyXT Digital Audio Workstation (DAW)

Core Processing, Interconnection, Storage

storage on filesystem

Virtual wiring (also supports software plugins) Virtual mixer

Wordpress Dashboard

To some extent modular, via Plugins

Modular

Literally Pluggable

Links are simple...

but...

Multiple Wire Protocols & Connectors

Mic audio

Instrument audio MIDI

Line audio

Multiple Wire Protocols & Connectors

MIDIin/out

Instrument audio out

Power in

Multiple Wire Protocols & Connectors- HTML

MIDIin/out

Instrument audio out

<!DOCTYPE html>

<html>...<h2> <a href="http://localhost/wordpress/?p=4">Hello localhost!</a></h2>

<p>This is some sample text which doesn&#8217;t really</p><p>say a lot</p>…</html>

HTML

RSS

...<item> <title>Hello localhost!</title> <link>http://localhost/wordpress/?p=4</link> <pubDate>Wed, 15 Sep 2010 14:31:01 +0000</pubDate> <dc:creator>admin</dc:creator> <description><![CDATA[This is some sample text which doesn&#8217;t really say a lot]]></description></item>...

System Characteristics : Recording Studio

● Raw Input : instrument output/sounds (various acoustic/electrical signals)

● Output : music (combined and more structured acoustic/electrical signals) sometimes

● Processing : analog & digital signal processing and mixing

● Storage : computer filesystem

● User Interface : core DAW GUI, plus per-module UI

Data Characteristics : Recording Studio

“Models” ● Analog Signals● Digital Signals● Structured Recordings (multi-track time/amplitude)

Formats● Audio data formats (wav, aiff, mp3, CD formats)● MIDI file format● Proprietary DAW multi-track format

Protocols ● Analog audio (various levels/impedances)● MIDI protocol

System Characteristics : Content Management System

● Raw Input : human-readable text + annotations

● Output : more structured text published as Web resources (HTTP+HTML/RSS)

● Processing : text data structured into DB, converted into markup

● Storage : SQL Database

● User Interface : HTML in Web browser (dashboard or output)

Data Characteristics : Content Management System

Models● DB Schema● Markup

Formats● HTML● RSS● Binary image formats● SQL● (PHP)

Protocols ● HTTP

Parallels can be drawn between different kinds of

platforms.

So what?

Problem : Impedance mismatch

I want to connect electric guitar directly to mixer, but -

● Signal from electric guitar : 2 volts @ 10 kΩ impedance

● Signal expected by mixer is 20mV @ 100Ω

Solution : DI Box(Impedance Matching Transformer)

Impedance Matching Transformer(DI Box)

Signal to mixer(100 Ω input)

Signal from electric guitar(10 kΩ output impedance)

(electricity - magnetic flux - electricity)

Problem : Impedance mismatch

I want to connect a blog feed directly to a particular aggregator,but -

● Signal from blog is RSS 2.0

● Signal expected by aggregator is Atom

Impedance Matching Transformer

Signal to aggregator(Atom)

Signal from blog(RSS 2.0)

(xml/internal representation/xml)

XSLTEngine

Stylesheet

Problem : Spaghetti

Spaghetti Simplified

Hidden from User

Spaghetti Modular Audio Synthesizers

User Interface Design Modular Audio Synthesizers

Oscillator FilterOutput

InputOutput Output

User Interface Design Modular Audio Synthesizers

User Interface Design Modular Audio Synthesizers

Yahoo! Pipes – approaching Spaghetti?

Parallels can be drawn between different kinds of

platforms.

So what?

Problems in one domain may have been solved in another.

Problem : multitrack structures not available outside DAW for other tools

● proprietary format only

● vafanculo, need to talk to their developers

Wordpress Export

“When you click the button below WordPress will create an XML file for you to save to your computer.

This format, which we call WordPress eXtended RSS or WXR, will contain your posts, pages, comments, custom fields, categories, and tags.”

Dedicated Platforms

Workbench Platforms

Abstract Platforms Ideas

Tools

Tasks EndProducts

Working with Web Platforms

Layered Models Revisited

Layer n + 1

Layer n

Layer n - 1

Abstracts

Abstracts

Open Systems Interconnection (ISO, 1980's)

Source : http://www.tutorial5.com/content/view/26/79/

Application Protocol

TCP/IP

Ethernet/WiFi

OSI Model Revisited

HTTP + Web-friendly formats

Snowflake APIsOnly one of each

● Wave hands in an abstract fashion

● Slap forehead

Heterogenous Interfaces

User Interface

Platforms

Hardware

User

(Application)

User

User Interface

Platform

Hardware

Part 2 : Semantic Web Platforms

● Review of Semantic Web Technologies

● Semantic Web Platforms

● The Web as Platform

Semantic Web

- a quick review

Aim

To extend the Web to act as a single global database

- using what we know works

DataDocuments

One Web!

Semantic Web = Web of Data

Informed by :

● Traditional RDBMS & other kinds of data store

● Logics

● Grids

● “The Cloud”

● Hypertext and the Web!

● open world assumption

● uniform identifiers

● declarative sentences

Logical Base

● Uniform Identifiers (URIs) – for resources

● Common Interface Protocol (HTTP)

● Standard Representation Formats (notably HTML)

Altogether: a REST Configuration

What works on the Web?

<a href=”http://example.org/home.html“>

Home Page

</a>

page.html home.html

A hyperlink

<a href=”http://example.org/home.html”

rel=”home”>

Home Page

</a>

page.html home.html

home

Evolving the Link

<rdf:Description rdf:about=”http://example.org/page”>

<x:home rdf:resource=”http://example.org/home” />

</rdf:Description>

page home

x:home

<rdf:Description rdf:about=”http://example.org/page”>

<x:home rdf:resource=”http://example.org/home” />

</rdf:Description>

x:home

subject object

http://example.org/page...

http://example.org/home...

Relational View

[Person: John] [City: Boston] [Go: *x] [Bus: *y] (Agnt ?x John) (Dest ?x Boston) (Inst ?x ?y)

Logic Notations Again

CGIF

@prefix : <http://example.org/#> .:John a :Person .:Boston a :City ._:x a :Go ._:y a :Bus ._:x :Agnt :John ._:y :Dest :Boston ._:x :Inst _:y .

RDF :Turtle/N3 Syntax

Saved as cg.n3

Data Web Graphics

<http://example.org/#John> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/#Person> .

<http://example.org/#Boston> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/#City> .

_:x <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/#Go> .

_:y <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/#Bus> .

_:x <http://example.org/#Agnt> <http://example.org/#John> .

_:y <http://example.org/#Dest> <http://example.org/#Boston> .

_:x <http://example.org/#Inst> _:y .

NTriples

$ rapper -i turtle cg.n3 -o ntriples

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://example.org/#"> <City rdf:about="http://example.org/#Boston"/> <Person rdf:about="http://example.org/#John"/> <Go> <Agnt rdf:resource="http://example.org/#John"/> <Inst> <Bus> <Dest rdf:resource="http://example.org/#Boston"/> </Bus> </Inst> </Go></rdf:RDF>

$ rapper -i turtle cg.n3 -o rdfxml-abbrev

RDF/XML

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://example.org/#"> <rdf:Description rdf:about="http://example.org/#John"> <rdf:type rdf:resource="http://example.org/#Person"/> </rdf:Description> <rdf:Description rdf:about="http://example.org/#Boston"> <rdf:type rdf:resource="http://example.org/#City"/> </rdf:Description> <rdf:Description rdf:nodeID="x"> <rdf:type rdf:resource="http://example.org/#Go"/> </rdf:Description> <rdf:Description rdf:nodeID="y"> <rdf:type rdf:resource="http://example.org/#Bus"/> </rdf:Description> <rdf:Description rdf:nodeID="x"> <Agnt rdf:resource="http://example.org/#John"/> </rdf:Description> <rdf:Description rdf:nodeID="y"> <Dest rdf:resource="http://example.org/#Boston"/> </rdf:Description> <rdf:Description rdf:nodeID="x"> <Inst rdf:nodeID="y"/> </rdf:Description></rdf:RDF>

$ rapper -i turtle cg.n3 -o rdfxml

Also RDF/XML

Tip

Use somebody else's parser!

Source : http://www.w3.org/2001/09/06­ecdl/slide17­0.html

Semantic Web Layer Cake (circa 2001)

Source : http://www.w3.org/2010/Talks/0823­acs­egp

Semantic Web Layer Cake (circa now)

Part 2 : Semantic Web Platforms

● Review of Semantic Web Technologies

● Semantic Web Platforms

● The Web as Platform

Semantic Web Platforms

Platform? It's a lib...

Part 1 : Platforms in General

● Defining “Platform”

● A Plethora of Platforms

● Working with Web Platforms

[a <http://dbpedia.org/resource/Coffee_break>]

Part 2 : Semantic Web Platforms

#Johnfoaf:Person

rdf:type

“John”

foaf:name

RDF Nodes :● Resource = named by a URI (do HTTP to find a representation you like)

● Blank node = “there exists”

● Literal = bunch of text

Polemic for the panel :

Search sucks. Why lose things in the first place?

top related