Извлечение значений из классов OWL - PullRequest
0 голосов
/ 28 февраля 2012

Я использую рассуждение 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>
...