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_**<http://www.daisy.org/zw/ZedAI_**Meta_Data_-_MODS_**>
Recommendation#RDF.2FXML_2<htt**p://www.daisy.org/zw/ZedAI_**
Meta_Data_-_MODS_**Recommendation#RDF.2FXML_2<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<http://www.w3.org/**2004/02/skos/core#Concept>
<http**://www.w3.org/2004/02/skos/**core#Concept<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#<http://www.w3.org/**1999/02/22-rdf-syntax-ns#>
<htt**p://www.w3.org/1999/02/22-rdf-**syntax-ns#<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
"
xml:mods="http://www.daisy.****org/RDF/MODS<
http://www.daisy.**org/RDF/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<[email protected]>
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<[email protected]>
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