Re: Semantic Event Systems

Hiya,

Yeah, I've dabbled in this space for almost 20 years, but
interoperability and ontology knowledge in general has always been a
problem for any wide use of this. However I still maintain that the
solution to the current "event salad" problem that was supposed to
solve the "package salad" which was supposed to solve the
"object-oriented dependency-injection salad" which was supposed to
solve the more general "code salad", a ontology-based salad bowl of
sorts still looks like a better solution.

The Gist ontology is a reasonable starting point, but it gets messy
quickly as the concept of software parts don't match well to the
semweb best practices which pretty much all the tools are focused
around (references, instances, subjects, etc.). I've written a few
good tree-structured linear stacks that together make for a reasonable
(when put together in a non-linear fashion) ontological shape that can
be populated, but ...

Well, it comes down to how you view your usage of it, and whether
you're using the ontologies to define and build your software, or if
you also intend to have your software react to that ontological world.
My current thinking and what I'm currently working on is defining a
core ontology for two fundamental things; Event (conceptual
communication), and Plugin (code interfaces). With these two I'm
sub-typing and reifying an ontology that both builds and reacts to the
ontology. The real trick is to shape an ontological structure that a)
follows what your app needs to do, and b) follows a natural
communication flow both you and the app can follow.

There's a big danger in over-engineering these things, and soon that
great idea is too slow to use and/or too hard to develop. I think the
trick here is to create small loosely-coupled and immutable plugins
that all speak a small but effective ontological language. For
example, my current implementation don't define any typed event
entities (ie. EventUserMouseClick), only actions and reactions against
known datatypes (similar to API branch-points; e.
ConvertStreamedCoordinates) where plugins themselves define what types
of data they support for what action (that way I don't need to know;
the plugin manager hooks plugins to API access-points on-demand).
Anyways, early days.

If there's anything else out there, I haven't stumbled upon it yet,
but would love to know more. I'm not very formal in my definitions,
and due to the lack of good, simple implementations and general geek
ontology understanding, I tend to focus on typed entity structures
(ie. I can simulate a lot of the semweb toolbox in Map implementations
in different languages) as a proxy for a simplified query language.
How my app responds to (and possibly edits) the ontology is a
different question, of course.

Hope any of that is useful.


Cheers,

Alex

On Thu, May 12, 2022 at 3:26 PM Adam Sobieski <adamsobieski@hotmail.com> wrote:
>
> Mark,
>
>
>
> Thank you for indicating the Gist ontology, e.g., “gist:Event”.
>
> As interesting, my current sketches of semantics-enhanced software event sources and listeners are available in the Nifty project (https://github.com/AdamSobieski/Nifty).
>
> Here is a hyperlink to a relevant section of source code: https://github.com/AdamSobieski/Nifty/blob/19037dca00ff74a75b8d53abc47fc8498963f906/Nifty/Nifty.cs#L200 . Note: on line 209, a triple is constructed by passing arguments to a factory method using a predicate-subject-object sequence instead of a subject-predicate-object sequence.
>
> Semantics-based approaches to software events (and messages) are flexible and extensible. Benefits of semantics-based approaches to software events (and messages) include that listeners could, beyond subscribing to events (or messages) based on their types, utilize semantic queries to further describe those events (or messages) of interest. This could be performed between software components on the same computing device or between software components across computing devices.
>
>
>
>
>
> Best regards,
>
> Adam
>
>
>
> From: Mark Wallace <mark.wallace@semanticarts.com>
> Sent: Tuesday, May 10, 2022 8:34 AM
> To: Adam Sobieski <adamsobieski@hotmail.com>; semantic-web@w3.org
> Subject: RE: Semantic Event Systems
>
>
>
> "Gist" is a small but general ontology that includes gist:Event as a top-level concept.
>
> See
>
> https://www.semanticarts.com/gist/
>
> and
>
> https://ontologies.semanticarts.com/o/gistCore.ttl
>
> Very respectfully,
>
> -Mark Wallace
>
>
>
> From: Adam Sobieski <adamsobieski@hotmail.com>
> Sent: Thursday, May 5, 2022 4:28 AM
> To: semantic-web@w3.org
> Subject: Semantic Event Systems
>
>
>
> Semantic Web Interest Group,
>
>
>
> Hello. I write, today, about ontologies describing events in the sense of computer software, where software objects can produce, or raise, events and other software objects can subscribe to consume, to receive, or to listen to, these events.
>
> Here is a C# example of a semantic event system:
>
>
>
> public interface IHasUri
>
> {
>
>     public Uri Uri { get; }
>
> }
>
>
>
> public interface IHasReadOnlyMetadataGraph : IHasUri
>
> {
>
>     public IReadOnlyMetadataGraph Metadata { get; }
>
> }
>
>
>
> public interface IEventSource : IHasReadOnlyMetadataGraph
>
> {
>
>     public Task Raise(Uri instance, IReadOnlyMetadataGraph data);
>
>
>
>     public bool Subscribe(Uri category, IEventHandler listener);
>
>     public bool Unsubscribe(Uri category, IEventHandler listener);
>
> }
>
>
>
> public interface IEventHandler
>
> {
>
>     public Task Handle(IEventSource source, Uri instance, IReadOnlyMetadataGraph data);
>
> }
>
>
>
> As one can see, event handlers can subscribe to and unsubscribe from event sources and can do so by specifying entire categories of, or types of, events which they are interested in.
>
> As envisioned, there would be an ontology for these scenarios which would include a top-level type for events, various kinds of events, and relations between things and the events which they produce and consume.
>
> I wonder, have others previously considered these ideas about semantic event systems? Are there any existing ontologies describing software events? Thank you.
>
>
>
> Best regards,
>
> Adam Sobieski
>
>



-- 
 Information Alchemist, tone modulator, swords master
 thinkplot.org | linkedin.com/in/shelterit | sheltered-objections.blogspot.com

Received on Thursday, 12 May 2022 07:05:49 UTC