Re: Towards N-ary Predicate Calculus in TriG

On 12/9/22 04:10, Adam Sobieski wrote:
> Hello. What do you think of this rough-draft sketch with respect to a 
> mapping from n-ary predicate calculus to TriG?

It looks reasonable to me, at least on casual inspection.  But I'm 
convinced that we need a new RDF syntax that *natively* supports n-ary 
predicates . . . and has several other features, including:

  - proper arrays (which are semantically very similar to n-ary 
predicates if you think of the index as the predicate)

  - "local" URIs/IRIs, which are like relative URIs/IRIs but are 
relative to a dataset rather than a document base, and are not turned 
into absolute URIs/IRIs during processing.  These could be used instead 
of explicit blank nodes when one does not wish to allocate a permanent 
URI/IRI.

  - no explicit blank nodes

  - easy URI/IRI importing or renaming, so that a vocabulary can use its 
own preferred names for things, but they are still mapped to global 
names.   For example, my:name and my:title might map to foaf:name and 
dc:title.

  - built-in rules language, as in N3.  I'm grateful that the N3 
Community Group is continuing to refine N3:
https://www.w3.org/community/n3-dev/

Sean Palmer also had some very interesting high-level ideas that I have 
not yet been able to mentally coalesce into a clear operative vision, 
but certainly deserve thought:
https://github.com/w3c/EasierRDF/issues/68

Thanks,
David Booth


> 
> 
>     @prefix calculus:
>     <http://www.w3.org/community/planning/calculus/ontology#> .
>     @prefix example:  <http://example.org/#> .
>     @prefix owl:      <http://www.w3.org/2002/07/owl#> .
>     @prefix rdf:      <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
>     @prefix xsd:      <http://www.w3.org/2001/XMLSchema#> .
> 
>     example:x  rdf:type    calculus:Variable ;
>              calculus:type  owl:Thing .
> 
>     example:y  rdf:type    calculus:Variable ;
>              calculus:type  owl:Thing .
> 
>     example:z  rdf:type    calculus:Variable ;
>              calculus:type  owl:Thing .
> 
>     example:p1  rdf:type      calculus:Predicate ;
>              calculus:accepts  ( owl:Thing owl:Thing owl:Thing ) ;
>              calculus:arity    "3"^^xsd:int .
> 
>     example:p2  rdf:type      calculus:Predicate ;
>              calculus:accepts  ( owl:Thing owl:Thing owl:Thing ) ;
>              calculus:arity    "3"^^xsd:int .
> 
>     example:g1  rdf:type  calculus:ConjunctiveExpressionSet .
> 
>     example:g2  rdf:type  calculus:ConjunctiveExpressionSet .
> 
>     example:g3  rdf:type  calculus:ConjunctiveExpressionSet .
> 
>     example:g1 {
>          example:p1  calculus:holdsFor  ( example:x example:y example:z ) .
>     }
> 
>     example:g2 {
>          example:p2  calculus:holdsFor  ( example:x example:y example:z ) .
>     }
> 
>     example:g3 {
>          example:g1  calculus:implies  example:g2 .
>          // or calculus:implies  calculus:holdsFor  ( example:g1
>     example:g2 ) . ?
>     }
> 
> 
> 
> 
> Best regards,
> Adam Sobieski
> 
> [1] https://www.w3.org/TR/swbp-n-aryRelations/ 
> <https://www.w3.org/TR/swbp-n-aryRelations/>

Received on Friday, 9 December 2022 12:50:19 UTC