Re: Replacing FileManager with Dataset

2022-01-23 Thread Andy Seaborne

FileManager does two things - finding data and caching data.

FileManager only exists for code in jena-core: Ont API with some 
internal only operations for the rules engine. There is FileManagerImpl 
to make jena-core run its own tests - running jena-core on its own is 
not a good idea for an application.


RIOT does not use it. For the "finding" part there is StreamManager 
which has no caching.


FileManagerImpl is replaced by AdapterFileManager by RIOT initialization 
for backwards compatibility.


Only Ont API caches.

In the general case, built-in caching does not work - caching is 
complicated and one policy does not fit all.


The FileManager interface could expose the map (better, as a map-level 
copy - immutable isn't enough - the cache may drop a model) so the app 
can use DatasetFactory.createGeneral.


Note that Dataset isn't in jena-core.

Andy

On 22/01/2022 20:18, Martynas Jusevičius wrote:

I meant  map in FileManager...

On Sat, Jan 22, 2022 at 9:14 PM Martynas Jusevičius
 wrote:


Hi,

We are using FileManager as part of the Ontology API. We noticed it's
Model cache related methods are marked deprecated:
https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/util/FileManager.html

I don't see how OntDocumentManager can work without some sort of model
cache. But I think that FileManager (or at least the caching part)
could be replaced with a Dataset implementation.  cache
map in FileManager is essentially the same as the named graphs in the
Dataset.

One immediate advantage would be that all OntDocumentManager
ontologies would be accessible using SPARQL. We have a use case to
make the queryable which lead to this idea.

I've made a PoC implementation. It uses DataManager as a subclass of
FileManager with getModelCache() exposed as an immutable map, because
FileManager itself provides no way to list the entries in the cache
map.
https://github.com/AtomGraph/LinkedDataHub/blob/develop/src/main/java/com/atomgraph/linkeddatahub/server/util/DataManagerDataset.java

Thoughts?

Martynas


Re: Replacing FileManager with Dataset

2022-01-22 Thread Martynas Jusevičius
I meant  map in FileManager...

On Sat, Jan 22, 2022 at 9:14 PM Martynas Jusevičius
 wrote:
>
> Hi,
>
> We are using FileManager as part of the Ontology API. We noticed it's
> Model cache related methods are marked deprecated:
> https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/util/FileManager.html
>
> I don't see how OntDocumentManager can work without some sort of model
> cache. But I think that FileManager (or at least the caching part)
> could be replaced with a Dataset implementation.  cache
> map in FileManager is essentially the same as the named graphs in the
> Dataset.
>
> One immediate advantage would be that all OntDocumentManager
> ontologies would be accessible using SPARQL. We have a use case to
> make the queryable which lead to this idea.
>
> I've made a PoC implementation. It uses DataManager as a subclass of
> FileManager with getModelCache() exposed as an immutable map, because
> FileManager itself provides no way to list the entries in the cache
> map.
> https://github.com/AtomGraph/LinkedDataHub/blob/develop/src/main/java/com/atomgraph/linkeddatahub/server/util/DataManagerDataset.java
>
> Thoughts?
>
> Martynas


Replacing FileManager with Dataset

2022-01-22 Thread Martynas Jusevičius
Hi,

We are using FileManager as part of the Ontology API. We noticed it's
Model cache related methods are marked deprecated:
https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/util/FileManager.html

I don't see how OntDocumentManager can work without some sort of model
cache. But I think that FileManager (or at least the caching part)
could be replaced with a Dataset implementation.  cache
map in FileManager is essentially the same as the named graphs in the
Dataset.

One immediate advantage would be that all OntDocumentManager
ontologies would be accessible using SPARQL. We have a use case to
make the queryable which lead to this idea.

I've made a PoC implementation. It uses DataManager as a subclass of
FileManager with getModelCache() exposed as an immutable map, because
FileManager itself provides no way to list the entries in the cache
map.
https://github.com/AtomGraph/LinkedDataHub/blob/develop/src/main/java/com/atomgraph/linkeddatahub/server/util/DataManagerDataset.java

Thoughts?

Martynas