SlideShare a Scribd company logo
1 of 141
Download to read offline
Platforms
and the Semantic Web


      Danny Ayers

 danny.ayers@gmail.com

 http://dannyayers.com
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.net
   Channel: #swig

   available through a browser at: http://www.mibbit.com
Twitter tag - #krdb
             (I'm @danja)
Objectives
To 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”
“Platform” (“Piattaforma”)
●   a raised horizontal surface (palco)

● political program - a document stating the
aims and principles of a political party
                                                     things
●the combination of a particular computer            which
and a particular operating system                    support
                                                     something
●weapons platform - any military structure           else
or vehicle bearing weapons

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

                                               Source: Wordnet
“Platform”


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




                            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

      Supports   Depends on

           Layer n


      Supports   Depends on

         Layer n - 1
A Plethora of Platforms
loose taxonomy:


●   Abstract Platforms

●   Workbench Platforms

●   Dedicated Platforms
Abstract Platforms

What do they support? : Ideas
   ●   branches of mathematics
        e.g. geometry, logic

   ●   the sciences

   ●   human languages

   ●   the arts
Geometry




Typical mode of use : modelling physical systems

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




          Source: http://www.igdb.co.uk/
Logic
(propositional, just declarative statements)



           A
                                &                        C
           B



                           C=A∧B

Typical mode of use : modelling electronic systems

Applications : control circuits, building computers...
Logic
(adding predicates and quantifiers)




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


       (∃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

                                Source: John F. Sowa, http://www.jfsowa.com/krbook
Conceptual Graphs
 (a dialect of Common Logic)




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

Concepts :
Named Entities : John, Boston

Entity Types : Person, Go, City, Bus

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

                                 Source: John F. Sowa, http://www.jfsowa.com/krbook
CGs : Alternative Notations
                                                    Graphical




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


(exists ((x Go) (y Bus))
(and (Person John) (City Boston)                      CLIF
(Agnt x John) (Dest x Boston) (Inst x y)))
                                     Source: ISO/IEC 24707
Natural Language to CGs

         John is going to Boston by bus.
                                              Informal

The person John is the agent of some instance of
going, the city Boston is the destination, and a bus is
the instrument.
                                              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
COBOL Examples
   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

                                  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-engineering
Excerpt from the Documentation
The input file that is used to create this piece of the Billing
Interface for the General Ledger is an extract from the 61 byte file
that is created by the COBOL program BILLCRUA in the Billing
History production run. This file is used instead of the history file
for time efficiency. This file contains the billing transaction codes
(types of records) that are to be interfaced to General Ledger for
the given month.
For this process the following transaction codes are used: 32 —
loss on unbilled, 72 — gain on uncollected, and 85 — loss on
uncollected. Any of these records that are actually taxes are
bypassed. Only client types 01 — Mar, 05 — Internal
Non/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, VAE
identified all the file names and COBOL variables involved.
                                     Source: John Sowa, http://www.jfsowa.com/talks/iss.pdf
Case Study : Legacy Re-engineering
Job 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 and
Sally, 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

 * stuff *


Hardware
Traditional Stack




             Source : http://en.wikipedia.org/wiki/Operating_system
Hardware
Operating System
Application
User
Platform-Oriented Stack



                    User Interface
                        Platform(s)




             Source : http://en.wikipedia.org/wiki/Operating_system
Database as Platform
                 Users and Developers



  User
Interface      Forms/Reporting
              Queries/Stored Procedures


Platform         Database


              Operating System

                 Hardware
Virtual Machine as Platform


                       User
                   Applications
                 Virtual Machine
                Operating System

                    Hardware



     - little difference from traditional stack
Java Platform




          Source : http://en.wikipedia.org/wiki/Java_(software_platform)
Virtual Machine as Platform
- Java Style
           User                    Developer
        Applications              Coding Tools
           JRE                        JDK
                         JVM
                  Operating System

                       Hardware
Virtual Machine as Platform
- Squeak Style

          Users and Developers

         Applications & Coding Tools

               System Image

                    VM
             Operating System

                 Hardware


                                  (See also : emacs)
Squeak
Workbench as Platform

                 User/Developers

        Applications               Coding Tools
                       Workbench

          Runtime                 Compiler
                         VM
                Operating System

                       Hardware
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
Typical Functions of a Dedicated Platform


               User Interface




   Raw Input    Processing      Output



                  Storage
Dedicated Platform : XMind
Dedicated Platform
Dedicated Platforms


Two examples:

●   Recording Studio

●   Content Management System
Dedicated Platform – my home studio
Dedicated Platform – Wordpress
Dedicated Platform



               Monitoring



                  User Input



                     Processing Interconnection
                              Storage
Core Processing, Interconnection, Storage
      EnergyXT Digital Audio Workstation (DAW)
Core Processing, Interconnection, Storage




 Virtual wiring (also supports
 software plugins)               Virtual mixer



              storage on filesystem
Wordpress Dashboard
To some extent modular, via Plugins
Modular
Literally Pluggable
Links are simple...




                      but...
Multiple Wire Protocols & Connectors




              Instrument
                 audio     MIDI


  Mic audio                       Line audio
Multiple Wire Protocols & Connectors


    MIDI
   in/out
                   Instrument
                    audio out


                                Power in
Multiple Wire Protocols & Connectors
- HTML

    MIDI
   in/out
                   Instrument
                    audio out
HTML

<!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>
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 from
electric guitar                                       Signal to mixer
(10 kΩ output                                         (100 Ω input)
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 from blog                                 Signal to
(RSS 2.0)                   XSLT                 aggregator
                           Engine                (Atom)

                        Stylesheet


             (xml/internal representation/xml)
Problem : Spaghetti
Spaghetti Simplified
Hidden from User
Spaghetti
Modular Audio Synthesizers
User Interface Design
Modular Audio Synthesizers




                 Output
                             Input            Output
    Oscillator                       Filter
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.”
End
Dedicated Platforms   Tasks
                              Products


Workbench Platforms   Tools



 Abstract Platforms   Ideas
Working with Web Platforms
Layered Models Revisited

        Layer n + 1

         Abstracts


          Layer n

          Abstracts

         Layer n - 1
Open Systems Interconnection
(ISO, 1980's)




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

 Application Protocol            HTTP
                        + Web-friendly formats

       TCP/IP

    Ethernet/WiFi
Snowflake APIs
Only one of each
Heterogenous Interfaces


  ●   Wave hands in an abstract fashion

  ●   Slap forehead
User

       User Interface
       (Application)

       Platforms



Hardware
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
One Web!




       Documents   Data
Semantic Web = Web of Data

Informed by :

●   Traditional RDBMS & other kinds of data store

●   Logics

●   Grids

●   “The Cloud”

●   Hypertext and the Web!
Logical Base

   ●   open world assumption

   ●   uniform identifiers

   ●   declarative sentences
What works on the Web?

●   Uniform Identifiers (URIs)
        – for resources

●   Common Interface Protocol (HTTP)

●   Standard Representation Formats
    (notably HTML)

Altogether: a REST Configuration
A hyperlink

        page.html             home.html




<a href=”http://example.org/home.html“>
Home Page
</a>
Evolving the Link

        page.html              home.html




                    home




 <a href=”http://example.org/home.html”
     rel=”home”>
 Home Page
 </a>
page                     home

                     x:home




<rdf:Description
  rdf:about=”http://example.org/page”>
<x:home
  rdf:resource=”http://example.org/home” />
</rdf:Description>
Relational View


                           x:home
              subject                    object
       http://example.org/page   http://example.org/home
                  ...                       ...




<rdf:Description
  rdf:about=”http://example.org/page”>
<x:home
  rdf:resource=”http://example.org/home” />
</rdf:Description>
Logic Notations Again
[Person: John] [City: Boston] [Go: *x] [Bus: *y]
(Agnt ?x John) (Dest ?x Boston) (Inst ?x ?y)           CGIF


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



                         Saved as cg.n3
Data Web Graphics
NTriples

<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 .


                      $ rapper -i turtle cg.n3 -o ntriples
RDF/XML
<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
Also 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
Tip

Use somebody else's parser!
Semantic Web Layer Cake
(circa 2001)




     Source : http://www.w3.org/2001/09/06­ecdl/slide17­0.html
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
foaf:name
        rdf:type
                   foaf:Person
#John                                   “John”
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?

More Related Content

Similar to Platforms and the Semantic Web

INTERFACE, by apidays - APIs of the Future: Are you Ready? by Mike Amundsen
INTERFACE, by apidays  - APIs of the Future: Are you Ready? by Mike AmundsenINTERFACE, by apidays  - APIs of the Future: Are you Ready? by Mike Amundsen
INTERFACE, by apidays - APIs of the Future: Are you Ready? by Mike Amundsenapidays
 
Can functional programming be liberated from static typing?
Can functional programming be liberated from static typing?Can functional programming be liberated from static typing?
Can functional programming be liberated from static typing?Vsevolod Dyomkin
 
GATE, HLT and Machine Learning, Sheffield, July 2003
GATE, HLT and Machine Learning, Sheffield, July 2003GATE, HLT and Machine Learning, Sheffield, July 2003
GATE, HLT and Machine Learning, Sheffield, July 2003butest
 
Stream Reasoning: Where we got so far. Oxford 2010.1.18
Stream Reasoning: Where we got so far. Oxford 2010.1.18Stream Reasoning: Where we got so far. Oxford 2010.1.18
Stream Reasoning: Where we got so far. Oxford 2010.1.18Emanuele Della Valle
 
Open Access Week 2017: Life Sciences and Open Sciences - worfkflows and tools
Open Access Week 2017: Life Sciences and Open Sciences - worfkflows and toolsOpen Access Week 2017: Life Sciences and Open Sciences - worfkflows and tools
Open Access Week 2017: Life Sciences and Open Sciences - worfkflows and toolsOpenAIRE
 
I want to know more about compuerized text analysis
I want to know more about   compuerized text analysisI want to know more about   compuerized text analysis
I want to know more about compuerized text analysisLuke Czarnecki
 
Open Analytics Environment
Open Analytics EnvironmentOpen Analytics Environment
Open Analytics EnvironmentIan Foster
 
Copy of Copy of Untitled presentation (1).pdf
Copy of Copy of Untitled presentation (1).pdfCopy of Copy of Untitled presentation (1).pdf
Copy of Copy of Untitled presentation (1).pdfjosephdonnelly2024
 
Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...
Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...
Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...WSO2
 
Harmonic Stack for Speed
Harmonic Stack for SpeedHarmonic Stack for Speed
Harmonic Stack for SpeedYung-Yu Chen
 
90seconds Presentation
90seconds Presentation90seconds Presentation
90seconds Presentationpbihler
 
Reaktive Programmierung mit den Reactive Extensions (Rx)
Reaktive Programmierung mit den Reactive Extensions (Rx)Reaktive Programmierung mit den Reactive Extensions (Rx)
Reaktive Programmierung mit den Reactive Extensions (Rx)NETUserGroupBern
 
Building and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache AirflowBuilding and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache AirflowKaxil Naik
 
Where are yours vertexes and what are they talking about?
Where are yours vertexes and what are they talking about?Where are yours vertexes and what are they talking about?
Where are yours vertexes and what are they talking about?Roberto Franchini
 
WSO2Con ASIA 2016: An Introduction to the WSO2 Analytics Platform
WSO2Con ASIA 2016: An Introduction to the WSO2 Analytics PlatformWSO2Con ASIA 2016: An Introduction to the WSO2 Analytics Platform
WSO2Con ASIA 2016: An Introduction to the WSO2 Analytics PlatformWSO2
 
Curation and Digital Storytelling
Curation and Digital StorytellingCuration and Digital Storytelling
Curation and Digital StorytellingShawn Day
 
Development of the database, the website and the online transcription platfor...
Development of the database, the website and the online transcription platfor...Development of the database, the website and the online transcription platfor...
Development of the database, the website and the online transcription platfor...Itinera Nova
 
July Clojure Users Group Meeting: "Using Cascalog with Palo Alto Open Data"
July Clojure Users Group Meeting: "Using Cascalog with Palo Alto Open Data"July Clojure Users Group Meeting: "Using Cascalog with Palo Alto Open Data"
July Clojure Users Group Meeting: "Using Cascalog with Palo Alto Open Data"Paco Nathan
 
Generative Models and ChatGPT
Generative Models and ChatGPTGenerative Models and ChatGPT
Generative Models and ChatGPTLoic Merckel
 

Similar to Platforms and the Semantic Web (20)

INTERFACE, by apidays - APIs of the Future: Are you Ready? by Mike Amundsen
INTERFACE, by apidays  - APIs of the Future: Are you Ready? by Mike AmundsenINTERFACE, by apidays  - APIs of the Future: Are you Ready? by Mike Amundsen
INTERFACE, by apidays - APIs of the Future: Are you Ready? by Mike Amundsen
 
Can functional programming be liberated from static typing?
Can functional programming be liberated from static typing?Can functional programming be liberated from static typing?
Can functional programming be liberated from static typing?
 
GATE, HLT and Machine Learning, Sheffield, July 2003
GATE, HLT and Machine Learning, Sheffield, July 2003GATE, HLT and Machine Learning, Sheffield, July 2003
GATE, HLT and Machine Learning, Sheffield, July 2003
 
Stream Reasoning: Where we got so far. Oxford 2010.1.18
Stream Reasoning: Where we got so far. Oxford 2010.1.18Stream Reasoning: Where we got so far. Oxford 2010.1.18
Stream Reasoning: Where we got so far. Oxford 2010.1.18
 
Open Access Week 2017: Life Sciences and Open Sciences - worfkflows and tools
Open Access Week 2017: Life Sciences and Open Sciences - worfkflows and toolsOpen Access Week 2017: Life Sciences and Open Sciences - worfkflows and tools
Open Access Week 2017: Life Sciences and Open Sciences - worfkflows and tools
 
I want to know more about compuerized text analysis
I want to know more about   compuerized text analysisI want to know more about   compuerized text analysis
I want to know more about compuerized text analysis
 
Open source technology
Open source technologyOpen source technology
Open source technology
 
Open Analytics Environment
Open Analytics EnvironmentOpen Analytics Environment
Open Analytics Environment
 
Copy of Copy of Untitled presentation (1).pdf
Copy of Copy of Untitled presentation (1).pdfCopy of Copy of Untitled presentation (1).pdf
Copy of Copy of Untitled presentation (1).pdf
 
Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...
Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...
Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...
 
Harmonic Stack for Speed
Harmonic Stack for SpeedHarmonic Stack for Speed
Harmonic Stack for Speed
 
90seconds Presentation
90seconds Presentation90seconds Presentation
90seconds Presentation
 
Reaktive Programmierung mit den Reactive Extensions (Rx)
Reaktive Programmierung mit den Reactive Extensions (Rx)Reaktive Programmierung mit den Reactive Extensions (Rx)
Reaktive Programmierung mit den Reactive Extensions (Rx)
 
Building and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache AirflowBuilding and deploying LLM applications with Apache Airflow
Building and deploying LLM applications with Apache Airflow
 
Where are yours vertexes and what are they talking about?
Where are yours vertexes and what are they talking about?Where are yours vertexes and what are they talking about?
Where are yours vertexes and what are they talking about?
 
WSO2Con ASIA 2016: An Introduction to the WSO2 Analytics Platform
WSO2Con ASIA 2016: An Introduction to the WSO2 Analytics PlatformWSO2Con ASIA 2016: An Introduction to the WSO2 Analytics Platform
WSO2Con ASIA 2016: An Introduction to the WSO2 Analytics Platform
 
Curation and Digital Storytelling
Curation and Digital StorytellingCuration and Digital Storytelling
Curation and Digital Storytelling
 
Development of the database, the website and the online transcription platfor...
Development of the database, the website and the online transcription platfor...Development of the database, the website and the online transcription platfor...
Development of the database, the website and the online transcription platfor...
 
July Clojure Users Group Meeting: "Using Cascalog with Palo Alto Open Data"
July Clojure Users Group Meeting: "Using Cascalog with Palo Alto Open Data"July Clojure Users Group Meeting: "Using Cascalog with Palo Alto Open Data"
July Clojure Users Group Meeting: "Using Cascalog with Palo Alto Open Data"
 
Generative Models and ChatGPT
Generative Models and ChatGPTGenerative Models and ChatGPT
Generative Models and ChatGPT
 

Recently uploaded

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 

Recently uploaded (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

Platforms and the Semantic Web

  • 1. Platforms and the Semantic Web Danny Ayers danny.ayers@gmail.com http://dannyayers.com
  • 2. 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.net Channel: #swig available through a browser at: http://www.mibbit.com Twitter tag - #krdb (I'm @danja)
  • 3. Objectives To 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?
  • 4. 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
  • 6. “Platform” (“Piattaforma”) ● a raised horizontal surface (palco) ● political program - a document stating the aims and principles of a political party things ●the combination of a particular computer which and a particular operating system support something ●weapons platform - any military structure else or vehicle bearing weapons ●platform shoe, chopine - a woman's shoe with a very high thick sole (zeppa) Source: Wordnet
  • 7. “Platform” ● platform shoe, chopine - a woman's shoe with a very high thick sole (zeppa) Source: Wordnet
  • 12. 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.
  • 13. Layered Models Layer n + 1 Supports Depends on Layer n Supports Depends on Layer n - 1
  • 14. A Plethora of Platforms loose taxonomy: ● Abstract Platforms ● Workbench Platforms ● Dedicated Platforms
  • 15. Abstract Platforms What do they support? : Ideas ● branches of mathematics e.g. geometry, logic ● the sciences ● human languages ● the arts
  • 16. Geometry Typical mode of use : modelling physical systems Applications : surveying (earth-measuring), architecture, engineering...
  • 17. Physics Source: http://www.igdb.co.uk/
  • 18. Logic (propositional, just declarative statements) A & C B C=A∧B Typical mode of use : modelling electronic systems Applications : control circuits, building computers...
  • 19. Logic (adding predicates and quantifiers) (∃x)(∃y)(Go(x) ∧ Person(John) ∧ City(Boston) ∧ Bus(y) ∧ Agnt(x,John) ∧ Dest(x,Boston) ∧ Inst(x,y)) (∃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 Source: John F. Sowa, http://www.jfsowa.com/krbook
  • 20. Conceptual Graphs (a dialect of Common Logic) (∃x)(∃y)(Go(x) ∧ Person(John) ∧ City(Boston) ∧ Bus(y) ∧ Agnt(x,John) ∧ Dest(x,Boston) ∧ Inst(x,y)) Concepts : Named Entities : John, Boston Entity Types : Person, Go, City, Bus Relations : Agnt (Agent), Dest (Destination), Inst (Instrument) Source: John F. Sowa, http://www.jfsowa.com/krbook
  • 21. CGs : Alternative Notations Graphical [Person: John] [City: Boston] [Go: *x] [Bus: *y] (Agnt ?x John) (Dest ?x Boston) (Inst ?x ?y) CGIF (exists ((x Go) (y Bus)) (and (Person John) (City Boston) CLIF (Agnt x John) (Dest x Boston) (Inst x y))) Source: ISO/IEC 24707
  • 22. Natural Language to CGs John is going to Boston by bus. Informal The person John is the agent of some instance of going, the city Boston is the destination, and a bus is the instrument. Formal
  • 23. 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?
  • 24. 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
  • 25. 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
  • 26. COBOL Examples 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 Source : http://en.wikipedia.org/wiki/Cobol
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. Case Study : Legacy Re-engineering Excerpt from the Documentation The input file that is used to create this piece of the Billing Interface for the General Ledger is an extract from the 61 byte file that is created by the COBOL program BILLCRUA in the Billing History production run. This file is used instead of the history file for time efficiency. This file contains the billing transaction codes (types of records) that are to be interfaced to General Ledger for the given month. For this process the following transaction codes are used: 32 — loss on unbilled, 72 — gain on uncollected, and 85 — loss on uncollected. Any of these records that are actually taxes are bypassed. Only client types 01 — Mar, 05 — Internal Non/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, VAE identified all the file names and COBOL variables involved. Source: John Sowa, http://www.jfsowa.com/talks/iss.pdf
  • 31. Case Study : Legacy Re-engineering Job 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
  • 32. 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
  • 33. 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 and Sally, and assigned them employee IDs. Source: John Sowa, http://www.jfsowa.com/talks/iss.pdf
  • 34. 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
  • 35. Why should we care about abstract platforms? - concrete benefits.
  • 36. All models are wrong. Some are useful. - George E. P. Box
  • 37. A Plethora of Platforms loose taxonomy: ● Abstract Platforms ● Workbench Platforms ● Dedicated Platforms
  • 38. Workbench Platforms What do they support? : tools and raw materials ...but end product will often be indirect
  • 39.
  • 40. A “Jig” - a device that holds a piece of work and guides the tools operating on it
  • 44. User Interface * stuff * Hardware
  • 45. Traditional Stack Source : http://en.wikipedia.org/wiki/Operating_system
  • 49. User
  • 50. Platform-Oriented Stack User Interface Platform(s) Source : http://en.wikipedia.org/wiki/Operating_system
  • 51. Database as Platform Users and Developers User Interface Forms/Reporting Queries/Stored Procedures Platform Database Operating System Hardware
  • 52. Virtual Machine as Platform User Applications Virtual Machine Operating System Hardware - little difference from traditional stack
  • 53. Java Platform Source : http://en.wikipedia.org/wiki/Java_(software_platform)
  • 54. Virtual Machine as Platform - Java Style User Developer Applications Coding Tools JRE JDK JVM Operating System Hardware
  • 55. Virtual Machine as Platform - Squeak Style Users and Developers Applications & Coding Tools System Image VM Operating System Hardware (See also : emacs)
  • 57. Workbench as Platform User/Developers Applications Coding Tools Workbench Runtime Compiler VM Operating System Hardware
  • 58. Eclipse Workbench – for developer
  • 59. “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>
  • 62. 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)
  • 64. A Plethora of Platforms loose taxonomy: ● Abstract Platforms ● Workbench Platforms ● Dedicated Platforms
  • 65. Dedicated Platforms What do they support? : Tasks
  • 66. Typical Functions of a Dedicated Platform User Interface Raw Input Processing Output Storage
  • 69. Dedicated Platforms Two examples: ● Recording Studio ● Content Management System
  • 70. Dedicated Platform – my home studio
  • 72. Dedicated Platform Monitoring User Input Processing Interconnection Storage
  • 73. Core Processing, Interconnection, Storage EnergyXT Digital Audio Workstation (DAW)
  • 74. Core Processing, Interconnection, Storage Virtual wiring (also supports software plugins) Virtual mixer storage on filesystem
  • 76. To some extent modular, via Plugins
  • 80. Multiple Wire Protocols & Connectors Instrument audio MIDI Mic audio Line audio
  • 81. Multiple Wire Protocols & Connectors MIDI in/out Instrument audio out Power in
  • 82. Multiple Wire Protocols & Connectors - HTML MIDI in/out Instrument audio out
  • 83. HTML <!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>
  • 84. 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> ...
  • 85. 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
  • 86. 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
  • 87. 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)
  • 88. Data Characteristics : Content Management System Models ● DB Schema ● Markup Formats ● HTML ● RSS ● Binary image formats ● SQL ● (PHP) Protocols ● HTTP
  • 89. Parallels can be drawn between different kinds of platforms. So what?
  • 90. 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Ω
  • 91. Solution : DI Box (Impedance Matching Transformer)
  • 92. Impedance Matching Transformer (DI Box) Signal from electric guitar Signal to mixer (10 kΩ output (100 Ω input) impedance) (electricity - magnetic flux - electricity)
  • 93. 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
  • 94. Impedance Matching Transformer Signal from blog Signal to (RSS 2.0) XSLT aggregator Engine (Atom) Stylesheet (xml/internal representation/xml)
  • 99. User Interface Design Modular Audio Synthesizers Output Input Output Oscillator Filter
  • 100. User Interface Design Modular Audio Synthesizers
  • 101. User Interface Design Modular Audio Synthesizers
  • 102. Yahoo! Pipes – approaching Spaghetti?
  • 103. Parallels can be drawn between different kinds of platforms. So what? Problems in one domain may have been solved in another.
  • 104. Problem : multitrack structures not available outside DAW for other tools ● proprietary format only ● vafanculo, need to talk to their developers
  • 105. 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.”
  • 106. End Dedicated Platforms Tasks Products Workbench Platforms Tools Abstract Platforms Ideas
  • 107. Working with Web Platforms
  • 108. Layered Models Revisited Layer n + 1 Abstracts Layer n Abstracts Layer n - 1
  • 109. Open Systems Interconnection (ISO, 1980's) Source : http://www.tutorial5.com/content/view/26/79/
  • 110. OSI Model Revisited Application Protocol HTTP + Web-friendly formats TCP/IP Ethernet/WiFi
  • 112. Heterogenous Interfaces ● Wave hands in an abstract fashion ● Slap forehead
  • 113. User User Interface (Application) Platforms Hardware
  • 114. User User Interface Platform Hardware
  • 115. Part 2 : Semantic Web Platforms ● Review of Semantic Web Technologies ● Semantic Web Platforms ● The Web as Platform
  • 116. Semantic Web - a quick review
  • 117. Aim To extend the Web to act as a single global database - using what we know works
  • 118. One Web! Documents Data
  • 119. Semantic Web = Web of Data Informed by : ● Traditional RDBMS & other kinds of data store ● Logics ● Grids ● “The Cloud” ● Hypertext and the Web!
  • 120. Logical Base ● open world assumption ● uniform identifiers ● declarative sentences
  • 121. What works on the Web? ● Uniform Identifiers (URIs) – for resources ● Common Interface Protocol (HTTP) ● Standard Representation Formats (notably HTML) Altogether: a REST Configuration
  • 122. A hyperlink page.html home.html <a href=”http://example.org/home.html“> Home Page </a>
  • 123. Evolving the Link page.html home.html home <a href=”http://example.org/home.html” rel=”home”> Home Page </a>
  • 124. page home x:home <rdf:Description rdf:about=”http://example.org/page”> <x:home rdf:resource=”http://example.org/home” /> </rdf:Description>
  • 125. Relational View x:home subject object http://example.org/page http://example.org/home ... ... <rdf:Description rdf:about=”http://example.org/page”> <x:home rdf:resource=”http://example.org/home” /> </rdf:Description>
  • 126. Logic Notations Again [Person: John] [City: Boston] [Go: *x] [Bus: *y] (Agnt ?x John) (Dest ?x Boston) (Inst ?x ?y) CGIF @prefix : <http://example.org/#> . :John a :Person . :Boston a :City . _:x a :Go . _:y a :Bus . _:x :Agnt :John . _:y :Dest :Boston . RDF : _:x :Inst _:y . Turtle/N3 Syntax Saved as cg.n3
  • 128. NTriples <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 . $ rapper -i turtle cg.n3 -o ntriples
  • 129. RDF/XML <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
  • 130. Also 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
  • 132. Semantic Web Layer Cake (circa 2001) Source : http://www.w3.org/2001/09/06­ecdl/slide17­0.html
  • 133.
  • 135. Semantic Web Layer Cake (circa now)
  • 136. Part 2 : Semantic Web Platforms ● Review of Semantic Web Technologies ● Semantic Web Platforms ● The Web as Platform
  • 138. 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
  • 139. foaf:name rdf:type foaf:Person #John “John”
  • 140. RDF Nodes : ●Resource = named by a URI (do HTTP to find a representation you like) ● Blank node = “there exists” ● Literal = bunch of text
  • 141. Polemic for the panel : Search sucks. Why lose things in the first place?