Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [lyo-dev] Fwd: Can RDF star support be deactivated?

What I think would have to be included in 'full support' in this context is fundamentally what would be needed to "make sure our code does not break when users write RDF* code":
  • Allow RDF* in RDF submitted/created/modified by Lyo clients
  • Allow RDF* in RDF returned from a server or coming from an end user
  • The above imply that all Lyo code manipulating RDF models would have to be save in the presence of RDF*, so code of the form identified by Holger would have to be found and fixed, to allow for the case where a Jena 'Resource' object was in fact a triple node
  • While Lyo code itself would probably not have to create triple nodes, all parsing of RDF that might contain RDF* (see above)would have to be done through Jena 3.15 or above and not through any legacy parsers (this might not apply if RDF parsing was all centralized)
  • Any code handling SPARQL queries would have to allow for triple nodes in the results, so handling and display of those results might need to be changed. This applies even if the query itself does not use RDF* - for example, a simple pattern { ?subject <somePredicate> ?object } could return triple nodes for either ?subject or ?object or both. Interestingly, triple nodes do not appear to be permitted for predicates.

Nick.



From:        Andrii Berezovskyi <andriib@xxxxxx>
To:        Lyo project developer discussions <lyo-dev@xxxxxxxxxxx>, Nicholas Crossley <nick_crossley@xxxxxxxxxx>
Date:        09/02/2020 03:43 AM
Subject:        [EXTERNAL] Re: [lyo-dev] Fwd: Can RDF star support be deactivated?




Thank you, Nick,

I think the best course of action now would be to go for 3.14 in Lyo 4.x (your option 3) and go for option 1 (I am still not sure if this needs to be done "fully" or we can just make sure our code does not break when users write RDF* code themselves, preferring the latter option) in Lyo 5.x.

--
Andrew

On W36 1 September 2020 at 17:51:38, Nicholas Crossley (nick_crossley@xxxxxxxxxx) wrote:
Andrew,

As you probably saw in the response in the Jena mailing list, Andy Seaborne responded indicating that there is no option to deactivate support for RDF*, and that the recommendation was to filtering incoming RDF to reject attempted use of triple nodes.


Since a Lyo user could provide triple nodes as RDF input, it seems that Lyo (and IBM's implementation of OSLC) really have only three alternatives:
  1. When updating to Jena 3.15 or later, upgrade all code to support RDF* completely
  2. When updating to Jena 3.15 or later, implement Andy's suggestion of filters on all possible external sources of RDF to reject triple nodes
    (for example, all OSLC POST and PUT APIs for all ELM tools, reading TRS feeds from third-party tools, etc.)
  3. Never upgrade to or support Jena 3.15 or later

From initial discussion, approach 3 is in favor here! We would need to go with option 2 if there turned out to be some other compelling business reason to upgrade.


Nick.




From:        
Andrii Berezovskyi <andriib@xxxxxx>
To:        
"lyo-dev@xxxxxxxxxxx" <lyo-dev@xxxxxxxxxxx>
Date:        
08/28/2020 01:35 AM
Subject:        
[EXTERNAL] [lyo-dev] Fwd: Can RDF star support be deactivated?
Sent by:        
lyo-dev-bounces@xxxxxxxxxxx




Note to self to check this thoroughly.


--
Andrew
On 28 August 2020 at 02:52:36, Holger Knublauch (
holger@xxxxxxxxxxxxxxx) wrote:
It's good to see the recently introduced RDF* features in Jena. But as
someone with a lot of existing Jena code, this low-level change poses a
number of challenges. For example we have many of places with variations of

if(rdfNode.isResource()) { if(rdfNode.isURIResource()) { } else { //
Here we now assume it's a blank node, yet this is no longer true // and
they node may also be a triple node } } else { // Must be a literal -
this hasn't changed }

which now need to be changed to handle rdfNode.isStmtResource() too. And
it should of course do so in a meaningful way.

I guess properly adjusting our code base will take many months, and it
will require a lot of testing and iterating.

In the meantime, is there a flag that we can set to deactivate RDF*
support in the parsers and SPARQL*? The page

https://jena.apache.org/documentation/rdfstar/only states "it is active
by default in Fuseki" but doesn't show an API to do the same
programmatically.

Could you also give some background on the implications on TDB? I guess
if such new nodes end up in a database, then this database can no longer
work with older Jena versions?

Thanks
Holger

_______________________________________________
lyo-dev mailing list
lyo-dev@xxxxxxxxxxx
To unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/lyo-dev



_______________________________________________
lyo-dev mailing list
lyo-dev@xxxxxxxxxxx
To unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/lyo-dev



Back to the top