- From: Jerven Tjalling Bolleman <Jerven.Bolleman@sib.swiss>
- Date: Fri, 19 Apr 2024 08:31:53 +0000
- To: RDF-star WG <public-rdf-star-wg@w3.org>
- Message-ID: <GV0P278MB05142A1B82BA4C48CB7DE9DAE50D2@GV0P278MB0514.CHEP278.PROD.OUTLOOK.COM>
Dear WG, Please take the following inconsideration. I have followed the conversations around different options as well as I could but I do know I have missed a lot, so my apologies in advance if this would be a step back or a step in the wrong direction. I do know that my opinion on referential opacity is not shared so I will quickly say why I think we should not change from how RDF already acts. I do not believe that a data producer should limit what a data consumer can do with the data with syntactic constructs. It is for the data consumer to determine if "042"^^xsd:int is the same as "42"^^xsd:int and not the producer, this goes for datatype entailments as much as owl:sameAs and other similar technologies. This is different from a constraining shorthand for triple terms etc. Regards, Jerven Reintroducing triple terms A triple term is a content derived identifier for an RDF triple. This identifier identifies an rdfs:Class containing the set of all triple occurrences with a certain subject, predicate and object. << ex:subject ex:predicate ex:object >> There may be named rdfs:Class instances that are rdfs:subClassOf such an rdfs:Class representing all these Triples occurrences, these may be used to group and or denote subsets of all occurrences of a certain triple. This is denoted by the syntax << ex:tripleSubClass1 | ex:subject ex:predicate ex:object >> . And << ex:tripleSubClass2 | ex:subject ex:predicate ex:object >> . Which is equivalent to the following two triples . ex:tripleSubClass1 rdfs:subClassOf << ex:subject ex:predicate ex:object >> . ex:tripleSubClass2 rdfs:subClassOf << ex:subject ex:predicate ex:object >> . Such a name might be an IRI or a BlankNode. << ex:subject ex:predicate ex:object >> Does not assert that a triple with subject ex:subject, predicate ex:predicate and object ex:object exists or is stated anywhere. Deriving an identifier for a triple by its contents Base case there are no blank nodes in the triple. Create an IRI in the domain triple: with the safe Base64 URL encoded n-triple form of the triple. Blank nodes are conversational skolemized: A conversational skolemization is given an identifier that is valid only within a single document or network session. Example Jerven rode a roller coaster, and this was absolutely fine and safe. After the first ride Jervens mood changed from scared to enjoying, but at ride 22 Jerven turned nauseous. :jerven :rode :roller-coaster . All rides where safe << :jerven :rode :roller-coaster >> a :safe-ride . First ride jerven is scared << :ride1 | :jerven :rode :roller-coaster >> :mood :scared . Second ride is enjoyable << :ride2 | :jerven :rode :roller-coaster >> :mood :enjoying . At ride 22 Jerven is a bit ill. << :ride22 | :jerven :rode :roller-coaster >> :mood :nausea . Inferred statements from class membership for all triples within rdfs. << :ride1 | :jerven :rode :roller-coaster >> a :safe-ride . << :ride2 | :jerven :rode :roller-coaster >> a :safe-ride . << :ride22 | :jerven :rode :roller-coaster >> a :safe-ride . OWL or other sameAs consequences Adding an owl:sameAs statement orcid:0000-0002-7449-1266 owl:sameAs :jerven . Inferred statements orcid:0000-0002-7449-1266 :rode :roller-coaster . << orcid:0000-0002-7449-1266 :rode :roller-coaster >> a :safe-ride . << :ride1 | orcid:0000-0002-7449-1266 :rode :roller-coaster >> :mood :scared . << :ride2 | orcid:0000-0002-7449-1266 :rode :roller-coaster >> :mood :enjoying . << :ride22 | orcid:0000-0002-7449-1266 :rode :roller-coaster >> :mood :nausea . Inferred statements from class membership << orcid:0000-0002-7449-1266 | :jerven :rode :roller-coaster >> a :safe-ride . << orcid:0000-0002-7449-1266 | :jerven :rode :roller-coaster >> a :safe-ride . << orcid:0000-0002-7449-1266 | :jerven :rode :roller-coaster >> a :safe-ride . The rules of owl:sameAs between IRIs imply that derived IRs for the triples also observe the consequences of such an owl:sameAs statement. E.g. << orcid:0000-0002-7449-1266 :rode :roller-coaster >> owl:sameAs << :jerven :rode :roller-coaster >> . Grouping identified triples As statements are just identifiable things we can use any vocabulary to group them together. As anyone can say anything about anything. Taking the example above. :ride1 :partOf :a-nice-day-out-for-jerven . :ride2 :partOf :a-nice-day-out-for-jerven . :ride3 :partOf :a-nice-day-out-for-jerven . Remember the syntax << :ride3 | :jerven :rode :roller-coaster >> is not obligatory to refer to :ride3 it is only a shortcut for stating that :ride3 is a rdfs:subClassOf << :jerven :rode :roller-coaster >> Referential opacity Is determined by the system answering queries and not the syntax. A system taking into account full owl reasoning may reply differently to a query than a system that has no owl inference capabilities. This might be true for any entailment regime chosen and the syntax above does not limit the capabilities of any entailment system. [SIB logo] Jerven Tjalling Bolleman Principal Software Developer SIB | Swiss Institute of Bioinformatics 1, rue Michel Servet - CH 1211 Geneva 4 - Switzerland t +41 22 379 58 85 Jerven.Bolleman@sib.swiss - www.sib.swiss
Received on Friday, 19 April 2024 08:32:01 UTC