|
|
|||||||||||||||||||||||||||||||||||||||||||||
Harold Carr's Blog
My CommunityOne 2009 presentation is onlinePosted 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 onlinePosted by haroldcarr on June 30, 2009 at 03:08 PM | Permalink | Comments (0)My JavaOne 2009 presentations are now available online.
Technorati:
wcf
wsit
glassfish
projectmetro
Notes from Thursday at JazoonPosted 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 JazoonPosted 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 JazoonPosted 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 JazoonPosted 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 JazoonPosted 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 ConferencePosted 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 ConferencePosted 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 ConferencePosted 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 ConferencePosted 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 ConferencePosted 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 ConferencePosted 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 tasksPosted 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/ Speaking on Metro/.NET interop at Microsoft Keynote at JavaOnePosted 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 JavaOnePosted 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 OnePosted 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 wsDualHttpBindingPosted 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
Search this blog:CategoriesCommunityCommunity: Java Enterprise Community: Java Web Services and XML Web Applications Archives
July 2009 Recent EntriesMy CommunityOne 2009 presentation is online My JavaOne 2009 presentations online | ||||||||||||||||||||||||||||||||||||||||||||
|
|