XDI Link Contract Deep Dive

Size: px
Start display at page:

Download "XDI Link Contract Deep Dive"

Transcription

1 XDI Link Contract Deep Dive August 25-27, 2014 (Document by Dan Blum, slightly edited for Aug 29 XDI TC call by Markus) Introduction I learned that this is the second- or third XDI retreat, and for some reason they always occurred in August. Drummond note: I ve been working on XDI for a long time, its as if I was trying to solve a rubics cube that no one else is aware of, but that I believe will have great value when I finish it. Many of us certainly think so, and that s why we came to the Respect Network s new office is in Berkeley just across the railroad tracks near the bay. Our agenda was to explore the XDI models underlying link contracts, generate some tangible examples and suggestions for the spec, and deepend our understanding. These notes are a work in progress. I will keep cleaning them up, that is, replacing white board screen shots with computer-drawn diagrams. But soon they will be finished as a work-product and some of the learnings and content will move forward into other deliverables. Goals of meeting 1) 2) 3) 4) Advance understanding of XDI syntax Test consistency of syntax against the graph model Establish and document standard patterns and constructs Establish and document standard link contract patterns and constructs Dan described access control model as in XDI policy Contents Table of Contents Introduction... 1 Goals of meeting... 1 Contents... 1 Graph model... 2 Common root node... 2 More on absolute and relative identifiers...2 Authorities... 2 Graph display formats... 2 More on identifiers... 2 Entities and attributes... 2

2 Inverse statements... 2 Equivalence relations... 2 Security considerations... 2 Data modeling... 2 Link contract discussion... 2 Versioning... 2 Signatures and link contracts... 2 Building link contract examples... 2 Variables... 2 Usage policies, a new idea - $For branch...2 Graph Editor issues... 2 Discussion of XDI standards process...2 Making XDI display more documentation-friendly...2 More on the interaction between peer roots...2 Conclusion meeting results...2 Graph model Drummond drew the model formally known as GEAV graph entry- attributevalue recommends reading Wikipedia article on EA model GEAV Graph nodes (roots) -> entity nodes -> attribute nodes -> value nodes -> literal Graph root entities are called authorities Graph Root entities can contains other graphs or entities or attributes Entities can contain entities or attributes Attributes can contain attributes or values Values must contain a literal First four types of entries are context nodes, last is literal, value node exists to address the literal If there s no value node, value is undefined If there is a value node, and you have no literal node, the value is null You could say that with these containment rules XDI is infinitely contextual

3 Nodes connected by arcs: Three kinds of arcs in XDI contextual, relational and literal Common root node There is a logical common root node in XDI, drawn as a blank circle with no name, containing no data Although we see the graph as many peer root graphs in fact we may desire some consistency among contexts (e.g. names or attributes like =DANB or # ) in whatever graphs they appear; that s why we ve defined a common root for all XDI Discovery spec assumes this common root If all systems using XDI follow the specs you have can have absolute identifiers for the same thing wherever they occur in the graph; names defined in registries, semantic attributes in dictionaries can be consistent More on absolute and relative identifiers Every node is identified by the label on the line, or arc, pointing to it Every node has an address comprised of the arc of all the the nodes pointing to it in the graph Every node has an absolute or relative identifier In having absolute identifiers XDI is different from DNS or X.500 which don t; although DNS uses co or www as conventions In the example, =dan is an absolute identifier, but data about the entity appears in multiple graphs and statements about things like the height attribute can even disagree; however the graph remains consistent =dan<#height>&/&/ tall +xdi.org=dan =andy=dan#height&/&/ short However, if you want to NOT use the absolute names, you can use cross references to make them relative identifiers +nym=(dan) However, if it reads +nym=(mailto:dan.blum@gmail.com) the contents are no longer relative, they are absolute Authorities Each graph is controlled by an authority and there are three types of authorities

4 = person names + organization or legal names *Things Root types common root, peer roots (=danb) and inner roots (=danb/=a) (=b) means the graph whose identifier is =b If you discover this graph the expectation is that you ll be able to get to that entity s information Technically, the beginnings of all graphs look like the figure above; the cross ref represents =b asserting its ownership of the graph; the whois statement The inner root is a first class relation that initiates a subgraph to reify everything about that relationship Here are some examples of =a with various friend relationships and an inner root to reify all of the (=a/#f) and a specific relationships (=a/=c) If an inner root is copied to another graph, its contents and subcontexts must all be identical in each graph =a/#friend/=c =a has a friend =c (=a/#friend)//=c =a s friend =c By reifying the relationship this way we can make statements about it, associate metadata about the relationship

5 Question for TC: If a link contract template needs to ask for a piece of data that may be structured in different ways in different graphs (a home and work number in one, a collection in another) how do you pose your template, your get operations? Graph display formats All roots are drawn as open circles Context nodes that aren t roots are drawn as dark circles Contextual arcs are solid lines, relational arcs are dashed lines There are three types of entities and three types of attributes and variables - Singleton Collection Members These types, and the ordering of collections, are shown by the labelling of the arc with the [,],<,>,@,! symbols Attributes are drawn as dark diamonds Digression on addresses and implied statements (see figure below)

6 More on identifiers XDI schemes Extensible identifier formats that have been mapped into XDI, e.g.!:uuid: Three ways to identify members:!234!(crossref) e.g. #british, #american, #french,!:scheme:data Entities and attributes If an entity is an authority it is identified by its authority type, if it is not an authority it is identified by its class Entities and Attributes have classes - $ for reserved, # for general Attributes are displayed surrounded by chevrons to distinguish from entities

7 This figure illustrates implied statements Inverse statements -a//=b is a contextual statement and the inverse of that is =b/$is()/=a The ability to assert the inverse of a contextual statement is important for the XDI messaging spec

8 For example, =danb/$is()/+respectnetwork or +xdi.org or +university Would let me assert that I can be found in these other graphs; the figure below shows how I could be found either as a child node or as a root node at another XDI endpoint Equivalence relations $is identity, or union $ref - reference $rep replace

9 All three relationship types can have inverse relations, backpointers $rep and $ref nodes cannot contain any data, just the reference can only have one $ref or $rep going out per node have to reference only other nodes that are semantically equivalent, e.g. singleton to singleton, or singleton to member of collection XDI relational arcs don t extend XDI node addresses, one cannot generate node address containing relation Example of Andy s gamer tag =km below $is a union so it implies its inverse and its all me (strongest relationship), is especially strong when =a and =b have the same parent node in this case, the contents of each node must not conflict; however if =a and =b=a have conflicting context it is ok because they have different parent; one subgraph represents =a making statements about itself, the other represents =b making statements about =a; I ve read that a fundamental goal of semantic languages is to allow authorities to disagree on semantics without breaking the consistency and coherency of the whole graph under the common root $ref and $rep are unidirectional, $ref can be the only arc on a node, a server returns the $ref to the client (or it may resolve local refs only, or it may resolve a certain number of refs) $rep can be the only arc on a node, a server must traverse and get the data, logically merging it under the original graph, $rep doesn t appear in the results (=a/=a) is a root link contract shown in this picture below; these could enforce the ability for the authorities =a and =b and only them to control their graphs

10 Security considerations To make sure that although anyone can write a $ref to anything, the controls enabling access (or not) work as they should to maintain each authority s graph as theirs Question for TC: its unclear how the $ref should be processed, whether as a chained request or as referral to the client, the TC should specify this behavior (proposal server gives what it is has) Regarding the processing of $ref, we have discussed introducing an "operation parameter" called $deref, which would instruct the server to traverse them as if they were $rep To make XDI have a consistent and portable authorization model, XDI makes the following assumptions 1) There is a common root such that all the peer roots can be viewed as one graph, or as separate graphs; logically the common graph would be drawn the same way whether it was held in one XDI service provider or in many 2) The behavior of operations on the graph logically behave as if all the peer roots were separate authorities within the common graph 3) The XDI policy spec will model bootstrap link contracts and whois statements as necessary to support its design objectives: e.g., peer to peer and graph portability Data modeling Name / number pattern when data is persistent, not reassignable, we re encourage to use the uuid pattern with members of a collection so that it will not move between times it is accessed Still seeing questions about whether data should be represented as collection or singleton when you have only one value at present, but could have more later General guidance: if you are thinking about creating an attribute and it won t have a value, make it an entity

11 XDI dictionary spec needs to define schema definition process for community dictionaries to create attribute and entity definitions (e.g. <# > and #address) Link contract discussion Note for TC (editor): modify the policy doc to change incorrect public link contract controls entire graph sentence; global change the use of the word own to control Versioning Discussion of versions of templates Note: the $v needs to be extensible to the major/minor pattern, but you can do that through Note for TC: the XDI versioning spec may need to be put on the critical path, too complex to go in the dictionary Figure above shows the potential use of version with both the link contract template and the link contract instance Signatures and link contracts Good discussion about where link contract should be mandatorially signed and if so should part of it be unsigned meaning that the AA can make changes without revoking it Building link contract examples Breaking down the link contract inner root (like any other root) drawn under the common root Inner root reifies relationship, but doesn t have implied policy to impose control, have to state policy explicitly

12 Discussion on how XDI addresses are written and graphs drawn (with implied context) Thus you always have to include ( $do$if$true)$is{$from}/$is/=ra Could the TC decide this was implied and the default? Policy statements $do$if are expressed as nested inner roots under the inner root of the LCI Policy is true if $from is $RA because actual identifiers match, or if the equivalence statement exists in the graph Note for TC: need to define $valid, or to define that by default valid is always implied (e.g. in link contract template asks) Note: the reason we stick with the UUID even in the intuitive version is because we want to reinforce the practice of using persistence identifiers, which are ordered members of collections Variables Variables used for substitution of instances, such as the LC template creating an instance; in some cases an instance may contain a variable (such as authenticate sender of message at runtime ); in that case you have double curly braces; if just one level of variable you strip and instantiate, otherwise you just strip; this can be seen in the link contract example Usage policies, a new idea - $For branch With authorization service generating UI form from XDI link contract template under the covers

13 Note for TC: We ended up with quite a few suggested elaborations of the link contract format in the deep dive meeting that we need to update you on. Graph Editor Issues Issue: potential bug in the graph editor when it imports xdi, display 1, exports, imports, display 2 different (Andy will send example statements causing this) Issue: the graph editor is displaying attribute collections as solid circles rather than as solid diamonds Another bug in editor: LCI instance path wrong after $get Bugs in the graph editor may actually bugs in xdi.js, which is still experimental. Making XDI display more documentation-friendly Drummond said TC has or used to have an XDI nested display syntax Avoids need to restate absolute path on every line of a set of statement Like the ditto convention in the English language

14 Question for TC: should we start using the nested display syntax in some documentation? Should we use ## or something else for comments in documentation or regular display syntax? More on the interaction between peer roots The figure below captures a rich discussion we had. XDI is like a mesh network of peer root graphs. Although many graphs may be hosted by CSPs, and all graphs identifiers should be listed in a registry, peers can communicate directly if they know each other s URI. The notional common root enables the peer to peer behavior. Question for TC: Verify that the expected behavior for an endpoint is that it should follow equivalence relations within its own graph. Question for TC: what are the rules or guidelines for when and how endpoints should follow $refs or other equivalence relations into other graphs (where they may or may not have access but might want to try).

15 Conclusion meeting results We feel as if we re validating the graph model; none of the issues we discussed change it What the LC instances look like

16

The XDI Graph Model Editor: Drummond Reed, XDI TC Co-Chair

The XDI Graph Model Editor: Drummond Reed, XDI TC Co-Chair The XDI Graph Model 2012-04-12 Editor: Drummond Reed, XDI TC Co-Chair This document is a work-in-progress from the OASIS XDI Technical Committee reflecting contributions from many members of the TC. Its

More information

CSE 12 Abstract Syntax Trees

CSE 12 Abstract Syntax Trees CSE 12 Abstract Syntax Trees Compilers and Interpreters Parse Trees and Abstract Syntax Trees (AST's) Creating and Evaluating AST's The Table ADT and Symbol Tables 16 Using Algorithms and Data Structures

More information

Decision Making in C

Decision Making in C Decision Making in C Decision making structures require that the programmer specify one or more conditions to be evaluated or tested by the program, along with a statement or statements to be executed

More information

Adding content to your Blackboard 9.1 class

Adding content to your Blackboard 9.1 class Adding content to your Blackboard 9.1 class There are quite a few options listed when you click the Build Content button in your class, but you ll probably only use a couple of them most of the time. Note

More information

The Dynamic Typing Interlude

The Dynamic Typing Interlude CHAPTER 6 The Dynamic Typing Interlude In the prior chapter, we began exploring Python s core object types in depth with a look at Python numbers. We ll resume our object type tour in the next chapter,

More information

H1 Spring B. Programmers need to learn the SOAP schema so as to offer and use Web services.

H1 Spring B. Programmers need to learn the SOAP schema so as to offer and use Web services. 1. (24 points) Identify all of the following statements that are true about the basics of services. A. If you know that two parties implement SOAP, then you can safely conclude they will interoperate at

More information

Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas

Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas What is this class about? While this class is called Design Patterns, there are many other items of critical

More information

Binary Relations Part One

Binary Relations Part One Binary Relations Part One Outline for Today Binary Relations Reasoning about connections between objects. Equivalence Relations Reasoning about clusters. A Fundamental Theorem How do we know we have the

More information

QUIZ. What is wrong with this code that uses default arguments?

QUIZ. What is wrong with this code that uses default arguments? QUIZ What is wrong with this code that uses default arguments? Solution The value of the default argument should be placed in either declaration or definition, not both! QUIZ What is wrong with this code

More information

Public Meeting Agenda Formatting Best Practices

Public Meeting Agenda Formatting Best Practices DEFINITIVE GUIDE Public Meeting Agenda Formatting Best Practices In this guide, we will first walk you through some best practices with text and images. Then, we will show you how to execute the best practices

More information

Foundations, Reasoning About Algorithms, and Design By Contract CMPSC 122

Foundations, Reasoning About Algorithms, and Design By Contract CMPSC 122 Foundations, Reasoning About Algorithms, and Design By Contract CMPSC 122 I. Logic 101 In logic, a statement or proposition is a sentence that can either be true or false. A predicate is a sentence in

More information

CITS5501 Software Testing and Quality Assurance Formal methods

CITS5501 Software Testing and Quality Assurance Formal methods CITS5501 Software Testing and Quality Assurance Formal methods Unit coordinator: Arran Stewart May 1, 2018 1 / 49 Sources Pressman, R., Software Engineering: A Practitioner s Approach, McGraw-Hill, 2005

More information

Database Management System Dr. S. Srinath Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No.

Database Management System Dr. S. Srinath Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. Database Management System Dr. S. Srinath Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. # 13 Constraints & Triggers Hello and welcome to another session

More information

CSCI 1100L: Topics in Computing Lab Lab 11: Programming with Scratch

CSCI 1100L: Topics in Computing Lab Lab 11: Programming with Scratch CSCI 1100L: Topics in Computing Lab Lab 11: Programming with Scratch Purpose: We will take a look at programming this week using a language called Scratch. Scratch is a programming language that was developed

More information

LABORATORY 1 REVISION

LABORATORY 1 REVISION UTCN Computer Science Department Software Design 2012/2013 LABORATORY 1 REVISION ================================================================== I. UML Revision This section focuses on reviewing the

More information

Animations involving numbers

Animations involving numbers 136 Chapter 8 Animations involving numbers 8.1 Model and view The examples of Chapter 6 all compute the next picture in the animation from the previous picture. This turns out to be a rather restrictive

More information

[Compatibility Mode] Confusion in Office 2007

[Compatibility Mode] Confusion in Office 2007 [Compatibility Mode] Confusion in Office 2007 Confused by [Compatibility Mode] in Office 2007? You re Not Alone, and Here s Why Funnybroad@gmail.com 8/30/2007 This paper demonstrates how [Compatibility

More information

Section 2. Sending s

Section 2. Sending  s Start IT (itq) Using E-mail Section 2 Sending E-mails Topics contained within this section: Composing E-mail Using Addressing Using Spell Checking Sending Messages Understanding Guidelines Outlook 2007

More information

Write for your audience

Write for your audience Comments Write for your audience Program documentation is for programmers, not end users There are two groups of programmers, and they need different kinds of documentation Some programmers need to use

More information

How To Get Your Word Document. Ready For Your Editor

How To Get Your Word Document. Ready For Your Editor How To Get Your Word Document Ready For Your Editor When your document is ready to send to your editor you ll want to have it set out to look as professional as possible. This isn t just to make it look

More information

Motivation. What s the Problem? What Will we be Talking About? What s the Solution? What s the Problem?

Motivation. What s the Problem? What Will we be Talking About? What s the Solution? What s the Problem? 1 Checking System Rules Using System-Specific, Programmer-Written Compiler Extensions Dawson Engler Benjamin Chelf Andy Chou Seth Hallem Stanford University Matthew Thornton November 9, 2005 2 Motivation

More information

CaseComplete Roadmap

CaseComplete Roadmap CaseComplete Roadmap Copyright 2004-2014 Serlio Software Development Corporation Contents Get started... 1 Create a project... 1 Set the vision and scope... 1 Brainstorm for primary actors and their goals...

More information

A simple problem that has a solution that is far deeper than expected!

A simple problem that has a solution that is far deeper than expected! The Water, Gas, Electricity Problem A simple problem that has a solution that is far deeper than expected! Consider the diagram below of three houses and three utilities: water, gas, and electricity. Each

More information

CTI-TC Weekly Working Sessions

CTI-TC Weekly Working Sessions CTI-TC Weekly Working Sessions Meeting Date: October 18, 2016 Time: 15:00:00 UTC Purpose: Weekly CTI-TC Joint Working Session Attendees: Agenda: Jordan - Moderator Darley Christian Hunt Rich Piazza TAXII

More information

Shorthand for values: variables

Shorthand for values: variables Chapter 2 Shorthand for values: variables 2.1 Defining a variable You ve typed a lot of expressions into the computer involving pictures, but every time you need a different picture, you ve needed to find

More information

CTI-TC Weekly Working Sessions

CTI-TC Weekly Working Sessions CTI-TC Weekly Working Sessions Meeting Date: Thursday, May 12 2016 Time: UTC 14:00:00 Purpose: CTI-TC CybOX Subcommittee Working Session Attendees: Agenda: Kirillov - Moderator Darley Wunder Rich Piazza

More information

SynApp2 Walk through No. 1

SynApp2 Walk through No. 1 SynApp2.org SynApp2 Walk through No. 1 Generating and using a web application 2009 Richard Howell. All rights reserved. 2009-08-26 SynApp2 Walk through No. 1 Generating and using a web application The

More information

Instrumental Documentation

Instrumental Documentation Instrumental Documentation Release 0.5.1 Matthew J Desmarais February 08, 2016 Contents 1 Introduction 3 1.1 What is instrumental?.......................................... 3 1.2 What s the problem?...........................................

More information

P2PSIP Draft Charter. Dean Willis March 2006

P2PSIP Draft Charter. Dean Willis March 2006 P2PSIP Draft Charter Dean Willis March 2006 Purpose The purpose of the Peer-to-Peer (P2P) Session Initiation Protocol working group (P2PSIP WG) is to develop guidelines and mechanisms for the use of the

More information

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read) 1 For the remainder of the class today, I want to introduce you to a topic we will spend one or two more classes discussing and that is source code control or version control. What is version control?

More information

All In the Family: Creating Parametric Components In Autodesk Revit

All In the Family: Creating Parametric Components In Autodesk Revit All In the Family: Creating Parametric Components In Autodesk Revit Matt Dillon D C CADD AB4013 The key to mastering Autodesk Revit Architecture, Revit MEP, or Revit Structure is the ability to create

More information

Programming Style. Quick Look. Features of an Effective Style. Naming Conventions

Programming Style. Quick Look. Features of an Effective Style. Naming Conventions Programming Style Quick Look An effective programming style helps you write code that is easier to understand, debug, maintain, and port from system to system. This article discusses the general features

More information

Creating animation rigs that solve problems, are fun to use, and don t cause nervous breakdowns.

Creating animation rigs that solve problems, are fun to use, and don t cause nervous breakdowns. Animator Friendly Rigging Creating animation rigs that solve problems, are fun to use, and don t cause nervous breakdowns. - 1- CONTENTS Finishing The Rig... 6 Matching Controls... 7 Matching the position

More information

Introduction to Templates

Introduction to Templates Introduction to Templates Module 1 of the Reference Data Readiness Course Julian M.N. Bourne 2014-06-23 JORD 2014 PCA and Fiatech Module & Course Introduction Introduction to Templates is the first module

More information

CLIENT ONBOARDING PLAN & SCRIPT

CLIENT ONBOARDING PLAN & SCRIPT CLIENT ONBOARDING PLAN & SCRIPT FIRST STEPS Receive Order form from Sales Representative. This may come in the form of a BPQ from client Ensure the client has an account in Reputation Management and in

More information

1: Introduction to Object (1)

1: Introduction to Object (1) 1: Introduction to Object (1) 김동원 2003.01.20 Overview (1) The progress of abstraction Smalltalk Class & Object Interface The hidden implementation Reusing the implementation Inheritance: Reusing the interface

More information

CLIENT ONBOARDING PLAN & SCRIPT

CLIENT ONBOARDING PLAN & SCRIPT CLIENT ONBOARDING PLAN & SCRIPT FIRST STEPS Receive Order form from Sales Representative. This may come in the form of a BPQ from client Ensure the client has an account in Reputation Management and in

More information

Teiid Designer User Guide 7.5.0

Teiid Designer User Guide 7.5.0 Teiid Designer User Guide 1 7.5.0 1. Introduction... 1 1.1. What is Teiid Designer?... 1 1.2. Why Use Teiid Designer?... 2 1.3. Metadata Overview... 2 1.3.1. What is Metadata... 2 1.3.2. Editing Metadata

More information

Limits at Infinity

Limits at Infinity Limits at Infinity 9-6-08 In this section, I ll discuss the it of a function f() as goes to and. We ll see that this is related to horizontal asyptotes of a graph. It s natural to discuss vertical asymptotes

More information

(Refer Slide Time: 06:01)

(Refer Slide Time: 06:01) Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 28 Applications of DFS Today we are going to be talking about

More information

Type Checking and Type Equality

Type Checking and Type Equality Type Checking and Type Equality Type systems are the biggest point of variation across programming languages. Even languages that look similar are often greatly different when it comes to their type systems.

More information

Teiid Designer User Guide 7.7.0

Teiid Designer User Guide 7.7.0 Teiid Designer User Guide 1 7.7.0 1. Introduction... 1 1.1. What is Teiid Designer?... 1 1.2. Why Use Teiid Designer?... 2 1.3. Metadata Overview... 2 1.3.1. What is Metadata... 2 1.3.2. Editing Metadata

More information

Intro. Scheme Basics. scm> 5 5. scm>

Intro. Scheme Basics. scm> 5 5. scm> Intro Let s take some time to talk about LISP. It stands for LISt Processing a way of coding using only lists! It sounds pretty radical, and it is. There are lots of cool things to know about LISP; if

More information

The Identity Web An Overview of XNS and the OASIS XRI TC

The Identity Web An Overview of XNS and the OASIS XRI TC The Identity Web An Overview of XNS and the OASIS XRI TC XML WG December 17, 2002 Marc LeMaitre VP Technology Strategy OneName Corporation Goals of this presentation Introduce the idea of the Identity

More information

Math Dr. Miller - Constructing in Sketchpad (tm) - Due via by Friday, Mar. 18, 2016

Math Dr. Miller - Constructing in Sketchpad (tm) - Due via  by Friday, Mar. 18, 2016 Math 304 - Dr. Miller - Constructing in Sketchpad (tm) - Due via email by Friday, Mar. 18, 2016 As with our second GSP activity for this course, you will email the assignment at the end of this tutorial

More information

The XDI RDF Model V11,

The XDI RDF Model V11, The XDI RDF Model V11, 2008-10-21 This document is a work-in-progress from the OASIS XDI Technical Committee. Contributors to this draft include: Drummond Reed, Cordance Markus Sabadello, XDI.org Paul

More information

Welcome Back! Without further delay, let s get started! First Things First. If you haven t done it already, download Turbo Lister from ebay.

Welcome Back! Without further delay, let s get started! First Things First. If you haven t done it already, download Turbo Lister from ebay. Welcome Back! Now that we ve covered the basics on how to use templates and how to customise them, it s time to learn some more advanced techniques that will help you create outstanding ebay listings!

More information

6.001 Notes: Section 6.1

6.001 Notes: Section 6.1 6.001 Notes: Section 6.1 Slide 6.1.1 When we first starting talking about Scheme expressions, you may recall we said that (almost) every Scheme expression had three components, a syntax (legal ways of

More information

RACKET BASICS, ORDER OF EVALUATION, RECURSION 1

RACKET BASICS, ORDER OF EVALUATION, RECURSION 1 RACKET BASICS, ORDER OF EVALUATION, RECURSION 1 COMPUTER SCIENCE 61AS 1. What is functional programming? Give an example of a function below: Functional Programming In functional programming, you do not

More information

Object-oriented Compiler Construction

Object-oriented Compiler Construction 1 Object-oriented Compiler Construction Extended Abstract Axel-Tobias Schreiner, Bernd Kühl University of Osnabrück, Germany {axel,bekuehl}@uos.de, http://www.inf.uos.de/talks/hc2 A compiler takes a program

More information

The Structure of a Syntax-Directed Compiler

The Structure of a Syntax-Directed Compiler Source Program (Character Stream) Scanner Tokens Parser Abstract Syntax Tree Type Checker (AST) Decorated AST Translator Intermediate Representation Symbol Tables Optimizer (IR) IR Code Generator Target

More information

Reliable programming

Reliable programming Reliable programming How to write programs that work Think about reliability during design and implementation Test systematically When things break, fix them correctly Make sure everything stays fixed

More information

Title and Modify Page Properties

Title and Modify Page Properties Dreamweaver After cropping out all of the pieces from Photoshop we are ready to begin putting the pieces back together in Dreamweaver. If we were to layout all of the pieces on a table we would have graphics

More information

SPECIAL DELIVERY WS-Addressing is a standard that enables flexible communication

SPECIAL DELIVERY WS-Addressing is a standard that enables flexible communication James Steidl, Fotolia Asynchronous delivery with SPECIAL DELIVERY is a standard that enables flexible communication between web services. BY DAVID HULL Two of the major standards bodies, OASIS and the

More information

Intelligence Community and Department of Defense Content Discovery & Retrieval Integrated Project Team (CDR IPT)

Intelligence Community and Department of Defense Content Discovery & Retrieval Integrated Project Team (CDR IPT) Intelligence Community and Department of Defense Content Discovery & Retrieval Integrated Project Team (CDR IPT) IC/DoD REST Interface Encoding Specification for CDR Search, v1.1 12 May 2011 REVISION/HISTORY

More information

OBJECT-ORIENTED DESIGN

OBJECT-ORIENTED DESIGN SOFTWARE ENGINEERING OBJECT-ORIENTED DESIGN YEAR 2013 Saulius Ragaišis saulius.ragaisis@mif.vu.lt Information source Slides are prepared on the basis of Doug Rosenberg and Matt Stephens, Use Case Driven

More information

6.001 Notes: Section 31.1

6.001 Notes: Section 31.1 6.001 Notes: Section 31.1 Slide 31.1.1 In previous lectures we have seen a number of important themes, which relate to designing code for complex systems. One was the idea of proof by induction, meaning

More information

Hyperdata: Update APIs for RDF Data Sources (Vision Paper)

Hyperdata: Update APIs for RDF Data Sources (Vision Paper) Hyperdata: Update APIs for RDF Data Sources (Vision Paper) Jacek Kopecký Knowledge Media Institute, The Open University, UK j.kopecky@open.ac.uk Abstract. The Linked Data effort has been focusing on how

More information

Propositional Logic. Part I

Propositional Logic. Part I Part I Propositional Logic 1 Classical Logic and the Material Conditional 1.1 Introduction 1.1.1 The first purpose of this chapter is to review classical propositional logic, including semantic tableaux.

More information

Liquibase Version Control For Your Schema. Nathan Voxland April 3,

Liquibase Version Control For Your Schema. Nathan Voxland April 3, Liquibase Version Control For Your Schema Nathan Voxland April 3, 2014 nathan@liquibase.org @nvoxland Agenda 2 Why Liquibase Standard Usage Tips and Tricks Q&A Why Liquibase? 3 You would never develop

More information

` e : T. Gradual Typing. ` e X. Ronald Garcia University of British Columbia

` e : T. Gradual Typing. ` e X. Ronald Garcia University of British Columbia aaab/hicbvbns8naen34wetxtecvi0xwvbirfe9fd3qs0c9oqplsnu3s3stsbgqh1l/ixymixv0h3vw3btsctpxbwoo9gwbmbslnsjvot7w2vrg5tv3ake/u7r8c2kfhbzvkktawsxgiuweoyllmw5pptruppcactjvb6g7md8zukpbetz2n1bcwifnecggj9e2kdw9capbgiaghpvggn/t21ak5c+bv4hakigo0+vaxfyykeztwhinspddjtt8bqrnhdfr2mkvticmy0j6hmqiq/mn8+ck+m0qio0saijweq78njicuykvgogxoovr2zuj/xi/t0bu/yxgaarqtxaio41gnejyedpmkrppceccsmvsxgyieok1ezrocu/zykmlf1fyn5j5evuu3rrwldijo0tly0rwqowfuqc1eui6e0st6s56sf+vd+li0rlnftax9gfx5a8zmk40=

More information

CHAPTER 1 COPYRIGHTED MATERIAL. Finding Your Way in the Inventor Interface

CHAPTER 1 COPYRIGHTED MATERIAL. Finding Your Way in the Inventor Interface CHAPTER 1 Finding Your Way in the Inventor Interface COPYRIGHTED MATERIAL Understanding Inventor s interface behavior Opening existing files Creating new files Modifying the look and feel of Inventor Managing

More information

Lecture 3: Recursion; Structural Induction

Lecture 3: Recursion; Structural Induction 15-150 Lecture 3: Recursion; Structural Induction Lecture by Dan Licata January 24, 2012 Today, we are going to talk about one of the most important ideas in functional programming, structural recursion

More information

Name: UW CSE 473 Midterm, Fall 2014

Name: UW CSE 473 Midterm, Fall 2014 Instructions Please answer clearly and succinctly. If an explanation is requested, think carefully before writing. Points may be removed for rambling answers. If a question is unclear or ambiguous, feel

More information

Programming for Engineers in Python

Programming for Engineers in Python Programming for Engineers in Python Lecture 5: Object Oriented Programming Autumn 2011-12 1 Lecture 4 Highlights Tuples, Dictionaries Sorting Lists Modular programming Data analysis: text categorization

More information

CS103 Spring 2018 Mathematical Vocabulary

CS103 Spring 2018 Mathematical Vocabulary CS103 Spring 2018 Mathematical Vocabulary You keep using that word. I do not think it means what you think it means. - Inigo Montoya, from The Princess Bride Consider the humble while loop in most programming

More information

CS61A Notes 02b Fake Plastic Trees. 2. (cons ((1 a) (2 o)) (3 g)) 3. (list ((1 a) (2 o)) (3 g)) 4. (append ((1 a) (2 o)) (3 g))

CS61A Notes 02b Fake Plastic Trees. 2. (cons ((1 a) (2 o)) (3 g)) 3. (list ((1 a) (2 o)) (3 g)) 4. (append ((1 a) (2 o)) (3 g)) CS61A Notes 02b Fake Plastic Trees Box and Pointer Diagrams QUESTIONS: Evaluate the following, and draw a box-and-pointer diagram for each. (Hint: It may be easier to draw the box-and-pointer diagram first.)

More information

A Short Summary of Javali

A Short Summary of Javali A Short Summary of Javali October 15, 2015 1 Introduction Javali is a simple language based on ideas found in languages like C++ or Java. Its purpose is to serve as the source language for a simple compiler

More information

Alfresco Voice Writing for the user interface

Alfresco Voice Writing for the user interface Alfresco Voice Writing for the user interface One day I will find the right words, and they will be simple. Jack Kerouac Contents Writing Tone - how to write Language - what to write Capitalization Abbreviations

More information

UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division. P. N. Hilfinger

UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division. P. N. Hilfinger UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division CS 164 Spring 2005 P. N. Hilfinger Project #2: Static Analyzer for Pyth Due: Wednesday, 6 April

More information

CS61A Notes Week 6: Scheme1, Data Directed Programming You Are Scheme and don t let anyone tell you otherwise

CS61A Notes Week 6: Scheme1, Data Directed Programming You Are Scheme and don t let anyone tell you otherwise CS61A Notes Week 6: Scheme1, Data Directed Programming You Are Scheme and don t let anyone tell you otherwise If you re not already crazy about Scheme (and I m sure you are), then here s something to get

More information

Write a procedure powerset which takes as its only argument a set S and returns the powerset of S.

Write a procedure powerset which takes as its only argument a set S and returns the powerset of S. Answers to CS61 A Final of May 23, 1997 We repeat the questions; some have typos corrected with respect to the actual exam handed out. Question 1 (5 points): Let us represent a set S of unique expressions,

More information

HTML4 TUTORIAL PART 2

HTML4 TUTORIAL PART 2 HTML4 TUTORIAL PART 2 STEP 1 - CREATING A WEB DESIGN FOLDER ON YOUR H DRIVE It will be necessary to create a folder in your H Drive to keep all of your web page items for this tutorial. Follow these steps:

More information

Boolean Expressions. Is Equal and Is Not Equal

Boolean Expressions. Is Equal and Is Not Equal 3 MAKING CHOICES Now that we ve covered how to create constants and variables, you re ready to learn how to tell your computer to make choices. This chapter is about controlling the flow of a computer

More information

(Refer Slide Time: 02.06)

(Refer Slide Time: 02.06) Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 27 Depth First Search (DFS) Today we are going to be talking

More information

Recursively Enumerable Languages, Turing Machines, and Decidability

Recursively Enumerable Languages, Turing Machines, and Decidability Recursively Enumerable Languages, Turing Machines, and Decidability 1 Problem Reduction: Basic Concepts and Analogies The concept of problem reduction is simple at a high level. You simply take an algorithm

More information

2. Write style rules for how you d like certain elements to look.

2. Write style rules for how you d like certain elements to look. CSS for presentation Cascading Style Sheet Orientation CSS Cascading Style Sheet is a language that allows the user to change the appearance or presentation of elements on the page: the size, style, and

More information

CISC-124. Casting. // this would fail because we can t assign a double value to an int // variable

CISC-124. Casting. // this would fail because we can t assign a double value to an int // variable CISC-124 20180122 Today we looked at casting, conditionals and loops. Casting Casting is a simple method for converting one type of number to another, when the original type cannot be simply assigned to

More information

Notes from the OASIS WSRF TC teleconference 24 th January 2005

Notes from the OASIS WSRF TC teleconference 24 th January 2005 Notes from the OASIS WSRF TC teleconference 24 th January 2005 Roll call The roll call is kept on the TC web site under the meeting record. See http://www.oasis-open.org/apps/org/workgroup/wsrf/event.php?event_id=4812

More information

Boolean Expressions. Is Equal and Is Not Equal

Boolean Expressions. Is Equal and Is Not Equal 3 MAKING CHOICES ow that we ve covered how to create constants and variables, you re ready to learn how to tell your computer to make choices. This chapter is about controlling the flow of a computer program

More information

The name of our class will be Yo. Type that in where it says Class Name. Don t hit the OK button yet.

The name of our class will be Yo. Type that in where it says Class Name. Don t hit the OK button yet. Mr G s Java Jive #2: Yo! Our First Program With this handout you ll write your first program, which we ll call Yo. Programs, Classes, and Objects, Oh My! People regularly refer to Java as a language that

More information

the NXT-G programming environment

the NXT-G programming environment 2 the NXT-G programming environment This chapter takes a close look at the NXT-G programming environment and presents a few simple programs. The NXT-G programming environment is fairly complex, with lots

More information

Your First Windows Form

Your First Windows Form Your First Windows Form From now on, we re going to be creating Windows Forms Applications, rather than Console Applications. Windows Forms Applications make use of something called a Form. The Form is

More information

CMSC 201 Fall 2016 Lab 09 Advanced Debugging

CMSC 201 Fall 2016 Lab 09 Advanced Debugging CMSC 201 Fall 2016 Lab 09 Advanced Debugging Assignment: Lab 09 Advanced Debugging Due Date: During discussion Value: 10 points Part 1: Introduction to Errors Throughout this semester, we have been working

More information

CS61A Notes Week 1A: Basics, order of evaluation, special forms, recursion

CS61A Notes Week 1A: Basics, order of evaluation, special forms, recursion CS61A Notes Week 1A: Basics, order of evaluation, special forms, recursion Assorted Scheme Basics 1. The ( is the most important character in Scheme. If you have coded in other languages such as C or Java,

More information

Understanding Recursion

Understanding Recursion Understanding Recursion sk, rob and dbtucker (modified for CS 536 by kfisler) 2002-09-20 Writing a Recursive Function Can we write the factorial function in AFunExp? Well, we currently don t have multiplication,

More information

Outline. CIS 110: Introduction to Computer Programming. Announcements. For Loops. Redundancy in Patterns. A Solution with Our Current Tools

Outline. CIS 110: Introduction to Computer Programming. Announcements. For Loops. Redundancy in Patterns. A Solution with Our Current Tools Outline CIS 110: Introduction to Computer Programming 1. For-loops! 2. Algorithm Design and Pseudocode Lecture 5 The Loop-the-Loop ( 2.3-2.4) 1 2 Announcements Date of the final is tentatively: MONDAY,

More information

Unified Modeling Language (UML) Fundamentals & Intro to Profiles

Unified Modeling Language (UML) Fundamentals & Intro to Profiles Unified Modeling Language (UML) Fundamentals & Intro to Profiles Margaret Goodrich Land Tel: +1-903-489-1494 Cell: +1-903-477-7176 E-Mail: margaret@j-mgoodrich.com Topics Information Modeling Methodology

More information

Sitecore Projects with GatherContent

Sitecore Projects with GatherContent How to prepare content for Sitecore Projects with GatherContent By Jennifer Davies, Content Strategist, Razorfish Table of Contents 4 Introduction Guide overview 5 Step 1 Define your content structure

More information

This Tutorial is for Word 2007 but 2003 instructions are included in [brackets] after of each step.

This Tutorial is for Word 2007 but 2003 instructions are included in [brackets] after of each step. This Tutorial is for Word 2007 but 2003 instructions are included in [brackets] after of each step. Table of Contents Get Organized... 1 Create the Home Page... 1 Save the Home Page as a Word Document...

More information

BI-09 Using Enterprise Guide Effectively Tom Miron, Systems Seminar Consultants, Madison, WI

BI-09 Using Enterprise Guide Effectively Tom Miron, Systems Seminar Consultants, Madison, WI Paper BI09-2012 BI-09 Using Enterprise Guide Effectively Tom Miron, Systems Seminar Consultants, Madison, WI ABSTRACT Enterprise Guide is not just a fancy program editor! EG offers a whole new window onto

More information

CTI-TC Working Session

CTI-TC Working Session CTI-TC Working Session John Meeting Date: Sept 4, 2018 Time: 3:00 p.m. EDT Purpose: Weekly Working Session Attendees: Chris Ricard Bret Jordan Nicholas Hayden Moderator Jane Ginn - Recorder Drew Varner

More information

CS103 Handout 50 Fall 2018 November 30, 2018 Problem Set 9

CS103 Handout 50 Fall 2018 November 30, 2018 Problem Set 9 CS103 Handout 50 Fall 2018 November 30, 2018 Problem Set 9 What problems are beyond our capacity to solve? Why are they so hard? And why is anything that we've discussed this quarter at all practically

More information

Cancer Waiting Times. Getting Started with Beta Testing. Beta Testing period: 01 February May Copyright 2018 NHS Digital

Cancer Waiting Times. Getting Started with Beta Testing. Beta Testing period: 01 February May Copyright 2018 NHS Digital Getting Started with Beta Testing Beta Testing period: 01 February 2018 03 May 2018 Copyright 2018 NHS Digital Document management Revision History Version Date Summary of Changes 0.1 23/03/2018 Initial

More information

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/27/17

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/27/17 01.433/33 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/2/1.1 Introduction In this lecture we ll talk about a useful abstraction, priority queues, which are

More information

Web Site Documentation Eugene School District 4J

Web Site Documentation Eugene School District 4J Eugene School District 4J Using this Documentation Revision 1.3 1. Instruction step-by-step. The left column contains the simple how-to steps. Over here on the right is the color commentary offered to

More information

This is already grossly inconvenient in present formalisms. Why do we want to make this convenient? GENERAL GOALS

This is already grossly inconvenient in present formalisms. Why do we want to make this convenient? GENERAL GOALS 1 THE FORMALIZATION OF MATHEMATICS by Harvey M. Friedman Ohio State University Department of Mathematics friedman@math.ohio-state.edu www.math.ohio-state.edu/~friedman/ May 21, 1997 Can mathematics be

More information

Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi.

Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi. Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 18 Tries Today we are going to be talking about another data

More information

Linguistics and Philosophy 23: , Is Compositionality Formally Vacuous? Francis Jeffry Pelletier

Linguistics and Philosophy 23: , Is Compositionality Formally Vacuous? Francis Jeffry Pelletier Linguistics and Philosophy 23: 629-633, 1998 Is Compositionality Formally Vacuous? Ali Kazmi Dept. Philosophy Univ. Calgary Francis Jeffry Pelletier Dept. Philosophy Univ. Alberta We prove a theorem stating

More information

How to draw and create shapes

How to draw and create shapes Adobe Flash Professional Guide How to draw and create shapes You can add artwork to your Adobe Flash Professional documents in two ways: You can import images or draw original artwork in Flash by using

More information