Нет никакой разницы. Онтология OWL, закодированная в RDF, является еще одним документом RDF - нет ничего особенного в синтаксисе OWL, насколько это касается Йены. В документе RDF важно то, что он содержит в тройках: поэтому вы можете закодировать RDF в XML, Turtle или N-тройках, и все они эквивалентны - просто разные способы записи тех же троек.
Как только инструмент RDF загрузил тройки в график (т. Е. Model
в Йене), тогда он может дать другую интерпретацию терминам из пространства имен owl:
.
Update
ОК, следующий запрос в комментарии здесь код, который генерирует свой выходной образец:
package example;
import com.hp.hpl.jena.ontology.*;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.vocabulary.*;
public class OWLOutputExample
{
public static final String PLANTS = "http://www.linkeddatatools.com/plants";
public static void main(String[] args) {
new OWLOutputExample().run();
}
public void run() {
OntModel m = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
setNamespaces(m);
populateOntology(m);
writeOntology(m);
}
private void setNamespaces(OntModel m) {
m.setNsPrefix("owl", OWL.getURI());
m.setNsPrefix("rdf", RDF.getURI());
m.setNsPrefix("rdfs", RDFS.getURI());
m.setNsPrefix("dc", DC_11.getURI());
m.setNsPrefix("plants", PLANTS);
}
private void populateOntology(OntModel m) {
Ontology ont = m.createOntology(PLANTS);
ont.addProperty(DC_11.title, "The LinkedDataTools.com Example Plant Ontology")
.addProperty(DC_11.description, "An example ontology written for the " +
"LinkedDataTools.com RDFS & OWL introduction tutorial");
OntClass plantType = m.createClass(PLANTS + "#planttype");
plantType.addProperty(RDFS.label, "The plant type")
.addProperty(RDFS.comment, "The class of plant types.");
}
private void writeOntology(OntModel m) {
m.write(System.out, "RDF/XML-ABBREV");
}
}
Выход:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:plants="http://www.linkeddatatools.com/plants"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<owl:Ontology rdf:about="http://www.linkeddatatools.com/plants">
<dc:description>An example ontology written for the LinkedDataTools.com RDFS & OWL introduction tutorial</dc:description>
<dc:title>The LinkedDataTools.com Example Plant Ontology</dc:title>
</owl:Ontology>
<owl:Class rdf:about="http://www.linkeddatatools.com/plants#planttype">
<rdfs:comment>The class of plant types.</rdfs:comment>
<rdfs:label>The plant type</rdfs:label>
</owl:Class>
</rdf:RDF>
Обратите внимание, что rdfs:description
не известно RDFS, поэтому я его оставил.
Я понимаю, что вы говорите. Но я хочу знать, как написать выше документ OWL в Йене. Можете ли вы дать мне код для создания этого документа OWL. – user360321
Фантастический !!!! Большое спасибо. Это именно то, что я хотел знать. Если вы не возражаете, у меня есть еще один вопрос для вас. Я хочу использовать этот документ OWL и динамически добавлять подкласс для классов, которые у меня есть в этом документе OWL? Можете ли вы предложить мне хороший способ для этого? – user360321
@ user360321 Это действительно отдельный вопрос. [Этот ответ] (http://stackoverflow.com/a/18804302/1281433) содержит некоторые примеры добавления подклассов. –