Sunday, May 31, 2015

Onto ... Graph Theory in Applications of Ontology

Though with apology to the indeterminate readership, I don't have a convenient bibliography to present about it, offhand, personally I've been studying some concepts in ontology, for a small number of years -- all, in informal study. I've really not ever managed to develop an academic transcript adequate for transfer to any manner of an Ivy League school or anything like. I suppose, personally I'm still trying to understand what academia means, to me, as academia being such that I consider to be a necessary part of life. I would not wish to make any long sort of an anecdote as to denote why I consider that I'm of such a view, perhaps it's a bit of a meta-semantic sidebar anyway, towards the present article.

Presently, I've begun to develop a thesis concept with regards to how ontologies may be applied in a sense of personal or academic knowledge management -- nothing quite so technically aspiring as the Nepomuk ontologies, though I suppose it could "Aim" towards that, at some time, as when there would be any applications to speak of that could utilize Nepomuk's facilities for adding an ontological layer onto personal information management (PIM). Presently, I'm trying to focus more about a concept of concept -- in a manner of a literary sense of concept -- such as may presented meta-semantically in extensions of the SKOS ontology.

Considering an ontology, in a generic sense, as a form of a reference medium, orthogonally, one may endeavor to view an ontology as it being essentially a literary kind of reference medium. However an ontology -- whether in RDF, OWL as extending of RDF, KIF, Common Logic, or other format -- however stored or transmitted in its essential structures, an ontology typically contains a lot of essentially textual information. In a sense of RDF, an ontology may contain textual information in forms of short texts about resources -- texts that are likewise resources, such that may be furthermore reified as resources, within any single RDF graph medium. Perhaps it may ever be recognized as a nice susbset of application media, the set of ontological graphs altogether.

Presently, I would like to denote a simple thesis statement that I've been able to etch out the raw stuff of own knowledge, this evening: In a practical application of ontologies, focusing namely on the Web Ontology Language (OWL), one may define two categories of OWL ontology for practical applications:
  • Structural Ontologies, containing definitions of OWL Class, Object Property, Datatype Property, XSD Datatypes, and Annotation Properties for applications
  • Instance Ontologies, as applications of structural ontologies, such that would be applied in definition of OWL Indvidual type resources, in extending of structural ontologies.
Though I would not wish to seem excessively proprietary about it, personally I've begun to develop a corresponding thesis about a small set of structural ontologies, such that may be applied in tracing of information conveyed in jouranilsm, and might likewise be of some use for applications perhaps in at least an ad hoc manner of field archaeology. In a trivial sense, it may be decandted to a matter of: Persons, Places, Events and References, in a bibliographical sense. The Events concept might seem to be the pivotal concept, at that -- in however an event may be in any sense singularly defined, as in a  context of any single literary work.

There's a fifth concept that I would like to add to that small list, this evening, if one may endeavor to develop at least an ad hoc sense of structural geneaology. It's a concept that I've yet to find any single ontology for, however -- essentially, orthogonal to an Events ontology, if there may be any single ontology for literary endeavors about constructed objects. I do know of a small few of resources I could revisit online, as to do conduct more research about that concept, perhaps this evening. I'm afraid that it might be a bit of a disorganized list, if I'd try to itemize that set of resources, immediately. It's also a task wholly orthogonal to the thesis topic that I'd hoped I might be able to begin to write down, presently -- and although the latter may be a bit of a vague idea anyway, but it's such that I'd like to continue to whittle about, literally, towards further developing an idea for application of a small set of structural ontologies and instance ontologies in ... in no exacting usage case, as yet.

Personally, I'm not certain of how far a concept of proprietary knowledge may or may not extend into formal academia. Towards my further sense of disdain at that sense of ambiguity, even if I am researching of these topics, informally -- not being a student of any single, formal course about ontology, at present -- I consider that I should certainly try to respect any number of formal academic models, even in my own research and writing -- at least inasmuch as I  might understand such models, candidly.

What, then, do I mean by proprietary knowledge?  In as much of an exacting sense as in which I can try to define what I mean, in that phrase: I mean, any knowledge legally and necessarily protected under terms like with regards to literal intellectual property. Not as if to indulge in writing any lengthy sidebar with regards to any sense of  commercial intelligences or small business, but if I would denote intelligence as a noun, I consider that I should as well denote how it is a noun that I consider has a natural, plural form. At that, though, I think it goes far towards psychology, and personally I'm not well read about that domain of academia.  It would be quite a sidebar to begin, this evening, to define what I may mean to denote by that simple term, in an exacting sense.

So, but in being aware of some concepts of proprietary knowledge, and in avoiding any particularly revolutionarily characteristic sort of views about any concepts of propriety, I know there are things that I know, such that -- for online discourse, and not only -- that I advise myself, implicitly, to not even denote I know. Perhaps it's a bit of an odd thing, but "That's life," as I understand it -- never 110% transparent. I feel that that's such that I should denote, distinctly, before any further discussion of ontologies. Orthogonal to that oblique disclaimer, I know there are things that I don't know, too -- if there may ever be any single count of known things, probably more things in the second category than in the "Immediate knowledge" category. I think it's as well to not be too deterministic about knowledge -- moreover that science, as a human effort, indicates that no person's knowledge is ever absolute and complete.

Perhaps its simply that I wanted to note, this evening, that there is a thesis concept, vaguely "Here," and that I know there's probably more of a bibliography about it, mroe than what I have ever found, as such. Perhaps, either, I'm simply trying to circumscribe an arc around a notable gap with regards to any profound and immediate illustration of a thesis concept, in software, such as may entail an application of any number of concepts in ontology.

In my not being direct, in this article, I'm certainly not trying to avoid mentioning any manner of a pink elephant in the room, with regards to applications of ontologies. Orthogonally, I don't personally happen to follow the logic of the Manning/Snowden/Assange conspiracy, though I have certainly read of it. 

Inasmuch as considering that a study of academia may entail, implicitly, a study of a veritable plethora of knowledge, namely human knowledge --inasmuch as even to present the ultimate, existentially challenging question, What is knowledge? -- perhaps, though, what I should be concerned about with a perspective about software, perhaps it  may be more towards a practical question of presentation, How well may knowledge be presented?

Not to cut corners in this informal thesis, I understand that there's a design as for a human-computer interface (HCI) toolkit, the Common Lisp Interface Manager (CLIM). As an HCI toolkit, perhaps the design of CLIM, so far as to CLIM 2, has been focused about graphical displays and keyboard interactions, but certainly that's in keeping with the sort of HCI environment that we may be most familiar with, as sighted computer users at personal computers.

CLIM presents something of a simple, basic, practical model for HCI implementation in graphical display/textual keyboard/on-screen pointer environments. Also, CLIM has some features catered for print-based representation of graphical objects, as towards a sense of print as media.

Personally, candidly,, perhaps I have not always been a great fan of the interface for the CLIM obect model, in Common Lisp. I'm a little put off that it doesn't seem, to me, that it completely utilizes the Metaobject Protocol (MOP), though I know MOP is not an ANSI-standard fare in the Common Lisp Object System (CLOS) anyway. I simply think there must be a more effective way to program interfaces with CLIM, of maybe that's simply too naive of an idea.

As it being an object model however, I'd say CLIM is pretty square.

So, now I'll just jump right to the point of applying CLIM and Franz Allegrograph -- taking a short break from this thesis article, presently

Franz, Inc. publishes a VMDK edition of their semantic information systems platform, AllegroGraph. Presently, the VMDK edition includes AllegroGraph pre-installed in a 64-bit Ubuntu 14.04 OS, the Trusty Tarpaulin edition of the Debian-based Ubuntu GNU/Linux operating system. The VMDK can be installed to a virtual appliance in VirtualBox, or any number of other desktop-based virtualization systems. In a nutshell, it provides a quick start-and-go interface for working with Franz AllegroGraph.

As far as how to configure VirtualBox networking for accessing the VMDK from outside of the VMDK's software space ... that will not be presented with details, in this article. The VirtualBox manual includes the complete details of that. This article will assume that the VirtualBox virtual guest appliance is configured with VirtualBox NAT networking, with a host interface having the IP address 172.16.42.1

Moreover, this article assumes AllegoGraph is configured in agraph.cfg, with at least the following configuration directives:

Hostname 10.0.2.15
Port 10035

Thirdly, this article will assume that the VirtualBox NAT networking is configured for port forwarding in the VirtualBox interface between the virutal host OS and the virtual guest OS, simply to the effect:

172.16.42.1:10035 <=> 10.0.2.15:10035

With such a configuration installed, a developer may apply any of the AllegroGraph clients, in developing on the virutal host OS -- with apology, developing no lengthy side-thesis about software defined networking (SDN), here, or either, about integrated development environment (IDE) platforms applicable for Common Lisp software development. In a practical sense, certainly such configuration properties can be managed via software, but even in so much of automation, it probably would help to understand at least a little bit about TCP/IP networking. Within the virtual host OS, the networking and port forwarding properties can be managed via the VBoxManage shell command. Within the virutal guest OS, as in this example, the configuration properties can be managed via both of the files, /etc/network/interfaces and /home/franz/ag/lib/agraph.cfg

So, with such a configuration installed, there are the AllegroGraph clients, and a bit more of TCP/IP networking. Beyond a context of VirtualBox host-only networking, a framework for SSH port forwarding could be applied, on top of the VirtualBox port forwarding.

Presently, this thesis article will jump, by a certain distance, to develop some concepts about object models. The development of that aspect of this thesis article must naturally entail a presentation about some concepts developed in CLIM. This article will now assume an outline format, towards an overview about CLIM.

CLIM - An Overview
  • Interaction
    • Menus
    • Key bindings
    • Modeline
  • Presentation
    • Presentation types
    • Presentation methods
  • Device Interface
    • CLIM port
      • CLX port
      • GTK Cairo port
      • ...
  • HCI structures in CLIM applications
    • CLIM Graft and Sheet objects
    • CLIM Frame objects
      • The application frame class
      • ...
    • CLIM Pane objects
      • The application pane class
      • ...
    • Objects displayed on a CLIM pane
      • Geometric objects via CLIM drawing forms
      • Text via CLIM drawing forms
      • Presentations
      • ...
  • CLIM and Common Lisp
    • Streams in CLIM
    • ...
  • CLIM and X.org
    • XLib
      • CLX
      • Adding support for XFree86 shared memory extension 
        • TBD
    • Input methods
    • Integration with window managers
    • Integration with desktop environments
    • ...
  • CLIM and text media
    • ...
    • ...
    • Climacs
    • ...
  • CLIM and CORBA
    • TBD - Thesis not yet developed
Secondly, this article will now develop an outline focusing on Franz AllegroGraph as an RDF information service.

Towards developing a CLIM layer for AllegroGraph - Notes / Outline
  • Presentation Types
    • Triple Store / DB
    • Triple
      • subject, predicate, object
      • graph
      • triple ID
    • Resource
      • Unique Part Identifier (UPI) strings
      • Class
        • RDF Schema
        • OWL
      • Annotation properties
        • rdfs:label
        • skos:altLabel
        • skos:prefLabel
        • skos:hiddenLabel
  • Graph Display
    • Graph 'link' properties
      • e.g. SKOS broader / narrower properties
    • Graph layout
      • Radial graph
      • Hyperbolic graph
      • Tree graph
        • Resources may appear multiple times in a tree graph hierarchy
        • Resource aliasing for individual presentation in tree graph
  • Graph Management
    • Graph Management Actions (Default)
      • Open graph service connection (i.e. connect to graph server)
      • Create graph DB
      • Delete graph DB
      • Rename (?) graph DB
      • Close graph service connection (i.e. disconnect from graph server)
    • Graph Management Panes
      • List of "registered" graph DBs
        • Registry by way of application of ... something compatible with CORBA object services (TBD) (Persistent naming, etc)
    • TBD: Implementing an access control layer onto AllegroGraph triple stores
  • Fundamental service interface model
    • Implementation as an adapter
      • Graph service: AllegroGraph
      • Display management: CLIM
  • Integration with CORBA
    • TBD - more towards providing a triples-graph service for other graph/SPARQL servers in Common Lisp or Java
  • Usage Cases
    • TBD

Lastly, this article  will endeavor to develop a platform-agnostic view about RDF media and CLIM -- again, presented here in an outline format.

Broader Context: CLIM + Semantic Web (A Generic Model)
  • RDF Resources // URI Referencing
    • See also: ODM
  • Generic  model for collections of RDF tuples
    • Concept: tuples-index
  • Registration of RDF namespace per triples-index
  • Classification of ontologies
    • Application: Per-ontology presentation method selection
    • Examples // Use Cases
      • Presentation methods for SKOS Concept classes
      • Presentation methods for RTM Topic classes
    • Selection criteria for classification in resource => presentation type assignment
      • RDF namespace of resource's RDF URI
      • Type of entity (RDS class, OWL class, RDF property, OWL object property, OWL datatype property, OWL annotation property, XSD type)
      • Properties defined to entity
        • Requires a full-graph search initially
        • List of properties may be updated on graph change
          • Concern: Concurrency
  • RDFS/OWL Classes & CLIM Presentation Types
    • RDFS/OWL classes available only in connection to any single tuples-index
    • Presentation types may be defined as in association to an individual RDF namespace
    • Presentation types may be defined as in association to an individual tuples-index
    • Presentation types may be defined in individual source trees
      • Such source trees may be referenced as in an index or transformation of the URI of any single ontology namespace (?)
    • ? Internal table for registration of presentation types for reference via presentation methods
  • Concept: Presentation of tuples
    • Classic presentation mode: subject, predicate, object
      • Presentation of each of a subject, predicate, object will be affected by presentation method defined for each individual resource referenced in that field of each tuple
  • Concept: Presentation of reified tuples
    • Append 'button' area for activating presentation layer for reification data
  • Project: Object model for SPARQL
    • CLIM layer
  • Concept: Table view (onto SPARQL)
    • per each column
      • An RDF/OWL property
        • Column displays resource denoted in that property
      • A column heading
    • per each table
      • SPARQL query (as an object)
      • "Key" column[s]
        • applicable for sorting in table display
  • Concept: Graph view (onto SPARQL)
  • Concept: Metadata view (onto any single set of specifications/standards/conventions in a context of linked open data )
    • Arbitrary
  • Usage cases (blue sky?)
    • Bibliographical display and editing [application]
    • "FOAFpedia" app
      • Integration platform (app) for collation of bibliographical information
      • Bibliographical information for "Good Jedi"
        • Is not LinkedIn
        • Is not Encyclopedia Britannica, etc
      • Bibliographical information for "Dark side of the moon"
    • Topic maps
      • Alternate to "Mind maps"
  • Concerns
    • Implementation in CLIM
    • Integration with file media
      • Integration with desktop/mobile computing systems
        • Resource graph as a central data service on each platform
          • Resource graphs on desktop platforms
            • Nepomuk
            • TBD
          • Resource graphs on mobile platforms
          • Resource graphs on enterprise server platforms
            • (?)
        • Service model
        • Interface model
          • Resource=>application dispatching on Android platform - i.e "Open with..."
        • See also: 
    • Integration with web media
Towards a set of concepts for a separate focus article:
  • Prolific mobile computing
    • Mobile operating systems utilizing the Linux kernel
      • Android platform
        • Manufacturer-specific applicaitons
      • Firefox OS
    • Apple iOS
    • BlackBerry
      • See also: QNX
  • Prolific laptop computing
    • Google Chromebook
      • Also based on the Linux kernel
    • Microsoft Windows laptops
      • ...
    • Ubuntu laptops
      • HP TouchSmart laptops
    • FreeBSD desktop distributions
      • ????
  • Computing in Small Office/Home Office (SOHO)  Environments
  • Software Defined Networking (SDN) as scalable online service platform
    • Amazon Web Services (AWS)
    • OpenShift Origin
    • Digital Ocean
    • ...
  • System on Chip (SoC) platforms and single-board computing platforms
    • Texas Instruments AM35xx Sitara SoC
      • BeagleBone Black
    • Allwin A20 SoC
      • Cubieboard 3 (Cubietruck)
    • Broadcom BCM2835 SoC
      • Raspberry Pi
    • Alternate design concept: Computer on module (CoM)
      • Juxtaposed to SoC as a design concept
      • Commercially, another delivery platform for manufacturer's microcircuit designs
      • e.g. Gumstix