I'm working on a semantic web project and I've encountered some problems about Uri & Url.
First of all, a general question: how are Uris referenced by a user application in world wide web? Are there like Urls, stored on some international servers, and the resource is given to user application, when relevant Uri is requested? I made Uris for my ontology individuals in RDF files. Is it enough to just store an Uri in my web files? How can be sure that it is unique? (for example this is for a student: #stu00546)
Second, what Uri should i give to my ontology? should I register a valid Uri to make it work on the Internet?
Last, should I store both Uris and Url, for an individual, where it's needed? For instance if I want to create an individual about a learning resource (like a Pdf), and I want the user to be able of opening this Pdf later, should I store the Url of Pdf, or I should define this individual with it's Uri, which is assigned to it by other site?
Thank you very much for your time & attention
About URI: in general all URI cannot be referenced: for example
urn:isbn:0451450523
describes the id of a book, but there is not a standard way to find this book. Some protocols such as URL or LSID are associated with protocol that allow them to retrieve the information.
An URI for your ontology: This could be any unique URI (e.g. urn:me:onotology/mywebsite#ontology but I guess the best place would be a URL on the web where your ontology is described. See also the ontology header. For example the namespace of FOAF is http://xmlns.com/foaf/0.1/ which redirects to the specifiation.
A URL for your document (suggestion):
<foaf:Document rdf:about="http://example.org/mydoc1">
<dc:title xml:lang="en">Title</dc:title>
<dc:title xml:lang="fr">Titre</dc:title>
</foaf:Document>
<my:InstanceOfDoc rdf:about="http://example.org/mydoc1/pdf">
<my:isInstanceOf rdf:resource="http://example.org/mydoc1"/>
<my:mime-type>application/pdf</my:mime-type>
</my:InstanceOfDoc>
<my:InstanceOfDoc rdf:about="http://example.org/mydoc1/txt">
<my:isInstanceOf rdf:resource="http://example.org/mydoc1"/>
<my:mime-type>text/plain</my:mime-type>
</my:InstanceOfDoc>
<my:InstanceOfDoc rdf:about="http://example.org/mydoc1/html">
<my:isInstanceOf rdf:resource="http://example.org/mydoc1"/>
<my:mime-type>text/html</my:mime-type>
</my:InstanceOfDoc>
The RDF specification defines how URIs are used within RDF. Don't forget about form (and secondary uses), but by far the most important aspect to your URIs is that they are globally unique identifiers. Each URI identifies a unique concept (for example, a specific OWL class) or an individual (a particular instance of that class -- the student you mention in your question) and you want to be very careful about ensuring uniqueness of your URIs.
With that in mind, a URI like #student1234
is not good, while urn:myappname:students#student1234
would be better.
For more "friendly" uses of the URI, you may want to make them dereferencable (as in the FOAF spec mentioned by Pierre or for the purposes of linked data). In this case, a URI like http://myserver.com/myappname/students/student1234
might be more appropriate.
The final thing to keep in mind is what Semantic Web for the Working Ontologist: Modeling in RDF, RDFS and OWL calls "Wishful Names". Be very careful assuming (as a human) that a URI like urn:example:cars#car123
has type ontology:Car
. The URI will be opaque (and used like a key in a database) when used by a piece of software; a URI has no semantics on its own.
Beyond that, most of the form comes down to personal preference and what will benefit your application.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With