Re: Schema.org and OWL

Also, let us not try to add something as complicated as temporal logic to schema.org as a ‘quick fix’. This is a slippery slope.

Note that the type hierarchy in schema.org is not very important in comparison to the types themselves. It is tacit understanding to rather use multiple types for domain and range than to fit everything under one branch of a universally valid type hierarchy.

Best
Martin

---------------------------------------
martin hepp
www:  http://www.heppnetz.de/
email: mhepp@computer.org


> Am 11.06.2018 um 09:58 schrieb Martin Hepp <mfhepp@gmail.com>:
> 
> An offer is no Event neither. It is the promise to transfer a bundle of rights on something for some compensation. It can have a temporal aspect, but this is not the core characteristic, and the notions of time used for an event will likely not fit here.
> 
> ---------------------------------------
> martin hepp
> www:  http://www.heppnetz.de/
> email: mhepp@computer.org
> 
> 
>> Am 11.06.2018 um 09:45 schrieb Phil Barker <phil.barker@pjjk.co.uk>:
>> 
>> CourseInstance is an Event. Course is not.  A Course is what may be offered several times a year, and/or for several years and/or at different campuses and/or at different times; e.g. a course offered for full time students on Thurs at 10am and for part time students on Mondays at 7pm as two course instances.
>> 
>> Sent from TypeApp
>>> On 10 Jun 2018, at 08:40, Anthony Moretti <anthony.moretti@gmail.com> wrote:
>>> Let's get the easy ones out of the way before looking at Roles. The following are obviously subtypes of event, I might create an issue on GitHub to get more feedback: 
>>> 
>>> Event 
>>> Action
>>> Course
>>> Offer
>>> ParcelDelivery
>>> Trip
>>> 
>>> I'll argue for Role now. In my view, it would be easier to understand if the terminology was Relation, or Relationship, rather than Role. 
>>> 
>>> An event is either: 
>>> A period of time (e.g. Jun 9, 2018, 12 PM - 1 PM)
>>> The period of time that a statement, explicit or implicit, is true (e.g. My run this morning = Anthony isRunning True)
>>> To be clear, having the same statement exist with different periods of validity can still be consistent: 
>>> Anthony isRunning True (Jun 9, 2018, 12 PM - 1 PM)
>>> Anthony isRunning True (Jun 8, 2018, 12 PM - 1 PM)
>>> If you look at  temporal databases  every fact has a  valid time  - the time period during which the fact is true. Therefore if you reify any fact or relationship you produce something with start or end times, therefore producing an event.
>>> 
>>> In schema.org:
>>> All Roles are reified relationships.
>>> Therefore all Roles have "valid times".
>>> Therefore all Roles have start or end times.
>>> Therefore all Roles are events.
>>> If the terminology was updated it would look like:
>>> 
>>> Event 
>>> Relationship, or Relation (currently Role)
>>> 
>>> Regarding Bill Murray, what is being modeled if not the fact that Bill Murray was involved as an actor during its filming, and so for a period of time? 
>>> 
>>> And yep, I agree that you can define an entity and separately define an event that represents its period of existence. But you can't do that for an event, and in like fashion you can't do that for a statement either, it just wouldn't make sense for either right? 
>>> 
>>> Anthony
>>> 
>>> 
>>>> On Sat, Jun 9, 2018 at 6:52 PM Peter F. Patel-Schneider < pfpschneider@gmail.com> wrote:   
>>>> Yes, many Roles in schema.org are events, and could be so modelled.  But not 
>>>> all, in my opinion, or at least not usefully. 
>>>> 
>>>> 
>>>> For example the relationship between Bill Murray and Ghostbusters is not an 
>>>> event.   It was, perhaps, initiated by a bunch of events, namely a sequence of 
>>>> acting performances that were captured and edited together to form the movie.  
>>>> However, that bunch of events is not the relationship being modelled.  
>>>> 
>>>> 
>>>> It's just like one might model people as their lives, i.e., an event that 
>>>> plays out (roughly) from conception to death.  But I find it useful to 
>>>> distinguish between a person and their life event. 
>>>> 
>>>> 
>>>> peter 
>>>> 
>>>> 
>>>> 
>>>> On 06/06/2018 09:01 PM, Anthony Moretti wrote: 
>>>> > I agree that the first problem to do with strings can be solved by boxing 
>>>> > them into anonymous individuals. On the second problem to do with Roles I 
>>>> > agree that you can't do a simple "subjectOf" transform because Role is not 
>>>> > in the domain of "about", but maybe defining a new property such as 
>>>> > "participantIn" (domain Thing, range Role) and using it wherever a Role is 
>>>> > the object of a statement might keep about the same level of meaning (not 
>>>> > very good) but at least make it consistent OWL? So your example would be 
>>>> > transformed to: 
>>>> > 
>>>> >     DJT : Person 
>>>> > 
>>>> >         participantIn ? : Role 
>>>> > 
>>>> >             spouse MM : Person 
>>>> > 
>>>> >             startDate : 1993 
>>>> > 
>>>> >             endDate : 1999 
>>>> > 
>>>> >         participantIn ? : Role 
>>>> > 
>>>> >             spouse IT : Person 
>>>> > 
>>>> >             startDate : 1977 
>>>> > 
>>>> >             endDate : 1992 
>>>> > 
>>>> > 
>>>> > A more general solution using guidance 
>>>> > from  https://www.w3.org/TR/swbp-n-aryRelations/ and with better meaning 
>>>> > might be: 
>>>> > 
>>>> >     DJT : Person 
>>>> > 
>>>> >         isSpouseFor ? : MarriageRelation 
>>>> > 
>>>> >             spouse DJT : Person 
>>>> > 
>>>> >             spouse MM : Person 
>>>> > 
>>>> >             startDate : 1993 
>>>> > 
>>>> >             endDate : 1999 
>>>> > 
>>>> >         isSpouseFor ? : MarriageRelation 
>>>> > 
>>>> >             spouse DJT : Person 
>>>> > 
>>>> >             spouse IT : Person 
>>>> > 
>>>> >             startDate : 1977 
>>>> > 
>>>> >             endDate : 1992 
>>>> > 
>>>> > 
>>>> > Your question about movie roles is also solved by this, for example: 
>>>> > 
>>>> >     Bill Murray : Person 
>>>> > 
>>>> >         isActorFor ? : PerformanceRelation 
>>>> > 
>>>> >             actor Bill Murray : Person 
>>>> > 
>>>> >             movie Ghostbusters : Movie 
>>>> > 
>>>> >             characterName : Dr. Peter Venkman 
>>>> > 
>>>> >             startDate : 1983 
>>>> > 
>>>> >             endDate : 1984 
>>>> > 
>>>> > 
>>>> > Class hierarchy: 
>>>> > 
>>>> >     Event 
>>>> > 
>>>> >         Relation 
>>>> > 
>>>> >             MarriageRelation 
>>>> > 
>>>> >             PerformanceRelation 
>>>> > 
>>>> > 
>>>> > I think confusion might come from the many English meanings of "role": 
>>>> > 
>>>> >     Type of role, e.g. Quarterback - no start or end dates. 
>>>> >     Instance of a role, e.g. 49ers quarterback 1979-1992 - potential start 
>>>> >     and end dates. 
>>>> >     Character, e.g. Hamlet - no start or end dates. 
>>>> > 
>>>> > 
>>>> > So I'm still lead to believe that Role/Relation and several other types in 
>>>> > schema.org < http://schema.org> are subtypes of Event because their instances 
>>>> > always have potential start and end dates: 
>>>> > 
>>>> >     Event 
>>>> > 
>>>> >         Action 
>>>> > 
>>>> >         Course 
>>>> > 
>>>> >         Role/Relation 
>>>> > 
>>>> >         Offer 
>>>> > 
>>>> >         ParcelDelivery 
>>>> > 
>>>> >         Trip 
>>>> > 
>>>> > 
>>>> > Anybody else think this too? I'm a bit new to this so hope I'm not putting 
>>>> > something too strange out there! 
>>>> > 
>>>> > Anthony 
>>>> > 
>>>> > 
>>>> > On Wed, Jun 6, 2018 at 3:20 PM Peter F. Patel-Schneider 
>>>> > < pfpschneider@gmail.com <mailto: pfpschneider@gmail.com>> wrote: 
>>>> > 
>>>> >     The short-circuiting of Role in schema.org < http://schema.org> is 
>>>> >     certainly outside of 
>>>> >      schema.org < http://schema.org>.   OWL has nothing that can do the right 
>>>> >     thing with the following 
>>>> >      schema.org < http://schema.org> data 
>>>> > 
>>>> >     DJT : Person 
>>>> >       spouse ? : Role 
>>>> >                spouse MM : Person 
>>>> >                startDate : 1991 
>>>> >                endDate : 1999 
>>>> >       spouse ? : Role 
>>>> >                spouse IT : Person 
>>>> >                startDate : 1977 
>>>> >                endDate: 1992 
>>>> >       spouse MT : Person 
>>>> >     particularly in conjunction with 
>>>> >     spouse 
>>>> >       domain Person 
>>>> >       range Person 
>>>> > 
>>>> >     Except that you could turn *all* property values (except maybe for those 
>>>> >     properties that are guaranteed never to have a Role intermediary) into 
>>>> >     events 
>>>> >     *before* they got to OWL.  This would look something like: 
>>>> > 
>>>> >     DJT : Person 
>>>> >       spouseEvent ? : SpouseEvent 
>>>> >                     spouse MM : Person 
>>>> >                     startDate : 1991 
>>>> >                     endDate : 1999 
>>>> >       spouseEvent ? : SpouseEvent 
>>>> >                     spouse IT : Person 
>>>> >                     startDate : 1997 
>>>> >                     endDate : 1992 
>>>> >       spouseEvent ? : SpouseEvent 
>>>> >                     spouse MT : Person 
>>>> >     spouse range Person 
>>>> >            domain SpouseEvent 
>>>> >     spouseEvent range SpouseEvent 
>>>> >                 domain Person 
>>>> >     SpouseEvent sub Event 
>>>> >     startDate range Date 
>>>> >     endDate range Date 
>>>> > 
>>>> >     Hah!  That turned out better than I thought it would, but I view the 
>>>> >     need for 
>>>> >     the transform as showing that schema.org < http://schema.org> Role is 
>>>> >     outside the purview of OWL 
>>>> >     because it requires major surgery to the underlying ontology (as opposed 
>>>> >     to a 
>>>> >     transform to handle "strings as things" that just replaces such strings 
>>>> >     with a 
>>>> >     blank node connected to the string by some sort of description property 
>>>> >     which 
>>>> >     doesn't require such surgery). 
>>>> > 
>>>> >     And then what do you do about movie roles?  They shouldn't have start 
>>>> >     and end 
>>>> >     dates, or even have the possibility of start and end dates. 
>>>> > 
>>>> >     peter 
>>>> > 
>>>> >          
>>>> > 
>>>> >     On 06/06/2018 02:50 PM, Anthony Moretti wrote: 
>>>> >     > Peter, when you say "roles fall outside the purview of OWL" is it possible 
>>>> >     > that Role should be a subtype of Event, thus requiring no special 
>>>> >     treatment? 
>>>> >     > I say that because individual roles have potential start and end dates. 
>>>> >     > 
>>>> >     > If you continue that thinking you end up with several types that might be 
>>>> >     > considered subtypes of Event: 
>>>> >     > 
>>>> >     >     Event 
>>>> >     > 
>>>> >     >         Action 
>>>> >     >         Course 
>>>> >     >         Role 
>>>> >     >         Offer 
>>>> >     >         Parcel delivery 
>>>> >     >         Trip 
>>>> >     > 
>>>> >     > 
>>>> >     > Anthony 
>>>> >     > 
>>>> >     > On Wed, Jun 6, 2018 at 7:42 AM Peter F. Patel-Schneider 
>>>> >     > < pfpschneider@gmail.com <mailto: pfpschneider@gmail.com> 
>>>> >     <mailto: pfpschneider@gmail.com <mailto: pfpschneider@gmail.com>>> wrote: 
>>>> >     > 
>>>> >     >     OK, it appears that you are trying to produce an OWL ontology that 
>>>> >     would 
>>>> >     >     accept schema.org < http://schema.org> < http://schema.org> 
>>>> >     documents that would accept 
>>>> >     >     unexceptional schema.org < http://schema.org> < http://schema.org> 
>>>> >     >     documents (under some loose definition of what makes an unexceptional 
>>>> >     >      schema.org < http://schema.org> < http://schema.org> document). 
>>>> >     > 
>>>> >     > 
>>>> >     >     But you are running up against problems with "strings as things" and 
>>>> >     >     Roles.   
>>>> >     > 
>>>> >     > 
>>>> >     >     Look at about and subjectOf.   Any use of a string as a value for 
>>>> >     about is 
>>>> >     >     going to make that string an instance of two OWL Classes (the range of 
>>>> >     >     about, 
>>>> >     >     which includes Text, and the domain of subjectOf, which doesn't).  
>>>> >     This 
>>>> >     >     is not 
>>>> >     >     permissible in OWL.   
>>>> >     > 
>>>> >     > 
>>>> >     >     Using a role as a value for subjectOf will make the role node an 
>>>> >     instance of 
>>>> >     >     the domain of about, which doesn't include Role.   Roles fall 
>>>> >     outside the 
>>>> >     >     purview of OWL.  
>>>> >     > 
>>>> >     > 
>>>> >     >     What I think has to be done for "strings as things" is to 
>>>> >     preprocess them as 
>>>> >     >     an anonymous node with the string as the value of some description 
>>>> >     >     property.  
>>>> >     >     Roles need to be short-circuited and the role values eliminated.  
>>>> >     If the 
>>>> >     >     role 
>>>> >     >     values are to be retained then some sort of fancy reification has 
>>>> >     to be 
>>>> >     >     introduced. 
>>>> >     > 
>>>> >     > 
>>>> >     >     But a lot of this is guesswork, as it is unclear just what "strings as 
>>>> >     >     things" 
>>>> >     >     and Roles mean in schema.org < http://schema.org> 
>>>> >     < http://schema.org>.   (I haven't looked 
>>>> >     >     closely at the use of URLs 
>>>> >     >     as stand-ins for objects but my guess is that that is similar to 
>>>> >     "strings as 
>>>> >     >     things".) 
>>>> >     > 
>>>> >     > 
>>>> >     > 
>>>> >     >     OWL makes a distinction between object and data values, and this 
>>>> >     distinction 
>>>> >     >     has to be carried through to the ontology, where there are classes and 
>>>> >     >     datatypes.  As far as I can tell Text should be a datatype. 
>>>> >     > 
>>>> >     > 
>>>> >     > 
>>>> >     > 
>>>> >     >     peter 
>>>> >     > 
>>>> >     > 
>>>> >     > 
>>>> >     >     On 06/06/2018 07:09 AM, Richard Wallis wrote: 
>>>> >     >     > Just the fresh pair of experienced eyes I needed! - Thanks @Thomas 
>>>> >     >     > 
>>>> >     >     > @Danbri - not “wasting a lot of time agonising", in simple terms 
>>>> >     I’m just 
>>>> >     >     > [selfishly] trying to get a useful version to load into Protégé and 
>>>> >     >     > hopefully helping a few others at the same time.   
>>>> >     >     > 
>>>> >     >     > @Peter thanks for your thoughtful questions.  As you can see 
>>>> >     from the 
>>>> >     >     above 
>>>> >     >     > the prime simple objective is to get it visible in Protégé.  Beyond 
>>>> >     >     that, it 
>>>> >     >     > is to capture the class and property hierarchy of Schema.org 
>>>> >     including 
>>>> >     >     > the multiple domain/ranges of properties defined [In Schema.org] 
>>>> >     using 
>>>> >     >     > domainIncludes & rangeIncludes, in a way that a tool 
>>>> >     like Protégé can cope 
>>>> >     >     > with.  As for ranges, it includes the assumption that properties, in 
>>>> >     >     > addition to the defined range(s), also have Text, URL, and Role 
>>>> >     >     included in 
>>>> >     >     > their range. 
>>>> >     >     > 
>>>> >     >     > Once I’ve done it, I want to add the simple generating code to 
>>>> >     the Schema 
>>>> >     >     > scripts run at release time so that it can be kept up to date. 
>>>> >     >     > 
>>>> >     >     > 
>>>> >     >     > ~Richard. 
>>>> >     >     > 
>>>> >     >     > Richard Wallis 
>>>> >     >     > Founder, Data Liberate 
>>>> >     >     > http://dataliberate.com 
>>>> >     >     > Linkedin:  http://www.linkedin.com/in/richardwallis 
>>>> >     >     > Twitter: @rjw 
>>>> >     >     > 
>>>> >     >     > On 6 June 2018 at 14:45, Peter F. Patel-Schneider 
>>>> >     >     < pfpschneider@gmail.com <mailto: pfpschneider@gmail.com> 
>>>> >     <mailto: pfpschneider@gmail.com <mailto: pfpschneider@gmail.com>> 
>>>> >     >     > <mailto: pfpschneider@gmail.com <mailto: pfpschneider@gmail.com> 
>>>> >     <mailto: pfpschneider@gmail.com <mailto: pfpschneider@gmail.com>>>> wrote:   
>>>> >     >     > 
>>>> >     >     >     It's hard to say much about the file without knowing what it is 
>>>> >     >     supposed to 
>>>> >     >     >     capture. 
>>>> >     >     > 
>>>> >     >     > 
>>>> >     >     >     It is supposed to capture the class and property hierarchy and 
>>>> >     >     property 
>>>> >     >     >     restrictions or schema.org < http://schema.org> 
>>>> >     < http://schema.org> 
>>>> >     >     < http://schema.org>, but not necessarily in a 
>>>> >     >     >     form compatible with RDFS 
>>>> >     >     >     or OWL? 
>>>> >     >     > 
>>>> >     >     > 
>>>> >     >     >     Is it supposed to faithfully encode the model theory of 
>>>> >      schema.org < http://schema.org> 
>>>> >     >     < http://schema.org> 
>>>> >     >     >     < http://schema.org> in OWL?   
>>>> >     >     >     If so, where is the document for this theory? 
>>>> >     >     > 
>>>> >     >     > 
>>>> >     >     >     Is it supposed to capture "strings as things" or Roles?  
>>>> >     >     > 
>>>> >     >     > 
>>>> >     >     >     How does it view property domains and ranges?   As axioms?  
>>>> >     As strict 
>>>> >     >     >     constraints?  As soft constraints?   
>>>> >     >     > 
>>>> >     >     > 
>>>> >     >     >     I would also move from rdf/xml to turtle, which is easier to 
>>>> >     write and 
>>>> >     >     >     easier 
>>>> >     >     >     to read. 
>>>> >     >     > 
>>>> >     >     > 
>>>> >     >     >     peter 
>>>> >     >     > 
>>>> >     >     > 
>>>> >     >     > 
>>>> >     >     >     On 06/06/2018 05:05 AM, Richard Wallis wrote: 
>>>> >     >     >     > Calling folks with more OWL experience than me! 
>>>> >     >     >     > 
>>>> >     >     >     > The schema.org < http://schema.org> < http://schema.org> 
>>>> >     < http://schema.org> 
>>>> >     >     < http://schema.org> site has an OWL   
>>>> >     >     >     definition file that has 
>>>> >     >     >     > not been maintained since April   
>>>> >     >     2014:  http://schema.org/docs/schemaorg.owl 
>>>> >     >     < http://schema.org/docs/schemaorg.owl>. 
>>>> >     >     >     > Also the structure and syntax of the file needs some 
>>>> >     attention. 
>>>> >     >     >     > 
>>>> >     >     >     > To help with the occasional questions about accessing 
>>>> >     processable 
>>>> >     >     >     > representations of the vocabulary; to attempt to close an 
>>>> >     issue 
>>>> >     >     (#1611 
>>>> >     >     >     > < https://github.com/schemaorg/schemaorg/issues/1611 
>>>> >     >     >     < https://github.com/schemaorg/schemaorg/issues/1611>>); and to 
>>>> >     >     help with a 
>>>> >     >     >     > personal project, I have had a look at producing an up to 
>>>> >     date, 
>>>> >     >     improved, 
>>>> >     >     >     > maintainable version of the file.   
>>>> >     >     >     > 
>>>> >     >     >     > My first attempt can be downloaded/viewed 
>>>> >     >     >     > 
>>>> >     here:  https://s3.amazonaws.com/rjwPublicData/public/schemaorg.owl 
>>>> >     >     >     < https://s3.amazonaws.com/rjwPublicData/public/schemaorg.owl> 
>>>> >     >     >     > 
>>>> >     >     >     > I am looking for comments, suggestions, and help around a few 
>>>> >     >     aspects of 
>>>> >     >     >     > this work in progress: 
>>>> >     >     >     > 
>>>> >     >     >     >   * Is it generally ‘a good owl file’ 
>>>> >     >     >     > 
>>>> >     >     >     >   * Should it contain more/less info about the vocabulary and 
>>>> >     >     its terms 
>>>> >     >     >     > 
>>>> >     >     >     >   * Specifically with reference to domainIncludes and 
>>>> >     rangeInclude - 
>>>> >     >     >     mapped 
>>>> >     >     >     >     to rdfs:domain & rdfs:range with owl:unionOfcollections: 
>>>> >     >     >     > 
>>>> >     >     >     >       o Is this the best/only way to represent multiple 
>>>> >     domain & 
>>>> >     >     >     ranges for 
>>>> >     >     >     >         an objectproperty? 
>>>> >     >     >     > 
>>>> >     >     >     >       o Have I got the syntax correct? 
>>>> >     >     >     > 
>>>> >     >     >     >   * Several people use Protégé 
>>>> >     < https://protege.stanford.edu/> as a 
>>>> >     >     >     tool for 
>>>> >     >     >     >     this kind of effort - I am trying to identify what syntax, 
>>>> >     >     will enable 
>>>> >     >     >     >     this tool to recognise the multiple domain/ranges when 
>>>> >     importing 
>>>> >     >     >     this file. 
>>>> >     >     >     > 
>>>> >     >     >     > If anyone out there with more OWL experience than me (not 
>>>> >     >     difficult), 
>>>> >     >     >     could 
>>>> >     >     >     > spend a few minutes taking a look at this and commenting, it 
>>>> >     >     would be 
>>>> >     >     >     > greatly appreciated. 
>>>> >     >     >     > 
>>>> >     >     >     > ~Richard  
>>>> >     >     >     > 
>>>> >     >     >     > Richard Wallis 
>>>> >     >     >     > Founder, Data Liberate 
>>>> >     >     >     > http://dataliberate.com 
>>>> >     >     >     > Linkedin:  http://www.linkedin.com/in/richardwallis 
>>>> >     >     >     < http://www.linkedin.com/in/richardwallis> 
>>>> >     >     >     > Twitter: @rjw 
>>>> >     >     > 
>>>> >     >     > 
>>>> >     >     > 
>>>> >     > 
>>>> >     > 
>>>> > 
>>>> 

Received on Monday, 11 June 2018 08:03:53 UTC