The Source for Java Technology Collaboration
User: Password:



Harold Carr's Blog

Harold Carr Harold Carr is the engineering lead for enterprise web services interoperability at Sun Microsystems - enabling atomic transactions, reliable messaging and security between Java and Windows Communications Foundation. Previous to this role he was responsible for RMI-IIOP load-balancing and fail-over in the Sun Java System Application Server (SJSAS). He designed the core architecture used in Sun's CORBA ORB and in the JAX-RPC 2.0 reference implementation and the scalable socket communications architecture used in SJSAS HTTP and IIOP remoting. He helped write the OMG Portable Object Adapter specification and was chairperson of the OMG Portable Interceptor specification. Previous to Sun, he did distributed computing research at Hewlett-Packard Research Laboratories and Schlumberger Research Laboratories, was Chief Architect of Visual Lisp technology at Autodesk, and was a logic simulation consultant for Cirrus Logic. He holds a Ph.D., in Computer Science from the University of Utah.



My CommunityOne 2009 presentation is online

Posted by haroldcarr on July 01, 2009 at 10:59 AM | Permalink | Comments (0)

My CommunityOne 2009 presentation is now available online.

Technorati: wcf wsit glassfish projectmetro



My JavaOne 2009 presentations online

Posted by haroldcarr on June 30, 2009 at 03:08 PM | Permalink | Comments (0)

My JavaOne 2009 presentations are now available online.

JavaOneDF060409814.1024x768.jpg

Technorati: wcf wsit glassfish projectmetro

Notes from Thursday at Jazoon

Posted by haroldcarr on June 25, 2009 at 10:26 AM | Permalink | Comments (2)

Here are my notes from the Thursday at jazoon.com

==============================================================================
Thursday June 25, 2009

------------------------------------------------------------------------------
OAuth - the missing manual
Paul Sevinç – Doodle AG
David Gubler – Doodle AG

Problem
- A service provider A
- A third party B
- User have to disclose passwords to the 3rd party B
  to take advantage of service A

Solution
- oauth.net/core/1.0
- oauth.net/code - implementations for C#, Java, JavaScript, ...

OAuth does have security problems
- Phishing attacks
- Session fixation attacks

Doodle
- Group scheduling

------------------------------------------------------------------------------
Wuala Webstart: Launching a Java Application directly from a Website
Luzius Meisser – Caleido AG / Wuala

www.wuala.com (online file storage service)
luzius@wuala.com
wuala.com/Luzius

sourceforge.net/projects/wualawebstart

Motivation
- Rich desktop application (online file storage)
- Users should be able to run Wuala anywhere
- Minimize effort to get running (no install, few clicks, quick)
- bridge web and desktop

Possibilities
- Web App - did not offer client side encryption
- Installer - loss of context, admin rights, many clicks
- Portable app - loss of context when switching form web to app
- Java Web Start - not often handled by browser, can't use SWT on OS X

Implementation
- Trusted applet is loaded
- applet copies a loader.jar in to tmp and runs it.
  RCP exists as an own process, surviving closing the browser
- If instance already running, the loader connects to it (TCP)
- If not, the app is opened

Protocol
- secure connection
- C: I want to start latest, my local version is 313
- S: Latest is 317 ...
- ...

Agility
- Can deliver updates much faster than classical desktop.

------------------------------------------------------------------------------
Web 2.0 @ NASA
Linda Cureton – NASA
Chief Information Officer, Goddard Space Flight Center

Safely return space shuttle to flight
Complete space station by 2010
robotic exploration of mars
replacement for shuttle

10 centers
budget 16.7B
employees 18,600
contractors 43,600

Goddard manages around 80 flight projects

where did we come form?
where are we going?
are we alone?

blogs.nasa.gov
twitter: LRO, GLAST, IBEX, DMV, HST, SDO
Virtual worlds:
  The generation that will go to Mars or back to moon are in daycare now
Podcasts: Hubblecast, NASA Goddad Shorts, GLAST, ...
Facebook: ...

Benefits of social media
- build teams, strengthen networks, collaboration, sharing
- facilities: communication, engagement, transparency, trust
- collective intelligence
- Spacebook (internal)

Impact
- Control in hands of users, not CIO or web master
- Breaks communication hierarchy

Lessons
- Focus on what users need
- Share what you are struggling with - you may get help

Next steps
- Measure value

-----------------------------------------------------------------------------
Closing Session
Christian Frei – Keynode

1080 attendees (20% more than last year)


Notes from Wednesday at Jazoon

Posted by haroldcarr on June 24, 2009 at 10:11 AM | Permalink | Comments (0)

Here are my notes from the Wednesday at jazoon.com

==============================================================================
Wednesday June 24, 2009

------------------------------------------------------------------------------
Web Services and Transactions
Jonathan Halliday, JBoss (TX lead at JBoss)

A transaction is
- set of activities that require some shared properties
- consensus of outcome
- short: ACID
- longer: relaxation of some properities

Distributed TX
- involve two or more systems
- require agreement on protocol
- may span organizational boundaries

Web service may be used in different ways
- Same administrative domain
- Fast network
- same role as CORBA

WS-Atomic TX: ACID TX for Web Services
- JTA behavior
- Suits closely coupled environments
- short duration TX due to locking model
- begin / commit/ ROLLBACK

WS-AT specifies the wire protocol only
- No standard Java API (yet)

Using WS-AT on client side (JBoss)

  tx = factory.userTX();
  tx.begin();
  service.method(param);
  ...
  tx.commit();
  or
  tx.rollback();

Server side APIs

txmgr = factory.txMgr();
txtmgr.enlistForVolatileTwoPhase(myVolatileParticipant);
txtmgr.enlistForVolatileTwoPhase(myDurableParticipant);
txmgr.suspend();
txmgr.resume();

Participants

Users must implement not only business logic, but the TX event
handling logic too.

interface Participant {
  public Vote prepare();
  public Vote commit();
  public Vote rollback();
}

Using WS-AT is hard

JEE containers provide lots of abstraction on top of JTA
- business programmers hardly ever implement XARResource
- or even call begin/commit/rollback thanks to EJB3
  
TX Bridging
- Existing JEE code understands JTA TX
- WS understand WS-AT TX
- Interop and reuse improved by linking these domains
  WS can use existing XA aware resource mgrs
  JEE code can call TX web services

TXBRIDGE does
- interoposition plus protocol adapter
- bi-directional
- near invisible to app - just add standard annotation
- provides XAResource / Participant

TX Bridging

@Stateless
@Remote(Bistro.class)
@WebService()
@SOAPBinding(style = SOAPBinding.Sytle.RPC)
@HandlerChain(file = jboss bridge)
@TransactionAttribute(TransactionAttributeType.MANDATORY)
public class BistroImpl implements Bistro {
...
}

[ HC NOTE: Metro has done this for years, without the need
  for the HandlerChain ]

[ HC NOTE: Why Style.RPC ? ]

Business Activities
Relax ACID properities
- locking won't work
- use compensations instead
- reduced isolation of TX
- per-application undo behavior
- WS-BusinessActivity

WS-BA events
- begin()
- complete() - presist changes, log compensation data
- close() - clean up, discard logs
- cancel() - discard changes
- compensate() - undo previously completed changes

WS-BA client side

tx = factory.userBusinessActivity()
tx.begin();
...
tx.close()
or
tx.cancel();

WS-BA server side

mgr = factory.businessActivityManager();
mgr.enlistForBusinessAgreementWithCoordinatorCompletion(p);
mgr.enlistForBusinessAgreementWithParticipantCompletion(p);
mgr.suspend()
mgr.resume()

WS-BA participants

programmer must implement:

interface Participant {
  close()
  cancel();
  compensate();
  complete();
}

BA Framework to make above easier

- compensation are application specific
- framework has annotations
  ideas from EJB3, JSR-181
  @CompensatedBy()

BA Framework
- TX plumbing
  serialization, concurrency, locking, versioning, crash recovery
  business logic does not respond directly to tx control events
    or Participant interface
- separate business logic from tx mgmt as much as possible
  but compesation belong on business side
- declarative approach

BA Framework via annotations

@BACompensatedBy("cancelRoom")
public int bookRoom() {...}
public int cancelRoom() {...}

optional annotations

@BACompensatedBy("cancelRoom")
@BAResult("reservationNumber")
public int bookRoom(@BAParam("clientID") String client) {...}
public int cancelRoom(
   @BAParam("clientID" String who,
   @BAParam("reservationNumber") int id)
{...}

RESTful TX
- Model the TX coordinator and participants as resources
- TX context propagation STANDARD IS ALSO REQUIRED

Experiments

TX Coordinator
- POST .../transaction-coordinator/begin
- PUT .../transaction-coordinator/<id>/commit
- GET .../transaction-coordinator/active

JAX-RS version
@PUT
@Path("transaction-coordinator/{id}/commit")
public Response commitTransaction(....

RESTful TX Participants

Enlist a participant in a TX
- PUT  Tx id
  body identifies the participant URL
Operations on participants
- GET   ... status
- POST  ... prepare

JBoss only proprietary spec - no interoperability

Summary
- TX useful for structuring data manipulations
- ACID not suitable for all cases
  Use lock-free forward compensating model
- WS-AT (ACID) and WS-BA (compensating) standards
- Ease of use requires going beyond the standards
  JBoss TX Bridging framework
- JBoss Proprietary REST versions - no standards

JSR 156
- standard API for ACID (reuse JTA)
- standard API for long running TX

Question: what happens if compensation fails.
Answer: best effort then send data to an administrator

Question: does't Metro already do EJB annotations and WS-AT?
Answer: Yes.  But JSR-181 does not require it (but probably should)

------------------------------------------------------------------------------
Next Gen Wikis
Vincent Massol, XWiki SAS

Wiki 1.0 - unstructured

Wiki 2.0 - custom structured data, apps (blog, calendar), mashup
  Use for applications too small to devote programming team
  or a fast turnaround time (i.e., excel of the web)

Demo: create Wiki-based app to request vacation days

Future
- P2P and Offline Wikis
  concerto.xwiki.org
- real tim collaboration
- annotations - comment on portion of text
- mobile wiki
- semantic wiki
- ide-like dev tools in the wiki
- more social features
- merge of CMS and Wikis

------------------------------------------------------------------------------
Binding Java Objects to Web 3.0
The JenaBean Open Source Library
Taylor Cowan, Travelocity (web portal for Sabre holdings)

thewebsemantic.com
jenabean.googlecode.com
taylor.cown@travelocity.com
geosparlq.appspot.com
   
RDF (triples):
subject         verb          object
travelocity.com aka           travelocity
                isA           oline travel agency
                hasCompetitor expedia

Raw Jena API code is verbose

JenaBeans is more concise object-based model.

write: Bean2RDF
read:  RDF2Bean

@Id specifies a unique field
@Namespace provides a domain
@RdfProperty maps java properties to RDF properties

package examples.com
import thewebsematnti.Id;
public class Person {
  private String email;
  @Id
  public String getEmail() { return email; }
  public void setEmail(String email) { this.email = email; }
}

package examples.com
import thewebsematnti.Id;
import thewebsematnti.Namespace

@Namespace("foo#")
public class Person {
  private String email;
  @Id
  public String getEmail() { return email; }
  public void setEmail(String email) { this.email = email; }
}

@Namespace("foo#")
public class Person {
  private String email;
  private String name;
  @Id
  public String getEmail() { return email; }
  public void setEmail(String email) { this.email = email; }
  @RdfProperty(FOAF.NS + "name")
  public String getName() { return name; }
}

JenaBean Fluent Programming Interface

public static void main(String[] av) {
  Model m = ...;
  new Thing("<TBL foaf>", m)
   .as(Foaf.class).isa(Foaf.Person.class)
   .name("TBL");
   .as (Skos.class)
   .prefLable("TBL", "en")
   ...

------------------------------------------------------------------------------
AdNovum

Motivation - Why do we need industrialization in software engineering
- defined/strict quality
- process, tech mgmt, dependency mgmt, repository, build & test

How to achieve?
- focus on process rather than final product
- establish measuring points
- define consequences if targets not reached
- continuous integration
- PRO: early identification of issues

Measuring points
- dependency and tech mgmt
- config mgmt
- compile checks
- code style checks (e.g., PMD, findbugs, FIXMEs)
- architecture style checks (eg package dependencies)
- unit and integration tests
- test coverage
- load and performance tests

Management
- setup repositories
- metadata collection (dependencies)
- incorporate in continuous integration

Risk-based coverage analysis
- test coverage needs visualization and consequences
- Auto: Cyclomatic Complexity
- Manual: ...


Notes from Tuesday afternoon Jazoon

Posted by haroldcarr on June 24, 2009 at 10:08 AM | Permalink | Comments (0)

Here are my notes from the Tuesday afternoon at jazoon.com

==============================================================================
Tuesday afternoon June 23, 2009

------------------------------------------------------------------------------
GridGain - Java Gateway to Cloud Computing
Nikita Ivanov – GridGain Systems

Grid/Cloud
- Grid: 2 or more computers working on same task in parallel
- Grid computing: parallel procesing + parallel data storage
- Cloud: data center automation (virtualization)
- Cloud computing: Grid computing + data center virtualization
- Clouds are the new way to deploy and run grid appications

Why Grid/Cloud?
- Amazon: 100ms latency cost 1% of sales
- Google: 500ms latency drops traffic 20%
- Financial: $M/ms lose if 5ms behind
- Solves problems often unsolvable otherwise

eBay: partition processing from data access

GridGain
- OpenSource (LGPL and Apache 2.0) Java cloud platform
- Build and run grid compute apps on cloud infrastructure
- integrates with leading data grids
- built for native cloud apps

Demos...

------------------------------------------------------------------------------
Vendors

Alth
- Integrate multiple data sources
- Was surprised when I asked if they could handle HTML pages
  with embedded microformats or RDFa

Vaadin
- Layer on top of GWT


------------------------------------------------------------------------------
Java Rule Engines (Drools, iLog)
Raed Haltam – wega Informatik
read.haltam@wega.informatik.ch
www.wega-informatik.com

Treat business logic as business data

Rules Engine
- execute
- stores, versions, secures
- rules engine -> repository <- access policy <- edit
                   ^
                  testing
                    ^
                  Scenario Manager

BOM = business object model
XOM = exceution object model

Drools, iLog, Jess, ...
Rule format: when <condition> then <actions>
Based on Charles Forgys RETE Algorithm
Rule set, Rule package, BOM and Rule Flow
Higher level or "business language"
Rule security (on statement level: EG: condition, parameter, action)

Rules and SOA
- Monitoring of SLAs
- Enforcement of contract terms
- Business Rules Routing

Rules Engine and Complex Event Processing
- IBM, Tibco, BEA/Oracle, JBos, WebMethods, ...
- JBoss uses Drools

------------------------------------------------------------------------------
OpenUAT: Experiences from the implementation of an Open Source
Ubiquitous Authentication Toolkit
Iulia Ion – ETH Zurich
Rene Mayrhofer: Univserit of Vienna

www.openuat.org

How to establish a secure connection between two (mobile) devices

Out-of-band channels
- Visual channel : EG: visual barcodes and phone camera
- Audio Channel : EG: key is encoded and transmitted via audio channel
- manual string comparison : EG: user compares output manually
- Accelerometer data : EG: shake both devices
- Button press : EG: pushing buttons simultanesouly on both devices

Audio channel
- Diffie-Hellman key exchange over Bluetooth
- Encode, play -> record, decode hash code of key
- device synchronization done via bluetooth play/record

Video channel
- Hash encoded in a QR code
- Take a picture of the other device and decode

Shake together
- Use the accelerometer times series as a common input secret

Button channels
- Common input by simultaneous button presses
- OR message transmission through button presses

Useful libraries
- BouncyCastle light
- Log4J
- Microlog

------------------------------------------------------------------------------
Smithying in the 21st Century
Neal Ford - ThoughtWorks

Avoid becoming a technology dinosaur
Our brains are bad at predicting the future
We are bad at statistics (See _The Drunkard's Walk_)
Anything this is in world when you where born is natural
Anything invented between 15 and 35 - you can make your living at it
Anything invented after you are 35 is against the natural order of things
Look for paradigm changers 
- EG: iPhone
  Apple is largest music retailer in the world
Look for warmed over technology 
- EG: UCSD p-System virtual machine)
  See: Bruce Tate: _Beyond Java_
- Threading
  Solution: Haskell, O'Caml, Scala, F#
- Dynamic languages
  Groovy, JRuby, JavaScript, Clojure
- One that lie at crossroads
  Clojure
What to do with data (data gather is easy, but now how do you process it)?
- The End of Science: www.wired.com/wired/issue/16-07
Technology Accelerators
- WAR
  Civel War: surgery
  WWI: airplanes
  WWII: computers
  Now: robotics
Cautionary tales
- Reevaluate whether you should continue "solving" "the" problem
  Maybe the problem is not important/useful any longer
- _The Singularity is Near_, Ray Kurzweil
Software developers need an Hippocratic Oath
- Miles Dyson promise: do not build super intelligent homicidal cyborgs
- SWOOPO : "Entertainment shopping"
  bad site that takes advantage of people's nonunderstanding of statistics
The Future
- languages matter 
  safir-whorf : language effects ability to have thoughts
    discrete, but perhaps true in computer languages
- Orwell _1984_
- notation matters
- polyglot programming - use languages stategically
- technology changes us
  Press elevator
    Over 30: index finger
    Under 30: thumb
"The best way to predict the future is to create it" - Peter Drucker

------------------------------------------------------------------------------
What they don't teach you about software at school: Be Smart!
Ivar Jacobson – Ivar Jacobson
www.ivarblog.com

Goal: good software quickly at low cost

Good:
- Useful
- Extensible
- Reliable
Quickly:
- Competent and motivated people
Low Cost:
- Large scale reuse of components

Software is a fashion industry
- 15 years ago: OO
- 10 years ago: UML, Unified Process
-  5 years ago: RUP and CMMI
-  2 years ago: XP
-          now: Scrum
- None of above is ALL you need
- Software industry still looking for silver bullet

"Things should be done as simple as possile, but no simpler" - Einstein

Being smart is not the same thing as being intelligent
Being smart is an evolution of Being Agile

Smart cases (what they do not teach you in school)
- people, teams, projects, requirements, architecture, modeling,
  test, documentation, process, knowledge, outsourcing, tools

People
- some companies view processes and tools as more important than people.
  NOT smart.

Teams
- Often organized into stove-pipe groups.
  EG: requirements, implementation, test.
  NOT smart.
- Cross-functional team
  Ideal size is less than 10 people

Projects
- Waterfall: NOT smart
- Build a skinny REAL system to demonstrate you have elminated critical risks
- Add more capabilities on top of that skinny system
- Think big, build in small steps

Requirements
- Lightweight requirements 
- Add detail when needed
- Requirements are negotiable and can change

Architecture
- TWO EXTREMES:
  1. no architecture: code then refactor later
  2. enterprise architect: design everything up front
- Smart: enterprise iterative architecture
- Focus on skinny system
  Make it executable (otherwise it is a hallucination)
  Refactor over releases (large refactoring is costly)

Test
- think/create: developers; cleanup: testers
  testing is too late and too expensive
- SMART: we are all testers
  YOU are not done until YOU have verified that YOU did
  what YOU wanted to do

Documentation
- UNSMART: people don't read documents
- SMART: focus on essentials: placeholders for conversations

Process
- People don't read process books

How do you become smart?
- You need knowledge/experience in GOOD practices
- Training and mentoring are key


Notes from Tuesday morning Jazoon

Posted by haroldcarr on June 23, 2009 at 05:29 AM | Permalink | Comments (0)

Here are my notes from the Tuesday morning at jazoon.com

==============================================================================
Tuesday morning June 23, 2009

------------------------------------------------------------------------------
Why Applications Don't Scale
Alois Reitbauer, dynaTrace Software

blog.dynatrace.com
blog.codecentric.com
highscalability.com

Scalability: Increased resources results in increased performance
- Werner Vogels

Scalability
- Can ensure performance with increasing load

Performance
- characteristics like response time, processing volume..

Queuing Theory
- Modeling resource
- Resources and waiting requests are modeled as queues
- EX: CPU and current requests

Queuing Networks
- Modeling of app as network of resources
- Combing multiple queues
- EX: CPU, Network, Connections Pools, Servlet Threads

Scalability and Requirements
- Increasing number of parallel requests
- Increasing number of parallel users
- Increasing number of data
- Increasing availability with same performance

Types of Scalability
- Vertical (UP)
  A physical node gets more resources (CPU or memory)
  In virtual env "on demand"
- Horizontal (OUT)
  A new physical node is added
  Trends to more and more servers
  Distributed system

If system is fast in single user mode but slow under havey load then
the problem is scalability, not performance
- Cameron Purdy

Scalability does not improve performance
- Increases complexity and degrades performance
- Slower in single user mode
- performance is still an issue

Scalability can improve availability
- Scale out introduces redundance
- Synchronize status/state

Scalability never comes for free
- Must be engineered into the application
- Introduces additional complexity
- Plan time for building scalability into app

Limiting factors
- CPU Time
  scalability via hardware
- Memory consumption
  scalability via hardware
- I/O and Network
  limited and harder to scale
  architectural changes
- shared resource access
  limited and harder to scale
  architectural changes

Major problems
- Database access
  high number of database requests
  Locks and concurrent access
- Remoting Behavior
  Bad interaction design (communication patterns)
  High data volume
  (it's too easy to make remote calls)
- Locking
  Configuration problems (Connections Pools)
  Wrong synchronization patterns
  Serial data access

Metrics
- Throughput
- Response times
  vs CPU time
- System metrics
  CPU and Garbage Collection
  Memory pools (including generations)
- Application metrics
  connections pools
  component level
  SQL
  Transactional trace data

Problems:
- Complex interdependencies due to frameworks
- High serialization 
- Full heap due to memory leak
- Inefficient or redundant remote calls
- Too many SQL calls

Database access
- Wrong use of O/R mappers
  Configuration/Loading behavior
- Bad Transaction Design
  Connection kept too long
  Isolation level incorrectly defined (or not at all)
- Inefficient data loading logic

Distributed Systems/Remoting
- Bad interface design
  Interfaces are too generic
  Interactions not suitable for SOA
- Wrong communication protocols
  SOAP services in homogeneous landscape
  Sync instead of async interactions

Synchronization
- Locks kept too long
- wrong lock granularity
- Neglecting locking at DB level

Serial access
- Access MUST be handled in serial way
- Scalability logically limited

Too much synchronous program logic
- Developer think procedurally
- Sync interaction in distributed systems is problematic
- high resource usage
- typical indicator: low CPU while other resources saturated
- class ex: web apps

Memory management
- Bad GC Config
  Generation size; collection strategy
- Unnecessary creation of objects
  Serialization
  O/R mapping frameworks
- Memory leaks
  Bad reference clearing logic

Problems in development
- Don't understand dynamic program behavior
- Sacrifice functionality over scalability and performance
- Waiting for symptoms
- Real problems often only visible under high load

Questions
- tools: jimmi, selenium, sniffer, soapUI, 
- check DB and/or remoting at continuous integration time

------------------------------------------------------------------------------
Design Patterns in Dynamic Languages
Neal Ford, ThoughtWorks

slides from nealford.com (same talk at JavaOne 2009)
samples from github.com/nealford

Pattern solutions from weaker languages
have more elegant solution in dynamic languages

Many patterns in _Design Patterns_ are just bandaids to C++ deficiencies.

Patterns define common problems
Dynamic languages give you better tools to solve those problems

_DESIGN PATTERNS_ PATTERNS

Iterator
- Now Java has foreach
- .each in groovy and ruby

Command
- via closures

Strategy
- See: "Execution in the Kingdom of Nouns" - Steve Yegge

Template
- code blocks as placeholders

Interpreter
- build DSL using dyn language features
- EX: Groovy expando metaclass
- internal DSL == embedded interpreter
- because language is powerful enough to build language on top

Pattern: type transmogrification
- transform types as needed as part of a fluent interface call

Decorator
- See: groovy .invokeMethod
- Decorate in place: add new method to instance of class

Adapter
- round hole/square peg
- no need for extra adaptor class - dynamically add method
- but what if new method conflicts with existing method : InterfaceSwitching
  *.with_interface
  like DCOM

DYNAMIC LANGUAGE PATTERNS

Null Object
- Groovy:  <reference>?.<method>
- Ruby: NilClass already defined
  Can add new methods to NilClass

Aridifier
- From _Pragmatic Programmer_: DRY: Don't Repeat Yourself

Traditional languages rely on structure for solutions


Speaking on Metro Security at Jazoon

Posted by haroldcarr on June 20, 2009 at 03:10 PM | Permalink | Comments (0)

I will be speaking on Metro Security at Jazoon in Zurich on Wednesday June 24 at 1:30pm.



Notes from Thursday Semantic Technology Conference

Posted by haroldcarr on June 18, 2009 at 03:11 PM | Permalink | Comments (0)

Here are my notes from Thursday at www.semantic-conference.com

==============================================================================
Thursday, 6/18/2009

Conference Attendance: 1170

------------------------------------------------------------------------------
Keynote General Session 8:30AM - 09:30AM

Semantics at The New York Times
Larson, Robert, New York Times Company
Sandhaus, Evan, New York Times Company
Conners, Christine, moderator
Business / Non-Technical
Publishing

What the Times means by Semantics
- Any tool that discovers/leverages metadata to 
  make content more accessible

The Morgue
- File cabinets of clippings, photos,... of Times and other papers
- Reporter seeking info on story would go to morgue and search

The New York TImes Index
- Where info can be found in printed version

NYTimex.com
- MS Word   -> Newspaper CMS -> tagging software -> web cms
  reporters    editors           section, pagen
  links         byline            newsdesk
                type
                biographic
- Topic pages
  Aggregate from NYT and other locations

Future
- Improve workflow
- Digitize 5 million photos from morgue
- tag NYT blogs
- Tag user content
- Allow users to tag

Times APIs
- Times Tag
- Article Search API

New York Times Annotated Corpus
- DVD of every article+metadata 1987-2007
- corpus.nytimes.com
- non-commerical: $300

------------------------------------------------------------------------------
Conference Sessions 9:45AM - 10:45AM

Visualizing RDF
Franz - Gruff

Kieth Sutton - silvafug.org - Silicon Valley Flex User Group

www.diagramic.com
EX: www.forbes20.com, www.diagramic.com/v/?p=google

FlexParts (Adobe AIR application)
- Visualizing Freebase data

SEED FOR NEXT YEAR'S CONFERENCE:
- Visualizing RDF with JavaFX

------------------------------------------------------------------------------
Conference Sessions 11:00AM - 12:00PM

--------------------------------------------------
SQUIN 
squin.org
query the web of linked data
Uses SINDICE
EX usage: turn2live.com

--------------------------------------------------
Practical OWL 2 RL Reasoning Via Fast Forward Chaining Inference Engines
Matheus, Christopher John, VIStology, Inc.
Technology - Intermediate
Foundational Topics

OWL 2 RL
- Implemented by rule-based forward chaining inference engines
- Implemented as collection of 75+ implication and consistency rules

Unsupported/Restrictions
- owl:cardinality, owl:minCardinality
- owl:qualifiedCardinality owl:qualifiedMinCardinality
- owl:DisjointUnion
- owl:ReflexiveObjectProperty
- owl:topObjectProperty, owl:bottomDatatypeProperty
- owl:topDataProperty, owl:bottomDataProperty
- xsd:real, wsd:rational
- URI cannot be both a class and an individual
- owl:maxCardinality restricted to 0 & 1
- Data ranges restricted to sxd datatypes and intersection of them
- Axioms designed to avoid inferring existence of individuals
  not explicitly mention in knowledge base
- Does not include axiomatic triples (but impls may include them)
  (e.g., characteristics of elements of the language)

Types of inferencing
- Entailment
- Classification (entailment of rdf:type facts)
- Consistency checking

P rdfs:domain C
I P V
-----
I rdf:type C
(just by giving I property P then you can infer its type)


B rdfs:subClassOf A
I rdf:type B
------------
I rdf:type A


parentOf owl:inverseOf childOf
John parentOf Diana
------------------
Diana childOf John


C owl:hasValue V
C owl:onProperty P
I rdf:type C
------------
I P V


C owl:hasValue V
C owl:onProperty P
I rdf:type C
------------
I rdf:type C

C1 owl:disjointWith C2
I rdf:type C1
I rdf:type C2
--------------
INCONSISTENCY

--------------------------------------------------
Ideas for Future Semantic Applications 	
Sarris, Tony, Unisys Corporation - Systems & Technology
Sweeney, Peter, Primal Fusion
Business / Non-Technical
Business & Marketplace

PrimalFusion

------------------------------------------------------------------------------
Product Seminars/Field Trips 1:00PM - 5:00PM

--------------------------------------------------
A Programmer's Introduction to Pellet: How to Build Ontology-based Semantic Applications 	
Sirin, Evren, Clark & Parsia LLC
Smith, Michael A, Clark & Parsia LLC
Technology - Advanced
Semantic Applications

clarkparsia.com/pellet/tutorial

What is Pellet? 
- OWL-DL reasoner 
- Supports nearly all of OWL 1 and OWL 2 
- Sound and complete reasoner 
- Written in Java and available from  http://clarkparsia.com/pellet 

Talk Coverage 
- Introduction to reasoning with Pellet 
  Basic reasoning concepts 
  Using Pellet from command-line 
- Programming with Pellet 
  Available APIs and usage 
  Reasoning and query answering 
  Explaining inferences 
- Advanced Pellet features 
  Closed-world data validation with Integrity Constraints

Running Example: POPS 
- Expertise location in a large organization 
  Based on POPS application in NASA 
  Multiple sources containing personnel data: contact 
   information, work history, evidence of skills, 
   publications, etc. 
  Find people that satisfy certain conditions 
- Several challenges 
  Integrate data from multiple sources 
  Ensure data consistency 
  Query with inferencing 
  User interface (not covered in this talk; see jSpace) 

Demo of JSpace/POPS

Building the Example 
- Author ontology schemas 
  Validate and debug schema definitions 
- Connect multiple schemas 
  Simple ontology alignment 
- Validating instance data 
  Identify and resolve inconsistencies in the data 
  Closed world data validation with Pellet Integrity 
  Constraints 
- Reasoning with instance data 
  Answer queries over combined data using Pellet 
  Scalability and performance considerations

OWL in 3 Slides (1) - ENTITIES 
- Class: Person, Organization, Project, Skill, ... 
- Datatype: string, integer, date, ... 

- Individual: Evren, C&P, POPS, ... 
- Literal: "Evren Sirin", 5, 5/26/2008, ... 

- Object Property: worksAt, hasSkill, ... 
- Data property: name, proficiencyLevel, ...

OWL in 3 Slides (2) - EXPRESSIONS 
- Class expressions 
  and, or, not 
  some, only, min, max, exactly, value, Self 
  { ... } 
 
- Datatype definitions 
  and, or, not 
  <, <=, >, >= 
  { ... }  

OWL in 3 Slides (3) - AXIOMS 
- Class axioms 
  subClassOf, equivalentTo, disjointWith 
 
- Property axioms 
  subPropertyOf, equivalentTo, inverseOf, 
  disjointWith, subPropertyChain, domain, range 
 
- Property characteristics 
  Functional, InverseFunctional, Transitive, 
  Symmetric, Asymmetric, Reflexive, Irreflexive 
 
- Individual assertions 
  Class assertion, property assertion, sameAs, 
  differentFrom

Reasoning in OWL 
1. Check the consistency of a set of axioms 
   Verify the input axioms do not contain contradictions 
   Mandatory first step before any other reasoning service 
   Fix the inconsistency before reasoning 
     Any consequence can be inferred from inconsistency 
2. Infer new axioms from a set of axioms 
   Truth of an axiom is logically proven from asserted axioms 
   Infinitely many inferences for any non-empty ontology 
   Inferences can be computed as a batch process or as 
     required by queries

Classification
- build tree of subClass relationships

Realization
- assign individuals to their most specific class membership

Protege 4 does not come with Pellet built in
- A plugin is available
- Use protege "check for plugins"



Notes from Wednesday afternoon Semantic Technology Conference

Posted by haroldcarr on June 17, 2009 at 07:37 PM | Permalink | Comments (1)

Here are my notes from Wednesday afternoon/evening at www.semantic-conference.com

==============================================================================
Wednesday afternoon, 6/17/2009

------------------------------------------------------------------------------
12:30PM - 1:30PM

Wolfram|Alpha - An Interview
Foltz-Smith, Russell, Wolfram|Alpha - www.wolframalpha.com
Spivack, Nova, Radar Networks (Twine.com)
Business / Non-Technical
Semantic Query

Systematic (computable) knowledge (numerical, emphirical).
e.g.,: Physics, finance info, weather data;
(as opposed to Non-computable: e.g., 
 latest opinion on who Britney Spears is dating)
Calculate viz enumerate
Does not memoize results.
Syntax: hard to make understandable input queries
No top-level ontology
Engine is Mathematica
Business models:
- API pay-per-use
- subscription
- advertising
Can be used in a limited manner as cross-domain discovery
Picks interesting and tractable topics
Want to have coherent way to let users access knowledge model
- perhaps might use SW technology
Education
- learn how to compute viz how to orchestra chain on calculations
Future: accessible data curration tools so user can
  and data so it can scale

------------------------------------------------------------------------------
Conference Sessions 2:30PM - 3:30PM

--------------------------------------------------
Next Generation Protege: OWL 2 Ontology Development for Web 2.0
Tudorache, Tania, Stanford University
Redmond, Timothy, Stanford University
Noy, Natasha, Stanford University
Technology - Intermediate
Knowledge Engineering and Management

Ontology engineering (like TopBraid composer, but OpenSource)

OWL 2.0 via Protege 4.0 (can handle OWL 1.1)
WebProtege
- protege.stanford.edu
- Instant access to ontologies
- Online collaborative

------------------------------------------------------------------------------
Hybrid Approaches to Taxonomy & Folksonomy
Wlodarczyk, Paul, Earley & Associates
Beatch, Richard, Earley and Associates
Business / Non-Technical
Taxonomies

Co-existence
- used side-by-side but separate
- EX: library of congress
- Variation: tag mediation
  Vetting and editing of tags
  Pros: weed out inappropriate, misspellings, plural
  Cons: effort, perceived lack of trust of users, who knows better

Tag-influenced taxonomy
- tags input as candidate terms to enrich taxonomy
  Find new terminology/concepts (synonyms, popular language)
- Requires formal vetting process

Taxonomy influenced tagging
- present choices/suggestions to user from controlled set of terms/tags
  drop down; check boxes; type ahead, tree view
- option to enter new tag
- enforces consistency
- offers structure
- EX: ZigTag (social bookmarking site)
- EX: TextWise
- EX: Buzzillions.com
PROS: more consistency; findability; relationships leveraged;
      realistic for enterprise

Tag hierarchies
- User powered
  social approach
  bogus possible
  can be esoteric
  small population of contributors
  EX: LibraryThing
  EX: Flickr - machine readable tags
  EX: moat-project.org : adding "meaning" to triplet user/resource/tag
- Automatic derivation  
  Statistical/clustering algorithms
  heymann.stanford.edu/taghierarchy.html
  EX: clustering at flickr
  Not mature; time-sensitve; community-sensitive; ambiguous, 
     improves with volume

richard@earley.com
paul@earley.com

web: www.early.com
blog: sethearly.wordpress.com
twitter: earlytaxonomy

------------------------------------------------------------------------------
Conference Sessions 3:45PM - 4:45PM

Semantics at Google: RDFa, Microformats, and more
Hansson, Othar, Google, Inc.
Goel, Kavi, Google
Technology - Introductory
Publishing

Rich Snippet
- Text between title and URL in Google serach results
- Sites encouraged to use RDFa or microformats
- EX: vcard; hreview; 

Current (out of a million head pages):
- 11,000 vcard
- 5600 foaf
- 2500 hReview
- hProduct

Open
- RDFa and microformats
- No back-channels to Google
- Engage with community

------------------------------------------------------------------------------
EXHIBIT

neon-toolkit.org - ontology engineering environment; Open Source
Syntactica.com - Entity Extraction (like Calais but code, not a service);
                 (Open Source ??)
Anzo:  software vendor; 
       Open Source http://www.openanzo.org/
       excel (from distributed source) 
         -> RDF
           -> anzo (distributed) server(s)
             -> faceted browsing
Metatomix: SW platform - used in justice, finance, ...

------------------------------------------------------------------------------
Conference Sessions 5:00PM - 6:00PM

Freemix - Social networking for data.
          Wouldn't it be nice if your data had friends, too?
Miller, Eric, Zepheira
Wood, David, Zepheira
Technology - Introductory
Data Integration and Mashups

Zepheira
- Professional Services Organization
- Freemix - a tool

Users want THEIR data THEIR way
Data is there, but it is locked up in application
Desire to take that data from one app and use in another or to drive
 other views

Freemix
- rapidly combine private and public information, style it, share it
- Gain new insights into patterns in data
- Built on open source, open standards
  Simile, OCLC, Aduna, Topaz, Fedora Commons, Cleveland Clinic, Akara

Data A                  View x
Data B ---> Freemix --> Viex y
...                     ...

Freemix
- Easy to expose collection via web
- Connect people around info
  Data from one access point
  Access and connect data across multiple collections of data
- Creating and preserving community
  Share best practices
  Establish network of trust and ...

How is it done
- Empower users
  Create your own view
- Build a community around your data
  Help each other curate and connect as needed
- Skip the supermodel
  Leave data in the systems, wrap and expose using web as platform

Freemix platform viz Freemix.it
- .it: on web - your data is public
- platform: can keep your data private

Freemix
- An easy-to-use version of Simile Exhibit:
  http://www.simile-widgets.org/exhibit/
- But more than just making exhibits
- Can get underlying data out as RDF (serialized in JSON)

Coming soon
- mixing and integrate local and public web content
- human annotation and data augmentation
- scalability, usability, accessibility, I18N
- Freemix Enterprise

em@zepheira.com
david@zepheira.com

Need
- open source
- open standards
- open content
- open content licensing

--------------------------------------------------
Introducing and Applying Semantic Technologies to the Financial Services Industry
Warren, Drew, Recognos Financial LLC
Roth, George, Recognos Inc.
Business / Non-Technical
Industry: Financial

Books and other info sources 
- Semantic WEB Programming 
  ISBN 978‐0‐470‐41801‐7 
- Semantic WEB for the Working Ontologist  
  ISBN 978‐0‐12‐373556‐0 
- The Text Mining Hand Book
  ISBN 978‐0‐521‐83657‐9

------------------------------------------------------------------------------
Evening Events 6:00PM - 8:00PM

Linked Data Gathering
Idehen, Kingsley, OpenLink Software, Inc.
Technology - Introductory
Linked Data

Talis; Squin; ClaraBridge; 
Linked Data coming to Britain and US governments (via Tim Berners Lee)
  see whitehouse.gov/innovate or whitehouse.gov/blog


Notes from Wednesday morning Semantic Technology Conference

Posted by haroldcarr on June 17, 2009 at 03:27 PM | Permalink | Comments (0)

Here are my notes from Wednesday morning at www.semantic-conference.com

==============================================================================
Wednesday, 6/17/2009

Executive Round Table: Semantic Search

Thompson, Carla, Guidewire Group
Moderator

Imielinski, Tomasz, Ask.com
...

Prevost, Scott, bing
Bing: Understand task and organizing.
Powerset: Understand meaning of question.

Norvig, Peter, Google, Inc.
Focus on comprehensive, accurate and fast.
Focus on engineering.

Berkan, Riza, hakia
Complete semantic search engine from botton up.
Focus on dynamic content.

Tunstall-Pedoe, William, True Knowledge
Platform that does direct question answering.
Inference engine and world knowledge base.

Tomkins, Andrew, Yahoo! Search
Semantic annotations on URLs.
SearchMonkey - Incorporate semantic data directly in user results.

------------------------------------------------------------------------------
Semantic Solutions 10:15AM - 10:45AM

Glue: Leveraging Semantics To Connect People Around Things They Visit
Iskold, Alex, AdaptiveBlue
Technology - Introductory
Semantic Applications

Brings your friends to popular sites to let you know what they think
about bookes, music, movies, games, ... and other things your visit.

Connecting people around things.
E.G. You and friends visit book Kite Runner on different sites.
Glue understand you are interested in book (rather than site).
Take web pages and collapses them into objects of interest.

Glue
- Contextual: brings social net to existing web content
- Automatic: participate just by browsing
- web-wide: removes friction in networking - the network comes to your
  location

Technology
- Concepts: server-based XML schemas for things (nouns)
- Identity: Correlating objects across web sites using attribute
  matching and text normalization.
- Recognition: Uses Open APIs and proprietary recognition technology
  to automatically recognize objects in Pages, Links and Text.

Glue API
- Individual Attention
  Access user Lifestream and profiles
  Send updates into glue from your app
- Social Attention
  Lookup users interested in a given book, album, movie, ...
- Aggregate Attention
  Access Popular lists by Category and Stream GLue Activity
- Object Meta data
  Get meta data for pages on hundreds of popular sites
  Get links to objects around the web

------------------------------------------------------------------------------
Exhibit Hall

Ontos (API) - like Calais, but can feed it your own tags
TextDigger - like Calais, but can feed it your own tags

------------------------------------------------------------------------------
Semantic Solutions 11:45AM - 12:15PM

SearchMonkey and the Semantic Web
Haas, Kevin, Yahoo! Search
Technology - Intermediate
Developing Semantic Applications

SearchMonkey
- Open Platform for developers to use structured data
  to show more useful and relevant search results
- Use existing semantic data to mark up search results
- RDF, microformats
  hcard, hreview, hresume, hcalendar, rel-tag, rel-license, sfn, hatom, geo
- Use info from those formats to control formatting of output
- develop.yahoo.com/searchmonkey
- RDF/microformatted pages -> searchmonkey -> results with embedded RDFa

Other apps besides Search: BOSS
- Get access to raw RDF.
- Access to all semantic data that Yahoo! has collected
- develop.yahoo.com/search/boss




Notes from Tuesday afternoon Semantic Technology Conference

Posted by haroldcarr on June 16, 2009 at 07:55 PM | Permalink | Comments (1)

Here are my notes from Tuesday afternoon at www.semantic-conference.com

==============================================================================
Tuesday afternoon, 6/16/2009
------------------------------------------------------------------------------
Book signing

_Semantic Web Programming_
John Hebeler, Matthew Fisher, Ryan Blace, 
Andrew Perez-Lopez, Mike Dean
http://www.amazon.com/Semantic-Web-Programming-John-Hebeler/dp/047041801X
Gave lab at JavaOne two weeks ago

------------------------------------------------------------------------------
EXHIBIT HALL

textwise - complement to Calais
collibra - model transforms; runtime transformer; plug into ESB
Zepheira/Freemix.it - data mashups

------------------------------------------------------------------------------
Conference Sessions 2:00PM - 3:00PM

Active PURLs: Stored Procedures for the Semantic Web
Wood, David, Zepheira
Technology - Intermediate
Digital Integration and Mashups

http://purlz.org/

Steps
- Identify resources by PERSISTENT URIs (PURLs)
- Use "See Also" (HTTP 303) PURLs to ensure cross-boundary data integrity
- Share or use a PURL service
- Coordinate info space level, not the coe or even API - Give metadata
- local control, global access
- Investigate Active PURL to identify, describe and access a web service

------------------------------------------------------------------------------
Conference Sessions 3:15PM - 4:15PM

gist: a minimalist upper ontology
McComb, Dave, Semantic Arts Inc.
Technology - Intermediate
Ontology Concepts

Main concepts
- time, place, people, location, stuff/substance (occupies space and has mass),
  doc, behavior, agreements, organization, 
- properties (hasA, governs, affects, p2p, geo, datatype)
- collections

Commerce
- Organization
- Units of measure, including currency
- Ownership and rights
- Documents and content
- Recorded events, including transactions
- Agreements, contracts, obligations and offers

Units of Measure
- declare base unit and how to convert to base
  seconds (duration), kilograms (weight), meter (extent),
  kelvin (temperature), ampere (power), candela (light), mole (Avolgado's)
- each (count), USDollar (money), square meter (area), 
  cubic meter (volume), ratios (speed, acceleration), percent

Concepts of "now", "here", "me", "us"

------------------------------------------------------------------------------
Conference Sessions 4:30PM - 5:30PM
Faceted Browsing Tools
Technology - Introductory
Developing Semantic Applications

-------------------------
Albornoz Mulligan, Jordi, Cambridge Semantics Inc

Three semantic lens frameworks: 
- Exibit http://simile‐widgets.org/exhibit/ 
- Fresnel http://www.w3.org/2005/04/fresnel‐info/ 
- Anzo on the Web http://www.cambridgesemantics.com/products/anzo_on_the_web

Other interesting faceted browsing & lens work: 
- Longwell: http://simile.mit.edu/wiki/Longwell 
- OpenLink Data Explorer: http://demo.openlinksw.com/ode/ 
- Freebase Parallax: http://mqlx.com/~david/parallax/ 
- JSpace: http://clarkparsia.com/jspace/

-------------------------
Grove, Michael H, Clark & Parsia

http://clarkparsia.com/jspace/

--------------------------------------------------
Nifty Tools For Making the Move From Web 2.0 to Web 3.0
Technology - Intermediate
Data Integration and Mashups

Ogbuji, Uche, Zepheira
Akara - XML Mashup Platform

Origins: 4Suite - Akara is ground up rewrite
- Think Spring or Ruby on Rails
- Focuses on data pipelining

4Suite innovations
- XML/RDF triggered transforms (inspired GRDDL)
- Path-based RDF query mounted across an XML/RDF repository
  (Versa, which inspired many others)
- Rules-based (rather than strongly-type schema) data binding for XML and RDF
- RDF query within XSLT
- Push-style data-driving multiple dispatch to code
  Triggering off of patterns into code

xml3k community : data web tools
SpringPython port of Java web framework

Positioning
- Platform for data and services on web
- declarative, REST transformation pipeline
- Encapsulates 10 years of experience in XML data transforms

REST wrapper
- Take any utility function, remote web service, or data scrpaer and add a 
  couple of lines to turn it into a REST endpoint:
  Wikis, google search, geocoders, calais, RDF, RSS/Atom, 
  Arbitrary Web pages, XML, SPSS

Service framework
- discovery through REST
- service classes have ID and location

Web triggers/hooks
- like DBMS triggers: declare that one event accuates another
- events are REST/HTTP messages
- enables assembly of transform pipelines

Pipes
- kind of like Yahoo or DERI pipes except that Freemix is an
  example of 
...

Has server
- Threads suck
- Process oriented (like Google chrome)

Developer notes
- Implemented in C and Python
- Transforms in phython (available via web service)
- Apache style license

Coming up
- Generic query framework across pipeline results
- Support for API keys/metering
- Additional transform implementation languages

Sample
- RDFa scraper - point to web site containing RDFS, get RDF

Validations are Transforms

Contact
- xml3k.org/akara
- uche@zepheira.com

------------------------------------------------------------------------------
Exhibit Reception 5:30PM - 7:00PM

www.getblue.com - socialize any web page your browse
   (e.g., see friend's comments on movies on page, even if
    page does not have commenting system)
www.getblue.com/api - tap into glue's database and semantic recognition engine
mark@adaptiveblue.com

www.topquadrant.com - Gave session at JavaOne two weeks ago.model
data, connect data sources, design queries, rules and semantic
processing chains.



Notes from Tuesday morning Semantic Technology Conference

Posted by haroldcarr on June 16, 2009 at 02:15 PM | Permalink | Comments (4)

Here are my notes from Tuesday morning at www.semantic-conference.com

==============================================================================
Tuesday, 6/16/2009
------------------------------------------------------------------------------
Opening Keynote Session 8:30AM - 10:00AM

--------------------------------------------------
The Big Picture - How Semantic Technologies Introduce a New Paradigm for Interaction
Tague, Thomas, Thomson Reuters OpenCalais Initiative
Business / Non-Technical
Foundational Topics

How did we get here (e.g., Web 2.0)?
- Web 1.0 - the last web we agree on (destinations)
- Web 2.0 - social; user generated content; atomize assests and distribute

Where are we today?
- Content Rich
- Information Poor
- Experience Poor

Semantic Technology
- 5 years ago: invention; from basic conceptual models to standards
- today: drive value and make money on top

CALAIS

Input to him in 6 buckets
- Tools
- Social
- Advertising
- Search
- Publishing
- Interface

Consultant's Refuge
- The 2x2 grid
  Y: Distinctive User-Derived Value
  X: Marketplace Size
  B | A
  - + -
  D | C
  E.G.: A:Medicine, B:Accordians, C:Soap
  A + B: Various Kinds of Good
  D: Don't go here
  C: Brand Domain (Oil of Olay Soap)

Tools
- Semantic data management
- Semantic data generation
- Databases
- Integration and Workflow

Social
- Semantics-powered link sharing
- Network mining
- News sharing
- Tweet mining

Advertising
- Semantic ad placement
- Contextual ad placement
- Semantically-driving landing pages
- Mashup Ads

Semantic Search
- General "Semantic Search" viz Domain specific semantically enhanced search

Publishing
- A: Content Producers - back office to user experience
- B: Editorial + Aggregation Publishing Models
- D: Robotic publishing - aggregation only

Interface
- Pay attention: gaming industry: 57+ billion
- Videogames viz today's state of the web
  Great story line; highly interactive; immediate response
  No interruptions; Graphically engaging; Seamless; Fun
- Who is trying to change user experience?
  Zemanta; Apture; feedly; GetGlue.com
- If you want to deliver compelling user experience go to where people are:
  browsers, mobile devices
- Why is Google building a browser : it's the integration point

Roadmap
- Web 1.0 : web of destination
- Web 2.0 : fragmentation
- Web 3.0 : unification : "The Web of Me"

Suggestions for success
- Put your indea in the 2x2.  Be honest.  Stay out of deadzone.
- Decide if you care about semantics or about user value.
  If it's semantics - be a tool vendor.
- Don't fund/spend money on semantic infrastructure beyond what is necessary.
  The basic building blocks are available.
- Think hard about user experience.  Make it amazing.

--------------------------------------------------
The Game Changer: Siri, a Virtual Personal Assistant
Gruber, Tom, CTO and cofounder: Siri
Business / Non-Technical
Semantic Applications

Bringing Intelligence to the Interface
- Touch screens and cinematic animation
- Global network for info and collaboration
- Awareness of temporal and social context
- Continuous Speech in and out
- Conversational Inteface : assistant talks back
- Delegation of tasks to the assistant
- Assistant use of personal data (trust)

How Close are we?

You can't talkt to a search engine this way.
"The future of search is a conversation with someone you trust" - John Battele

What is needed to put it all together?
location awareness; conversation interface; speech to text;
semantic data; text to intent; task awareness; dialog flow; services apis;
task and domain models; access to personal info

------------------------------------------------------------------------------
Conference Sessions 11:45AM - 12:45PM

--------------------------------------------------
BKN: Building Communities through Knowledge, and Knowledge Through Communities
Bergman, Michael K., Structured Dynamics
Business / Non-Technical
Collaboration and Social Networks

Funded by NSF

Overview of BKN
- Development tools and services for virtual organizations (VO)
- Select, Filter and enhance bibliographic data for each VO
- Bib collections
- AUthoring tols

Points
- VO nodes - collaboration portals
- Gateways - connections to external content
- Hubs - aggregate suppliers of useful datasets
- Individual - dataset contributers and clients

Formats
- BibJSON
- Various existing
- RDF - canonical internal data model

VO nodes
- structWSF - web services frameworks
- CMS: drupal
- RDF triplestore : Virtuoso
- Full-text, faceted search: Solr

Benefits 
- toolset for structured data (semantic Web) conversion, use and exposure 
- Data-drivenvia ontologies; easily scoped, tailored 
- Naïve data formats and RDF APIs via RESTful Web services 
- Web services framework can mix-and-match: 
  standalone, Integrated with any CMS, External tools access 
- Web-wide user and dataset access and permissions 
- Available as a distro of the Drupal CMS 
- Open source and extensible

DEMO
- http://ec2-75-101-176-82.compute-1.amazonaws.com/drupal/content/people
- users, roles, datasets
- http://ec2-75-101-176-82.compute-1.amazonaws.com/drupal/content/people&wsf_debug=1

Primary construct for data exchange is DATASET

The Backend Structure 
- Drupal: 
  User interface and theming 
  User and group management 
  Content management system 
  Many third-party tools and modules 
- Virtuoso: 
  RDF triple store 
  SPARQL and endpoints; linked data exposure 
  Some structured data conversions 
- Solr: 
  Full-text indexing 
  Faceting and aggregating (counts) 
  Innovative complete RDF search

structWSF (Web services framework) 
- Standard functionality: 
  Data management:  CRUD
  Browse and search 
  Browse and search 
  Import/export 
  Display templates 
- Dataset registration w/ permissions 
- Ontology registration 
- User authorization and access (IP-based initially) 
- RESTful design

Open-source Structured Content System:
- http://constructscs.com/
- OpenStructs.org

conStruct SCS 
- conStruct SCS is a structured content system 
- Open source version of the BKN project that runs on Drupal 
- Drupal components: 
  Drupal 
  conStruct module (core functionality) 
  structDisplay module (display templating) 
  Required additional modules (e.g., Organic Groups, WYSIWYG, etc.) 
- Structured Dynamics: 
  structWSF (Web services framework) 
- Third parties: 
  Virtuoso RDF triple store 
  Solr full-text faceted search 
  Smarty templating system


Notes from Monday Semantic Technology Conference

Posted by haroldcarr on June 16, 2009 at 11:00 AM | Permalink | Comments (0)

Here are my notes from Monday at www.semantic-conference.com

==============================================================================
MONDAY
------------------------------------------------------------------------------
Evening Conference Sessions 5:00PM - 6:00PM 
--------------------------------------------------
The Site Is the API: Developing Web Sites for the Semantic Web
Yergler, Nathan R., Creative Commons
Technology - Intermediate 
Semantic Case Studies and Web 3.0

Programs should be able to answer questions about licensed works.
- what is the work's license?
- commericial use allowed?
- derivative works allowed
- how to atrributed the work?

RDFa embedded in suggested HTML for chosen license.

CC network
- code.creativecommons.org

Registry Requirements
- Allow users to "claim" a work.
  Id works by URL (wildcard claiming: http://example.com/*)
- Info available to others
- Allow apps to query registrations
- Allow creators to mark works as "registered"

Deed Requirements
- Integrate reg info on CC Deeds
- Support regs other than CC network
- Allow others to integrate

Prior Art - Attribution Metadata
- Users can assert a name and URL for Attribution
- CC encoded in generated HTML
- CC deeds look at the Referrer to find this
- Use/Consume RDFa

Prior Art - Retrieving RDFa
- Same-domain restriction complicates thing
- We could parse RDFa client side if not for that restriction
- Developed a "scraper appl
  Takes a URL, Retrieves ...

How to Register WOrk
- ID by URI, Title, License URL
- Publish a singe page per Registration
- A Registration may include multiple works

Interface considerations
- Javascript is limited to progressive enhancement
- RDFa builds on existing DOM
- Could insert RDFa with Javascript but increases demand on consumers

Properties
- sioc:owner_of, sioc:has_owner, sioc:name, sico:member_of, dc:title

Query registrations
- Look up by URI
- Discovery
- Publish assertion about service

sioc_service:has_service
sioc_service:service_protocol

Validating Registrations
- Really about adding trust

Network Membership Badge

The Deeds are an application

Metadata instead of coupling
- Deeds request metadata from the referring page
- ....

General Principles
- Using templates - so make them useful for software
- Voacab mix-n-match is fine
- If market leader - commit to minimum set of info.
- Persistent URIs

FUTURE:

Science Commons
- Similar to Attribution work

--------------------------------------------------
RDF as a Lingua Franca: Key Architectural Strategies
Booth, David, Cleveland Clinic
Technology - Introductory
Systems Integration

1 RDF Message Semantics
2 GRDDL transforms from XML to RDF
3 REST-based SPARQL endpoints
4 Semantic Data Federations
5 Named graphs
6 Monotonicity

GLOZE : Performs XML <-> RDF

Sets of RDF data can be bundled as named graphs
Query strategy can pull in only the named graphs that are needed.
Graphs can overlap and/or be merged if necessary

nonmonotonic : data change invalidates everything downstream
               tightly coupled
               EG: Patient123 highBloodPressure true.
monotonicity : new data added freely; easier versioning; robust
               EG: Patient123 highBloodPressure true at 12:22PM 23-Aug-2007

W3C paper on N-ary relations

Use timestamps on observations

------------------------------------------------------------------------------
Evening Events 6:00PM - 8:00PM

Data Portability and The Semantic Web
Barbosa, Daniela, DataPortability Project/ Dow Jones
Saad, Chris, JS-Kit
Technology - Introductory
Business & Marketplace

www.dataportability.org
identitycommons.org
openid
oauth (e.g.,  instead of giving username/password to flickr)
sioc-project.org
js-kit


My post-JavaOne tasks

Posted by haroldcarr on June 15, 2009 at 11:05 AM | Permalink | Comments (0)

I promised various things to a number of you I saw at JavaOne. Please be patient. I'm at the Semantic Technology conference in San Jose this week and presenting at Jazoon next week. So it will be July when I get to those items.

http://www.semantic-conference.com/

jazoon.com



Speaking on Metro/.NET interop at Microsoft Keynote at JavaOne

Posted by haroldcarr on June 03, 2009 at 08:03 AM | Permalink | Comments (0)

On Thursday June 4, first thing in the morning at JavaOne, I will be on stage with Microsoft at their keynote demonstrating Java web service interoperability with .NET via the Metro web service stack.

It was just three years ago in 2006 when we last keynoted together at JavaOne showing our early stage interop before we had actually released anything. It is quite gratifying to be together again showing our solid interop that has been through several releases on both ends.



My two talks on Metro at JavaOne

Posted by haroldcarr on June 01, 2009 at 11:44 PM | Permalink | Comments (3)

I'll be giving presentations on Metro at JavaOne. Here are the dates, times, locations and titles.

Wednesday June 3, 2009
11:05am-12:05pm - Esplanade 300
TS-4617
Using Java Technology in the Windows Azure Cloud via the Metro Web Services Stack
Harold Carr, Sun Microsystems, Inc.
Clemens Vasters, Microsoft

Thursday June 4, 2009
9:30am-10:30am - Hall E 134
TS-4402
Metro Web Services Security Usage Scenarios
Harold Carr, Sun Microsystems, Inc.
Jiandong Guo, Sun Microsystems, Inc.


Speaking on Metro at Community One

Posted by haroldcarr on June 01, 2009 at 12:48 PM | Permalink | Comments (3)

I'm speaking on the Metro web services stack at Community One at 1:40pm today. Watch live online:

http://developers.sun.com/events/communityone/2009/west/index.jsp

I'm also presenting two technical session at JavaOne and participating in the Microsoft keynote. More on those later...



Metro interoperates with .NET wsDualHttpBinding

Posted by haroldcarr on April 09, 2009 at 10:36 AM | Permalink | Comments (0)

In August 2007 Arun Gupta wrote a blog entry with the title "wsHttpDualBinding - a non-interoperable binding". That was written during our learning curve. It turns out that the wsDualHttpBinding (which is the correct name, the title reversed two words) is interoperable. The details are somewhat subtle, as I explain below.

wsDualHttpBinding is .NET's name for addressable client interactions. "Addressable clients" means that responses are sent to a service, logically on the client side, which receives the responses as requests, rather than sending the response on the connection that made the request

wsDualHttpBinding is a .NET declaration that can be applied to any .NET contract (not just the duplex contract discussed in Arun's blog, which I will say more about below). WSDLs generated from wsDualHttpBinding are standard. They contain addressing assertions that indicate responses are "nonanonymous"---in other words, sent to a specific address, rather than sent on the "backchannel" (the connection on which the request was made).

When a client invokes an operation of a wsDualHttpBinding-based service, the client side web service stack will provide a "replyTo" address that is nonanonymous. .NET has automated this process, so the client will automatically have a "response receiving" endpoint ready. In Metro, one would build such an endpoint by hand.

Since we are talking about responses that implies that wsDualHttpBinding is suited for two-way messages (even though Arun's entry shows one-way message, which might confuse the issue).

Arun's blog example uses .NET duplex contract. That contract is non-interoperable. The WSDL generated from duplex contract contains output only operations. This is incompletely specified in the WSDL 1.1 specification (i.e., the specification mentions output-only but does not give enough specifics to be normative). The .NET duplex contract is basically a link between two one-way contracts. It enables the service to decide which method on the callback interface to invoke.

The confusion in Arun's entry arises because it is mixing two things: wsDualHttpBinding and duplex contract

The above should clarify that wsDualHttpBinding is interoperable

ps: One-way messages are a necessary ingredient in the duplex contract. Also, the callback contract half of a duplex contract must have the IsOneWay attribute.

pps: One of the MSFT assertions for the wsDualHttpBinding is named ow:OneWay and the customBinding equivalent of wsDualHttpBinding includes <oneWay/>.

ppps: All the one-way mentions in the original blog might obscure the real issue: the difference between wsDualHttpBinding and duplex contract.

Technorati: wcf wsit glassfish projectmetro

July 2009
Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  


Search this blog:
  

Categories
Community
Community: Java Enterprise
Community: Java Web Services and XML
Web Applications
Archives

July 2009
June 2009
April 2009
March 2009
February 2009
November 2008
August 2008
May 2008
April 2008
March 2008
February 2008
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
April 2007
February 2007
January 2007
December 2006
September 2006
August 2006
May 2006
February 2006
January 2006

Recent Entries

My CommunityOne 2009 presentation is online

My JavaOne 2009 presentations online

Notes from Thursday at Jazoon



Powered by
Movable Type 3.01D


 Feed java.net RSS Feeds