У меня есть файлы с совами в разных форматах (RDF/XML, Turtle, Manchester OWL Syntax). Я хочу определить формат на основе его содержимого, поскольку у разных форматов есть свой стиль.
E.g
RDF/XML:
<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [
<!ENTITY owl "http://www.w3.org/2002/07/owl#" >
<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
<!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
<!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >]>
<rdf:RDF
xmlns="namespace#"
xml:base="namespace"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<owl:Ontology rdf:about="namespace"/>
<!-- namespace#my1 -->
<owl:ObjectProperty rdf:about="namespace#my1"/>
<!-- namespace#my2 -->
<owl:ObjectProperty rdf:about="namespace#my2"/>
<!-- namespace#prop1 -->
<owl:DatatypeProperty rdf:about="namespace#prop1"/>
<!-- namespace#prop2 -->
<owl:DatatypeProperty rdf:about="namespace#prop2"/>
<!-- namespace#A -->
<owl:Class rdf:about="namespace#A"/>
<!-- namespace#B -->
<owl:Class rdf:about="namespace#B"/>
<!-- namespace#C -->
<owl:Class rdf:about="namespace#C"/>
<!-- namespace#P -->
<owl:Class rdf:about="namespace#P"/>
</rdf:RDF>
Синтаксис Manchester OWL:
Prefix: : <namespace#>
Prefix: owl: <http://www.w3.org/2002/07/owl#>
Prefix: rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
Prefix: xml: <http://www.w3.org/XML/1998/namespace>
Prefix: xsd: <http://www.w3.org/2001/XMLSchema#>
Prefix: rdfs: <http://www.w3.org/2000/01/rdf-schema#>
Ontology: <namespace>
ObjectProperty: my2
ObjectProperty: my1
DataProperty: prop2
DataProperty: prop1
Class: B
Class: A
Class: P
Class: C
Поэтому, хотя у меня есть два файла с одинаковым именем myOntology.owl
, я могу определить его формат на основе вышеуказанного содержимого (просто открыв его в редакторе). Как это сделать с помощью OWL-API в JAVA? Также, как методы загрузки из OWLOntologyManager
различают их?
loadOntologyFromOntologyDocument
изOWLOntologyManager
? Поскольку он принимает файл в виде потока прямо. Поэтому я попытался создатьStreamDocumentSource
и найти его формат. Но методisFormatKnown()
дает FALSE. И как я могу сделать загрузку в разных форматах? - person SuhasD   schedule 13.07.2016