schemaorg / schemaorg

Schema.org - schemas and supporting software
https://schema.org/
Apache License 2.0
5.36k stars 820 forks source link

Improved schema for social media #526

Closed vholland closed 8 years ago

vholland commented 9 years ago

Schema.org has limited support for marking up social media content. The existing schema includes http://schema.org/BlogPosting, but does not reflect the expanding nature of the industry. Today people, tweet, pin, liveblog, etc.

This is a big area, which cannot be covered by a single proposal. I am proposing some modest changes to start us down the path.

  1. Create a new type SocialMediaPosting as child of Article. Tweets, pins, facebook posts, instagram posts, etc. are all included in this type.
  2. Move BlogPosting to be a child of SocialMediaPosting instead of directly under Article.
  3. Create a LiveBlogPosting type as a subtype of BlogPosting to cover live blogging. LiveBlogPosting has the following properties:
    • coverageStartTime: When coverage is scheduled to begin. This may be before the start time for the event being covered.
    • coverageEndTime: When coverage is scheduled to conclude. This may be after the event ends.
    • liveBlogUpdate: An individual update to the blog posting.
  4. Create DiscussionForumPosting as a subtype of SocialMediaPosting for discussion boards like Reddit, etc.

See my commit at https://github.com/vholland/schemaorg/commit/5e56cb3ebe63511afb8068ab79bc171bddd4105d for details including some initial examples.

vholland commented 9 years ago

I expanded the examples to include microdata and RDFa. See pull request #549.

chaals commented 9 years ago

WfM

akuckartz commented 9 years ago

/cc @elf-pavlik

elf-pavlik commented 9 years ago

@johnbreslin and @parklize working on SIOC recently also joined W3C Social WG. Maybe we could take a look all together how schema:DiscussionForumPosting and schema:SocialMediaPosting can stay in alignment with existing SIOC terms? I think also l schema:Question & schema:Answer / schema:AskAction & schema:ReplyAction fit into Social.

danbri commented 9 years ago

@elf-pavlik do you see any reason this couldn't be handled by adding something like 'equivalent class' links between the proposed schema.org terms and SIOC? /cc @scor who was also involved in SIOC.

parklize commented 9 years ago

This might help @elf-pavlik The mappings between schema.org and other Web data vocabularies created when schema.org was launched. (Including SIOC mappings) http://schema.rdfs.org/mappings.html

danbri commented 9 years ago

Thanks @parklize!

For SIOC, the 2011 mappings were:

## Classes
schema:BlogPosting owl:equivalentClass sioct:BlogPost .
schema:Blog owl:equivalentClass sioct:Blog .
schema:Article rdfs:subClassOf sioc:Item .
schema:WebPage rdfs:subClassOf sioc:Item .

## Properties (some are not from SIOC, but used simultaneously with SIOC data)
schema:author owl:equivalentProperty foaf:maker .
schema:about owl:equivalentProperty sioc:about .
schema:datePublished owl:equivalentProperty dct:created .
schema:articleBody owl:equivalentProperty sioc:content .
schema:articleSection rdfs:subPropertyOf sioc:topic .
schema:blogPosts rdfs:subPropertyOf sioc:container_of .
# sioc:num_replies rdfs:subPropertyOf schema:interactionCount .
elf-pavlik commented 9 years ago

Thinking about schema.org relaxed model - (domain|range)Includes and convenient Text objects. How do you see, something like using sub(Class|Property)Of in reverse direction?

sioc:Item rdfs:subClassOf schema:Article  .
sioc:Item rdfs:subClassOf schema:WebPage .

sioc:topic rdfs:subPropertyOf schema:articleSection .
sioc:container_of rdfs:subPropertyOf schema:blogPosts .

I remember few IRL discussions with @bblfish and @timbl during W3C Social: F2F3 in Paris, where we looked at schema.org relaxed terms as super of those which ontologies like FOAF, SIOC, CCO, ... define in more strict way.

inetbiz commented 9 years ago

@vholland live blog posting should be an event type. Schema.org already has socialevent. I can think of two examples in the wild already. Youtube Live Events Chat and Google+ Live Events chat stream is live blogging.

elf-pavlik commented 9 years ago

I find it interesting that G+ doesn't really seem to use schema.org in a consistent way

Yes

No

Interestingly last two look like ActivityStreams 1 (verb, displayName, objectType) @jasnell @samuelgoto

@vholland regarding #514 I also noticed in people and comments examples: circledByCount, plusOneCount, plusoners.totalItems - different of counting +1 for people and comments reminds me of InteractionCounter vs. Collection.totalItems discussed in #137

seeAlso: https://github.com/jasnell/w3c-socialwg-activitystreams/issues/89

jasnell commented 9 years ago

There's nothing surprising about the G+ apis looking like AS1 since that's exactly where the G+ APIs began -- as an implementation of AS1. G+ began moving away from AS1 once they started exploring the "moments" mechanism and once the schema.org vocabulary began to expand.

samuelgoto commented 9 years ago

What James said. The former is deprecated as far as I know. The latter (schema.oeg) is the supported api.

I probably have the list somewhere where we listed where AS wasn't scaling technically in its design, but I think I already mentioned to you two in person f2f the issues earlier.

Buy yeah, I agree that the inconsistency in the docs is bad.

(sent from my phone) On Jun 1, 2015 9:06 AM, "James M Snell" notifications@github.com wrote:

There's nothing surprising about the G+ apis looking like AS1 since that's exactly where the G+ APIs began -- as an implementation of AS1. G+ began moving away from AS1 once they started exploring the "moments" mechanism and once the schema.org vocabulary began to expand.

— Reply to this email directly or view it on GitHub https://github.com/schemaorg/schemaorg/issues/526#issuecomment-107610786 .

johnbreslin commented 9 years ago

Hi elf

I understand the schema.org classes are often more relaxed but I think the ones below from schema.org are actually more specific. So in the schema.rdfs.org mappings we had them as equivalent but maybe the ones you had listed below should be in the reverse direction? Or whatever seems to make most sense...

sioc:Item rdfs:subClassOf schema:Article .sioc:Item rdfs:subClassOf schema:WebPage . sioc:topic rdfs:subPropertyOf schema:articleSection .sioc:container_of rdfs:subPropertyOf schema:blogPosts .

Best regards,

John

On Fri, May 29, 2015 at 9:45 AM, ☮ elf Pavlik ☮ notifications@github.com wrote:

Thinking about schema.org relaxed model - (domain|range)Includes and convenient Text http://schema.org/Text objects. How do you see, something like using sub(Class|Property)Of in reverse direction?

sioc:Item rdfs:subClassOf schema:Article . sioc:Item rdfs:subClassOf schema:WebPage .

sioc:topic rdfs:subPropertyOf schema:articleSection . sioc:container_of rdfs:subPropertyOf schema:blogPosts .

I remember few IRL discussions with @bblfish https://github.com/bblfish and @timbl https://github.com/timbl during W3C Social: F2F3 in Paris https://www.w3.org/wiki/Socialwg/2015-05-04, where we looked at schema.org relaxed terms as super of those which ontologies like FOAF, SIOC, CCO, ... define in more strict way.

— Reply to this email directly or view it on GitHub https://github.com/schemaorg/schemaorg/issues/526#issuecomment-106868202 .

John Breslin Educator/Engineer/Entrepreneur http://johnbreslin.com/ @johnbreslin http://twitter.com/johnbreslin

elf-pavlik commented 9 years ago

@johnbreslin I think I made my example very confusing. As far as I remember we discussed foaf:knows and schema:knows. While at first glance I would think: schema:knows owl:equivalentProperty foaf:knows foaf:knows uses rdfs:range & rdfs:domain, while schema:knows uses schema:rangeIncludes and schema:domainIncludes this makes foaf:knows in certain way more restrictive than schema:knows (or maybe having more consequences when reasoner used)

At the same time trying to make terms from other vocabularies always sub(Class|Property)Of scheme.org terms, sounds to me now like a really bad idea.

Maybe similar to schema:sameAs, schema:rangeIncludes and schema:domainIncludes. Safer to map using new predicates like: schema:equivalentClass, schema:equivalentProperty, schema:subClassOf and schema:subPropertyOf. This way reasoning engines would not have unexpected inferences. It could also come handy for mapping not only to SIOC, FOAF, CCO etc. but also to microformats.org (#559)

danbri commented 9 years ago

Other vocabs can be super properties and supertypes too. For example Agent in FOAF covers schema.org Person and Organization.

FWIW I believe foaf:knows and schema:knows are true of the same pairs of things. Sometimes you have to read the natural language definitions to figure these things out, rather than look only at the machine definitions....

elf-pavlik commented 9 years ago

Will schema.org introduce some kind of Feed / Channel (collection)? Something in lines of:

How for example one can markup Youtube channel / playlist?

http://schema.org/ItemList looks closest to sioc:Container and as:Collection

vholland commented 8 years ago

I'm cleaning up old issues.

I believe the original intent of this issue has been addressed.

Data feeds seem to be covered by issue #688. Please comment there.

I agree that sioc:Container and as:Collection map to http://schema.org/ItemList.

For the YouTube issue see issue #781.