- From: Antoine Zimmermann <antoine.zimmermann@deri.org>
- Date: Tue, 12 Oct 2010 08:11:07 +0200
- To: nathan@webr3.org
- CC: Semantic Web <semantic-web@w3.org>
Le 12/10/2010 03:04, Nathan a écrit : > Hi, > > One or ten questions here.. > > Are two instances of rdf:List the same rdf:List if they have the same > rdf:first and rdf:rest values? No, not according to the formal semantics. An application could be implemented such that it consider them the same, for practical purposes, but this would not follow the specifications. > Clarifications asked > - Lists can be recursive - yes/no? Nothing prevent them to be in the spec but again, one can think of applications that make restriction on this. > - Lists can fork, in that two (or more) list chains can intersect and > share the same tail - yes/no? It can fork, intersect and even be infinite. The formal model of a rdf:List is such that it describes a directed graph, where rdf:rest denotes the edges and rdf:first maps the nodes to their labels (label in a general sense, it can be a URI or a bnode). > - Lists can use both bnodes or URIs - yes/no? Sure. > Why are both rdf:List and rdf:Seq defined, does Seq offer something that > List does not (I can see things List offers that Seq doesn't but not the > other way around)? Are the two interchangeable? To make an analogy with programming languages, rdf:List is liked a linked list and rdf:Seq is like an array. Members of a rdf:Seq are easier to get: if you support RDFS reasoning, you can get the members with the predicate rdfs:member. SELECT ?m WHERE { ?seq rdfs:member ?m . } > rdf:Alt, does anybody use this? (I'm struggling to see why it's defined > in rdf to be honest) I don't know but the only times I saw it used was in the RDF specs and RDF tutorials. I'm sure there are a few marginal data publishers that use it. > Do we actually need unordered and ordered lists in rdf? (something > niggles that we only need say List and consideration of whether to treat > it like an ordered or unordered list happens when processing, based on > context) I a list is unordered, how can one know what is the first element? It seems that what you suggest is rather "make everything ordered then ignore the order if you don't need it". In principle, this would be possible using rdf:Seq because you can order the element explicitly (using rdf:_1, rdf:_2, etc) or ignore the order with the generic rdfs:member. However, due to the Open World Assumption, you can never be sure that all elements of a rdf:Seq, e.g., ex:s a rdf:Seq ; rdf:_3 ex:firstElement ; rdf:_17 ex:seventeenthElement ; rdf:_42 ex:fourtysecondElement . is a valid sequence in RDF and it does not say that 42 is the last element. With rdf:List, assuming it's used "normally" (no fork, no loop, etc) you can close the list with rdf:nil. > Are any of Bag, Seq, Collection, Alt likely to be deprecated in the > future? are they used anywhere important (I think I saw mention of OWL > using them?) rdf:List won't be deprecated for sure. They are used a lot. I don't know about the others but there are prominent Sem Web figures that are supporting deprecation. > Any pointers to discussion or any important notes that I may be missing > most welcome, There have been many discussions on this mailing list, the lod mailing list and several others about Collections and Containers. I don't know where to start. > > Best, > > Nathan > Regards, -- Antoine Zimmermann INSA Lyon, LIRIS UMR 5205 Database Group 7 Avenue Jean Capelle 69621 Villeurbanne Cedex France antoine.zimmermann@insa-lyon.fr http://zimmer.aprilfoolsreview.com/
Received on Tuesday, 12 October 2010 06:11:58 UTC