SlideShare a Scribd company logo
Computing with Directed Labeled Graphs Marko A. Rodriguez Los Alamos National Laboratory Vrije Universiteit Brussel University of California at Santa Cruz [email_address] http://www.soe.ucsc.edu/~okram
Mini-CV. Bachelors of Science in Cognitive Science from the UC San Diego. 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 Belgium Center for Evolution, Complexity, and Cognition. Graduate Researcher at Los Alamos National Laboratory Research Library
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
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.  Johan Bollen, Herbert Van de Sompel, Aric Hagberg, Marko A. Rodriguez, Lyudmilla Balakireva, Wenzhong Zhao 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. Marko A. Rodriguez, Ryan Chute, Herbert Van de Sompel, Johan Bollen.   http://neno.lanl.gov Digital Library Research and Prototyping Team
The history of this talk. MESUR had the problem of how to analyze a semantic network of relationships. e.g. < article1, cites, article2 >, < article1, writtenBy, author1 >, < author1, affiliatedWith, institution1 >, etc. You can’t directly apply the single-relational network analysis algorithms to this semantic/multi-relational domain. 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. A so now here we are…
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
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
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. Human, machine, chemical, etc. 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). What is the most general form of a computer?
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.
Turing completeness. A machine or language is  Turing complete  if it can simulate a universal Turing machine. 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.
The Von Neumann architecture. There exists no “true” distinction between computing instructions and data. All information is represented as 0s and 1s and are located in the same component (memory). Von Neumann machines are stored program machines. The machine is general-purpose in that it can be programmed to execute any algorithm. J. von Neumann. The principles of large-scale computing machines. IEEE Annals of the History of Computing, 10(4):243–256, 1988 Processor ( M* ) Data ( D_M ) Instructions ( M ) Memory ( D )
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 Data: Integer, Float, Memory Address, etc. opcode Instruction: add, subtract, goto 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
What are the types of data? 00000000000000000000000000000001  =  1 1 0000000000000000000000000000001  =  -1 00000000000000000000000000000011  =  3 1 0000000000000000000000000000101  =  -5 etc. * This is not the standard two’s complement convention.   16 8 4 2 1   * ASCII 7-bit standard for representing characters.
What are the types of instructions? Instructions instruct the processor to behave in a certain way. arithmetic such as  add  and  subtract logic instructions such as  and ,  or , and  not data instructions such as  load  and  store 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. Ultimately, a “machine” is a just a language. Assembly language is the “character” form of a binary instruction. A  D  D 7 43 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
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. Data ( D_M ) Instructions ( M ) Memory ( D ) 0 1 2 3 4 5 6 7 8 9 10 load 7 0 load 8 1 add 0 1 2 store 2 7 goto 0 noop 1..2..3..4..5.. 1 PC Processor ( M* ) 0 1 2 3 registers * Note that memory does not represent characters, just 0 or 1.   ALU
Virtual computing machines. As stated before, with a Turing complete machine/language, you can execute any algorithm. Thus, it is possible for a computer to model a computer. Different levels of abstractions by which this model can be represented. Low-level : model logic gates (VHSIC hardware description language). Code: bit patterns. 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]
Programming patterns through the ages. In the beginning there were lists of  instructions  in the computer’s memory. Add this, then subtract that, then goto this instruction, then add this, … In order to deal with large programs,  procedures  were developed. 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. marko.befriend(johan), marko.charge(johan.paycode, 1000), johan.getAngry(marko), … * Note that all patterns are ultimately represented as lists of instructions in memory.
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? In other words, how do you represent “charging to Johan’s paycode”? marko johan hasFriend hasPaycode $10,000 0000 hasAmount
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
The undirected network. There is the undirected network of common knowledge. Sometimes called an undirected  single-relational  network. e.g. vertex  i  and vertex  j  are “related”. The semantic of the edge denotes the network type . e.g. friendship network, collaboration network, etc. i j
Example undirected network. Herbert Marko Aric Ed Zhiwu Alberto Jen Johan Luda Stephan Whenzong
The directed network. Then there is the directed network of common knowledge. Sometimes called a directed  single-relational  network. For example, vertex  i  is related to vertex  j , but  j  is not related to  i . i j
Example directed network. Muskrat Bear Fish Fox Meerkat Lion Human Wolf Deer Beetle Hyena
The semantic network. Finally, there is the semantic network  Sometimes called a directed  multi-relational  network. 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 j s
Example semantic network. SantaFe Marko NewMexico Ryan California UnitedStates LANL livesIn worksWith cityOf originallyFrom stateOf stateOf locatedIn hasLab Cells Atoms madeOf madeOf researches Oregon southOf hasResident Arnold governerOf northOf
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? … when “actors” are  computing instructions  and they have relationships to computer instruction parameters (operands) ? … when “actors” are  virtualized computing machines  and have relationships to computer instructions and data?
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.
Network representations of the various software patterns. 7 0 load load 8 1 add 0 1 2 store 8 1 someProcedure opA opB opA opA opA opB opB opB opC nextInst nextInst nextInst nextInst 7 0 load load 8 1 add 0 1 2 store 8 1 opA opB opA opA opA opB opB opB opC nextInst nextInst nextInst nextInst 7 0 load load 8 1 add 0 1 2 store 8 1 opA opB opA opA opA opB opB opB opC nextInst nextInst nextInst nextInst someObject hasBody hasBody hasMethod List of Instructions Procedure Object someProcedure
Objects and their relationship to each other and  their methods. 7 0 load load 8 1 add 0 1 2 store 8 1 opA opB opA opA opA opB opB opB opC nextInst nextInst nextInst nextInst charges marko hasBody hasMethod 7 0 load load 8 1 add 0 1 2 store 8 1 opA opB opA opA opA opB opB opB opC nextInst nextInst nextInst nextInst addMoney 0000 hasBody hasMethod 7 0 load load 8 1 add 0 1 2 store 8 1 opA opB opA opA opA opB opB opB opC nextInst nextInst nextInst nextInst angry johan hasBody hasFriend hasPaycode hasMethod $10,000 hasAmount * Though not represented, each method should have different instructions.
A virtual machine at its relationship to instructions. PC (current instruction) Method variables LIFO Stack
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.
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.
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. A self-loop represents a 1 and no self-loop represents a 0 But what about when this model is applied to existing standards?
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
A standardized semantic network data model. The Resource Description Framework ( RDF ) is a standardized  data model  for representing semantic networks. A resource is anything = physical, virtual, or conceptual. Inherently distributed (uses  URI s to denote vertex and edge labels) < http://www.soe.ucsc.edu/~okram ,  http://www.lanl.gov#hasFriend ,  http://public.lanl.gov/johan > 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. 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.
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. Storing and querying triples in a triple store. 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. Various graph analysis algorithms and graph query languages supported.
Triple store vs. relational database Triple store Relational Database SQL Interface SPARQL 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 = &quot;dc:creator LAUR-06-2139&quot; AND personTable.id = friendTable.personId1 AND friendTable.personId2 = worksForTable.personId AND worksForTable.orgId = collaboratesWithTable.orgId2 AND collaboratesWithTable.ordId2 = personTable.id
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.6 127.0.0.4
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> &quot;n&quot;^^<http://www.w3.org/2001/XMLSchema#string> . <http://neno.lanl.gov/instance#42a65d02-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#hasType> &quot;http://www.w3.org/2001/XMLSchema#integer . <http://neno.lanl.gov/instance#42a65d01-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#hasMethodName> &quot;test&quot;^^<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> &quot;n&quot;^^<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> &quot;0&quot;^^<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> &quot;i&quot;^^<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> . … .. .
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.
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. As easy as using the HTTP protocol. R/T : Virtual Machine and Stored Program  D? : Data
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 &quot;observe&quot; 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. Thus, software can get a reference to itself and to the virtual machine. Thus, the virtual machine can get a reference to software and itself.
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. The URI is both human and machine consumable. To the virtual machines and stored programs, there is no concept of an underlying machine.  There only exists a URI graph. There is only a single shared address space.
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
Future research objectives. To study the “general cortical algorithm”. [Mountcastle] How does the cortex find abstract patterns in a stream of sensory data? How does the cortex create invariant representations? 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. 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.

More Related Content

PPT
Automatic Metadata Generation using Associative Networks
PPT
A Model of the Scholarly Community
PPTX
Predicting the relevance of search results for e-commerce systems
PDF
SF Python Meetup: TextRank in Python
PPTX
A Fast and Dirty Intro to NetworkX (and D3)
PDF
A Primer on Entity Resolution
PDF
Python networkx library quick start guide
PDF
Linked Open Data to support content based Recommender Systems
Automatic Metadata Generation using Associative Networks
A Model of the Scholarly Community
Predicting the relevance of search results for e-commerce systems
SF Python Meetup: TextRank in Python
A Fast and Dirty Intro to NetworkX (and D3)
A Primer on Entity Resolution
Python networkx library quick start guide
Linked Open Data to support content based Recommender Systems

What's hot (20)

PPT
R-programming-training-in-mumbai
PDF
What's next in Julia
PDF
Text Classification in Python – using Pandas, scikit-learn, IPython Notebook ...
PPT
DB and IR Integration
PDF
Introduction to the R Statistical Computing Environment
PPT
Understanding WeboNaver
PDF
Graph Libraries - Overview on Networkx
PPT
DB-IR-ranking
PPTX
Conformer-Kernel with Query Term Independence @ TREC 2020 Deep Learning Track
PDF
Named Entity Recognition from Online News
PPTX
Duet @ TREC 2019 Deep Learning Track
PPT
Stacks in algorithems & data structure
PDF
PDF
R programming & Machine Learning
PPTX
Detection of Related Semantic Datasets Based on Frequent Subgraph Mining
PPTX
Learning to assess Linked Data relationships using Genetic Programming
PPTX
Text Mining using LDA with Context
PDF
Joey gonzalez, graph lab, m lconf 2013
PPTX
Adversarial and reinforcement learning-based approaches to information retrieval
PPTX
Neural Models for Information Retrieval
R-programming-training-in-mumbai
What's next in Julia
Text Classification in Python – using Pandas, scikit-learn, IPython Notebook ...
DB and IR Integration
Introduction to the R Statistical Computing Environment
Understanding WeboNaver
Graph Libraries - Overview on Networkx
DB-IR-ranking
Conformer-Kernel with Query Term Independence @ TREC 2020 Deep Learning Track
Named Entity Recognition from Online News
Duet @ TREC 2019 Deep Learning Track
Stacks in algorithems & data structure
R programming & Machine Learning
Detection of Related Semantic Datasets Based on Frequent Subgraph Mining
Learning to assess Linked Data relationships using Genetic Programming
Text Mining using LDA with Context
Joey gonzalez, graph lab, m lconf 2013
Adversarial and reinforcement learning-based approaches to information retrieval
Neural Models for Information Retrieval
Ad

Viewers also liked (7)

PDF
Traversing Graph Databases with Gremlin
PDF
Gremlin: A Graph-Based Programming Language
PDF
Gremlin's Graph Traversal Machinery
PDF
The Gremlin Graph Traversal Language
PDF
Graph Databases: Trends in the Web of Data
PPTX
PhD Dissertation Powerpoint
PPTX
Shewhart, 6-Sigma and snowflake-men
Traversing Graph Databases with Gremlin
Gremlin: A Graph-Based Programming Language
Gremlin's Graph Traversal Machinery
The Gremlin Graph Traversal Language
Graph Databases: Trends in the Web of Data
PhD Dissertation Powerpoint
Shewhart, 6-Sigma and snowflake-men
Ad

Similar to Computing with Directed Labeled Graphs (20)

PPT
Chap1 sfsf sdfsf sfdsdf sffsd fdsdfds dsfsdf
PPT
A balanced introduction to computer science.ppt
PPT
Introduction to computers to be balanced.ppt
PPT
Chracteristcs of Computer sciences and technology .ppt
PPT
A Balanced Introduction to Computer Science
PPT
Computer science introduction hardware and software.ppt
PPT
Chap10.ppt Chemistry applications in computer science
PPT
Chap10.ppt
PPT
GATE, HLT and Machine Learning, Sheffield, July 2003
PDF
Антон Кириллов, ZeptoLab
PDF
On being a professional software developer
PPT
Evolving as a professional software developer
PDF
Chap10.pdf
PDF
HOW ARTIFICIAL INTELLIGENCE AND ITS SOFTWARES AND SMART ALGORITHMS WORK.pdf
PPTX
Models vs Reality: Quest for the Roots of Complexity
PPTX
Deep learning Techniques JNTU R20 UNIT 2
PDF
cis97003
PDF
Intro to Computer Science. David Reed, Creighton University
PDF
Information security and programming language s C
PDF
number system understand
Chap1 sfsf sdfsf sfdsdf sffsd fdsdfds dsfsdf
A balanced introduction to computer science.ppt
Introduction to computers to be balanced.ppt
Chracteristcs of Computer sciences and technology .ppt
A Balanced Introduction to Computer Science
Computer science introduction hardware and software.ppt
Chap10.ppt Chemistry applications in computer science
Chap10.ppt
GATE, HLT and Machine Learning, Sheffield, July 2003
Антон Кириллов, ZeptoLab
On being a professional software developer
Evolving as a professional software developer
Chap10.pdf
HOW ARTIFICIAL INTELLIGENCE AND ITS SOFTWARES AND SMART ALGORITHMS WORK.pdf
Models vs Reality: Quest for the Roots of Complexity
Deep learning Techniques JNTU R20 UNIT 2
cis97003
Intro to Computer Science. David Reed, Creighton University
Information security and programming language s C
number system understand

More from Marko Rodriguez (20)

PDF
mm-ADT: A Virtual Machine/An Economic Machine
PDF
mm-ADT: A Multi-Model Abstract Data Type
PDF
Open Problems in the Universal Graph Theory
PDF
Gremlin 101.3 On Your FM Dial
PDF
Quantum Processes in Graph Computing
PDF
ACM DBPL Keynote: The Graph Traversal Machine and Language
PDF
The Path Forward
PDF
Faunus: Graph Analytics Engine
PDF
Solving Problems with Graphs
PDF
Titan: The Rise of Big Graph Data
PDF
The Pathology of Graph Databases
PDF
The Path-o-Logical Gremlin
PDF
The Gremlin in the Graph
PDF
Memoirs of a Graph Addict: Despair to Redemption
PDF
Problem-Solving using Graph Traversals: Searching, Scoring, Ranking, and Reco...
PDF
A Perspective on Graph Theory and Network Science
PDF
The Graph Traversal Programming Pattern
PPT
The Network Data Structure in Computing
PDF
General-Purpose, Internet-Scale Distributed Computing with Linked Process
PDF
Collective Decision Making Systems: From the Ideal State to Human Eudaimonia
mm-ADT: A Virtual Machine/An Economic Machine
mm-ADT: A Multi-Model Abstract Data Type
Open Problems in the Universal Graph Theory
Gremlin 101.3 On Your FM Dial
Quantum Processes in Graph Computing
ACM DBPL Keynote: The Graph Traversal Machine and Language
The Path Forward
Faunus: Graph Analytics Engine
Solving Problems with Graphs
Titan: The Rise of Big Graph Data
The Pathology of Graph Databases
The Path-o-Logical Gremlin
The Gremlin in the Graph
Memoirs of a Graph Addict: Despair to Redemption
Problem-Solving using Graph Traversals: Searching, Scoring, Ranking, and Reco...
A Perspective on Graph Theory and Network Science
The Graph Traversal Programming Pattern
The Network Data Structure in Computing
General-Purpose, Internet-Scale Distributed Computing with Linked Process
Collective Decision Making Systems: From the Ideal State to Human Eudaimonia

Recently uploaded (20)

PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Machine learning based COVID-19 study performance prediction
Mobile App Security Testing_ A Comprehensive Guide.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Digital-Transformation-Roadmap-for-Companies.pptx
The AUB Centre for AI in Media Proposal.docx
Per capita expenditure prediction using model stacking based on satellite ima...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Unlocking AI with Model Context Protocol (MCP)
Review of recent advances in non-invasive hemoglobin estimation
Encapsulation_ Review paper, used for researhc scholars
NewMind AI Weekly Chronicles - August'25 Week I
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Spectral efficient network and resource selection model in 5G networks
Diabetes mellitus diagnosis method based random forest with bat algorithm
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
“AI and Expert System Decision Support & Business Intelligence Systems”
Reach Out and Touch Someone: Haptics and Empathic Computing
Advanced methodologies resolving dimensionality complications for autism neur...
Machine learning based COVID-19 study performance prediction

Computing with Directed Labeled Graphs

  • 1. Computing with Directed Labeled Graphs Marko A. Rodriguez Los Alamos National Laboratory Vrije Universiteit Brussel University of California at Santa Cruz [email_address] http://www.soe.ucsc.edu/~okram
  • 2. Mini-CV. Bachelors of Science in Cognitive Science from the UC San Diego. 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 Belgium Center for Evolution, Complexity, and Cognition. Graduate Researcher at Los Alamos National Laboratory Research Library
  • 3. 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
  • 4. 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. Johan Bollen, Herbert Van de Sompel, Aric Hagberg, Marko A. Rodriguez, Lyudmilla Balakireva, Wenzhong Zhao 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. Marko A. Rodriguez, Ryan Chute, Herbert Van de Sompel, Johan Bollen. http://neno.lanl.gov Digital Library Research and Prototyping Team
  • 5. The history of this talk. MESUR had the problem of how to analyze a semantic network of relationships. e.g. < article1, cites, article2 >, < article1, writtenBy, author1 >, < author1, affiliatedWith, institution1 >, etc. You can’t directly apply the single-relational network analysis algorithms to this semantic/multi-relational domain. 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. A so now here we are…
  • 6. 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
  • 7. 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
  • 8. 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. Human, machine, chemical, etc. 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). What is the most general form of a computer?
  • 9. 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.
  • 10. Turing completeness. A machine or language is Turing complete if it can simulate a universal Turing machine. 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.
  • 11. The Von Neumann architecture. There exists no “true” distinction between computing instructions and data. All information is represented as 0s and 1s and are located in the same component (memory). Von Neumann machines are stored program machines. The machine is general-purpose in that it can be programmed to execute any algorithm. J. von Neumann. The principles of large-scale computing machines. IEEE Annals of the History of Computing, 10(4):243–256, 1988 Processor ( M* ) Data ( D_M ) Instructions ( M ) Memory ( D )
  • 12. 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 Data: Integer, Float, Memory Address, etc. opcode Instruction: add, subtract, goto 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
  • 13. What are the types of data? 00000000000000000000000000000001 = 1 1 0000000000000000000000000000001 = -1 00000000000000000000000000000011 = 3 1 0000000000000000000000000000101 = -5 etc. * This is not the standard two’s complement convention. 16 8 4 2 1 * ASCII 7-bit standard for representing characters.
  • 14. What are the types of instructions? Instructions instruct the processor to behave in a certain way. arithmetic such as add and subtract logic instructions such as and , or , and not data instructions such as load and store 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. Ultimately, a “machine” is a just a language. Assembly language is the “character” form of a binary instruction. A D D 7 43 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
  • 15. 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. Data ( D_M ) Instructions ( M ) Memory ( D ) 0 1 2 3 4 5 6 7 8 9 10 load 7 0 load 8 1 add 0 1 2 store 2 7 goto 0 noop 1..2..3..4..5.. 1 PC Processor ( M* ) 0 1 2 3 registers * Note that memory does not represent characters, just 0 or 1. ALU
  • 16. Virtual computing machines. As stated before, with a Turing complete machine/language, you can execute any algorithm. Thus, it is possible for a computer to model a computer. Different levels of abstractions by which this model can be represented. Low-level : model logic gates (VHSIC hardware description language). Code: bit patterns. 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]
  • 17. Programming patterns through the ages. In the beginning there were lists of instructions in the computer’s memory. Add this, then subtract that, then goto this instruction, then add this, … In order to deal with large programs, procedures were developed. 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. marko.befriend(johan), marko.charge(johan.paycode, 1000), johan.getAngry(marko), … * Note that all patterns are ultimately represented as lists of instructions in memory.
  • 18. 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? In other words, how do you represent “charging to Johan’s paycode”? marko johan hasFriend hasPaycode $10,000 0000 hasAmount
  • 19. 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
  • 20. The undirected network. There is the undirected network of common knowledge. Sometimes called an undirected single-relational network. e.g. vertex i and vertex j are “related”. The semantic of the edge denotes the network type . e.g. friendship network, collaboration network, etc. i j
  • 21. Example undirected network. Herbert Marko Aric Ed Zhiwu Alberto Jen Johan Luda Stephan Whenzong
  • 22. The directed network. Then there is the directed network of common knowledge. Sometimes called a directed single-relational network. For example, vertex i is related to vertex j , but j is not related to i . i j
  • 23. Example directed network. Muskrat Bear Fish Fox Meerkat Lion Human Wolf Deer Beetle Hyena
  • 24. The semantic network. Finally, there is the semantic network Sometimes called a directed multi-relational network. 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 j s
  • 25. Example semantic network. SantaFe Marko NewMexico Ryan California UnitedStates LANL livesIn worksWith cityOf originallyFrom stateOf stateOf locatedIn hasLab Cells Atoms madeOf madeOf researches Oregon southOf hasResident Arnold governerOf northOf
  • 26. 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? … when “actors” are computing instructions and they have relationships to computer instruction parameters (operands) ? … when “actors” are virtualized computing machines and have relationships to computer instructions and data?
  • 27. 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.
  • 28. Network representations of the various software patterns. 7 0 load load 8 1 add 0 1 2 store 8 1 someProcedure opA opB opA opA opA opB opB opB opC nextInst nextInst nextInst nextInst 7 0 load load 8 1 add 0 1 2 store 8 1 opA opB opA opA opA opB opB opB opC nextInst nextInst nextInst nextInst 7 0 load load 8 1 add 0 1 2 store 8 1 opA opB opA opA opA opB opB opB opC nextInst nextInst nextInst nextInst someObject hasBody hasBody hasMethod List of Instructions Procedure Object someProcedure
  • 29. Objects and their relationship to each other and their methods. 7 0 load load 8 1 add 0 1 2 store 8 1 opA opB opA opA opA opB opB opB opC nextInst nextInst nextInst nextInst charges marko hasBody hasMethod 7 0 load load 8 1 add 0 1 2 store 8 1 opA opB opA opA opA opB opB opB opC nextInst nextInst nextInst nextInst addMoney 0000 hasBody hasMethod 7 0 load load 8 1 add 0 1 2 store 8 1 opA opB opA opA opA opB opB opB opC nextInst nextInst nextInst nextInst angry johan hasBody hasFriend hasPaycode hasMethod $10,000 hasAmount * Though not represented, each method should have different instructions.
  • 30. A virtual machine at its relationship to instructions. PC (current instruction) Method variables LIFO Stack
  • 31. 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.
  • 32. 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.
  • 33. 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. A self-loop represents a 1 and no self-loop represents a 0 But what about when this model is applied to existing standards?
  • 34. 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
  • 35. A standardized semantic network data model. The Resource Description Framework ( RDF ) is a standardized data model for representing semantic networks. A resource is anything = physical, virtual, or conceptual. Inherently distributed (uses URI s to denote vertex and edge labels) < http://www.soe.ucsc.edu/~okram , http://www.lanl.gov#hasFriend , http://public.lanl.gov/johan > 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. 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.
  • 36. 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. Storing and querying triples in a triple store. 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. Various graph analysis algorithms and graph query languages supported.
  • 37. Triple store vs. relational database Triple store Relational Database SQL Interface SPARQL 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 = &quot;dc:creator LAUR-06-2139&quot; AND personTable.id = friendTable.personId1 AND friendTable.personId2 = worksForTable.personId AND worksForTable.orgId = collaboratesWithTable.orgId2 AND collaboratesWithTable.ordId2 = personTable.id
  • 38. 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.6 127.0.0.4
  • 39. 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> &quot;n&quot;^^<http://www.w3.org/2001/XMLSchema#string> . <http://neno.lanl.gov/instance#42a65d02-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#hasType> &quot;http://www.w3.org/2001/XMLSchema#integer . <http://neno.lanl.gov/instance#42a65d01-71c4-11dc-96bb-000014095701> <http://neno.lanl.gov#hasMethodName> &quot;test&quot;^^<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> &quot;n&quot;^^<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> &quot;0&quot;^^<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> &quot;i&quot;^^<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> . … .. .
  • 40. 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.
  • 41. 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. As easy as using the HTTP protocol. R/T : Virtual Machine and Stored Program D? : Data
  • 42. 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 &quot;observe&quot; 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. Thus, software can get a reference to itself and to the virtual machine. Thus, the virtual machine can get a reference to software and itself.
  • 43. 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. The URI is both human and machine consumable. To the virtual machines and stored programs, there is no concept of an underlying machine. There only exists a URI graph. There is only a single shared address space.
  • 44. 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
  • 45. Future research objectives. To study the “general cortical algorithm”. [Mountcastle] How does the cortex find abstract patterns in a stream of sensory data? How does the cortex create invariant representations? 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. 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.