Computing with Directed Labeled Graphs

  • 2,363 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,363
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
65
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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.
      • SPARQLUpdate 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.