Re: defining the semantics of lists
thomas lörtsch <[email protected]> Mon, 15 Jun 2020 12:28:35 +0200
| Newsgroups | gmane.org.w3c.semantic-web |
|---|---|
| Message-ID | <[email protected]> |
> On 13. Jun 2020, at 18:36, Ji=C5=99=C3=AD Proch=C3=A1zka = <[email protected]> wrote: >=20 > Just adding a vocabulary for describing container size, without any = special semantic implications, is of course easy. There is the question = if this should be in the "rdf" namespace, which would make it a harder = task. People like myself would like RDF to be a minimalist unopinionated = foundation to build upon. It would seem like cluttering. I'd prefer if = collections etc. had their own vocabulary(ies), perhaps opinionated, = with semantics even. >=20 > The attitude towards change is understandable when you take in context = that the whole semantic web project is interesting to people from = different backgrounds, for different purposes. Hence the focus on a = minimalist foundation and opposition to evolving RDF into a kind of a = Frankenstein-swiss-army-knife (which you could say it already is, if you = are being strict enough). I wouldn=E2=80=99t be that strict. As a language aimed at end users who = we want to upgrade the data they publish on the web with some semantics = it is rather a little too terse. The misuse of owl:sameAs is an example = for a desire to connect and relate that hasn=E2=80=99t been met with an = appropriate vocabulary term. The problem wasn=E2=80=99t that the = semantics of owl:sameAs were not crisp enough but that there wasn=E2=80=99= t anything better in reach for the over-eager young semanticist (yes, = I=E2=80=99m talking about myself too).=20 For a good design it=E2=80=99s not enough to be correct, it also has to = be reasonably complete and rounded and meet the need of users. That=E2=80=99= s why in the case of the "limit" attribute I do indeed think that it = should be part of core RDF. The other candidate would be something like = owl:sameAs, but without formal semantics (and more same-ness mojo than = rdf:seeAlso). That=E2=80=99s a bit paving the cow paths I guess. > Backwards compatibility is important for the reason that breaking = change makes upgrading the same (or close to) as replacing it with = something different.=20 > I agree on many points regarding RDF issues (named graphs etc.) but = for me these are also underlying issues to my main issue, that I don't = see much movement in direction towards a modular machine-first system, = built on a common minimalist foundation, with an ecosystem of easily = integrated components to support the desired use cases. What we have is = a sprawl of mostly academic projects which are often very difficult to = integrate. One might partition the vocabulary into - core (most of RDF) (which I guess is the common minimalist foundation = that you refer to),=20 - the informal, user oriented parts (lists, also better support for = n-ary relations) - (maybe also templates for some ubiqituous data types like adresses, = events etc) - basic reasoning (domain, range, subclassing, subproperties, typing),=20= - more reasoning (RDF reasoning about itself, some less intimidating = parts of OWL),=20 - and the big gap: sound meta modelling - and the other big gap: closing and constraining the world locally That=E2=80=99s probably all still doable in an RDF 2. Some owl:sameAs = statements to ensure backward compatability ;-) Applications could then = be refactored acccordingly. Is that what you have in mind? (Probably = not, I=E2=80=99m a bit guessing here). > We are lacking some common foundations and established ways how to = build on them. For example we don't have established answers to these = questions: >=20 > When exactly is it right to build semantic extensions? > When to build a vocabulary/ontology? > How should the semantics extensions be built in order to be as = interoperable as possible? We don=E2=80=99t really have much discussion about the concept of = semantic extensions at all, in any way. The OWA is both an undispensable = and necessary base but also an unrealistic idealistic scenario in = practice. Semantic extensions should bridge the gap between teh OWA and = closed world applications but the notion is not really filled. OWL DL as = a semantic extension is even more embarrasing than the already hard to = swallow OWA. Apart from that application developers do their thing and = close the world around them implicitly. So this definitely needs to be tackled. The question is not so much = "what is the best way" but rather "what could be a shared way", how can = we bridge and negotiate between different realms of openness etc.=20 Probably Named Graph semantics in RDF need to be fixed first. Then we = can use that as a base to express semantic extensions, reasoning regimes = etc. Then we can make our applications deal with them appropriately. Cheers, Thomas > Best,=20 > Jiri >=20 >=20 >> On June 11, 2020 12:02:07 AM GMT+02:00, "thomas l=C3=B6rtsch" = <[email protected]> wrote: >>=20 >>=20 >>> On 10. Jun 2020, at 22:30, Ji=C5=99=C3=AD Proch=C3=A1zka = <[email protected]> wrote: >>>=20 >>> Right, as has been pointed out by many, changing or extending RDF >>> semantics would be extremely difficult task, but it isn't necessary. >>>=20 >> There=E2=80=99s two things: >>=20 >> 1) Adding a property to the Container vocabulary as _describing_ the = size of a container wouldn=E2=80=99t change the semantics of RDF. We = discussed at length in this thread what can and can=E2=80=99t be = achieved when changing the fundamentals of RDF is not an option - and I = sure think it isn=E2=80=99t. >>=20 >> 2) The attitude towards change in this community is difficult to say = the least. When Dan Brickley posted his very interesting history lessons = a few moths ago I realized that reification had been considered for = deprecation around 2000 already. OMG. On the one hand we are trying to = build something of unprecedented size and reach, on the other hand we = can=E2=80=99t make the slightest backwards incompatible change from day = 1 on? This attitude is insane and it only leads to the standard getting = stale and eventually being replaced by soemthing new altogether - but at = a much hingher cost to everybody involved than some breaking changes = would occurr. >> I was a the RDF Next Steps Workshop in Stanford 2010 (it was open to = everbody and I couldn=E2=80=99t resist) and I remember well the vivid = argument that we would risk uptake and adoption that was just about to = start if we changed anything more than the most pressing technicalities. = Last year at the Berlin Workshop I heard that now it=E2=80=99s too late = for profound change as the installed base is already to big, that ship = has sailed. So I must have missed the historic millisecond, around 2016 = and a half presumably, when the stars had aligned, once and for all? = What a choke, what a farce. Occassionally dark forecasts are made that = all Semantic Web companies will go bancrupt if we introduce more than = the most pressing changes. In the meantime a new industry of now about = the same size than ours grew up - Property Graphs - on the only grounds = that they have better usability and meta modelling. So who will gp = bancrupt soon and why exactly? And a handful of companies support RDF* = already - probably because they don=E2=80=99t want to get bancrupt, not = because change is so impossibly hard and shouldn=E2=80=99t even be = attempted. >>=20 >>> Easier would be to make your own RDF collection/container vocabulary >>=20 >> So, I=E2=80=99d say change is good and is indeed pretty necessary. If = nobody cares and just dabbles on heir own vocabulary instead of trying = to fix the mothership RDF there won=E2=80=99t be much reason to fix it = soon enough. It would be easier for sure but not very sustainable. >> The situation with lists is a classic SNAFU. But lists are the = easiest part. Identifcation is broken and no one even cares anymore. = "Just use AI to disambiguate" I hear. Reification is a mess (and RDF* in = its current state might make it better, or worse) and Named Graphs have = no semantics, so there is no sound meta modelling in RDF. OTOH everybody = who doesn=E2=80=99t work on well contained single topic applications = will acknowledge that the Semantic Web needs an agreed upon facility to = model context and refication. That requires change, and it requires a = vision about how everything can fit together. And it is about time. >>=20 >>> and >>> a validation language for it. The language would have its own = semantics, >>> possibly backed by some formal logic. The language syntax could be = RDF. >>> In many ways Shapes Constraint Language (SHACL)[1] could be an >>> inspiration (also has RDF as syntax), could be used by your = language, or >>> your language could be a SHACL extension. Overall, what you are = going >>> for sounds like a generalization of an application of SHACL. >>=20 >> A property to desribe the intended size of a Container would belong = to RDF. Constraints to enforce such a limit locally in apllications = would belong to Shacl, Shex etc. But I=E2=80=99m currently trying to = figure out if lists as proper datatypes aren=E2=80=99t a better way = forward. >>=20 >>>> But how could we enforce such constraint descriptions not just in >>>> applications but within the OWA realms of RDF? >>>>=20 >>> Do you mean make entire RDF graphs invalid just because it doesn't = fit >>> some constrains for a particular purpose? Why would that be = desirable? >>> Even if a graph says something which is invalid for some purpose, it >>> could be valid for another purpose - a simple example being RDF >>> visualization. >>=20 >> Closing the world for some application shouldn=E2=80=99t inflict the = Open World around it. A dataset might have to undergo certain procedures = and scrutiny before I feed it into my application. Some applications = certainly demand such restrictivity. That doesn=E2=80=99t say anything = about the uses and usefulness of that dataset outside of such a specific = application. >>=20 >> As a side note, if you decide to go down the rabbit hole, you might = want >> to consider handling collections restricted to members of a = particular >> class/datatype or their subclasses. >>=20 >> A Series container with an explicit extension hook might be a nice = idea: immutability was just one example. But it could also be overkill. >>=20 >>=20 >> Best, >> Thomas >>=20 >>=20 >>> Cheers, >>> Jiri >>>=20 >>> [1] https://www.w3.org/TR/shacl/ >>>=20 >>> On 6/8/20 12:19 PM, thomas l=C3=B6rtsch wrote: >>>> On 4. Jun 2020, at 01:40, Ji=C5=99=C3=AD Proch=C3=A1zka = <[email protected]> wrote: >>>>=20 >>>> This has been an interesting thread to follow, but from the start = I've >>>> felt a clearly stated use case is missing. This would clear up many >>>> things, possibly pointing to a solution which doesn't require = changes to >>>> RDF(S) semantics at all. >>>>=20 >>>> I remember someone (Pat?) rightly saying that RDF was not a data >>>> structure language, but a KR (or something like that). >>>> So simply wanting the sort of things that programming languages = have >>>> as data structures is not necessarily a useful thing to spend time = on. >>>>=20 >>>> I much prefer predicates to be specific to the range and domain = that >>>> they are working over. >>>>=20 >>>> Agreed, personally I think the rdf:List, RDF containers = vocabularies >>>> should be used mainly as base classes/properties to be subclassed = in >>>> domain specific schema or perhaps not at all. >>>>=20 >>>> That said, one might be describing things like APIs in RDF. In such >>>> cases one might describe some examples of input, having to be = careful to >>>> not define them with an unintended structure (for example a = branching or >>>> looping list). If this was the use case, RDF authoring tools could >>>> feature warnings for irregular structures. >>>>=20 >>>> An interesting use case is describing APIs accepting RDF data as = input. >>>> Ideally it should be using a domain specific schema, but I can see = it >>>> often having constructs similar to rdf:List or RDF containers. The = APIs >>>> descriptions should also definite how unexpected inputs are = treated. >>>> This could be standardized, separately to RDF specifications. >>>>=20 >>>> These are the use cases which I thought of, I would like to know of >>>> others. I don't think a change of RDF semantics would be needed for = these. >>>=20 >>> Right, no need to change the RDF semantics. It's two things however: >>> A what RDF can describe >>> B how descriptions can be enforced as constraints >>>=20 >>> A >>> Lists in RDF can be described as >>> - closed (rdf:List) >>> - ordered (rdf:list, rdf:Seq, rdf:Bag, rdf:Alt) >>> - without duplicates (rdf:Alt) >>> - with preferred member (rdf:Alt) >>> This is a bit messy and not all combinations are available. Adding a = 'last' attribute to Containers might ameliorate the situation. The = rdf:Series class that I proposed mainly as an example to facilitate = discussion could be extended to address all those properties and maybe = more: >>>=20 >>> // A new subclass of Container that very explicitly = describes >>> // size, preferred alternative, ordering and duplicates. >>> // Ordering and duplicates default to TRUE. >>> // If no attributes are set Series corresponds to Seq. >>> // This container type has the combined semantic = expressivity >>> // of Seq, Bag and Alt plus the capability to describe = its size. >>> // The immutable property is a hint that such a newly = defined >>> // construct could indeed be used to describe a few more = things. >>>=20 >>> Series subClassOf Container >>> last domain Series >>> range ContainerMembeshipProperty >>> pref domain Series >>> range ContainerMembeshipProperty >>> order domain Series >>> range Boolean >>> dupes domain Series >>> range Boolean >>> immutable domain Series // why not reach for the stars... >>> range Boolean >>>=20 >>> B >>> Translating those descriptions to constraints can be tricky as = Peters questions proved but it certainly can be done in one way or the = other. APIs described in RDF, OWL DL formalizations, rules, Shexl = constraints are all viable options. But how could we enforce such = constraint descriptions not just in applications but within the OWA = realms of RDF? That requires closing the world around the description. = Named Graphs come to mind. So basically: >>> - define a way to guarantee sound naming semantics for Named Graphs, >>> - define a way to attribute graphs with semantic extensions, >>> - define such extensions (like e.g. an app friendly local = CWA/NAF/UNA walled garden) >>> - teach RDF consuming applications to process data according to the = rules of such extensions locally, within those graphs >>> and be done with it? >>>=20 >>> Thomas [Lots of previous messages snipped.]=