Upload
danny-ayers
View
1.140
Download
1
Tags:
Embed Size (px)
DESCRIPTION
As presented at http://www.inf.unibz.it/krdb/school/2010/ see also http://hyperdata.org/krdb2010/
Citation preview
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’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’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/06ecdl/slide170.html
Semantic Web Layer Cake (circa 2001)
Source : http://www.w3.org/2010/Talks/0823acsegp
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?