W3C home > Mailing lists > Public > public-bibframe2schema@w3.org > February 2019

Bibframe to SChema.org conversion examples

From: Richard Wallis <richard.wallis@dataliberate.com>
Date: Wed, 27 Feb 2019 11:51:19 +0000
Message-ID: <CAD47Kz5TO2jQsU8xWghoCeUf_PDymr3mRJDfqR6GCSFYGP4n9Q@mail.gmail.com>
To: public-bibframe2schema@w3.org
Hi All,

I have assembled a set of SPARQL scripts that I have used to enhance
Bibframe 2.0 RDF entities with Schema.org triples and reproduced them into
a page on our Wiki <SPARQL Conversion Examples
<https://www.w3.org/community/bibframe2schema/wiki/SPARQL_Conversion_Examples_-_from_RJW>
>

The scripts assume that they are being run against a SPARQL endpoint of a
triplestore containing Bibframe 2.0.  They assume that the Schema.org
triples will be inserted into the store.  These can easily be changed to
just output the triples, as the results of a query, by replacing the INSERT
verb with CONSTRUCT.

A triplestore is not necessarily a prerequisite as the scripts could also
be used within an inline process script.  I am working on such a script
that I use, to get it into a sharable state -- *more of that later!*

My approach has been to produce individual scripts for each Biframe entity
or property that can usefully used to identify Schema.org equivalents.   I
find this produces more maintainable/debuggable scripts than producing a
humungous single script that 'does everything', not that this approach
doesn't have its own problems.

They are there to view and comment upon - please join in.

Apart from simple conversions such as for Organization
<https://www.w3.org/community/bibframe2schema/wiki/SPARQL_Conversion_Examples_-_from_RJW#Organization>,
the page contains more complex examples, such as Work
<https://www.w3.org/community/bibframe2schema/wiki/SPARQL_Conversion_Examples_-_from_RJW#Work>,
Instance
<https://www.w3.org/community/bibframe2schema/wiki/SPARQL_Conversion_Examples_-_from_RJW#Instance>,
and Item
<https://www.w3.org/community/bibframe2schema/wiki/SPARQL_Conversion_Examples_-_from_RJW#Item>.
These attempt to solve some of the more significant challenges encountered
with conversion from Bibframe to Schema.org:

   - Typing - Identifying the correct schema types to assign for audio,
   video, dataset, etc.
   - Preserving the relationship between Work, Instance and Item entities
   using the schema workExample and exampleOfWork properties.
   - Denormalisation of Work data - copying properties [that in Bibframe
   that only appear in Work] from the Work entity into Instance and Item
   definitions. (Schema.org expects that a single entity could stand alone
   containing all relevant properties)

One challenge I have not yet been able to solve is '*how the heck do you
decide that an entity should be defined as a schema:Book*'.  There is
bookFormat & BookFormat, but in my test data they don't appear to be used.
It is a little frustrating that I can easily identify Map, AudioObject, &
ImageObject types but can't reliably pick out what is a Book  - Any advice
gratefully received!

Need also to work out what to do with Agent entities that are not also
defined as being either a Person or Organization.

If anybody has similar scripts that we can share to help us towards our
goal, please upload to the wiki.


~Richard.

Richard Wallis
Founder, Data Liberate
http://dataliberate.com
Linkedin: http://www.linkedin.com/in/richardwallis
Twitter: @rjw
Received on Wednesday, 27 February 2019 11:51:53 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 27 February 2019 11:51:54 UTC