Which property to use for WebPage sections? - categories

I have pages that aren't articles and have multiple sections on the page describing different organizations/services and their information. I am defining the page as a WebPage since this page isn't really an article.
Which property should I use to best mark these sections on the page?

WebPageElement or one of its more specific types might be what you're looking for.
There is a full hierarchy of types that should point you in the right direction.
If you're looking to markup contact information such as email, phone etc. you might want to try ContactPoint or PostalAddress.

As #Brad notes, the WebPageElement type would be the closest match for something like a "webpage section". You could use the hasPart property to denote that they are parts of your WebPage.
But I think that it’s typically not useful to provide WebPageElement (or one of its child types) in the first place: don’t say something about how you structure your page, say something about the things you describe on your page.
So if you provide data about an organization, use Organization. If you provide data about a service offered by an organization, use Service (→ provider Organization) etc.
Use the mainEntity property of your WebPage (or one if its more specific types) to link the primary item the page is about:
If the page is about a single organization, you could use:
ItemPage mainEntity Organization.
If the page is about multiple organizations, you could add a list:
CollectionPage mainEntity ItemList
(and each Organization would be its own list item, added via itemListElement)
(By the way, even if Article would be appropriate in your case, you could still use WebPage in addition, so it’s not either-or. In that case, the mainEntity of the WebPage, or the more specific ItemPage, would be the Article item.)

Related

What kind of Schema.org tags to use for several links groups?

I am trying to correctly mark several blocks containing links to articles. Each block contains links to publications depending on the category. There are several blocks of this type on the site. The site is not a blog but a portal, so tags associated with Blog are not appropriate (unless I'm wrong). Which tags should I use?
I tried with ItemList → itemListElement → Article. Everything works fine for a single list. In the case of subsequent lists, I receive a message that the ItemList tag can not appear several times on the page. Any ideas how to approach it?

Multiple Aggregate Ratings of Schema.org

I have multiple aggregate ratings snippets in one page.
Is there a way to make one of them the default one? The one that will be displayed in the results of Search Engines?
Thanks all!
Update:
That webpage is, essentially, the page of a Brand.
It contains the aggregate ratings of the Reviews of the Brand and a list of its products (with aggregate rating for each product).
Of course the link is like www.site.com/brand, so the main aggregate rating have to be the Brand one.
It is not possible to directly denote which entity should be used for purposes like Rich Snippets.
But you can try it indirectly, by denoting what the page is about (what consumers, like Google Search, do with this information is up to them).
In your case, the page seems to be about the brand. Not sure if you are really using Brand, but this type misses some essential properties, so here I’m using Organization (which can have a Brand via the brand property).
You might have something like this:
Product → manufacturer → Organization
Product → aggregateRating → AggregateRating
Organization → aggregateRating → AggregateRating
By specifying what the current page is about, consumers might deduce which Rich Snippet (or similar) to show. Currently this can be done with the about property:
WebPage → about → Organization
So consumers might understand that this is a page about the organization, so the organization’s rating is more relevant than the ratings of the organization’s products.
In the next Schema.org version, we get two new properties:
mainEntity (draft): "Indicates the primary entity described in some page or other CreativeWork."
mainEntityOfPage (draft): "Indicates a page (or other CreativeWork) for which this thing is the main entity being described."
So then you could specify that the brand‘s AggregateRating is the main entity. However, I’d still say that not the rating should be the main entity, but the brand/organization.

Using an itemprop from one itemtype in another itemtype

I just started adding Microdata to the product pages of an online retailer. I'm using Schema.org’s Product type and at this point I'm only referencing product manufacturer, name and description. Google has picked up that this site now has structured data and is listing the pages (and with no errors).
I have a URL on the product pages that links to more items by the same manufacturer. I would like to markup this URL on each page but the property in the type for Product doesn't seem applicable. The description for url in Product seems to indicate it's a URL to the product and of course I'm already on that product and am linking to related products.
I came across the property relatedLink from WebPage that seemed more applicable to my reference so my questions are:
Can I use the property url from Product for the type of URL I am referencing?
If it's more applicable to use relatedlink (or a different property) do I have to specify that the type for that property is CreativeWork? My concern is that while that property might be more applicable the type it comes from is definitely not.
Don’t use url. As you rightly point out, the url property is for the URL of the current item (i.e., the product), and not for URLs of related items.
While the definition of the relatedLink property seems to be appropriate for your case, this property can only be used for WebPage items (and its sub-types), not for Product. With some exceptions, you may only use the properties that are listed in the table for that type.
If the link targets are also Product items, you could use one of these properties:
isRelatedTo:
A pointer to another, somehow related product (or multiple products)
isSimilarTo:
A pointer to another, functionally similar product (or multiple products).

Do I need to repeat all the categories on all sub-pages?

I am marking up the content on my website with microdata. I am a Local Business and use this hierarchy:
Organization/LocalBusiness/TravelAgency/
Do I need to repeat all the relevant Properties for each category: PLace, Organization, Local Buisness and Travel Agency in each page of my website?
http://schema.org/TravelAgency
I have many sub-pages and it is over-kill to repeat everytime on the page the location, address, telephone, etc. of the business.
For specific sub-pages can I cut out the higher categories?
For example: If I have a page: Special Offer Weekend in New York
Do I add all the Properties or can I just add the ones relevant for TravelAgency and potentially Price?
http://schema.org/PriceSpecification
Thanks for your help
PS: I ask this because I have read that it is not good to have invisible content for the user.
Schema.org doesn’t define any required properties, so everything is optional.
But note that there is no concept of "website" in Microdata. The Microdata always gets parsed per document. So if a Microdata consumer parses your "Special Offer Weekend in New York" page, it will not get the telephone/address/etc. of the business, even if these would be specified on all of your other pages.
If you don’t want to markup all the visible content about your business on every page, you might want to link to a page where this data is marked up (e.g., the front page) by using an appropriate Schema.org property.
Example: On "Special Offer Weekend in New York" (Offer), you could use the seller property to link to your front page (TravelAgency).
It’s not defined in Microdata that those links should be followed for parsing Microdata, but that way parsers can (if they want to) understand that all these pages belong to the same TravelAgency.

RESTful GET/POST Form Semantics

When I GET from http://example.com/organization/ I get a list of organizations.
When I GET from http://example.com/organization/xyz/ I get the record for the organization xyz.
When I POST form data to http://example.com/organization/ I create a new organization.
What URL should I use to GET a form to fill out to create a new organization via a POST to http://example.com/organization/?
Looking at How to do a RESTful request for an edit form? and other sources, it would seem that I am really looking for a form resource for organizations -- so I should GET that form at something like http://example.com/organization/form/ and POST to http://example.com/organization/ as described above. This seems...untidy though.
Update
tuespetre's comments have me thinking the best way to do this is to have a form resource. The organziation form is provided via a GET to /form/organization/ which is filled out and posted to /organization/.
A form in the sense that you speak of one is not a resource, but a template to gather user input to POST a new resource.
One really 'RESTful way' to do it would be to utilize some Javascript to 'include' that form in the collection page /organizations, either as a hidden 'slide-down' form or maybe a modal dialog that appears when a certain call to action button is pressed. This would make semantic sense for two reasons:
You won't have to have some arbitrary URI being used for the form (which is not really a resource in the sense that your domain objects are), and
the 'create' form is for POSTing to the collection, so it really closely relates to that collection and thus would not be at all out of place to have right there with the collection.
Of course, you will find many opinions on this, but I would rather not have arbitrary URIs that break the established pattern (i.e., you're not getting an organization with an id of 'new', so why have that inconsistency?)
If you're trying to implement it, I've seen it done in different ways and I don't think there's a rule (but there are different patterns/approachs that you could follow or not).
I would make it http://example.com/organization/new/