https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/Statement.html#getModel--
ajs6f > On Feb 28, 2018, at 2:26 AM, Lorenz Buehmann > <[email protected]> wrote: > > Models in Jena contain the statements, thus, you should be able to > determine which model contains the statement. > > > On 27.02.2018 19:59, Jos Lehmann 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> >>> >> >
