Print

Print


On Fri, Feb 10, 2012 at 11:51 PM, Ethan Gruber <[log in to unmask]> wrote:
> Hi Ross,
>
> No, the richer ontology is not an RDF vocabulary, but it adheres to linked
> data concepts.

Hmm, ok.  That doesn't necessarily mean it will work in RDF.
>
> I'm looking to do something like this example of embedding mods in rdf:
> http://www.daisy.org/zw/ZedAI_Meta_Data_-_MODS_Recommendation#RDF.2FXML_2
>
Yeah, I'll be honest, that looks terrible to me.  This looks, to me,
like kind of a misunderstanding of RDF and RDF/XML.

Regardless, this would make useless RDF (see below).  One of the hard
things to understand about RDF, especially when you're coming at it
from XML (and, by association, RDF/XML) is that RDF isn't
hierarchical, it's a graph.  This is one of the reasons that the XML
serialization is so awkward: it looks something familiar XML people,
but it doesn't work well with their tools (XPath, for example) despite
the fact that it, you know, should.  It's equally frustrating for RDF
people because it's really verbose and its syntax can come in a
million variations (more on that later in the email) making it
excruciatingly hard to parse.

> These semantic ontologies are so flexible, it seems like I *can* do
> anything, so I'm left wondering what I *should* do--what makes the most
> sense, semantically.  Is it possible to nest rdf:Description into the
> skos:Concept of my previous example, and then place <nuds:nuds>.....more
> sophistated model......</nuds:nuds> into rdf:Description (or alternatively,
> set rdf:Description/@rdf:resource to the URI of the web-accessible XML file?
>
> Most RDF examples I've looked at online either have skos:Concept or
> rdf:Description, not both, either at the same context in rdf:RDF or one
> nested inside the other.
>
So, this is a little tough to explain via email, I think.  This is
what I was referring to earlier about the myriad ways to render RDF in
XML.

In short, using:
<skos:Concept about="http://example.org/foo">
  <skos:prefLabel>Something</skos:prefLabel>
  ...
</skos:Concept>

is shorthand for:

<rdf:Description about="http://example.org/foo">
  <rdf:type resource="http://www.w3.org/2004/02/skos/core#Concept" />
  <skos:prefLabel>Something</skos:prefLabel>
</rdf:Description>

So, yeah, you use one or the other.

That said, I'm not sure your ontology is really going to work well,
you'll just have to try it.  One thing that would probably be useful
would be to serialize out a document with your nuds vocabulary as
rdf/xml and then use something like rapper (comes with the redland
libraries) to convert it to something more RDF-friendly, like turtle,
and see if it makes any sense.

For example, your daisy example above:

<rdf:RDF
		xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
		xml:mods="http://www.daisy.org/RDF/MODS">
		
		<rdf:Description rdf:ID="daisy-dtbook2005-exemplar-01">
		
			<mods:titleInfo>
				<mods:title>World Cultures and Geography</mods:title>
			</mods:titleInfo>
			
			<mods:name>
				<mods:namePart>Sarah Witham Bednarz</mods:namePart>
				<mods:role>
					<mods:roleTerm mods:type="text">author</mods:roleTerm>
				</mods:role>
			</mods:name>
			
			<mods:name>
				<mods:namePart>Inés M. Miyares</mods:namePart>
				<mods:role>
					<mods:roleTerm mods:type="text">author</mods:roleTerm>
				</mods:role>
			</mods:name>
			
			<mods:name>
				<mods:namePart>Mark C. Schug</mods:namePart>
				<mods:role>
					<mods:roleTerm mods:type="text">author</mods:roleTerm>
				</mods:role>
			</mods:name>
			
			<mods:name>
				<mods:namePart>Charles S. White</mods:namePart>
				<mods:role>
					<mods:roleTerm mods:type="text">author</mods:roleTerm>
				</mods:role>
			</mods:name>
			
			<mods:originInfo>
				<mods:publisher>DAISY Consortium</mods:publisher>
				<mods:dateCreated>2005-01-14</mods:dateCreated>
				<mods:version>3</mods:version>
				<mods:dateModified>2005-07-27</mods:dateModified>
			</mods:originInfo>
			
			<mods:relatedItem mods:type="original">
				<mods:originInfo>
					<mods:publisher>McDougal Littell</mods:publisher>
					<mods:place>Evanston, Illinois</mods:place>
					<mods:dateCreated>2003</mods:dateCreated>
				<mods:originInfo>
			</mods:relatedItem>
			
			<mods:identifier mods:type="isbn10">0618168419</mods:identifier>
			
			<mods:typeOfResource>text</mods:typeOfResource>
			
			<mods:physicalDescription>
				<mods:form>Hardcover print</mods:form>
			</mods:physicalDescription>
			
			<mods:subject>Geography</mods:subject>
			
			<mods:language>en</mods:language>
			
			<mods:note mods:type="description">Culture and geography textbook
for highschool</mods:note>
			
		<rdf:Description>
	
	</rdf:RDF>

rapper turns this into:

<file:///home/ross/tmp/daisy.xml#daisy-dtbook2005-exemplar-01>
    mods:titleInfo [
        a mods:title
    ] .

[]
    a mods:namePart .

which is not terribly useful.

I guess what I'm saying is that RDF/XML isn't really intended to be
used as XML nor is it terribly useful in that capacity because
'native' XML-based schemas are, by definition, hierarchical (plus they
aren't constrained by the E-A-V model).  RDF/XML is really just a
standardized way to share RDF graphs (the first and now most maligned
way, really) that happened to use XML because there was plumbing for
XML there already (parsers, mime-types, etc.), but it shouldn't really
be mistaken for 'XML'.

Try your data in rapper and see if your resources model correctly,
otherwise I would suggest making a custom vocabulary based on your
ontology that conforms better to RDFS or OWL.

Good luck,
-Ross.
> Thanks,
> Ethan
>
> On Fri, Feb 10, 2012 at 9:44 PM, Ross Singer <[log in to unmask]> wrote:
>
>> The whole advantage of RDF is that you can pull properties from different
>> vocabularies (as long as they're not logically disjoint). So, assuming your
>> richer ontology is some kind of RDF vocabulary, this exactly *what* you
>> should be doing.
>>
>> -Ross.
>>
>> On Feb 10, 2012, at 4:31 PM, Ethan Gruber <[log in to unmask]> wrote:
>>
>> > Hi all,
>> >
>> > I'm working on an RDF model for describing concepts.  I have skos:Concept
>> > nested inside rdf:RDF.  Most documents will have little more than labels
>> > and related links inside of skos:Concept.  However, for a certain type of
>> > concept, we have XML documents with a more sophisticated ontology and
>> > structure for describing the concept.  I could embed this metadata into
>> the
>> > RDF or reference it as an rdf:resource.  It doesn't matter much to me
>> > either way, but I'm unsure of the semantically correct way to create this
>> > model.
>> >
>> > Suppose I have:
>> >
>> > <rdf:RDF>
>> > <skos:Concept rdf:about="URI">
>> > <skos:prefLabel xml:lang="en">Label</skos:prefLabel>
>> > <nuds:nuds>.....more sophistated model......</nuds:nuds>
>> > </skos:Concept>
>> > </rdf:RDF>
>> >
>> > Is it okay to have the more sophistated metadata model embedded in
>> > skos:Concept alongside labels and related links?  Suppose I want to store
>> > the more sophisticated metadata separately and reference it?  I'm not
>> sure
>> > what property adequately addresses this relation, semantically.
>> >
>> > Recommendations?
>> >
>> > Thanks,
>> > Ethan
>>