Das Hilfsmittel, John Smith, wird als elipse gezeigt und wird durch einen konstanten Hilfsmittel-Bezeichner (URI) 1, in diesem Fall "http://.../JohnSmith" gekennzeichnet. Wenn Sie versuchen, dieses Hilfsmittel mit Ihrer Datenbanksuchroutine zugänglich zu machen, sind Sie unwahrscheinlich, erfolgreich zu sein; April, den das erste nicht widerstehend, Sie scherzt, würde eher überrascht, wenn Ihre Datenbanksuchroutine in der Lage waren, John Smith an Ihren Schreibtisch zu liefern. Wenn Sie mit URI nicht vertraut sind, denken Sie an sie einfach als ziemlich merkwürdige schauende Namen.
Betriebsmittel haben Eigenschaften. An diesen Beispielen sind wir an der Art der Eigenschaften interessiert, die auf John Smith Geschäft Karte erscheinen würden. Tabelle 1 zeigt nur eine Eigenschaft, John Smith vollen Namen. Eine Eigenschaft wird durch einen Bogen dargestellt, beschriftet mit dem Namen einer Eigenschaft. Der Name einer Eigenschaft ist auch ein URI, aber, da URI ziemlich lang und lästig sind, zeigt das Diagramm sie in der XML qname Form. Das Teil vor ": " wird ein namespace Präfix benannt und ein namespace darstellt. Das Teil nach ": " wird einen lokalen Namen benannt und einen Namen in diesem namespace darstellt. Eigenschaften werden normalerweise in dieser qname Form dargestellt, wenn sie geschrieben werden, da RDF XML und es eine bequeme Stenographie für das Darstellen sie in den Diagrammen und im Text ist. Ausschließlich jedoch werden Eigenschaften von einem URI gekennzeichnet. Das nsprefix: localname Form ist eine Sten! ographie für den URI des namespace, das mit dem localname verkettet wird. Es gibt keine Anforderung, die der URI eines Eigenschaft Beschlusses zu allem, wenn Sie durch eine Datenbanksuchroutine zugänglich gemacht werden.
Jede Eigenschaft hat einen Wert. In diesem Fall ist der Wert ein Druckfehler, der für jetzt uns an als Zeichenketten denken kann an characters2. Druckfehler werden in den Vierecken gezeigt.
Jena ist ein Java API, das benutzt werden kann, um RDF Diagramme wie dieses zu verursachen und zu manipulieren. Jena hat die Gegenstandkategorien, zum der Diagramme, der Betriebsmittel, der Eigenschaften und der Druckfehler darzustellen. Die Schnittstellen, die Betriebsmittel, Eigenschaften und Druckfehler darstellen, werden Resource, Eigenschaft und Druckfehler beziehungsweise genannt. In Jena wird ein Diagramm ein model3 genannt und wird durch die vorbildliche Schnittstelle dargestellt.
Der Code, zum dieses Diagramms oder des Modells zu verursachen, ist einfach:
// einige Definitionen
static String personURI = "http://somewhere/JohnSmith";
static String fullName = "John Smith";
//verursachen Sie ein leeres Diagramm
Model model = new ModelMem();
// verursachen das Hilfsmittel
johnSmith.addProperty(VCARD.FN, fullName);
Es fängt mit einigen konstanten Definitionen an und verursacht dann ein leeres Diagramm oder ein Modell. ModelMem ist eine Kategorie, die die vorbildliche Schnittstelle einführt und alle seine Daten in Zentralspeicher hält. Jena enthält andere Implementierungen der vorbildlichen Schnittstelle, z.B. eine, die seine Daten in einer Berkley DB Datenbank speichert, und andere, die eine relationale Datenbasis benutzt.
Das John Smith Hilfsmittel wird dann verursacht und eine Eigenschaft gefügt ihr hinzu. Die Eigenschaft wird von einer "konstanten" Kategorie VCARD zur Verfügung gestellt, die die Gegenstände hält, die alle Definitionen im VCARD Schema darstellen. Jena stellt konstante Kategorien für andere weithin bekannte Schemata, wie RDF und RDF Schema selbst, Dublin Kern und DAML zur Verfügung. Der Code, zum des Hilfsmittels zu verursachen und der Eigenschaft zu addieren, kann in eine kaskadierenart kompakter geschrieben werden:
Resource johnSmith =
model.createResource(personURI)
.addProperty(VCARD.FN, fullName);
Der Arbeitscode für dieses Beispiel kann im Tutorpaket der Jena Verteilung als Tutorial 1 gefunden werden. Als übung nehmen Sie diesen Code und ändern Sie ihn, um ein einfaches VCARD für selbst zu verursachen.
Läßt jetzt mehr Detail dem vcard hinzufügen und erforscht mehr Eigenschaften von RDF und von Jena.
Im ersten Beispiel war der Eigenschaft Wert ein Druckfehler. RDF Eigenschaften können andere Betriebsmittel als ihr Wert auch nehmen. Mit einer allgemeinen RDF Technik zeigt dieses Beispiel, wie man die unterschiedlichen Teile John Smith des Namens darstellt:
Hier haben wir eine neue Eigenschaft, vcard addiert: N, zum der Struktur John Smith des Namens darzustellen. Es gibt einige Sachen des Interesses über dieses Diagramm. Merken Sie, daß das vcard: N Eigenschaft nimmt ein Hilfsmittel als sein Wert. Merken Sie auch, daß der Ellipse, der den zusammengesetzten Namen darstellt, keinen URI hat. Es bekannt als unbelegter Nullpunkt.
Der Jena Code, zum dieses Beispiels zu konstruieren, ist wieder sehr einfach. Zuerst einige Erklärungen und die Kreation des leeren Modells
// einige Definitionen
String personURI = "http://somewhere/JohnSmith";
String givenName = "John";
String familyName = "Smith";
String fullName = givenName + " " + familyName;
// verursachen ein leeres Diagramm
Model model = new ModelMem();
// verursachen das Hilfsmittel
// und addieren Sie die Eigenschaften, die Art kaskadieren
Resource johnSmith
= model.createResource(personURI)
.addProperty(VCARD.FN, fullName)
.addProperty(VCARD.N,
model.createResource()
.addProperty(VCARD.Given, givenName)
.addProperty(VCARD.Family, familyName));
Der Arbeitscode für dieses Beispiel kann als Tutorial 2 im Tutorpaket der Jena Verteilung gefunden werden.
Das com.hp.hpl.mesa.rdf.jena.tutorial Paket enthält das Arbeitsquellenprogramm für alle Beispiele, die in diesem Tutorial verwendet werden.
Das com.hp.hpl.mesa.rdf.jena.mem Paket enthält eine Implementierung von Jena API, das allen vorbildlichen Zustand in Zentralspeicher speichert. Die Anwendungen, die Ingedächtnis Modelle verursachen, verursachen gewöhnlich Fälle der ModelMem Kategorie, die in diesem Paket definiert wird. Dieses ist ein Fall, in dem z.Z. die Anwendung auf eine spezifische Implementierung Kategorie sich beziehen muß. Eine allgemeinere Einheit wird zukünftig eingeführt.
Das com.hp.hpl.mesa.rdf.jena.com Montag Paket enthält Implementierung Kategorien, die für viele Implementierungen allgemein sein können. Z.B. definiert es Kategorien ResourceImpl, PropertyImpl, LiteralImpl, das direkt verwendet werden kann oder subclassed durch unterschiedliche Implementierungen. Anwendungen sollten selten, wenn überhaupt, benutzen diese Kategorien direkt. Z.B. anstatt, einen neuen Fall von ResourceImpl verursachend, ist es besser, die createResource Methode von zu verwenden, was Modell benutzt wird. Diese Weise, wenn die vorbildliche Implementierung eine optimierte Implementierung des Hilfsmittels verwendet hat, dann keine Umwandlungen zwischen den zwei Arten sind notwendig.
Der Jena Entwicklung Mannschaftplan etwas Refactoring des Codes in naher Zukunft. Die gegenwärtigen Paketnamen reflektieren die Tatsache, daß Jena ursprünglich als Teil eines Projektes entwickelt wurde, das Mesa genannt wurde. Unter dem neuen nennenentwurf sind die RDF Pakete in com.hp.hpl.jena.rdf.