Я использую рассуждение FaCT ++ и API OWL Манчестера, представленные здесь: http://owlapi.sourceforge.net/
У меня есть OWL, детализирующий элементы в периодической таблице, однако я изо всех сил пытаюсь извлечь буквальные значения некоторыхсвойства.В приведенных ниже примерах я хочу извлечь целые числа между тегами.
<owl:qualifiedCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:qualifiedCardinality>
<owl:hasValue rdf:datatype="&xsd;integer">13</owl:hasValue>
Я много разбираюсь в API, но не могу найти ничего, что позволило бы мнесделать прямое извлечение.До сих пор я был в состоянии пройти до
<owl:onProperty rdf:resource="&atoms;contains"/>
, но не дальше.
Каждый элемент описан в сове: Class.Здесь нет заявленных лиц.
<owl:Class rdf:about="&atoms;AluminumAtom">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&atoms;hasValenceElectronShell"/>
<owl:allValuesFrom>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<rdf:Description rdf:about="&atoms;PShell"/>
<owl:Restriction>
<owl:onProperty rdf:resource="&atoms;contains"/>
<owl:onClass rdf:resource="&atoms;Electron"/>
<owl:qualifiedCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:qualifiedCardinality>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="&atoms;hasOrder"/>
<owl:hasValue rdf:datatype="&xsd;integer">3</owl:hasValue>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<rdf:Description rdf:about="&atoms;SShell"/>
<owl:Restriction>
<owl:onProperty rdf:resource="&atoms;contains"/>
<owl:onClass rdf:resource="&atoms;Electron"/>
<owl:qualifiedCardinality rdf:datatype="&xsd;nonNegativeInteger">2</owl:qualifiedCardinality>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="&atoms;hasOrder"/>
<owl:hasValue rdf:datatype="&xsd;integer">3</owl:hasValue>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
</owl:unionOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<rdf:Description rdf:about="&atoms;Atom"/>
<owl:Restriction>
<owl:onProperty rdf:resource="&atoms;hasValenceElectronShell"/>
<owl:someValuesFrom>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<rdf:Description rdf:about="&atoms;PShell"/>
<owl:Restriction>
<owl:onProperty rdf:resource="&atoms;contains"/>
<owl:onClass rdf:resource="&atoms;Electron"/>
<owl:qualifiedCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:qualifiedCardinality>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="&atoms;hasOrder"/>
<owl:hasValue rdf:datatype="&xsd;integer">3</owl:hasValue>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
</owl:someValuesFrom>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="&atoms;hasValenceElectronShell"/>
<owl:someValuesFrom>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<rdf:Description rdf:about="&atoms;SShell"/>
<owl:Restriction>
<owl:onProperty rdf:resource="&atoms;contains"/>
<owl:onClass rdf:resource="&atoms;Electron"/>
<owl:qualifiedCardinality rdf:datatype="&xsd;nonNegativeInteger">2</owl:qualifiedCardinality>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="&atoms;hasOrder"/>
<owl:hasValue rdf:datatype="&xsd;integer">3</owl:hasValue>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
</owl:someValuesFrom>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="&atoms;hasValenceElectronShell"/>
<owl:allValuesFrom>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<rdf:Description rdf:about="&atoms;PShell"/>
<rdf:Description rdf:about="&atoms;SShell"/>
</owl:unionOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="&atoms;hasAtomicNumber"/>
<owl:hasValue rdf:datatype="&xsd;integer">13</owl:hasValue>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
</rdfs:subClassOf>
</owl:Class>