# Knowledge Management on a FreeBSD platform?



## neogeo (Nov 8, 2015)

Hello! I've begun developing a design for a project in which the TILab Java Agent Development Framework (JADE) would be applied together with either the Sesame RDF API or the PowerLoom Java API for purpose of logging of port-update events into an RDF graph on a local area network. I'm not certain if a topic of _knowledge management _may seem like too esoteric of a concept, perhaps too much for a forum thread to develop of the topic, but I thought it would be worth the moment to ask anyway.

Though I'm new to the FreeBSD ports framework, I may be interested in contributing to the development of a series of ports for PowerLoom -- it has a few components, PowerLoom, in each of Java, Common Lisp, and C++, all deriving from PowerLoom's own unique STELLA programming language, all components described in the PowerLoom manual. I might also like to develop a port about Protege, as Protege representing -- principally -- an ontology editor, with support for RDF and OWL formats, as well as SPARQL, and -- in older editions of Protege -- SWRL assertions. Perhaps it could seem to venture overmuch towards a concept of enterprise information systems -- beside so much coverage on the  web, as with regards to concepts and trends of a _Semantic Web_ standards track. 

I'm not certain if it would be very far adopted. I think there may be some applications for RDF and OWL formats (such as applicable with the Sesame Java API), or KIF (such as implemented in PowerLoom) for even so simple a task as to store the set of logs published from a Poudriere build, in a central graph database on a LAN, such that the log data may serve to assist not only with notifications about updated ports, but moreover may serve a role in developing a _provenance_ graph about each port's latest build on-LAN, as for purposes of issue tracking. I've begun to develop a project around this concept -- naming it AxonP, presently. I'm not immediately decided about whether it will apply the Sesame API or the Java API provided by PowerLoom. Alternate to simply installing these software components to any computers on my own small LAN, I thought it might be fortuitious to offer to develop a set of ports about each. To my perspective, these resources or RDF, OWL, and KIF standards are all applicable in a context of knowledge management.

Moreover, the Metaobject Framework (MOF) and UML metamodel for MOF may be categorized as being, furthermore, resources under the same category, Knowledge Management.  In regards to metamodels extending of MOF, the Business Process Management Notation (BPMN) -- such as implemented in Activiti -- may be applied for automation of network processes, such as with the JADE toolkit. Of course, such a framework may seem as though to center largely on applications of the Java programming language. MOF itself is not expressly a Java-centric resource, however.

I would not wish to seem as if to simply ramble about these topics. I'm not certain if a concept of knowledge management may find any immediate adoption, but I would like to take the opportunity to at least mention RDF, OWL, and KIF, before proceeding with further development of the AxonP project. 

If it may be useful to develop a set of ports for the PowerLoom components, the PowerLoom Java API is something I'm looking at presently, such that it may find an application in the AxonP project. In regards to the AxonP project,  candidly I'm trying to put together a complete design document, before writing any further "Lines of code" either in the project's Java API, or in any applications of any single ontology language, within the project -- RDF, OWL, or KIF for insance. The present set of Java class files for the project might not seem  expressly meaningful, outside of the documentation. 

So, to a single question, is there a context for discussion about knowledge management on a FreeBSD platform?


----------



## tobik@ (Nov 8, 2015)

neogeo said:


> I might also like to develop a port about Protege


+1 on a Protege port.


neogeo said:


> In regards to the AxonP project, candidly I'm trying to put together a complete design document, before writing any further "Lines of code" either in the project's Java API, or in any applications of any single ontology language, within the project -- RDF, OWL, or KIF for insance. The present set of Java class files for the project might not seem expressly meaningful, outside of the documentation.


I'm interested enough now to read your design document for AxonP if you share a link here when it's finished.   Will AxonP be open source or commercial?

Personally I would be interested in a system that I can run SPARQL queries on to ask about the system states of a bunch of (FreeBSD) hosts in a network.  I never really understood why Facebook used SQL for its sysutils/osquery project.


----------



## neogeo (Nov 8, 2015)

tobik said:


> Personally I would be interested in a system that I can run SPARQL queries on to ask about the system states of a bunch of (FreeBSD) hosts in a network.  I never really understood why Facebook used SQL for its sysutils/osquery project.



Facebook publishes an Engineering 'Blog. Personally, I'd not heard of their application of SPARQL for systems information.  Considering Facebook as one of the "Big three"  service providers in social networking -- referring to Facebook, Twitter, and G+, with a tip of a proverbial hat to Vkontakte and others -- perhaps I'd been biased towards an assumption that most of Facebook's engineering would be dedicated about advertiser integration -- Google's ZMOT philosophy comes to mind, albeit perhaps principally as a manner of a marketing in itself.

Personally, I think it's refreshing to learn if Facebook has made a focus about systems engineering, moreover in a free/open source domain. In a context of social network sites, and not as if to suggest as though the Google web presence was entirely dedicated about the ZMOT philosophy, of course I've read of Google's developments about databases and filesystems, moreover, in extensions to the Linux kernel, and extensions such as the Repo tool applied in Chromium an Android Open Source Projects. Personally, I'd not been of an estimate that Google, Facebook, or Twitter would be too forward about the actual internal structure of their respective data systems, even of the much esteemed Google Knowledge Graph itself. So far as the state of the art in systems administration tools, so to speak, Facebook's osquery is a new thing in my own open universe.

Reviewing a 'blog post about osquery, there's an expression presented in a standard SQL syntax


```
SELECT DISTINCT process.name, listening.port, listening.address, process.pid FROM processes AS process JOIN listening_ports AS listening ON process.pid = listening.pid;
```

Reviewing source code of the osquery project, the osquery 'specs' subdirectory publishes a series of SQL schema. A SPARQL transformation is possible of this data model. I hope it may not seem too indulgent to illustrate a methodology as such:

Towards developing a platform-agnostic logical model of resources as may be modeled in an SQL platform model, theoretically an SQL schema an be translated to a UML model syntax -- such as in a manner of a model transformation process -- as towards an application of  the OMG CWM metamodel or any sort of an ad hoc metamodel or model, in the UML value space, whether or not applying any singular modeling specifications in the OMG standards track. The transformation engine could apply the ATL toolkit, alternate to QVT Operational (QVTo) [Eclipse Wiki]. QVT itself is another specification developed of the OMG modeling standards track.

Once an SQL schema would be transformed into a UML format -- there may or may not be a corresponding metamodel in the UML value space, such as may be inherited by the UML transform of the original SQL schema  -- then given any effective data model as may be generated of a transformation of the respective SQL schema -- whether or not the resulting data model would legally represent a  _derived work_ for purposes of licensing, the model transformation tools themselves might not be insomuch _derived works_, however -- the UML data model may then be persisted in a platform-agnostic XMI format.

The XMI format itself is an XML format, principally an extension of the XML Schema Datatypes (XSD) specification -- the latter as developed of a standards track at the W3C.  XMI is often applied for serialization and of standards metamodels, those principally extending of the OMG Metaobject Framework (MOF) -- MOF being a  meta-metamodel (alternately, in non-standard terms, a metamodel model), orthogonally. The XMI format may also be applied for serialization of logical model data, such as would principally _apply_ a logical _metamodel_ -- for any logical _metamodel_ applying MOF. Perhaps there are a few degrees of a theoretically _orthogonal_ relation in such an architecture. I'm not sure if it can be easily represented, as like "All at once", in a three dimensional visual model.  There is a fourth dimension -- more formally, a modeling layer -- as of any actual "User data" such as may structured of any single model.

Theoretically, a model stored in XMI format can be transformed to an RDF Schema -- ostensibly, applying a metamodel standardized of the Ontology Definition Metamodel (ODM) specification -- then the RDF schema applied within a single graphing service and populated with model data, such as may be queried with SPARQL. The SPARQL queries could be applied for presentation in a web-based or otherwise "GUI" oriented MIS interface for network service information. Thus, an SQL can be transformed to an RDF schema and queried with SPARQL.

Perhaps it might seem to represent a long way around to an architecture for a management information system (MIS). In developing any manner of re-use of so much as the existing modeling specifications, I think it could serve as a concrete manner of architecture, if not a reusable manner of software and systems administration resource.

Focusing on FreeBSD ports and the as-albeit-so-far-unpublished AxonP project design, I'm not immediately certain if Facebook's osquery may contain any expressly software-oriented graph element types, but I think it Facebook has definitely developined an intriguing data model. Reviewing the osquery 'specs' resources, I see that their model goes so far as OSI level 2, in depth -- the Data Link layer [Simoneau2006] -- that they have developed an SQL model for ARP tables.

Personally, candidly, I might wish to believe that a running OS itself would contains a sufficient table, as such. Albeit in a broad sense, I'm not hugely a fan of data duplication unless I'm certain there is a reason for redundant data storage.

Personally, I'm not certain why ARP cache data should need to be persisted over a long duration, independent of the Ethernet stack -- outside of any really detailed provenance modeling -- referencing the W3C PROV standards track [W3C Wiki] -- in which, any ARP query/request processes, so far as MAC addresses and ARP record data can be trusted, may represent any manner of a series of events in any manner of "White hat", "Black hat," "Grey hat," or splendid "Plaid Hat" processes -- referencing an documentary old film about a fellow at an ivy league school of an academia circa 1980's, the fellow essentially tracing a certain "Black hat" process across multiple satellite networks. I don't know if satellites have ARP addresses, albeit.

To my best estimate, FB's osgraph is for a purpose of data mining.



tobik said:


> +1 on a Protege port.



Cool!



tobik said:


> I'm interested enough now to read your design document for AxonP if you share a link here when it's finished.   Will AxonP be open source or commercial?



The source code will be FOSS licensed. I'd like to apply the two clause BSD license, but I'm not certain if that may be feasible in consideration of the licensing of the respective "Existing components" of the project.

The design documentation for the AxonP project isn't particularly well organized, but there is a rolling draft of the document's main design thesis, such that I've been writing at Evernote: _AxonP - Documentation_

I'm afraid I've managed to intersperse a few orthogonal project ideas into the AxonP design thesis, presently, just in so much as trying to put together a single document -- I should review one of those from yesterday, in fact, an idea about an Android development lab such as could apply QEMu in a managed sense, more broadly towards a logical model for virtualization services, and secondly the note about Tizen in the article.

In a sense, it extends of a concept of applying FreeBSD in a context of a small office/home office (SOHO) LAN environment, but in keeping academi in mind also. I hope that it may "Scale" and "Scale well" outside of the SOHO setting. Though I'm afraid it might seem ultimately like a manner of a pink elephant,  as a systems design, the primary goal of the AxonP project is to make the ports update process more manageable, with support for issue tracking as after a process of port=[build]=>package=[install, configure]=>usage=>error

Though I'm afraid I  may seem tedious in manner, I think that a concept of provenance may find an application in issue tracking.


----------

