apache / apache/jena

When using the builtin "general" AssemblerGroup, do we need to create a custom FileManger assembler?

Open
#3,152 3 comments 0 reactions 0 assignees View on GitHub
OntAPI question
Dominant language
Java
Stars
1.4k
Forks
712
Avg merge
15h 41m
Merged PRs (30d)
53

Description

### Version

5.3.0

### Question

I'm currently trying to create a group of nested models with the Assembler, and am using a document manager to manage multiple ontologies for an OntModel. I'm running into the issue where the assembler group is looking for an assembler for the DocumentManager ja:fileManager object, but that doesn't exist on the general assembler group.

Looking through the code, I want to think it would use the DocumentManagerAssembler's "getFileManager" method to assemble the FileManager, but it's looking for a root assembler on the group itself.

Assembly.ttl
```
@prefix ja: .
@prefix lm: .
@prefix ja: .
@prefix rdfs: .

a ja:UnionModel ;
ja:subModel .

a ja:UnionModel ;
ja:subModel .

a ja:OntModel ;
ja:ontModelSpec .

a ja:DocumentManager ;
ja:fileManager [ ja:locationMapper ] .

lm:mapping [ lm:altName "file:/path/to/v1.vocab.ttl" ] ;
lm:name "file:v1.vocab.ttl" .

a ja:OntModelSpec ;
ja:documentManager .

a ja:OntModel ;
ja:ontModelSpec .

a ja:DocumentManager ;
ja:fileManager [ ja:locationMapper ] .

lm:mapping [ lm:altName "file:/path/to/v2.vocab.ttl" ] ;
lm:name "file:v2.vocab.ttl" .

a ja:OntModelSpec ;
ja:documentManager .

a ja:UnionModel ;
ja:subModel ,
.
```

[DocumentManagerAssembler#getFileManager](https://github.com/apache/jena/blob/jena-5.3.0/jena-core/src/main/java/org/apache/jena/assembler/assemblers/DocumentManagerAssembler.java#L45)

Contributor guide

Open the contributing guide

Research direction

Start with DocumentManagerAssembler.java, especially getFileManager, and trace how the builtin general AssemblerGroup resolves the inline ja:fileManager in Assembly.ttl. Reproduce the nested OntModel and DocumentManager setup from the issue, then determine whether the general group can assemble it without a custom FileManager assembler. Done means the expected nested models and document managers assemble successfully, or the required limitation is clearly documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.