- From: David Booth <david@dbooth.org>
- Date: Fri, 9 Dec 2022 07:50:05 -0500
- To: semantic-web@w3.org
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