Jos, this reminds me of a similar issue I had:
https://www.mail-archive.com/[email protected]/msg06279.html

Ideally you should have explicit rdfs:isDefinedBy statements for each term,
linking them to their defining ontology.

On Tue, Feb 27, 2018 at 7:59 PM, Jos Lehmann <
[email protected]> wrote:

> Hi Lorenz
>
> If you could be more specific it would help.
>
> The restrictions I am working with don't seem to have a URI, so I can't
> tell if, in the input ontologies, they belong to the imported ontology or
> to the importing ontology. I.e.:
>
> WHEN DOING:
>
> ExtendedIterator properties = thisClass.listProperties();
>                           while (properties.hasNext()) {
>                                         Statement thisProperty =
> (Statement) properties.next();
>                                         if (!(((Character.isDigit(
> thisProperty.getObject().toString().charAt(0)))) ||
> thisProperty.getObject().toString().startsWith("-"))) {
>                                                 
> newClass.addProperty(thisProperty.getPredicate(),
> thisProperty.getObject());
>                                         }
>                                         else
>                                         {System.out.println("Anonymous
> class: " + thisProperty.getObject().toString());
>                                         System.out.println("Anonymous
> class' URI:  "  + ((Resource) thisProperty.getObject()).getURI());
>
>
>
> I GET, FOR INSTANCE:
>
> Anonymous class: 1a26f878:161d895229e:-7e84
> Anonymous class' URI:  null
>
>
> How else can I programmatically  determine whether a restriction comes
> from the imported or from the importing ontology
> Cheers, Jos
>
>
>
> -----Ursprüngliche Nachricht-----
> Von: Lorenz Buehmann [mailto:[email protected]]
> Gesendet: Dienstag, 27. Februar 2018 12:29
> An: [email protected]
> Betreff: Re: AW: URI of anonymous classes
>
> You can get access to imported models via
>
> OntModel::getImportedModel(String uri)
>
> or
>
> OntModel::listSubModels(boolean withImports)
>
>
> Javadoc[1] is always your friend.
>
>
> [1]
> https://jena.apache.org/documentation/javadoc/jena/
> org/apache/jena/ontology/OntModel.html
>
>
> On 27.02.2018 11:48, Jos Lehmann wrote:
> > As an integration to my question (see Ursprüngliche Nachricht) please
> see further down the ouput of re-writing the importing ontology*.
> > The same intersection is repeated. Yet, Protege is able to tell that one
> of the two intesections comes from the imported ontology the other from the
> importing ontology. How? How to tell the the same thing in jena.
> >
> > Jos
> >
> > -----Ursprüngliche Nachricht-----
> > Von: Jos Lehmann
> > Gesendet: Dienstag, 27. Februar 2018 11:09
> > An: [email protected]
> > Betreff: URI of anonymous classes
> >
> > Hi there
> >
> > I am rewriting an ontology using jena. I rewrite each import. When
> rewriting an importing ontology, anonymous classes (e.g. restrictions or
> disjointness axioms) of the imported ontology appear twice in the importing
> ontology, because to re-write the importing ontology I am working with
> OntModelSpec.OWL_DL_MEM, to make sure rewrite instances asserted in the
> importing ontology of classes declared in the imported ontology.
> >
> > Question: is there a way of telling in jena where (at which URI) was a
> restriction or an axiom asserted?
> >
> >    Note: Protege has a tooltip saying "Asserted in: URI" of such
> classes. But the rdf/xml file does not seem to have such a property.
> >
> >       Subquestion: Does protege compute this property by looking at all
> URI of all statements oft he anonymous classes?
> >
> >
> > Hope I am making sense. Jos
> >
> >
> >
> >
> > * OUTPUT OF RE-WRITING IMPORTING ONTOLOGY
> >
> > <owl:Class rdf:about="http://purl.oclc.org/NET/ssnx/qu/qu#Dimension";>
> >     <rdfs:subClassOf>
> >       <owl:Class>
> >         <owl:intersectionOf rdf:parseType="Collection">
> >           <owl:Restriction>
> >             <owl:allValuesFrom>
> >               <owl:Class rdf:about="http://purl.oclc.org/NET/ssnx/qu/qu#
> DimensionFactor"/>
> >             </owl:allValuesFrom>
> >             <owl:onProperty>
> >               <owl:AsymmetricProperty rdf:about="http://purl.oclc.
> org/NET/ssnx/qu/qu#dimensionFactor">
> >                 <rdfs:range>
> >                   <owl:Class rdf:about="http://purl.oclc.
> org/NET/ssnx/qu/qu#DimensionFactor"/>
> >                 </rdfs:range>
> >                 <dc:source>skos:exactMatch 'factor' [SysML 1.2-QUDV]
> http://www.omgwiki.org/OMGSysML/doku.php?id=sysml-qudv:quantities_units_
> dimensions_values_qudv</dc:source>
> >                 <rdfs:comment>Rational number that specifies the factor
> in the dimension conversion relationship.</rdfs:comment>
> >                 <rdfs:isDefinedBy>http://purl.oclc.org/NET/ssnx/qu
> </rdfs:isDefinedBy>
> >                 <rdfs:label>dimension factor</rdfs:label>
> >                 <rdfs:seeAlso>http://www.omgsysml.org/qudv#Dimension</
> rdfs:seeAlso>
> >                 <rdf:type rdf:resource="http://www.w3.
> org/2002/07/owl#ObjectProperty"/>
> >               </owl:AsymmetricProperty>
> >             </owl:onProperty>
> >           </owl:Restriction>
> >           <owl:Restriction>
> >             <owl:onDataRange rdf:resource="http://www.w3.
> org/2001/XMLSchema#string"/>
> >             <owl:cardinality rdf:datatype="http://www.w3.
> org/2001/XMLSchema#int"
> >             >1</owl:cardinality>
> >             <owl:onProperty>
> >               <owl:DatatypeProperty rdf:about="http://purl.oclc.
> org/NET/ssnx/qu/qu#symbolicExpression"/>
> >             </owl:onProperty>
> >           </owl:Restriction>
> >           <owl:Restriction>
> >             <owl:onDataRange rdf:resource="http://www.w3.
> org/2001/XMLSchema#string"/>
> >             <owl:cardinality rdf:datatype="http://www.w3.
> org/2001/XMLSchema#int"
> >             >1</owl:cardinality>
> >             <owl:onProperty>
> >               <owl:DatatypeProperty rdf:about="http://purl.oclc.
> org/NET/ssnx/qu/qu#symbolicExpression"/>
> >             </owl:onProperty>
> >           </owl:Restriction>
> >         </owl:intersectionOf>
> >       </owl:Class>
> >     </rdfs:subClassOf>
> >     <rdfs:subClassOf>
> >       <owl:Class>
> >         <owl:intersectionOf rdf:parseType="Collection">
> >           <owl:Restriction>
> >             <owl:allValuesFrom>
> >               <owl:Class rdf:about="http://purl.oclc.org/NET/ssnx/qu/qu#
> DimensionFactor"/>
> >             </owl:allValuesFrom>
> >             <owl:onProperty rdf:resource="http://purl.
> oclc.org/NET/ssnx/qu/qu#dimensionFactor"/>
> >           </owl:Restriction>
> >           <owl:Restriction>
> >             <owl:onDataRange rdf:resource="http://www.w3.
> org/2001/XMLSchema#string"/>
> >             <owl:cardinality rdf:datatype="http://www.w3.
> org/2001/XMLSchema#int"
> >             >1</owl:cardinality>
> >             <owl:onProperty>
> >               <owl:DatatypeProperty rdf:about="http://purl.oclc.
> org/NET/ssnx/qu/qu#symbolicExpression"/>
> >             </owl:onProperty>
> >           </owl:Restriction>
> >           <owl:Restriction>
> >             <owl:onDataRange rdf:resource="http://www.w3.
> org/2001/XMLSchema#string"/>
> >             <owl:cardinality rdf:datatype="http://www.w3.
> org/2001/XMLSchema#int"
> >             >1</owl:cardinality>
> >             <owl:onProperty>
> >               <owl:DatatypeProperty rdf:about="http://purl.oclc.
> org/NET/ssnx/qu/qu#symbolicExpression"/>
> >             </owl:onProperty>
> >           </owl:Restriction>
> >         </owl:intersectionOf>
> >       </owl:Class>
> >
>
>

Reply via email to