Re: OWL and RDF lists

> On 16 Aug 2022, at 8:20 pm, David Booth <david@dbooth.org> wrote:
> 
> On 8/16/22 12:56, Holger Knublauch wrote:
>> A next generation of RDF(-star) can hopefully get rid of rdf:Lists through reification with an index property.
> 
> That sounds surprising, given the widespread dislike of reification.  Do you have a pointer to an explanation?

I mean RDF-star-type reification, which would allow values to be just normal triples, plus an index for the ordering.

ex:Parent
 ex:child ex:Child1 {| rdf:index 0 |} ;
 ex:child ex:Child2 {| rdf:index 1 |} ;
 ex:child ex:Child3 {| rdf:index 2 |}
...

would be the RDF-star annotation syntax, see

https://w3c.github.io/rdf-star/cg-spec/editors_draft.html#annotation-syntax <https://w3c.github.io/rdf-star/cg-spec/editors_draft.html#annotation-syntax>

While queries that don't care about the order can just be ex:Parent ex:child ?child.

We support something like that in TopBraid already, using a property called dash:index, e.g. when users run a GraphQL query.

Serializations like Turtle could provide a more user friendly syntax such as

ex:Parent
 ex:child [[ ex:Child1, ex:Child2, ex:Child3 ]] ...

or whatever. Every approach has some downsides though.

Holger
 

> 
> Incidentally, I personally think RDF should natively support lists, which David Wood and James Leigh proposed at the 2009 W3C RDF Next Steps workshop:
> https://www.w3.org/2009/12/rdf-ws/papers/ws14
> 
> David Booth
> 
>> Holger
>>> On 16 Aug 2022, at 6:45 pm, Enrico Daga <enricodaga@gmail.com <mailto:enricodaga@gmail.com>> wrote:
>>> 
>>> Hi all,
>>> 
>>> I just stumbled upon this thread. Last year I co-authored a paper that analysed the impact of alternative design patterns for lists on the efficiency of list-relevant operations in SPARQL. OWL was not a topic of the paper, although we also considered OWL-compliant solutions, in the analysis. One conclusion was that the rdf:List model was very inefficient for many of the operations, and managing indexing in properties or using container membership properties was generally preferable. I am aware this goes against the OWL requirements but drop the ball nevertheless, in case this is useful. The article is [1].
>>> 
>>> Best wishes
>>> 
>>> Enrico
>>> 
>>> 
>>> [1] Daga, Enrico, Albert Meroño-Peñuela, and Enrico Motta. "Sequential linked data: The state of affairs." /Semantic Web/ Preprint (2021): 1-36.
>>> --
>>> Enrico Daga
>>> http://about.me/enridaga <http://about.me/enridaga>
>>> 
>>> 
>>> On Mon, 15 Aug 2022 at 19:02, Balhoff, Jim <balhoff@renci.org <mailto:balhoff@renci.org>> wrote:
>>> 
>>>    I proposed a change to OWL API that would allow parsing certain
>>>    lists into Abox axioms: https://github.com/owlcs/owlapi/pull/1074
>>>    <https://github.com/owlcs/owlapi/pull/1074>
>>> 
>>>    This would only be active if the ontology is specifically using
>>>    the RDF list predicates as object properties. That change would be
>>>    helpful for loading the proposed FHIR data model into Protégé and
>>>    then being able to access items in lists (assuming that OWL API
>>>    version makes its way into Protégé).
>>> 
>>>    I think outside of Protégé/OWL API, dealing with list data might
>>>    not be as much of a problem, like if using an RDF rule engine to
>>>    make inferences.
>>> 
>>>>    On Aug 12, 2022, at 8:25 AM, Eric Prud'hommeaux <eric@w3.org
>>>>    <mailto:eric@w3.org>> wrote:
>>>> 
>>>>    Molstly protégé, and other OWL-capable tools like StarDog. I'd
>>>>    like to
>>>>    figure out for FHIR whether to use RDF lists, but I think it's
>>>>    important for the SemWeb as a whole to solve this. As it stands, it
>>>>    looks like one should never use RDF lists.
>>>> 
>>>>    Given that way more RDF data processing happens with SPARQL than with
>>>>    OWL, and SPARQL *can* access lists (albeit awkwardly), it sounds
>>>>    crazy
>>>>    to forgo using lists just because someone someday might want to
>>>>    do OWL
>>>>    inference over the entities in the list. Voilà the dilema.
>>>> 
>>>>    It would also be really nice to understand if there is a fundamental
>>>>    reason for this limitation in OWL. I beleieve that Jim's research
>>>>    shows that at least OWL-API can be updated to allow lists. If this is
>>>>    the case, and this can be replicated in other OWL implementations,
>>>>    then perhaps the answer is a period of civil disobedience where folks
>>>>    violate the spec, use tools that support that violation, and
>>>>    eventually update the OWL spec. This interim solution could be made
>>>>    official with an OWL 1.1. errata stating that rdf:first/rest *can* be
>>>>    used in axioms.
>>>> 
>>>> 
>>>>    On Thu, Aug 11, 2022 at 08:47:27PM +0000, Mark Wallace wrote:
>>>>>    Eric, are you looking for a solution that runs Within protege?
>>>>>    Within a triple store?
>>>>> 
>>>>>    ________________________________
>>>>>    From: Eric Prud'hommeaux <eric@w3.org <mailto:eric@w3.org>>
>>>>>    Sent: Thursday, August 11, 2022 8:26 AM
>>>>>    To: semantic-web@w3.org <mailto:semantic-web@w3.org>
>>>>>    <semantic-web@w3.org <mailto:semantic-web@w3.org>>
>>>>>    Cc: Jim Balhoff <balhoff@renci.org <mailto:balhoff@renci.org>>;
>>>>>    dbooth@dbooth.org <mailto:dbooth@dbooth.org> <dbooth@dbooth.org
>>>>>    <mailto:dbooth@dbooth.org>>
>>>>>    Subject: OWL and RDF lists
>>>>> 
>>>>>    RDF lists (technically "collections" ¹) have terse abbreviations in
>>>>>    Turtle/SPARQL and a "ladder" representation as triples.
>>>>> 
>>>>>    <https://en.wikipedia.org/wiki/Flag_of_France
>>>>>    <https://en.wikipedia.org/wiki/Flag_of_France>> :orderedColors _:1 .
>>>>>    _:1 rdf:first "blue" .
>>>>>    _:1 rdf:rest _:2 .
>>>>>    _:2 rdf:first "white" .
>>>>>    _:2 rdf:rest _:3 .
>>>>>    _:3 rdf:first "red" .
>>>>>    _:3 rdf:rest rdf:nil .
>>>>> 
>>>>>    The SPARQL 1.2 WG is wrestling with lists ², and JSON-LD 1.1 has
>>>>>    added
>>>>>    support for them ³. OWL however, specifically disables them by
>>>>>    prohibiting inferences across predicates in the rdf: namespace à la
>>>>>    Jim Balhoff's example ⁴;
>>>>>    [[
>>>>>    :contains rdf:type owl:ObjectProperty ;
>>>>>     owl:propertyChainAxiom ( rdf:rest :contains ) .
>>>>>    ]]
>>>>> 
>>>>>    FHIR is a set of models for clinical record. It has
>>>>>    representations in
>>>>>    XML, JSON and RDF. There's a playground ⁵ to explore alternatives
>>>>>    which illustrates alternatives, including whether to use
>>>>>    rdf:Collections (see button at top-right). With collections turned
>>>>>    off, we have to roll our own order (fhir:index 0, 1, 2...), which
>>>>>    kinda goes against RDF standards.
>>>>> 
>>>>>    I put together a gist which illustrates three observations we might
>>>>>    encounter in a patient's record. The codes for the first two
>>>>>    appear in
>>>>>    a SNOMED hieararchy you might query for evidence of bone density
>>>>>    loss
>>>>>    (clinical example, balancing corticosteroids against osteoporosis).
>>>>> 
>>>>>    https://fhircat.github.io/fhir-rdf-playground/?axes=rdvCh&manifestURL=https://gist.githubusercontent.com/ericprud/8e53eef196ccdc2c43f40238fdd06691/raw/224261f5055a3980acd79570fe5caeaf4a4b2d84/osteo-manifest.json
>>>>>    <https://fhircat.github.io/fhir-rdf-playground/?axes=rdvCh&manifestURL=https://gist.githubusercontent.com/ericprud/8e53eef196ccdc2c43f40238fdd06691/raw/224261f5055a3980acd79570fe5caeaf4a4b2d84/osteo-manifest.json>
>>>>> 
>>>>> 
>>>>>    Solbrig et al demonstrate how the SNOMED hierarchy can be used for
>>>>>    valuable clinical insights ⁶ *iff* we can work write OWL axioms
>>>>>    which
>>>>>    simultaneously access the SNOEMD hierarchy and the codes in the
>>>>>    paitent data. But as Jim demonstrated, that requires OWL axioms that
>>>>>    reference the forbidden rdf: namespace.
>>>>> 
>>>>>    Thoughts? Advice?
>>>>> 
>>>>> 
>>>>>    ¹ https://www.w3.org/TR/rdf-primer/#collections
>>>>>    <https://www.w3.org/TR/rdf-primer/#collections>
>>>>>    ² https://github.com/w3c/sparql-12/issues/46
>>>>>    <https://github.com/w3c/sparql-12/issues/46>
>>>>>    ³
>>>>>    https://www.w3.org/TR/json-ld11/#example-82-specifying-that-a-collection-is-ordered-in-the-context
>>>>>    <https://www.w3.org/TR/json-ld11/#example-82-specifying-that-a-collection-is-ordered-in-the-context>
>>>>>    ⁴
>>>>>    https://gist.github.com/balhoff/62fb8f2c1e29bc0d4d27c3df0d005154
>>>>>    <https://gist.github.com/balhoff/62fb8f2c1e29bc0d4d27c3df0d005154>
>>>>>    ⁵ https://fhircat.github.io/fhir-rdf-playground/
>>>>>    <https://fhircat.github.io/fhir-rdf-playground/>
>>>>>    ⁶ https://github.com/BD2KOnFHIR/BLENDINGFHIRandRDF
>>>>>    <https://github.com/BD2KOnFHIR/BLENDINGFHIRandRDF>
>>>>> 
>>> 
> 

Received on Tuesday, 16 August 2022 18:59:39 UTC