Hi there 

I seem to have managed Option A in my previous mail by having:

        model2.write(new FileOutputStream(file), "RDF/XML");

as follows: 

        RDFWriter w = model2.getWriter("RDF/XML");
        w.setProperty("allowBadURIs","true");
        w.write(model2,new FileOutputStream(file), "RDF/XML");


Jos

-----Ursprüngliche Nachricht-----
Von: Jos Lehmann <jos.lehm...@bauhaus-luftfahrt.net> 
Gesendet: Mittwoch, 9. Januar 2019 11:14
An: users@jena.apache.org
Betreff: AW: List inherited properties

Hi Lorenz

Thanks for the tip. 

Option A: OWL_DL_MEM_TRANS_INF

In theory using OWL_DL_MEM_TRANS_INF rather than OWL_DL_MEM works -- I've 
managed to print to the console the inherited properties. 
In practice though, when writing the resulting model to a file, I get a 
BadURIException*. 
That's a bit puzzling because the version of the code that uses OWL_DL_MEM 
filter out vectors and does not have this problem (perhaps my code on the 
inferred version does not filter enough of these vectors). I wanted to explore 
this option further to see where these crop up, and have tried : 

1- with a catch, but the resulting file is empty (0KB);

2- to allow BadURIs, as per ***, but I am not sure how to set the option for 
the default jena writer -- so that the following line of code would work:  
     model2.write(new FileOutputStream(file), "RDF/XML");


Option B: OWL_DL_MEM_RDFS_INF

I have also tried OWL_DL_MEM_RDFS_INF but I get a 
ConcurrentModificationException for a part of the code** that copies the 
ontology header. 
When running the code without this part, I get an out of memory error**** even 
after setting the hip to 4096M.



I'm afraid I have once more not given enough nor relevant info -- but any 
suggestions (in particular on on how to do 2- above) is welcome.

Cheers, Jos


*
Exception in thread "main" org.apache.jena.shared.BadURIException: Only 
well-formed absolute URIrefs can be included in RDF/XML output: 
<4507792:16831e08128:-78f2> Code: 10/SCHEME_MUST_START_WITH_LETTER in SCHEME: 
The scheme component must start with a letter.

**
        /*HEADER*/
        
        while (ontologyProperties.hasNext()) {
                
                Statement thisProperty = ontologyProperties.next();
                System.out.println("Item: " + thisProperty);
                ont2.addProperty(thisProperty.getPredicate(), 
thisProperty.getObject());
                        
        }

***
https://jena.apache.org/documentation/io/rdfxml_howto.html

****
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit 
exceeded





-----Ursprüngliche Nachricht-----
Von: Lorenz B. <buehm...@informatik.uni-leipzig.de>
Gesendet: Dienstag, 8. Januar 2019 08:28
An: users@jena.apache.org
Betreff: Re: List inherited properties

Good Morning.

Next time it would be better to show the Java code instead of the pseudo code 
to better see which models you're using and which method exactly you're calling 
to get the properties.

Therefore, I'm just making guesses now (if those are wrong, any help from my 
side might/will probably be wrong):

- you have an OntClass
- you call listDeclaredProperties()

So, let's have a look and read the Javadoc of this method carefully:

> Note that many cases of determining whether a property is associated 
> with a class depends on RDFS or OWL reasoning. This method may 
> therefore return complete results only in models that have an attached 
> reasoner.

As stated here, do you use an inference model? With at least RDFS simple as 
level of entailment? Otherwise, it can't work - reasoning is clearly necessary 
here and this isn't enabled of you just use a default model.

And as usual, the documentation [1] is pretty good.

[1] https://jena.apache.org/documentation/inference/

> A beginner's problem:
>
> WHAT I'M DOING
> 1- I am importing ontology/model O1 and ontology/model O2 into 
> ontology/model O3
> 2- In O3 I make class C1 (from O1) a subclass of class C2 (from O2)
> 3- When querying ontology/model O3 for C1.listProperties() I would 
> expect to be provided with C1's as well as C2's properties -- but I am 
> not
>
>
> QUESTION
> How do I list all of C1's properties, both its own (from O1) as well those it 
> inherits from its superclasses (including C2) ?
>
>
> Cheers, Jos
>
>
--
Lorenz Bühmann
AKSW group, University of Leipzig
Group: http://aksw.org - semantic web research center

Reply via email to