RE: Semantics-enhanced Software Extensibility

David,

Thank you. Those syntaxes are presently only intended to be of use for communicating about the generalizations being explored. The Nifty project intends to explore n-ary (including binary) relations in URI-based predicate-calculus formulas.

@prefix example: <http://example.com/>.
example:f(example:x, example:y, example:z).

In the project, there are separate factory methods for when developers want to create knowledge graphs (n only 2) instead of general formula collections (varying n), though both utilize the same interface, IFormulaCollection.

IFormulaCollection formulaCollection = Factory.FormulaCollection(...); // n-ary
IFormulaCollection knowledgeGraph = Factory.KnowledgeGraph(...); // only binary


As for "pull- and push-based querying", that refers to uses of IEnumerable<T> and IObservable<T> in the querying API's [1].

"A man walks into a grocery store and asks the shopkeeper if he has any eggs. 'Yes,' says the shopkeeper. 'May I have some?' asks the man. And the shopkeeper gives the man some eggs. 'Do you have any more?' asks the man. 'Yes,' says the shopkeeper. 'May I have some?' asks the man. And the shopkeeper gives the man some eggs. 'Do you have any more?' asks the man. 'No,' says the shopkeeper. The man leaves.

"That's pull-based. The man keeps 'pulling' eggs from the shopkeeper until there were none left.

"A man walks into a grocery store and asks the shopkeeper if he can delivery any eggs and, if so, can he deliver then whenever he can get them. 'Yes,' says the shopkeeper. The man leaves. In a few days, some eggs arrive. A few more days later some eggs arrive. Then the man calls the shopkeeper and asks the for the deliveries to stop. No more eggs arrive.

"That's push-based. The man doesn't wait for the shopkeeper to give him eggs. The man goes about doing something else and the shopkeeper 'pushes' the eggs to the man." [1]


Best regards,
Adam

[1] https://stackoverflow.com/questions/51254117/what-is-difference-between-push-based-and-pull-based-structures-like-ienumerable

-----Original Message-----
From: David Booth <david@dbooth.org> 
Sent: Monday, June 6, 2022 10:04 AM
To: semantic-web@w3.org
Subject: Re: Semantics-enhanced Software Extensibility

On 6/5/22 22:18, Adam Sobieski wrote:
> Hello. I would like to share some recent ideas and results from 
> the/Nifty /project (https://github.com/AdamSobieski/Nifty
> <https://github.com/AdamSobieski/Nifty> , 
> https://github.com/AdamSobieski/Nifty/blob/master/OVERVIEW.md
> <https://github.com/AdamSobieski/Nifty/blob/master/OVERVIEW.md>).
> 
> The project is exploring n-ary, URI-based semantics, e.g., n-ary 
> SPARQL, and exploring semantics-enhanced software messages and events.

Your mention of n-ary relations and queries caught my attention.  The github OVERVIEW.md page describes this as "a Turtle-based syntax", but the example given doesn't look like Turtle:

   @prefix foaf: <http://xmlns.com/foaf/0.1/>.
   foaf:knows(_:alice, _:bob).
   foaf:knows(_:bob, _:alice).

And this example is also described as being "a SPARQL-based syntax", but it doesn't look to me like SPARQL:

   PREFIX foaf: <http://xmlns.com/foaf/0.1/>
   SELECT ?name ?mbox
   WHERE
   {
       foaf:name(?x, ?name).
       foaf:mbox(?x, ?mbox).
   }

Can you clarify?  Are you defining extensions of the Turtle and SPARQL syntaxes?  And if so, are these extensions only intended to address n-ary relations, or are you also adding more extensions for other features?

I noticed mention of "formulas", which immediately made me think of n3. 
  How do your formulas differ from n3 formulas?

I also noticed mention of both "pull- and push-based querying".  How does that differ from forward and backward chaining?

Thanks,
David Booth

> 
> A recent idea is that of semantics-enhanced software extensibility. 
> Software add-ons, plug-ins, and extensions - which might reside in 
> JAR's or DLL's in applications' "Plugins" folders - can utilize 
> semantic metadata to describe their functionalities and the types of 
> semantics-enhanced messages and events that they produce and consume. 
> In this way, system initialization algorithms can load and then 
> automatically interconnect them. That is, add-ons, plug-ins, and 
> extensions can provide semantic metadata for reasons including 
> enabling system initialization algorithms to automatically 
> interconnect them as producers and consumers of semantics-enhanced software messages and events.
> 
> Thank you. I hope that these uses of Semantic Web technologies are of 
> some interest to the group.
> 
> Best regards,
> 
> Adam Sobieski
> 

Received on Thursday, 30 June 2022 04:29:12 UTC