computing with directed labeled graphs

45
Quick TIFF are ne Marko A. Rodriguez Center for Non-Linear Studies - December 5, 2007 Computing with Directed Labeled Graphs Marko A. Rodriguez Los Alamos National Laboratory Vrije Universiteit Brussel University of California at Santa Cruz [email protected] http://www.soe.ucsc.edu/~okram

Upload: marko-rodriguez

Post on 11-May-2015

2.781 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Computing with Directed Labeled Graphs

Marko A. Rodriguez

Los Alamos National Laboratory

Vrije Universiteit Brussel

University of California at Santa Cruz

[email protected]

http://www.soe.ucsc.edu/~okram

Page 2: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Mini-CV.

• Bachelors of Science in Cognitive Science from the UC San Diego.o Minor in Interdisciplinary Computing in the Arts (Computer Music)

• Masters of Science in Computer Science from UC Santa Cruz.

• Doctorate in Computer Science from UC Santa Cruz.

• Visiting Researcher at the Vrije Universiteit Brussel in Belgiumo Center for Evolution, Complexity, and Cognition.

• Graduate Researcher at Los Alamos National Laboratoryo Research Library

Page 3: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

My infrastructure.

• LaTeX for typesetting manuscripts

• Omnigraffle for diagrams and design

• R:Statistics for data/network analysis, visualization

• MySQL for large-scale relational data manipulation

• AllegroGraph for large-scale network manipulation

• Java, Lisp, R are my primary languages

Page 4: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Main projects.

• MESUR: large-scale analysis of network-based bibliographic data. Data structure includes article, journal, and usage resources and their various relationships to one another. Purpose of the project is to study various network-based metrics to quantify the value of scholarly artifacts.

o Johan Bollen, Herbert Van de Sompel, Aric Hagberg, Marko A. Rodriguez, Lyudmilla Balakireva, Wenzhong Zhao

o http://www.mesur.org

• Neno/Fhat: the design and implementation of a semantic network-based programming language and virtual machine architecture. Purpose is to represent most aspects of computing in a single semantic network data structure.

o Marko A. Rodriguez, Ryan Chute, Herbert Van de Sompel, Johan Bollen. o http://neno.lanl.gov

Digital Library Research and Prototyping Team

Page 5: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

The history of this talk.

• MESUR had the problem of how to analyze a semantic network of relationships.

o e.g. <article1, cites, article2>, <article1, writtenBy, author1>, <author1, affiliatedWith, institution1>, etc.

o You can’t directly apply the single-relational network analysis algorithms to this semantic/multi-relational domain.

o I developed a general framework that allows one to calculate “semantically-meaningful” geodesics, eigenvectors, and assortativity in a semantic network.

• Realized that this framework itself could be represented as a semantic network.

• Realized that the process that executes the framework could be represented by a semantic network.

• Realized that a full computing infrastructure could be represented by a single semantic network data structure.

o A so now here we are…

Page 6: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Outline.

• From Turing Machines to Object Oriented Programming

• Representing Various Aspects of Computing in a Semantic Network

• A Standardized Distributed Semantic Network Data Model

• Future Research Trends

Page 7: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Outline.

• From Turing Machines to Object Oriented Programming

• Representing Various Aspects of Computing in a Semantic Network

• A Standardized Distributed Semantic Network Data Model

• Future Research Trends

Page 8: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

What is a computer?

• A computer is a machine which manipulates data according to a list of instructions. [Wikipedia]

• A computer is anything that is able to explicitly execute a function rule. It is able to map a domain to a range.

o Human, machine, chemical, etc.o When you solve 1 + 2. The physical thing that did that is a computer.

• There are various forms of machine computers ranging from special purpose processors (non-programmable) to general-purpose processors (programmable).

o What is the most general form of a computer?

Page 9: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

The Turing machine.

• A Turing machine is a simple computing machine that is composed of a 1-dimensional “tape” (D) of celled values (e.g. 0,1,null) and a machine “head” (M) that is able to make decisions () about reading/writing from/to the tape and moving along the tape. The input to the machine is represented on the tape at the beginning of the execution and the output is represented on the tape at the end of the execution.

• A universal Turing machine is a Turing machine that has the ability to model another Turing machine. In such cases, M () is represented in the tape. Instead of having a single special-purpose machine (a single algorithm), it is possible to have a general-purpose machine (a stored program machine).

A. M. Turing. On computable numbers, with an application to the entscheidungsproblem. Proceedings of the London Mathematical Society, 42(2):230–265, 1937.

Page 10: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Turing completeness.

• A machine or language is Turing complete if it can simulate a universal Turing machine.

o Has the same computing “power” as a universal Turing machine.

• Nearly all modern computers and languages are Turing complete.

• The Von Neumann architecture is the most popular computer architecture that is modeled after the Turing machine.

Page 11: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

The Von Neumann architecture.

• There exists no “true” distinction between computing instructions and data.

o All information is represented as 0s and 1s and are located in the same component (memory).

• Von Neumann machines are stored program machines.o The machine is general-purpose in that it can be programmed to

execute any algorithm.

Processor (M*)

Data (D_M)

Instructions (M)

Memory (D)

J. von Neumann. The principles of large-scale computing machines. IEEE Annals of the History of Computing, 10(4):243–256, 1988

Page 12: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

What is in memory?

• Memory is composed of blocks called “words”.

• The size of the word in memory defines the type of machine. For example, common words are 32-bit or 64-bit.

Memory

1 0 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0

Data: Integer, Float, Memory Address, etc.

opcode Instruction: add, subtract, goto

Page 13: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

What are the types of data?

• 00000000000000000000000000000001 = 1

• 10000000000000000000000000000001 = -1

• 00000000000000000000000000000011 = 3

• 10000000000000000000000000000101 = -5

• etc.

* This is not the standard two’s

complement convention.

16 8 4 2 1

* ASCII 7-bit standard for representing characters.

Page 14: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

What are the types of instructions?

• Instructions instruct the processor to behave in a certain way.o arithmetic such as add and subtracto logic instructions such as and, or, and noto data instructions such as load and storeo control flow instructions such as goto, if ... goto, call, and return.

• A particular bit pattern in an area of a word (usually the most significant bits) represents the specific opcode.

• The definition of opcodes and their operands denote the computer’s instruction set.

o Ultimately, a “machine” is a just a language.

• Assembly language is the “character” form of a binary instruction.

1 0 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0A D D 7 43

Page 15: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Data (D_M)

Instructions (M)

Memory (D)

012345678910

load 7 0

load 8 1add 0 1 2

store 2 7goto 0

noop

1..2..3..4..5..1

PC

Processor (M*)

0123

registers

How does a processor compute?

• Loop through instructions at memory address 0 through 4.

• Increment the integer at memory address 7 by the integer at memory address 8.

* Note that memory does not represent characters, just 0 or 1.

ALU

Page 16: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Virtual computing machines.

• As stated before, with a Turing complete machine/language, you can execute any algorithm.

o Thus, it is possible for a computer to model a computer.

• Different levels of abstractions by which this model can be represented.o Low-level: model logic gates (VHSIC hardware description language).

- Code: bit patterns.o High-level: model registers, program counters, memory.

- Code: assembly-like instructions

• An essential characteristic of a virtual machine is that the software running inside is limited to the resources and abstractions provided by the virtual machine -- it cannot break out of its virtual world. [Wikipedia]

Page 17: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Programming patterns through the ages.

• In the beginning there were lists of instructions in the computer’s memory.

o Add this, then subtract that, then goto this instruction, then add this, …

• In order to deal with large programs, procedures were developed.o Sum over the rows of the matrix and store in a vector, sum over the

vector, …

• Procedural code is still unwieldy for large-scale software systems. In order to better conceptualize code, the notion of objects was introduced.

o marko.befriend(johan), marko.charge(johan.paycode, 1000), johan.getAngry(marko), …

* Note that all patterns are ultimately represented as lists of instructions in memory.

Page 18: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Object orientation and its relationship to a network.

• An object maintains relationships to other objects and literal values.

• However, objects also have methods (procedures). How is this represented in a network?

o In other words, how do you represent “charging to Johan’s paycode”?

marko johanhasFriend hasPaycode

$10,0000000hasAmount

Page 19: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Outline.

• From Turing Machines to Object Oriented Programming

• Representing Various Aspects of Computing in a Semantic Network

• A Standardized Distributed Semantic Network Data Model

• Future Research Trends

Page 20: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

The undirected network.

• There is the undirected network of common knowledge.o Sometimes called an undirected single-relational network.o e.g. vertex i and vertex j are “related”.

• The semantic of the edge denotes the network type.o e.g. friendship network, collaboration network, etc.

i j

Page 21: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Example undirected network.

Herbert

Marko

Aric

Ed

Zhiwu

Alberto

Jen

Johan

Luda

Stephan

Whenzong

Page 22: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

The directed network.

• Then there is the directed network of common knowledge.o Sometimes called a directed single-relational network.o For example, vertex i is related to vertex j, but j is not related to i.

i j

Page 23: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Example directed network.

Muskrat

Bear

Fish

Fox

Meerkat

Lion

Human

Wolf

Deer

Beetle

Hyena

Page 24: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

The semantic network.

• Finally, there is the semantic network o Sometimes called a directed multi-relational network.o For example, vertex i is related to vertex j by the semantic s, but j is not

related to i by the semantic s.

i js

Page 25: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Example semantic network.

SantaFe

Marko

NewMexico

Ryan

California

UnitedStates

LANL

livesIn

worksWith

cityOf

originallyFrom

stateOfstateOf

locatedIn

hasLab

Cells

Atoms

madeOf

madeOf

researches

Oregon

southOf

hasResident

Arnold

governerOf

northOf

Page 26: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Modeling computing data structures with a network.

• Networks make explicit the “actors” in a system and their respective relationships to one another.

• What about when “actors” are computing data structures?o …when “actors” are computing instructions and they have

relationships to computer instruction parameters (operands)?o …when “actors” are virtualized computing machines and have

relationships to computer instructions and data?

Page 27: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

A network analog to the Turing model.

• In classic network algorithms, the algorithm (S*), some of the input to the algorithm (S), and the result of the algorithm (D_S) are stored outside the network (G).

• It is possible to encode the inputs/outputs (S/G and G_S) to algorithm (S*) in the network data structure.

• It is possible to encode an algorithm that is a virtual machine (S*1) that is reading its algorithm from within the network (S).

M. A. Rodriguez and J. Bollen. Modeling computations in a semantic network substrate. in review at International Journal of Semantic Computing, LA-UR-07-3678, 2007.

Page 28: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Network representations of the various software patterns.

7

0load

load8

1

add0

1

2

store8

1

someProcedure

opA

opB

opA

opA

opA

opB

opB

opB

opC

nextInst

nextInst

nextInst

nextInst

7

0load

load8

1

add0

1

2

store8

1

opA

opB

opA

opA

opA

opB

opB

opB

opC

nextInst

nextInst

nextInst

nextInst

7

0load

load8

1

add0

1

2

store8

1

opA

opB

opA

opA

opA

opB

opB

opB

opC

nextInst

nextInst

nextInst

nextInst

someObject

hasBody hasBody

hasMethod

List of Instructions Procedure Object

someProcedure

Page 29: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Objects and their relationship to each other and their methods.

7

0load

load8

1

add0

1

2

store8

1

opA

opB

opA

opA

opA

opB

opB

opB

opC

nextInst

nextInst

nextInst

nextInst

charges

marko

hasBody

hasMethod

7

0load

load8

1

add0

1

2

store8

1

opA

opB

opA

opA

opA

opB

opB

opB

opC

nextInst

nextInst

nextInst

nextInst

addMoney

0000

hasBody

hasMethod

7

0load

load8

1

add0

1

2

store8

1

opA

opB

opA

opA

opA

opB

opB

opB

opC

nextInst

nextInst

nextInst

nextInst

angry

johan

hasBody

hasFriendhasPaycode

hasMethod

$10,000hasAmount

* Though not represented, each method should have different instructions.

Page 30: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

A virtual machine at its relationship to instructions.

PC (current instruction)

Method variables

LIFO Stack

Page 31: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Physics and its relationship to the virtual machine.

M. A. Rodriguez. General-purpose computing on a semantic network substrate. accepted with revisions at Journal of Web Semantics, LA-UR-07-2885, 2007.

* Not for the faint of heart.

* Ultimately, the only true “computer” is physics. All computing representations must be grounded in physics.

Page 32: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Mapping a semantic network to an undirected network.

A computing infrastructure can be represented by dots and lines.

M. A. Rodriguez. Mapping Semantic Networks to Undirected Networks. in review at International Journal of Applied Mathematics and Computer Science, LA-UR-07-5287, 2007.

Page 33: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Obviously a network can represent computer instructions and virtual machines.

• Ultimately, computing instructions and virtual machines are represented as a sequence of 0s and 1s in the memory of the hardware machine.

• Naively, a directed graph can be used to represent this sequence of 0s and 1s.

o A self-loop represents a 1 and no self-loop represents a 0

• But what about when this model is applied to existing standards?

Page 34: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Outline.

• From Turing Machines to Object Oriented Programming

• Representing Various Aspects of Computing in a Semantic Network

• A Standardized Distributed Semantic Network Data Model

• Future Research Trends

Page 35: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

A standardized semantic network data model.

• The Resource Description Framework (RDF) is a standardized data model for representing semantic networks.

o A resource is anything = physical, virtual, or conceptual.o Inherently distributed (uses URIs to denote vertex and edge labels)

- <http://www.soe.ucsc.edu/~okram, http://www.lanl.gov#hasFriend, http://public.lanl.gov/johan>

o I think of RDF as a “URG” (A Uniform Resource Graph). It’s a uniform way of graphing resources.

• With the representation of software and virtualized computing machines in RDF, everything is in the same address space -- the space of all URIs and this is an infinite space.

o There exists one universal “file” distributed across servers world-wide.

T. Berners-Lee and J. Hendler. Publishing on the Semantic Web. Nature, 410(6832):1023–1024, April 2001.

Page 36: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Triple store technology.

SELECT ?a ?c WHERE { ?a type human ?a wrote ?b ?b type article ?c wrote ?b ?c type human ?a != ?c }

• The triple store is to semantic networks what the relational database is to data tables.

o Storing and querying triples in a triple store.o SPARQL\Update query language.

- like SQL, but for triple-stores.• Massive-scale triple-stores exist that can efficiently process semantic networks

reaching multi-billion edges.o Various graph analysis algorithms and graph query languages supported.

Page 37: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Triple store vs. relational database

Triple store Relational Database

SQL InterfaceSPARQL Interface

SELECT (?x4) WHERE { ?x1 dc:creator lanl:LAUR-06-2139. ?x1 lanl:hasFriend ?x2 . ?x2 lanl:worksFor ?x3 . ?x3 lanl:collaboratesWith ?x4 . ?x4 lanl:hasEmployee ?x1 . }

SELECT collaboratesWithTable.ordId2 FROM personTable, authorTable, articleTable, friendTable, hasEmployeeTable, organizationTable, worksForTable, collaboratesWithTable WHERE personTable.id = authorTable.personId AND authorTable.articleId = "dc:creator LAUR-06-2139" AND personTable.id = friendTable.personId1 AND friendTable.personId2 = worksForTable.personId AND worksForTable.orgId = collaboratesWithTable.orgId2 AND collaboratesWithTable.ordId2 = personTable.id

Page 38: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

A distributed semantic network data model.

127.0.0.1

127.0.0.5

127.0.0.2

127.0.0.3

127.0.0.6127.0.0.4

Page 39: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

An RDF program.<http://neno.lanl.gov/instance#42a65d00-71c4-11dc-96bb-000014095701> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://neno.lanl.gov/demo#Example> .<http://neno.lanl.gov/instance#42a65d00-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#hasMethod> <http://neno.lanl.gov/instance#42a65d01-71c4-11dc-96bb-000014095701> .<http://neno.lanl.gov/instance#42a65d01-71c4-11dc-96bb-000014095701> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://neno.lanl.gov/demo#130ec6a7-8f0a-4f49-adec-b399c849bb9b> .<http://neno.lanl.gov/instance#42a65d01-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#hasArgumentDescriptor> <http://neno.lanl.gov/instance#42a65d03-71c4-11dc-96bb-000014095701> .<http://neno.lanl.gov/instance#42a65d03-71c4-11dc-96bb-000014095701> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://neno.lanl.gov#ArgumentDescriptor> .<http://neno.lanl.gov/instance#42a65d03-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#_a0> <http://neno.lanl.gov/instance#42a65d02-71c4-11dc-96bb-000014095701> .<http://neno.lanl.gov/instance#42a65d02-71c4-11dc-96bb-000014095701> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://neno.lanl.gov#Argument> .<http://neno.lanl.gov/instance#42a65d02-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#hasSymbol> "n"^^<http://www.w3.org/2001/XMLSchema#string> .<http://neno.lanl.gov/instance#42a65d02-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#hasType> "http://www.w3.org/2001/XMLSchema#integer .<http://neno.lanl.gov/instance#42a65d01-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#hasMethodName> "test"^^<http://www.w3.org/2001/XMLSchema#string> .<http://neno.lanl.gov/instance#42a65d01-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#hasBlock> <http://neno.lanl.gov/instance#42a65d04-71c4-11dc-96bb-000014095701> .<http://neno.lanl.gov/instance#42a65d04-71c4-11dc-96bb-000014095701> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://neno.lanl.gov#Block> .<http://neno.lanl.gov/instance#42a65d04-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#nextInst> <http://neno.lanl.gov/instance#42a65d05-71c4-11dc-96bb-000014095701> .<http://neno.lanl.gov/instance#42a65d05-71c4-11dc-96bb-000014095701> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://neno.lanl.gov#Set> .<http://neno.lanl.gov/instance#42a65d05-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#hasLeft> <http://neno.lanl.gov/instance#42a65d06-71c4-11dc-96bb-000014095701> .<http://neno.lanl.gov/instance#42a65d06-71c4-11dc-96bb-000014095701> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://neno.lanl.gov#LocalVariable> .<http://neno.lanl.gov/instance#42a65d06-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#hasSymbol> "n"^^<http://www.w3.org/2001/XMLSchema#string> .<http://neno.lanl.gov/instance#42a65d05-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#hasRight> <http://neno.lanl.gov/instance#42a65d07-71c4-11dc-96bb-000014095701> .<http://neno.lanl.gov/instance#42a65d07-71c4-11dc-96bb-000014095701> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://neno.lanl.gov#PopLiteral> .<http://neno.lanl.gov/instance#42a65d05-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#nextInst> <http://neno.lanl.gov/instance#42a65d08-71c4-11dc-96bb-000014095701> .<http://neno.lanl.gov/instance#42a65d08-71c4-11dc-96bb-000014095701> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://neno.lanl.gov#Block> .

<http://neno.lanl.gov/instance#42a65d08-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#nextInst> <http://neno.lanl.gov/instance#42a65d09-71c4-11dc-96bb-000014095701> .

<http://neno.lanl.gov/instance#42a65d09-71c4-11dc-96bb-000014095701> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://neno.lanl.gov#PushValue> .<http://neno.lanl.gov/instance#42a65d09-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#hasValue> <http://neno.lanl.gov/instance#42a65d0a-71c4-11dc-96bb-000014095701> .<http://neno.lanl.gov/instance#42a65d0a-71c4-11dc-96bb-000014095701> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://neno.lanl.gov#LocalDirect> .<http://neno.lanl.gov/instance#42a65d0a-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#hasURI> "0"^^<http://www.w3.org/2001/XMLSchema#integer> .<http://neno.lanl.gov/instance#42a65d09-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#nextInst> <http://neno.lanl.gov/instance#42a65d0b-71c4-11dc-96bb-000014095701> .<http://neno.lanl.gov/instance#42a65d0b-71c4-11dc-96bb-000014095701> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://neno.lanl.gov#Set> .<http://neno.lanl.gov/instance#42a65d0b-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#hasLeft> <http://neno.lanl.gov/instance#42a65d0c-71c4-11dc-96bb-000014095701> .<http://neno.lanl.gov/instance#42a65d0c-71c4-11dc-96bb-000014095701> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://neno.lanl.gov#LocalVariable> .<http://neno.lanl.gov/instance#42a65d0c-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#hasSymbol> "i"^^<http://www.w3.org/2001/XMLSchema#string> .<http://neno.lanl.gov/instance#42a65d0b-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#hasRight> <http://neno.lanl.gov/instance#42a65d0d-71c4-11dc-96bb-000014095701> .<http://neno.lanl.gov/instance#42a65d0d-71c4-11dc-96bb-000014095701> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://neno.lanl.gov#PopLiteral> .<http://neno.lanl.gov/instance#42a65d0b-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#nextInst> <http://neno.lanl.gov/instance#42a65d0e-71c4-11dc-96bb-000014095701> .<http://neno.lanl.gov/instance#42a65d0e-71c4-11dc-96bb-000014095701> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://neno.lanl.gov#LessThan> .<http://neno.lanl.gov/instance#42a65d0e-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#hasLeft> <http://neno.lanl.gov/instance#42a65d0f-71c4-11dc-96bb-000014095701> .…...

Page 40: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Open computing.

• Software, the results of computations, and the hardware supporting a computation should be addressable and publicly available.

• Open Software: Easy to compose large-scale systems when objects, instructions, and machines are all within the same universal address space of the URI.

• Open Results: Utilize the semantic network to store the results of computations to support memoization. (e.g. f(x) = x + 1 … <2, f, 3>)

• Open Hardware: With a universal address space, it will become necessary for the process to move to the data, and not the data to the process. (e.g. migration of software and virtual machines).

M. A. Rodriguez and J. Shinavier. The RDF Virtual Machine. in review at 2008 World Wide Web Conference, Beijing, China, 2007.

Page 41: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Distributed computing.

• With local RDF graphs reaching in the billions of edges, for some computations, it is best to move to process to the data instead of the data to the process.

o As easy as using the HTTP protocol.

R/T: Virtual Machine and Stored Program D?: Data

Page 42: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Reflective computing.

• In computer science, reflection is the process by which a computer program of the appropriate type can be modified in the process of being executed, in a manner that depends on abstract features of its code and its runtime behavior. Figuratively speaking, it is then said that the program has the ability to "observe" and possibly to modify its own structure and behavior. The programming paradigm driven by reflection is called reflective programming. [Wikipedia]

• Because everything is represented according to URIs, virtual machines and software are in the same address space.

o Thus, software can get a reference to itself and to the virtual machine.o Thus, the virtual machine can get a reference to software and itself.

Page 43: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

A new level of abstraction.

• An essential characteristic of a virtual machine is that the software running inside is limited to the resources and abstractions provided by the virtual machine -- it cannot break out of its virtual world. [Wikipedia]

• The new bit is the URI.o The URI is both human and machine consumable.

• To the virtual machines and stored programs, there is no concept of an underlying machine.

o There only exists a URI graph.o There is only a single shared address space.

Page 44: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Outline.

• From Turing Machines to Object Oriented Programming

• Representing Various Aspects of Computing in a Semantic Network

• A Standardized Distributed Semantic Network Data Model

• Future Research Trends

Page 45: Computing with Directed Labeled Graphs

QuickTime™ and aTIFF (LZW) decompressorare needed to see this picture.Marko A. Rodriguez

Center for Non-Linear Studies - December 5, 2007

Future research objectives.

• To study the “general cortical algorithm”. [Mountcastle]o How does the cortex find abstract patterns in a stream of sensory data?o How does the cortex create invariant representations?o How do these abstract patterns find instantiation in various expression

modalities?

• Model this algorithm and cortical data structure using a

semantic network.

• Apply this model to create a general-purpose intelligent,

distributed RDF network.o This is the future of humanity’s world wide computing web.

V. B. Mountcastle. An organizing principle for cerebral function: the unit model and the distributed system. In G. Edelman and V. Mountcastle, editors, Mindful Brain: Cortical Organization and the Group-Selective Theory of Higher Brain Function. MIT Press, Cambridge, Mass., 1978.

QuickTime™ and aTIFF (Uncompressed) decompressor

are needed to see this picture.